diff --git a/src/dawn_native/d3d12/ShaderModuleD3D12.cpp b/src/dawn_native/d3d12/ShaderModuleD3D12.cpp index 1392b2fd71..c554dacb5a 100644 --- a/src/dawn_native/d3d12/ShaderModuleD3D12.cpp +++ b/src/dawn_native/d3d12/ShaderModuleD3D12.cpp @@ -258,8 +258,11 @@ namespace dawn_native { namespace d3d12 { transformManager.Add(); transformManager.Add(); + // D3D12 registers like `t3` and `c3` have the same bindingOffset number in the + // remapping but should not be considered a collision because they have different types. + const bool mayCollide = true; transformInputs.Add(std::move(bindingPoints), - std::move(accessControls)); + std::move(accessControls), mayCollide); tint::Program program; tint::transform::DataMap transformOutputs; diff --git a/src/dawn_native/vulkan/ShaderModuleVk.cpp b/src/dawn_native/vulkan/ShaderModuleVk.cpp index 2f09efa12d..2e256da045 100644 --- a/src/dawn_native/vulkan/ShaderModuleVk.cpp +++ b/src/dawn_native/vulkan/ShaderModuleVk.cpp @@ -172,7 +172,8 @@ namespace dawn_native { namespace vulkan { tint::transform::DataMap transformInputs; transformInputs.Add(std::move(bindingPoints), - std::move(accessControls)); + std::move(accessControls), + /* mayCollide */ false); tint::Program program; DAWN_TRY_ASSIGN(program, RunTransforms(&transformManager, GetTintProgram(), transformInputs,