From 33475724e51a330113fbe2ee26110c494fb37a9b Mon Sep 17 00:00:00 2001 From: Skyth <19259897+blueskythlikesclouds@users.noreply.github.com> Date: Tue, 6 Jan 2026 12:28:55 +0300 Subject: [PATCH] Fix DXIL view instancing workaround not getting applied correctly. --- .../d3d12/rendering_shader_container_d3d12.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/d3d12/rendering_shader_container_d3d12.cpp b/drivers/d3d12/rendering_shader_container_d3d12.cpp index 21a24f952db..d4fe32e2804 100644 --- a/drivers/d3d12/rendering_shader_container_d3d12.cpp +++ b/drivers/d3d12/rendering_shader_container_d3d12.cpp @@ -66,6 +66,9 @@ GODOT_MSVC_WARNING_IGNORE(4806) // "'&': unsafe operation: no value of type 'boo #include extern "C" { #include + +void dxil_reassign_driver_locations(nir_shader *s, nir_variable_mode modes, + uint64_t other_stage_mask, const BITSET_WORD *other_stage_frac_mask); } GODOT_GCC_WARNING_POP @@ -430,6 +433,10 @@ bool RenderingShaderContainerD3D12::_convert_spirv_to_nir(Spandata.location = VARYING_SLOT_POS; shader->info.inputs_read |= VARYING_BIT_POS; + + if (prev_shader) { + dxil_reassign_driver_locations(shader, nir_var_shader_in, prev_shader->info.outputs_written, NULL); + dxil_reassign_driver_locations(prev_shader, nir_var_shader_out, shader->info.inputs_read, NULL); + } } } - if (prev_shader) { - dxil_spirv_metadata dxil_metadata = {}; - dxil_spirv_nir_link(shader, prev_shader, &dxil_runtime_conf, &dxil_metadata); - } } return true;