Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d719d23779c25d41ec347c2bfb200f3c88815561
      
https://github.com/WebKit/WebKit/commit/d719d23779c25d41ec347c2bfb200f3c88815561
  Author: Gerald Squelart <[email protected]>
  Date:   2026-09-17 (Thu, 17 Sep 2026)

  Changed paths:
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-accelerated-display-p3-expected.txt
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-accelerated-display-p3.html
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-accelerated-expected.txt
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-accelerated-no-gpu-process-expected.txt
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-accelerated-no-gpu-process.html
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-accelerated.html
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-accelerated-display-p3-expected.txt
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-accelerated-display-p3.html
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-accelerated-expected.txt
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-accelerated-no-gpu-process-expected.txt
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-accelerated-no-gpu-process.html
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-accelerated.html
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-unaccelerated-expected.txt
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-unaccelerated-no-gpu-process-expected.txt
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-unaccelerated-no-gpu-process.html
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-unaccelerated.html
    A LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image.js
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-unaccelerated-expected.txt
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-unaccelerated-no-gpu-process-expected.txt
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-unaccelerated-no-gpu-process.html
    A 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-unaccelerated.html
    A LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap.js
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WebCore/html/ImageBitmap.cpp
    M Source/WebCore/html/ImageBitmap.h
    M Source/WebCore/platform/graphics/ColorSpace.cpp
    M Source/WebCore/platform/graphics/ColorSpace.h
    M Source/WebCore/platform/graphics/cg/ShareableBitmapCG.mm

  Log Message:
  -----------
  createImageBitmap-from-hdr
https://bugs.webkit.org/show_bug.cgi?id=324399
rdar://187632132

Reviewed by Mike Wyrzykowski.

createImageBitmap() always allocated a BGRA8 buffer, so an ImageBitmap
made from an HDR source clamped its extended-range values, and drawing
it into a float16 canvas could only produce SDR.

Derive the buffer's color space and pixel format from the source instead:
Keep the source's RGB-model color space, extending it when the source
draws HDR content, and use RGBA16F whenever that color space uses
extended range.

Video and WebCodecsVideoFrame sources still allocate BGRA8 buffers for
now.

* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-accelerated-display-p3-expected.txt:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-accelerated-display-p3.html:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-accelerated-expected.txt:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-accelerated-no-gpu-process-expected.txt:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-accelerated-no-gpu-process.html:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-accelerated.html:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-accelerated-display-p3-expected.txt:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-accelerated-display-p3.html:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-accelerated-expected.txt:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-accelerated-no-gpu-process-expected.txt:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-accelerated-no-gpu-process.html:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-accelerated.html:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-unaccelerated-expected.txt:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-unaccelerated-no-gpu-process-expected.txt:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-unaccelerated-no-gpu-process.html:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image-unaccelerated.html:
 Added.
* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-image.js: 
Added.
(createContext):
(loadImage):
(formatPixel):
(verifyDrawnArea):
(async runTests):
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-unaccelerated-expected.txt:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-unaccelerated-no-gpu-process-expected.txt:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-unaccelerated-no-gpu-process.html:
 Added.
* 
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap-unaccelerated.html:
 Added.
* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-imagebitmap.js: Added.
(createContext):
(makeImageData):
(fill):
(async makeSourceImageBitmap):
(verifyPixel):
(expectedRed):
(async drawAndVerify):
(async runTests):
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WebCore/html/ImageBitmap.cpp:
(WebCore::closestRGBModelColorSpace):
(WebCore::imageBufferPixelFormat):
(WebCore::allowExtendedColorSpace):
(WebCore::pixelBufferForImageData):
(WebCore::ImageBitmap::createImageBuffer):
(WebCore::ImageBitmap::createCompletionHandler):
(WebCore::ImageBitmap::createFromBuffer):
* Source/WebCore/html/ImageBitmap.h:
* Source/WebCore/platform/graphics/ColorSpace.cpp:
(WebCore::ColorSpace::asRGBModelMayBeExtended const):
(WebCore::ColorSpace::asRGB const): Deleted.
* Source/WebCore/platform/graphics/ColorSpace.h:
* Source/WebCore/platform/graphics/cg/ShareableBitmapCG.mm:
(WebCore::ShareableBitmapConfiguration::validateColorSpace):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to