[gl] Fix compute blit encoding for RG11B10Ufloat T2B copies Fix kEncodeRG11B10UfloatInU32 in BlitTextureToBuffer.cpp: - Replace log2/exp2 floating point math with IEEE 754 bitcast manipulation. - Correctly handle NaN, Infinity, negative values (clamped to 0.0), and overflow clamping to maximum finite values (65024.0 for 11-bit, 64512.0 for 10-bit). - Handle subnormals and mantissa carry into exponent correctly without overflowing into reserved exponent 31 (Infinity/NaN). Add an end2end regression test cloned from CTS image_copy:mip_levels verifying RG11B10Ufloat texture-to-buffer copies with and without the use_blit_for_rg11b10ufloat_texture_copy toggle in OpenGLESBackend config. Turn on UseBlitForRG11B10UfloatTextureCopy for OpenGL ES by default, as GL_RGB / GL_UNSIGNED_INT_10F_11F_11F_REV not guaranteed accepted by glReadPixels. Bug: 556959073 TAG=agy CONV=1a094951-4459-45eb-beb7-5195e47d5b48 Change-Id: Ida4e35bebb806a94f135f7f6bf9770b46b516d7d Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/340975 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shrek Shao <shrekshao@google.com>
Dawn is an open-source and cross-platform implementation of the WebGPU standard. More precisely it implements webgpu.h that is a one-to-one mapping with the WebGPU IDL. Dawn is meant to be integrated as part of a larger system and is the underlying implementation of WebGPU in Chromium.
Dawn provides several WebGPU building blocks:
webgpu.h version that Dawn implements.webgpu.h.Helpful links:
Developer documentation:
User documentation: (TODO, figure out what overlaps with the webgpu.h docs)
BSD 3-Clause License, please see LICENSE.
This is not an officially supported Google product.