=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: vkd3d: Call vkCmdBindDescriptorSets() only with valid descriptor set.

Alexandre Julliard julliard at winehq.org
Thu Aug 16 13:42:21 CDT 2018


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

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Wed Aug 15 13:57:55 2018 +0200

vkd3d: Call vkCmdBindDescriptorSets() only with valid descriptor set.

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>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 4536264..501a067 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);
 }




More information about the wine-cvs mailing list