On Wed, May 18, 2022 at 11:25 AM Rick Byers <rby...@chromium.org> wrote:

> This looks like a pretty straight forward small addition. Just a couple
> questions:
>
> On Tue, May 17, 2022 at 7:35 PM Ken Russell <k...@chromium.org> wrote:
>
>> LGTM not as API owner, but as member of Khronos' WebGL working group (and
>> also the chair).
>>
>> -Ken
>>
>> On Tue, May 17, 2022 at 3:40 PM 'Christopher Cameron' via blink-dev <
>> blink-dev@chromium.org> wrote:
>>
>>> Contact emailsccame...@chromium.org
>>>
>>> Specification
>>> This is part of the WebGL specification. In particular:
>>>
>>>    - 5.14.1 context attributes
>>>    <https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.1> 
>>> discusses
>>>    drawingBufferColorSpace and unpackColorSpace
>>>    - 5.14.8 texture objects
>>>    <https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.8> 
>>> discusses
>>>    unpackColorSpace
>>>
>>> This spec was originally developed in the W3C's ColorWeb community group
>>> <https://www.w3.org/community/colorweb/> along with the 2D canvas color
>>> management proposal at
>>>
>>>
>>> https://github.com/WICG/canvas-color-space/blob/main/CanvasColorSpaceProposal.md
>>> It was broken out and iterated upon separately in Khronos (in particular
>>> by Mozilla and Chrome representatives). The final changes to the Khronos
>>> WebGL spec are in
>>> https://github.com/KhronosGroup/WebGL/pull/3292
>>>
>>> *Summary*
>>>
>>> Implementation of WebGL color management API WebGL allows specification
>>> of - the color space that its drawing buffer is - the color space that
>>> content should be converted to when importing as a texture This feature is
>>> to update our implementation to include this functionality. Prior to this
>>> feature, both of these defaulted to sRGB. Now they can also use
>>> "display-p3".
>>>
>>> Blink componentBlink>WebGL
>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EWebGL>
>>>
>>> Search tagscanvas <https://chromestatus.com/features#tags:canvas>, webgl
>>> <https://chromestatus.com/features#tags:webgl>, display-p3
>>> <https://chromestatus.com/features#tags:display-p3>, color space
>>> <https://chromestatus.com/features#tags:color%20space>
>>>
>>> TAG review status
>>> N/A. Canvas 2D color managment API already TAG reviewed at
>>> https://github.com/w3ctag/design-reviews/issues/646
>>> This specification change was developed in Khronos and followed the
>>> processes there.
>>>
>>> Risks
>>>
>>>
>>> Interoperability and Compatibility
>>>
>>>
>>>
>>> Gecko: Positive Developed in close collaboration with Mozilla, spec
>>> changes reviewed by Mozilla.
>>>
>>> WebKit: Positive Discussed in ColorWeb CG with WebKit representatives
>>>
>>
> Any links? Apple and Mozilla have asked us to rely only on their official
> signals
> <https://docs.google.com/document/d/1xkHRXnFS8GDqZi7E0SSbR3a7CZsGScdxPUWBsNgo-oo/edit#heading=h.tgzhprxcmw4u>.
> Since they're broadly supportive of WebGL I doubt we really need to go file
> a full Mozilla standards position request. But some pointer would help. Any
> idea of implementation status in those engines?
>

Mozilla reviewed and approved the additions of drawingBufferColorSpace and
unpackColorSpace to the WebGL specification:
https://github.com/KhronosGroup/WebGL/pull/3292

Mozilla has recently reported to Khronos' WebGL working group that they
have P3 colorspace WebGL-rendered canvases rendering end-to-end on macOS.
I'm afraid that due to IP agreements, these meeting minutes are not public.
However, any employee of a Khronos member company (Apple, Google,
Microsoft, and Mozilla all are) is welcome to create an account and see
those meeting minutes. Let me know if you need a pointer.

The discussions in the W3C's ColorWeb community group, and summary minutes
thereof, can be seen here:
https://lists.w3.org/Archives/Public/public-colorweb/

I haven't yet found all of the meetings in which these WebGL-specific APIs
were discussed, so don't immediately have public evidence of Apple's
positive stance. Let me know if archaeology is needed. Note that Apple and
WebKit have been at the forefront of adding wide color gamut support to CSS.


Web developers: Strongly positive
>>>
>>> Other signals:
>>>
>>> Privacy: N/A
>>> This exposes no information about the user's system to the web. This API
>>> can be used on systems that do not support wide color gamut (the
>>> out-of-gamut colors are clipped, as they are for 2D canvas, images, and
>>> video).
>>>
>>> Security: N/A
>>>
>>> This allows a WebGL canvas to specify its color space. This
>>> functionality is already present for 2D canvas, images, and video content.
>>>
>>>
>>>
>>> Debuggability
>>>
>>> Debugging is currently limited to sRGB colors. This limits visibility
>>> into wide color gamut image, video, and 2D canvas. This limitation is being
>>> looked at in the context of adding CSS color level 4 support.
>>>
>>>
>>> Is this feature fully tested by web-platform-tests
>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>> ?No, this is tested instead by WebGL conformance tests.
>>>
>>
> Can you link to the specific tests? This is really intended to ask about
> automated conformance testing generally, sorry for my ignorance of how the
> WebGL conformance tests work.
>

Yes, certainly. Here are Chris's initial tests exercising video uploads in
the sRGB and P3 color spaces:
https://github.com/KhronosGroup/WebGL/pull/3404

These can actually be run online here:
https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-tests.html

See the conformance/textures/video and conformance2/textures/video subtrees.

In Chromium these are a third_party dependency, and are run on the commit
queue on physical machines containing GPUs
<https://chromium.googlesource.com/chromium/src.git/+/HEAD/docs/gpu/gpu_testing.md>
.

-Ken



>
>>> Flag nameWebGLColorManagement
>>>
>>> Requires code in //chrome?No
>>>
>>> Tracking bughttps://crbug.com/1208480
>>>
>>> Sample linkshttps://ccameron-chromium.github.io/webgl-examples/p3.html
>>>
>>> Estimated milestones
>>>
>>> No milestones specified
>>>
>>> Link to entry on the Chrome Platform Status
>>> https://chromestatus.com/feature/4814886323355648
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "blink-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to blink-dev+unsubscr...@chromium.org.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGnfxj_6radHqyNz4Sxa3SxZET-93xJCdMdZe6WptHxOLyhC3A%40mail.gmail.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGnfxj_6radHqyNz4Sxa3SxZET-93xJCdMdZe6WptHxOLyhC3A%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to blink-dev+unsubscr...@chromium.org.
>> To view this discussion on the web visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMYvS2ekSB4fFQ0-NHHs2ESFPu5jHauTEZWiURVGSWcbDcF0VQ%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMYvS2ekSB4fFQ0-NHHs2ESFPu5jHauTEZWiURVGSWcbDcF0VQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMYvS2dpJ%2B8eFfuRaqYMxPdaq%3DW0XZ6-vSoL24p1nUybFw3Kew%40mail.gmail.com.

Reply via email to