On Wednesday, October 23, 2024 at 8:21:22 AM UTC-7 Yoav Weiss wrote: > Can y'all flip the review bits for > privacy/security/enterprise/testing/debuggability? >
Done! On Wed, Oct 23, 2024 at 11:23 AM Alex Russell <slightly...@chromium.org> wrote: > Thanks for the explanation, Geoff. We discussed at today's OWNERS meeting, > and with that conversation I'm comfortable with the change. LGTM1 > > On Wednesday, October 23, 2024 at 8:21:22 AM UTC-7 Yoav Weiss wrote: > >> Can y'all flip the review bits for >> privacy/security/enterprise/testing/debuggability? >> >> On Thursday, October 17, 2024 at 12:05:03 PM UTC-7 Geoff Lang wrote: >> >>> I'll describe a use case that become better/possible: >>> >>> The user creates a texture with the 'bgra8unorm' format but as an >>> additional view format of 'rgba8unorm-srgb': >>> >>> const texture = device.createTexture({ >>> size: [4, 4], >>> format: 'rgba8unorm', >>> usage: GPUTextureUsage.RENDER_ATTACHMENT | >>> GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.STORAGE_BINDING, >>> viewFormats: ['rgba8unorm-srgb'], >>> }); >>> >>> const view = texture.createView({ >>> format: 'rgba8unorm-srgb', >>> }); >>> >>> >>> If the user creates this view of this texture using the >>> 'rgba8unorm-srgb' format, it won't be usable as a storage texture despite >>> requesting the texture having STORAGE_BINDING usage because >>> 'rgba8unorm-srgb' does not support this usage. By adding a usage field to >>> view creation, the browser can do validation up-front that the usage is >>> compatible and allow users to specify even smaller subsets of usage that >>> are specific to how the view will be used: >>> >>> const view = texture.createView({ >>> format: 'rgba8unorm-srgb', >>> usage: GPUTextureUsage.RENDER_ATTACHMENT, >>> }); >>> >>> This also mirrors how other graphics APIs work, usage flags are also >>> creation parameters to view creation. It allows more optimizations at the >>> graphics driver level. >>> >>> There's some more discussion in this github issue: >>> https://github.com/gpuweb/gpuweb/issues/4426 >>> >>> Let me know if there's anything else you want to know or if I should >>> write this up somewhere else. >>> >>> Thanks, >>> Geoff >>> >>> On Thu, Oct 17, 2024 at 6:20 AM Alex Russell <slightly...@chromium.org> >>> wrote: >>> >>>> Is there a description somewhere of what problem this solves? I'm >>>> having trouble grokking why this is useful. >>>> >>>> Best, >>>> >>>> Alex >>>> >>>> On Thursday, October 17, 2024 at 12:54:20 AM UTC+5:30 Chromestatus >>>> wrote: >>>> >>>>> Contact emails geoffl...@google.com >>>>> >>>>> Explainer None >>>>> >>>>> Specification >>>>> https://github.com/gpuweb/gpuweb/commit/b39d86d356eb759d7564bc7c808ca62fce8bbf3e >>>>> >>>>> Summary >>>>> >>>>> Adds an optional field to WebGPU texture view creation to request a >>>>> subset of the usage flags from the source texture. By default, texture >>>>> view >>>>> usage inherits from the source texture but there are view formats which >>>>> can >>>>> be incompatible with the full set of inherited usages. Adding a usage >>>>> field >>>>> to texture view creation allows the user request a subset of the source >>>>> texture's usages that are valid with the view format and specific to their >>>>> intended usage of the texture view. WebGPU implementations can also >>>>> optimize the creation of low level resources and improve performance when >>>>> using views with more specialized usage flags. >>>>> >>>>> >>>>> Blink component Blink>WebGPU >>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EWebGPU> >>>>> >>>>> TAG review None >>>>> >>>>> TAG review status Not applicable >>>>> >>>>> Risks >>>>> >>>>> >>>>> Interoperability and Compatibility >>>>> >>>>> This feature has been approved in W3C GPU for the Web WG meetings >>>>> including participants from Safari and Firefox: >>>>> https://github.com/gpuweb/gpuweb/wiki/GPU-Web-2024-07-24#createtexture-does-not-validate-viewformats-against-usage-4426 >>>>> >>>>> >>>>> *Gecko*: No signal >>>>> >>>>> *WebKit*: Closed Without a Position ( >>>>> https://github.com/WebKit/standards-positions/issues/294#issuecomment-1877411933) >>>>> >>>>> >>>>> *Web developers*: No signals >>>>> >>>>> *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, where >>>>> hardware support is available. 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 >>>>> >>>>> 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. While the CTS can be >>>>> embedded in WPT, the WebGPU team opted to keep it separate in Chromium >>>>> testing to use a customized harness for robustness and performance. Tests >>>>> were added in this PR: >>>>> https://github.com/gpuweb/cts/commit/1746bcbc10a809cbadb3b131675b885ed08d9da5 >>>>> >>>>> >>>>> Flag name on chrome://flags None >>>>> >>>>> Finch feature name WebGPU.Enabled:UnsafeFeatures >>>>> >>>>> Requires code in //chrome? False >>>>> >>>>> Tracking bug https://bugs.chromium.org/363903526 >>>>> >>>>> Estimated milestones >>>>> >>>>> No milestones specified >>>>> >>>>> >>>>> 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/5155252832305152?gate=5152335609987072 >>>>> >>>>> 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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2BPGBXss7ZTcRh_fWH%2BkfXKZ0usj_fV6u-W8HEuOEST_z6EFog%40mail.gmail.com.