vkd3d: Use mutable descriptors if available.

The mutable descriptor type allows six descriptor sets to be replaced
with one set for CBV/SRV/UAV heaps.
This commit is contained in:
Conor McCarthy
2023-12-14 14:58:19 +10:00
committed by Alexandre Julliard
parent bb64bfff63
commit b0d1fb7d98
Notes: Alexandre Julliard 2024-01-09 23:37:22 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/523
7 changed files with 83 additions and 10 deletions

View File

@@ -3270,7 +3270,8 @@ static void d3d12_command_list_bind_descriptor_heap(struct d3d12_command_list *l
{
VkDescriptorSet vk_descriptor_set = heap->vk_descriptor_sets[set].vk_set;
if (!vk_descriptor_set)
/* Null vk_set_layout means set 0 uses mutable descriptors, and this set is unused. */
if (!vk_descriptor_set || !list->device->vk_descriptor_heap_layouts[set].vk_set_layout)
continue;
VK_CALL(vkCmdBindDescriptorSets(list->vk_command_buffer, bindings->vk_bind_point, rs->vk_pipeline_layout,