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/46546ed3-2124-4622-b3a5-1a417c808d06n%40chromium.org.