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.