Zebediah Figura : vkd3d: Also match the UAV counter register space in d3d12_command_list_update_descriptor_table().

Alexandre Julliard julliard at winehq.org
Wed Jun 17 15:53:51 CDT 2020


Module: vkd3d
Branch: master
Commit: 57973b4252a33c870b9b43d1ed3abf5618c7ad24
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=57973b4252a33c870b9b43d1ed3abf5618c7ad24

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Wed Jun 17 17:22:15 2020 +0430

vkd3d: Also match the UAV counter register space in d3d12_command_list_update_descriptor_table().

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 7ff3c87..647431a 100644
--- a/libs/vkd3d/command.c
+++ b/libs/vkd3d/command.c
@@ -2682,7 +2682,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 cf7c796..bfdc7b4 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;
 };
 




More information about the wine-cvs mailing list