[PATCH vkd3d 07/12] vkd3d: Call vkCmdBindDescriptorSets() only with valid descriptor set.

Józef Kucia joseph.kucia at gmail.com
Wed Aug 15 06:57:55 CDT 2018


From: Józef Kucia <jkucia at codeweavers.com>

If the current pipeline state doesn't need any descriptors it is
perfectly valid to not have a descriptor set.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 libs/vkd3d/command.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c
index 4536264a6c3b..501a06764e24 100644
--- a/libs/vkd3d/command.c
+++ b/libs/vkd3d/command.c
@@ -2188,9 +2188,12 @@ static void d3d12_command_list_update_descriptors(struct d3d12_command_list *lis
     }
     bindings->descriptor_table_dirty_mask = 0;
 
-    bindings->in_use = true;
-    VK_CALL(vkCmdBindDescriptorSets(list->vk_command_buffer, bind_point,
-            rs->vk_pipeline_layout, rs->main_set, 1, &bindings->descriptor_set, 0, NULL));
+    if (bindings->descriptor_set)
+    {
+        VK_CALL(vkCmdBindDescriptorSets(list->vk_command_buffer, bind_point,
+                rs->vk_pipeline_layout, rs->main_set, 1, &bindings->descriptor_set, 0, NULL));
+        bindings->in_use = true;
+    }
 
     d3d12_command_list_update_uav_counter_descriptors(list, bind_point);
 }
-- 
2.16.4




More information about the wine-devel mailing list