Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7a7acedd6de93309eae61d40394f0fbbb886541e
      
https://github.com/WebKit/WebKit/commit/7a7acedd6de93309eae61d40394f0fbbb886541e
  Author: Gerald Squelart <[email protected]>
  Date:   2025-08-13 (Wed, 13 Aug 2025)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/fast/canvas/hdr/float16-canvas-imagedata-expected.txt
    A LayoutTests/fast/canvas/hdr/float16-canvas-imagedata.html
    M LayoutTests/fast/canvas/imagedata-storageformat-enabled.html
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/mac-wk2/TestExpectations
    M 
LayoutTests/storage/indexeddb/modern/objectstore-autoincrement-types-expected.txt
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/html/ImageData.cpp
    M Source/WebCore/html/ImageData.h
    M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp
    M Source/WebCore/platform/graphics/ImageBufferAllocator.cpp
    M Source/WebCore/platform/graphics/ImageBufferBackend.cpp
    M Source/WebCore/platform/graphics/PixelBuffer.cpp
    M Source/WebCore/platform/graphics/PixelBuffer.h
    M Source/WebCore/platform/graphics/PixelBufferConversion.cpp
    M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp
    M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h
    M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp
    M Source/WebCore/platform/graphics/cg/ImageBufferCGPDFDocumentBackend.cpp
    M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp
    M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h
    M Source/WebCore/rendering/RenderLayer.cpp
    M Source/WebCore/rendering/RenderLayerCompositor.cpp
    M Source/WebKit/GPUProcess/graphics/ShareablePixelBuffer.cpp
    M 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp

  Log Message:
  -----------
  HDR 2D Canvas: Support for Float16 backend with put/getImageData
https://bugs.webkit.org/show_bug.cgi?id=297212
rdar://158032286

Reviewed by Mike Wyrzykowski.

ImageBufferBackend's support for Float16 image data, including
conversions between uint8 and float16.

In this initial "testable" implementation, setting the canvas pixel
format to float16 is enough to engage the display of HDR pixels.

* LayoutTests/TestExpectations:
* LayoutTests/fast/canvas/hdr/float16-canvas-imagedata-expected.txt: Added.
* LayoutTests/fast/canvas/hdr/float16-canvas-imagedata.html: Added.
* LayoutTests/fast/canvas/imagedata-storageformat-enabled.html:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:
* 
LayoutTests/storage/indexeddb/modern/objectstore-autoincrement-types-expected.txt:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/html/ImageData.cpp:
(WebCore::ImageData::create):
(WebCore::ImageData::float16ArrayPixelBuffer const):
(WebCore::ImageData::pixelBuffer const):
* Source/WebCore/html/ImageData.h:
(WebCore::ImageData::create):
* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::cacheImageDataIfPossible):
(WebCore::CanvasRenderingContext2DBase::getImageData const):
(WebCore::CanvasRenderingContext2DBase::putImageData):
* Source/WebCore/platform/graphics/ImageBufferAllocator.cpp:
(WebCore::ImageBufferAllocator::createPixelBuffer const):
* Source/WebCore/platform/graphics/ImageBufferBackend.cpp:
(WebCore::ImageBufferBackend::getPixelBuffer):
(WebCore::ImageBufferBackend::putPixelBuffer):
* Source/WebCore/platform/graphics/PixelBuffer.cpp:
(WebCore::computeRawPixelComponentCount):
(WebCore::PixelBuffer::computeBufferSize):
(WebCore::PixelBuffer::PixelBuffer):
* Source/WebCore/platform/graphics/PixelBuffer.h:
(WebCore::PixelBuffer::bytesPerPixelComponent):
(WebCore::PixelBuffer::componentsPerPixel):
(WebCore::PixelBuffer::bytesPerPixel):
* Source/WebCore/platform/graphics/PixelBufferConversion.cpp:
(WebCore::readFloat16):
(WebCore::writeFloat16):
(WebCore::convertImagePixelsFromFloat16ToFloat16):
(WebCore::convertImagePixelsFromFloat16):
(WebCore::convertImagePixelsToFloat16):
(WebCore::convertImagePixels):
* Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp:
(WebCore::ImageBufferCGBackend::calculateBytesPerRow):
* Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h:
* Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:
(WebCore::ImageBufferCGBitmapBackend::calculateMemoryCost):
(WebCore::ImageBufferCGBitmapBackend::bytesPerRow const):
* Source/WebCore/platform/graphics/cg/ImageBufferCGPDFDocumentBackend.cpp:
(WebCore::ImageBufferCGPDFDocumentBackend::calculateMemoryCost):
* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::calculateBytesPerRow):
(WebCore::ImageBufferIOSurfaceBackend::calculateMemoryCost):
* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForCanvas const):
* Source/WebKit/GPUProcess/graphics/ShareablePixelBuffer.cpp:
(WebKit::ShareablePixelBuffer::ShareablePixelBuffer):
(WebKit::ShareablePixelBuffer::createScratchPixelBuffer const):
* 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp:
(WebKit::ImageBufferRemoteIOSurfaceBackend::bytesPerRow const):

Canonical link: https://commits.webkit.org/298618@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to