Hey folks,

LGTM1 with nits. First, it would be good for y'all to FYI this to the TAG, 
even if you don't block on review. I agree it's small and would wave it 
through. I know Daniel has questions about the Finch flag name, so would be 
good to have those sorted before this goes out too.

Thanks,

Alex

On Wednesday, August 28, 2024 at 5:02:13 AM UTC-7 Corentin Wallez wrote:

> On Wed, Aug 28, 2024 at 12:36 PM Yoav Weiss (@Shopify) <
> yoavwe...@chromium.org> wrote:
>
>> LGTM1
>>
>> On Fri, Aug 23, 2024 at 2:46 PM 'François Beaufort' via blink-dev <
>> blink-dev@chromium.org> wrote:
>>
>>> Adding +Corentin Wallez <cwal...@google.com> to the thread
>>>
>>> On Fri, Aug 23, 2024 at 2:29 PM François Beaufort <fbeauf...@google.com> 
>>> wrote:
>>>
>>>>
>>>>
>>>> On Fri, Aug 23, 2024 at 7:01 AM Domenic Denicola <dome...@chromium.org> 
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Thu, Aug 22, 2024 at 9:13 PM 'François Beaufort' via blink-dev <
>>>>> blink-dev@chromium.org> wrote:
>>>>>
>>>>>> Contact emails
>>>>>>
>>>>>> fbeauf...@google.com
>>>>>>
>>>>>> Explainer
>>>>>>
>>>>>> The “dual-source-blending” GPU feature adds additional blend factors 
>>>>>> and the WGSL @blend_src attribute to allow a fragment shader to blend 
>>>>>> two 
>>>>>> color outputs into a single output buffer. 
>>>>>> https://github.com/gpuweb/gpuweb/pull/4621
>>>>>>
>>>>>> Specification
>>>>>>
>>>>>>
>>>>>> https://gpuweb.github.io/gpuweb/#dom-gpufeaturename-dual-source-blending
>>>>>>
>>>>>> Summary
>>>>>>
>>>>>> Functionality added to the WebGPU spec after its first shipment in a 
>>>>>> browser. 
>>>>>>
>>>>>> Adds the optional GPU feature “dual-source-blending” that enables 
>>>>>> combining two fragment shader outputs into a single framebuffer. This 
>>>>>> technique is particularly useful for applications that require complex 
>>>>>> blending operations, such as those based on Porter-Duff blend modes. By 
>>>>>> reducing the need for frequent pipeline state object changes, dual 
>>>>>> source 
>>>>>> blending can enhance performance and flexibility.
>>>>>>
>>>>>> Blink component
>>>>>>
>>>>>> Blink>WebGPU 
>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EWebGPU>
>>>>>>
>>>>>> TAG review
>>>>>>
>>>>>> None
>>>>>>
>>>>>> TAG review status
>>>>>>
>>>>>> Not applicable
>>>>>>
>>>>>
>>>>> I can't figure out which exception 
>>>>> <https://www.chromium.org/blink/guidelines/api-owners/process-exceptions/>
>>>>>  
>>>>> this would fall under. Can you help explain why TAG review is not 
>>>>> applicable here?
>>>>>
>>>>
>>>> Back in October 2023, Corentin Wallez, the WebGPU Tech Lead, met with 
>>>> the Blink API owners to address the process for releasing WebGPU features 
>>>> following their inclusion in Chromium. It was mutually agreed that 
>>>> requesting TAG reviews for minor features would be unnecessary. This 
>>>> policy 
>>>> applied to all features added at the time. See 
>>>> https://groups.google.com/a/chromium.org/g/blink-dev/search?q=%22tag%20review%22%20subject%3Awebgpu
>>>>
>>>
>> I may misremember, but I thought we discussed adding a "levels" 
>> designation to WebGPU additions that would enable us to create such 
>> bypasses for vendor signals and TAG reviews. Did that actually happen? If 
>> so, did we make any progress on that?
>>
>> In any case, I agree this is a small addition in which I wouldn't expect 
>> the TAG to have meaningful feedback over the one already provided by the 
>> domain experts at the  WebGPU group.
>>
>> We discussed that some larger additions to WebGPU would still request a 
> TAG review, one of which would be the addition of a compatibility mode 
> <https://github.com/gpuweb/gpuweb/blob/main/proposals/compatibility-mode.md> 
> or 
> feature level mechanism for WebGPU (whichever the WebGPU group gets to 
> consensus on). We are still making progress on that one, and don't have 
> other large features being developed yet (only smaller, GPU-specific 
> additions for now). Other features that could warrant TAG review would be 
> bindless / ray tracing (though it's mostly GPU specific), multithreading 
> support, and maybe interoperation with other Web APIs like canvas 
> <https://github.com/fserb/canvas2D/blob/master/spec/webgpu.md> (and canvas 
> shaders <https://github.com/fserb/canvas2D/blob/master/spec/shaders.md>), 
> or WebNN <https://github.com/webmachinelearning/webnn/issues/688>.
>  
>
>>
>>>>  
>>>>
>>>>>  
>>>>>
>>>>>>
>>>>>> Risks
>>>>>>
>>>>>> Interoperability and Compatibility
>>>>>>
>>>>>> This feature has not yet been implemented in any browser. It has been 
>>>>>> approved by the GPU for the Web Community Group, with representatives 
>>>>>> from 
>>>>>> Chrome, Firefox, and Safari. See minutes at 
>>>>>> https://github.com/gpuweb/gpuweb/wiki/GPU-Web-2024-05-29#add-optional-feature-dual_source_blending-4621
>>>>>>
>>>>>> Gecko: No signal (Mozilla members have approved 
>>>>>> https://github.com/gpuweb/gpuweb/pull/4621 and requested during 
>>>>>> weekly standardization meetings that we postpone filing standard 
>>>>>> positions 
>>>>>> until we reach Candidate Recommendation (CR) status in Q4.)
>>>>>>
>>>>>> WebKit: Positive (
>>>>>> https://github.com/WebKit/standards-positions/issues/294#issuecomment-1877411933
>>>>>> )
>>>>>>
>>>>>> Web developers: Positive (
>>>>>> https://github.com/gpuweb/gpuweb/issues/4283)
>>>>>>
>>>>>> Other signals:
>>>>>>
>>>>>> WebView application risks
>>>>>>
>>>>>> Does this intent deprecate or change behavior of existing APIs, such 
>>>>>> that it has potentially high risk for Android WebView-based applications?
>>>>>>
>>>>>> None
>>>>>>
>>>>>>
>>>>>> Debuggability
>>>>>>
>>>>>> None
>>>>>>
>>>>>>
>>>>>> Will this feature be supported on all six Blink platforms (Windows, 
>>>>>> Mac, Linux, ChromeOS, Android, and Android WebView)?
>>>>>>
>>>>>> No
>>>>>>
>>>>>> All platforms will eventually have support. Will immediately be 
>>>>>> available on Android, Android WebView, ChromeOS, Mac, and Windows, since 
>>>>>> those platforms already support WebGPU. Linux is planned to have WebGPU 
>>>>>> support in the future, so this feature will become available when WebGPU 
>>>>>> does.
>>>>>>
>>>>>> Is this feature fully tested by web-platform-tests 
>>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>>>>> ?
>>>>>>
>>>>>> Yes. See https://github.com/gpuweb/cts/issues/3810
>>>>>>
>>>>>> WebGPU/WGSL have a conformance test suite (
>>>>>> https://github.com/gpuweb/cts) that is regularly pulled into 
>>>>>> Chromium and part of the testing of Dawn/Tint in Chromium.
>>>>>>
>>>>>
>>>>> But, it is not tested by web platform tests themselves, right? 
>>>>> https://github.com/web-platform-tests/wpt/tree/master/webgpu seems to 
>>>>> not contain any tests for this feature.
>>>>>
>>>>> (This does not block shipping, but rather is just a request to improve 
>>>>> the accuracy of your Chrome Platform Status entry.)
>>>>>
>>>>
>>>> As you can see in 
>>>> https://groups.google.com/a/chromium.org/g/blink-dev/search?q=cts%20web-platform-tests%20subject%3Awebgpu,
>>>>  
>>>> we’ve always replied “Yes” to this question. The WebGPU/WGSL conformance 
>>>> test suite (https://github.com/gpuweb/cts) is not used only by 
>>>> Chromium. Other engines, like WebKit and Gecko, also rely on this test 
>>>> suite to ensure their implementation aligns with the WebGPU specification.
>>>> This test suite can be exported to WPT and we use that export for a 
>>>> subset of tests in Chromium for reftests: 
>>>> https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/wpt_internal/webgpu/
>>>> The rest of the tests are executed with a different harness in Chromium 
>>>> for better speed and test result granularity. 
>>>>
>>>>  
>>>>>
>>>>>>
>>>>>> Flag name on chrome://flags
>>>>>>
>>>>>> None
>>>>>>
>>>>>> Finch feature name
>>>>>>
>>>>>> WebGPU.Enabled:UnsafeFeatures
>>>>>>
>>>>>
>>>>> This Finch feature name is a bit scary. Does it actually allow 
>>>>> unshipping only this new feature? It sounds rather general.
>>>>>  
>>>>>
>>>>
>>>> It does allow disabling specific GPU features such as 
>>>> FeatureName::DualSourceBlending, but also FeatureName::Subgroups, etc. See 
>>>> https://source.chromium.org/chromium/chromium/src/+/main:gpu/config/gpu_finch_features.cc;l=275;drc=168a59b6bada5b30a6f2390c22a6177216b17e4d
>>>> .
>>>> If it really matters, we could rename the Finch feature name to 
>>>> WebGPU.Enabled:BlocklistFeatures to better reflect the meaning.
>>>>
>>>>
>>>>>> Requires code in //chrome?
>>>>>>
>>>>>> False
>>>>>>
>>>>>> Tracking bug
>>>>>>
>>>>>> https://issues.chromium.org/issues/341973423
>>>>>>
>>>>>> Estimated milestones
>>>>>>
>>>>>> DevTrial on desktop
>>>>>>
>>>>>> 129
>>>>>>
>>>>>> DevTrial  on Android
>>>>>>
>>>>>> 129
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Anticipated spec changes
>>>>>>
>>>>>> Open questions about a feature may be a source of future web compat 
>>>>>> or interop issues. Please list open issues (e.g. links to known github 
>>>>>> issues in the project for the feature specification) whose resolution 
>>>>>> may 
>>>>>> introduce web compat/interop risk (e.g., changing to naming or structure 
>>>>>> of 
>>>>>> the API in a non-backward-compatible way).
>>>>>>
>>>>>> None
>>>>>>
>>>>>> Link to entry on the Chrome Platform Status
>>>>>>
>>>>>> https://chromestatus.com/feature/5167711051841536
>>>>>>
>>>>>>
>>>>>> This intent message was generated by Chrome Platform Status 
>>>>>> <https://chromestatus.com/>.
>>>>>>
>>>>>> -- 
>>>>>> 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/CAPpwU5LYcjs9iaFmzLZ%2BtorNvAQ0no4SSxGAm6ZJ62NONiASNA%40mail.gmail.com
>>>>>>  
>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5LYcjs9iaFmzLZ%2BtorNvAQ0no4SSxGAm6ZJ62NONiASNA%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/CAPpwU5L5XPV4Z9amhPMP8819GR_WtDOS2pwN2iph_bLOKoCZoQ%40mail.gmail.com
>>>  
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5L5XPV4Z9amhPMP8819GR_WtDOS2pwN2iph_bLOKoCZoQ%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/ad26c92d-a28a-4ed2-9f95-17b02439f276n%40chromium.org.

Reply via email to