From: Conor McCarthy cmccarthy@codeweavers.com
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. --- libs/vkd3d/command.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c index 8b5f7899..42a98763 100644 --- a/libs/vkd3d/command.c +++ b/libs/vkd3d/command.c @@ -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; }