Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- libs/vkd3d/command.c | 3 ++- libs/vkd3d/state.c | 1 + libs/vkd3d/vkd3d_private.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c index 0903a7f..90227ef 100644 --- a/libs/vkd3d/command.c +++ b/libs/vkd3d/command.c @@ -2683,7 +2683,8 @@ static void d3d12_command_list_update_descriptor_table(struct d3d12_command_list { for (k = 0; k < state->uav_counter_count; ++k) { - if (state->uav_counters[k].register_index == register_idx) + if (state->uav_counters[k].register_space == range->register_space + && state->uav_counters[k].register_index == register_idx) { VkBufferView vk_counter_view = descriptor->magic == VKD3D_DESCRIPTOR_MAGIC_UAV ? descriptor->u.view->vk_counter_view : VK_NULL_HANDLE; diff --git a/libs/vkd3d/state.c b/libs/vkd3d/state.c index 44891a1..11db8b5 100644 --- a/libs/vkd3d/state.c +++ b/libs/vkd3d/state.c @@ -646,6 +646,7 @@ static HRESULT d3d12_root_signature_init_root_descriptor_tables(struct d3d12_roo table->ranges[j].descriptor_count = range->NumDescriptors; table->ranges[j].binding = vk_binding; table->ranges[j].descriptor_magic = vkd3d_descriptor_magic_from_d3d12(range->RangeType); + table->ranges[j].register_space = range->RegisterSpace; table->ranges[j].base_register_idx = range->BaseShaderRegister; } } diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h index 0afc38d..abb8b66 100644 --- a/libs/vkd3d/vkd3d_private.h +++ b/libs/vkd3d/vkd3d_private.h @@ -658,6 +658,7 @@ struct d3d12_root_descriptor_table_range uint32_t binding;
uint32_t descriptor_magic; + unsigned int register_space; unsigned int base_register_idx; };