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/d3428ff2-385c-4b55-8cf1-6b0ca03ce64cn%40chromium.org.

Reply via email to