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/e688f7df-4b4a-4520-817c-7e1ea3bf5a6dn%40chromium.org.

Reply via email to