[tint][hlsl] Add support for emitting resource tables This is the Tint portion of this change. A followup CL that depends on this contains the Dawn portion. - Modified GenerateResourceTableConfig bindpoint values, specifically ensuring the groups are different, because HLSL does not allow overlapping registers. - ResourceTable transform: renamed "tint_resource_table_buffer" to "tint_resource_table_metadata_struct" and added a name for var "tint_resource_table_metadata". - Implemented ResourceTableHelper::GenerateVars for HLSL that generates a var for all input resource types, each in its own group, that the printer emits as unbounded arrays. - Implemented HLSL printer to emit type::ResourceTable unbounded arrays. - HLSL raise calls ResourceTable transform. - tint cmd adds gen_options.resource_table. - HLSL CanGenerate fails if attempting to emit resource table calls when compiler is FXC. Although it can work, we've chosen to not support bindless with FXC for Dawn. - Regen'd Tint e2e tests. Bug: 473354062 Change-Id: Ic275115ad74abd4ce7fa68acc138836acaa2f85e Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/289595 Reviewed-by: James Price <jrprice@google.com> Commit-Queue: Antonio Maiorano <amaiorano@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.