commit | fe9e9d8c69c02df82bd75f376b8350c337dfa989 | [log] [tgz] |
---|---|---|
author | Jiawei Shao <jiawei.shao@intel.com> | Wed Oct 11 07:57:48 2023 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Oct 11 07:57:48 2023 +0000 |
tree | 9076d00b9f6b7f78aee7f1b3b0c730f1a1169fc3 | |
parent | 25d4e220a1b2679c6017fccd08e34741dc6be0f0 [diff] |
Support larger maxInterStageShader limits on D3D and Vulkan This patch implements larger maxInterStageShaderVariables and maxInterStageShaderComponents on D3D11, D3D12 and Vulkan. On D3D backends the maximum number of maxInterStageShaderVectors can be (D3D12_PS_INPUT_REGISTER_COUNT - 2 = 30) and the maximum number of maxInterStageShaderComponents is (D3D12_PS_INPUT_REGISTER_COUNT - 2) * D3D12_PS_INPUT_REGISTER_COMPONENTS = 120: - reserve one register for SV_Position - reserve one register for SV_SampleIndex OR SV_IsFrontFace On Vulkan backends we should reserve 4 components for the SPIR-V builtin position when computing maxInterStageShaderComponents, and maxInterStageShaderVariables is (maxInterStageShaderComponents / 4). See the below investigations for more details: https://github.com/gpuweb/gpuweb/issues/1962 Bug: dawn:685, dawn:1448 Test: dawn_end2end_tests Change-Id: I91f8461aa6b38ef830e9088eca7ada1c1578f280 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/155343 Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Ben Clayton <bclayton@google.com>
Dawn is an open-source and cross-platform implementation of the work-in-progress 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)
(TODO)
Apache 2.0 Public License, please see LICENSE.
This is not an officially supported Google product.