LGTM3

On Tuesday, June 10, 2025 at 11:49:13 PM UTC-4 Yoav Weiss wrote:

> LGTM2
>
> On Friday, June 6, 2025 at 5:33:12 PM UTC+2 Mehmet Oguz Derin wrote:
>
>> Likewise, thank you very much for all the effort and hard work to support 
>> the features 🙇
>>
>> On Thursday, June 5, 2025 at 5:13:05 PM UTC+3 François Beaufort wrote:
>>
>>> On Thu, Jun 5, 2025 at 3:54 PM Mike Taylor <mike...@chromium.org> wrote:
>>>
>> LGTM1
>>>> On 6/5/25 4:10 AM, François Beaufort wrote:
>>>>
>>>
>>>>
>>>> On Thu, Jun 5, 2025 at 9:52 AM François Beaufort <fbea...@google.com> 
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Thu, Jun 5, 2025 at 2:30 AM Mike Taylor <mike...@chromium.org> 
>>>>> wrote:
>>>>>
>>>> On 6/4/25 3:41 AM, 'François Beaufort' via blink-dev wrote:
>>>>>>
>>>>> Contact emails 
>>>>>>
>>>>>> fbea...@google.com
>>>>>>
>>>>>>
>>>>>> Explainer 
>>>>>>
>>>>>> The "texture-compression-bc-sliced-3d" and 
>>>>>> "texture-compression-astc-sliced-3d" WebGPU features add respectively 
>>>>>> support for 3D textures using Block Compression (BC) and Adaptive 
>>>>>> Scalable 
>>>>>> Texture Compression (ASTC) formats. This lets developers leverage the 
>>>>>> efficient compression capabilities of BC and ASTC formats for volumetric 
>>>>>> texture data, offering significant reductions in memory footprint and 
>>>>>> bandwidth requirements without substantial loss in visual quality.
>>>>>>
>>>>>> This is particularly valuable in fields such as scientific 
>>>>>> visualization, medical imaging, and advanced rendering techniques.
>>>>>>
>>>>>> By exposing those capabilities as WebGPU features, developers can 
>>>>>> explicitly check for support and provide fallback solutions or 
>>>>>> alternative 
>>>>>> rendering paths when necessary.
>>>>>>
>>>>>> Specification 
>>>>>>
>>>>>> https://gpuweb.github.io/gpuweb/#texture-compression-bc-sliced-3d
>>>>>>
>>>>>> https://gpuweb.github.io/gpuweb/#texture-compression-astc-sliced-3d
>>>>>>
>>>>>> At the risk of asking a silly question: the spec talks about "BC 
>>>>>> compressed formats" and "ASTC compressed formats", but as a non-expert I 
>>>>>> don't know where to go to learn more abut them. Is there some kind of 
>>>>>> normative reference for what that means (I don't see any hyperlinks)? 
>>>>>> Are 
>>>>>> there hidden interop challenges here, or does all the tooling that might 
>>>>>> produce these things just work™?
>>>>>>
>>>>>
>>>>> That's not a silly question at all. The world of texture compression 
>>>>> can be quite opaque to those not deeply embedded in 3D graphics. 
>>>>>
>>>>> Both BC (Block Compression) and ASTC (Adaptive Scalable Texture 
>>>>> Compression) are types of lossy compression formats specifically designed 
>>>>> for use by GPUs.
>>>>>
>>>>> Their primary goal is to reduce the memory footprint and bandwidth 
>>>>> required for textures.
>>>>>
>>>>> Historically, BC formats have been the standard on desktop. ASTC on 
>>>>> the other hand is the preferred format on most mobile devices.
>>>>>
>>>>>
>>>>> While the formats themselves are standardized at 
>>>>> https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.html#_compressed_texture_image_formats,
>>>>>  
>>>>> you'll likely need to generate and ship both sets of compressed textures 
>>>>> and have your engine select the appropriate one at runtime based on the 
>>>>> hardware. See https://github.com/webgpu/webgpu-samples/pull/501/files 
>>>>> for instance.
>>>>>
>>>>> For info, ARM's astcenc is considered the reference encoder for ASTC.
>>>>>
>>>>> For BC formats, various tools exist, from those integrated into game 
>>>>> engines like Unreal Engine and Unity to standalone utilities like 
>>>>> texconv. 
>>>>>
>>>>> I've just filed https://github.com/gpuweb/gpuweb/issues/5214 to the 
>>>>> WebGPU spec to add normative references for ASTC and BC compressed 
>>>>> formats.
>>>>>
>>>> Thanks for filing the issue and the explanation!
>>>>
>>>>  
>>>>>
>>>>
>>>> [image: image.png]
>>>> For reference, this DevTools Network screenshot from Chrome on macOS 
>>>> from 
>>>> https://webgpu.github.io/webgpu-samples/?sample=volumeRenderingTexture3D 
>>>> shows that using BC and ASTC formats leads to smaller assets.
>>>>
>>>> Very cool - thanks.
>>>>
>>>> (And thanks to whoever made that, I love a good brain scan demo)
>>>>
>>> Hat tip to Mehmet Oguz Derin for this great demo!
>>>
>>
>>>>>> Summary 
>>>>>>
>>>>>> Functionality added to the WebGPU spec after its first shipment in a 
>>>>>> browser.
>>>>>>
>>>>>> The “texture-compression-bc-sliced-3d” and 
>>>>>> “texture-compression-astc-sliced-3d” WebGPU features add respectively 3D 
>>>>>> texture support for BC and ASTC compressed formats.
>>>>>>
>>>>>> 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 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-07-10#consider-moving-sliced-3d-compressed-bc-texture-to-an-extension-4705
>>>>>>  
>>>>>> and 
>>>>>> https://github.com/gpuweb/gpuweb/wiki/GPU-Web-2024-07-24#discussapprove-small-details-of-add-texture-compression-bc-sliced-3d-4763
>>>>>>
>>>>>>
>>>>>> Gecko: No signal (Mozilla members have requested during weekly 
>>>>>> standardization meetings that we postpone filing standard positions 
>>>>>> until 
>>>>>> we reach Candidate Recommendation (CR) status in Q4.) 
>>>>>> https://github.com/mozilla/standards-positions/issues/1205
>>>>>>
>>>>>> WebKit: Positive (
>>>>>> https://github.com/WebKit/standards-positions/issues/294#issuecomment-1877411933
>>>>>> )
>>>>>>
>>>>>> Web developers: Positive (
>>>>>> https://github.com/gpuweb/gpuweb/issues/3183)
>>>>>>
>>>>>> 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
>>>>>>
>>>>>> 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. All the tests about this feature in WebGPU CTS can be found 
>>>>>> through https://github.com/gpuweb/cts/issues/3761 and 
>>>>>> https://github.com/gpuweb/cts/issues/3967
>>>>>>
>>>>>> Flag name on chrome://flags 
>>>>>>
>>>>>> Enable Unsafe WebGPU
>>>>>>
>>>>>> Finch feature name 
>>>>>>
>>>>>> WebGPU.Enabled:UnsafeFeatures
>>>>>>
>>>>>> Requires code in //chrome? 
>>>>>>
>>>>>> False
>>>>>>
>>>>>> Tracking bug 
>>>>>>
>>>>>> https://issues.chromium.org/issues/342840940
>>>>>>
>>>>>> Sample links 
>>>>>>
>>>>>>
>>>>>> https://webgpu.github.io/webgpu-samples/?sample=volumeRenderingTexture3D
>>>>>>
>>>>>> Estimated milestones 
>>>>>>
>>>>>> Shipping on desktop
>>>>>>
>>>>>> 139
>>>>>>
>>>>>> Shipping on Android
>>>>>>
>>>>>> 139
>>>>>>
>>>>>> 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/5080855386783744?gate=6225340422422528 
>>>>>>
>>>>>> 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+...@chromium.org.
>>>>>>
>>>>>>
>>>>>> To view this discussion visit 
>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5LuwN_2tbzyy6W17sn8YZ8oOGYQR-Cfe7P4uka3BQdHuA%40mail.gmail.com
>>>>>>  
>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5LuwN_2tbzyy6W17sn8YZ8oOGYQR-Cfe7P4uka3BQdHuA%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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/adb3e6b4-6cbc-4546-9a2f-d322c7055bf6n%40chromium.org.

Reply via email to