vkd3d: Do not flush descriptor heaps stored in the command list when the array size is exceeded.

An earlier patch introduced a bug which overflows the descriptor heap
array. The array should not be emptied here in case the list is
resubmitted, so just flush the new heap.
This commit is contained in:
Conor McCarthy 2023-08-23 11:07:16 +10:00 committed by Alexandre Julliard
parent f374934281
commit 5c09752194
Notes: Alexandre Julliard 2023-08-24 23:12:46 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/311

View File

@ -3225,7 +3225,10 @@ static void command_list_add_descriptor_heap(struct d3d12_command_list *list, st
{
/* Descriptors can be written after binding. */
FIXME("Flushing descriptor updates while list %p is not closed.\n", list);
command_list_flush_vk_heap_updates(list);
vkd3d_mutex_lock(&heap->vk_sets_mutex);
d3d12_desc_flush_vk_heap_updates_locked(heap, list->device);
vkd3d_mutex_unlock(&heap->vk_sets_mutex);
return;
}
list->descriptor_heaps[list->descriptor_heap_count++] = heap;
}