LGTM3 (after two LGTM1s from Alex and Yoav).

The finch flag is just a followup on Domenic's question. It seems the issue is that the documented flag doesn't actually correspond to the on-off switch for this feature so please update the finch flag documentation to reflect the correct switch. Just in case this will need emergency surgery.

There is a discussion to be had about TAG reviews for minor WebGPU features. By the book this should probably have had one, but I'm not sure anyone would have benefited from such a request so it's probably the book that needs updating. Also see Alex' comment below.

/Daniel

On 2024-08-28 18:00, Alex Russell wrote:
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 <mailto: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 <mailto: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
                        <https://github.com/gpuweb/gpuweb/pull/4621>


                                Specification

                        
https://gpuweb.github.io/gpuweb/#dom-gpufeaturename-dual-source-blending
                        
<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
                
<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
                        
<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
                        <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
                        
<https://github.com/WebKit/standards-positions/issues/294#issuecomment-1877411933>)


                        Web developers: Positive
                        (https://github.com/gpuweb/gpuweb/issues/4283
                        <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
                        <https://github.com/gpuweb/cts/issues/3810>

                        WebGPU/WGSL have a conformance test suite
                        (https://github.com/gpuweb/cts
                        <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
                    
<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
                
<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/
                
<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.
                
Seehttps://source.chromium.org/chromium/chromium/src/+/main:gpu/config/gpu_finch_features.cc;l=275;drc=168a59b6bada5b30a6f2390c22a6177216b17e4d
                
<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
                        <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
                        <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
                        <mailto: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
            <mailto: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 <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/ad26c92d-a28a-4ed2-9f95-17b02439f276n%40chromium.org?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/38ef191d-a974-40d2-9e88-6b090f1c306e%40gmail.com.

Reply via email to