mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
vkd3d: Do not reset the descriptor heap count unless full or the command list is reset.
The same heaps must be flushed again if the command list is executed again without a reset.
This commit is contained in:
parent
87037d3748
commit
e2dac061e2
Notes:
Alexandre Julliard
2023-05-02 22:26:50 +02:00
Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/192
@ -2463,6 +2463,8 @@ static void d3d12_command_list_reset_state(struct d3d12_command_list *list,
|
|||||||
memset(list->so_counter_buffers, 0, sizeof(list->so_counter_buffers));
|
memset(list->so_counter_buffers, 0, sizeof(list->so_counter_buffers));
|
||||||
memset(list->so_counter_buffer_offsets, 0, sizeof(list->so_counter_buffer_offsets));
|
memset(list->so_counter_buffer_offsets, 0, sizeof(list->so_counter_buffer_offsets));
|
||||||
|
|
||||||
|
list->descriptor_heap_count = 0;
|
||||||
|
|
||||||
ID3D12GraphicsCommandList2_SetPipelineState(iface, initial_pipeline_state);
|
ID3D12GraphicsCommandList2_SetPipelineState(iface, initial_pipeline_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3181,7 +3183,6 @@ static void command_list_flush_vk_heap_updates(struct d3d12_command_list *list)
|
|||||||
d3d12_desc_flush_vk_heap_updates_locked(list->descriptor_heaps[i], device);
|
d3d12_desc_flush_vk_heap_updates_locked(list->descriptor_heaps[i], device);
|
||||||
vkd3d_mutex_unlock(&list->descriptor_heaps[i]->vk_sets_mutex);
|
vkd3d_mutex_unlock(&list->descriptor_heaps[i]->vk_sets_mutex);
|
||||||
}
|
}
|
||||||
list->descriptor_heap_count = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d3d12_command_list_bind_descriptor_heap(struct d3d12_command_list *list,
|
static void d3d12_command_list_bind_descriptor_heap(struct d3d12_command_list *list,
|
||||||
@ -3215,6 +3216,7 @@ static void d3d12_command_list_bind_descriptor_heap(struct d3d12_command_list *l
|
|||||||
/* Descriptors can be written after binding. */
|
/* Descriptors can be written after binding. */
|
||||||
FIXME("Flushing descriptor updates while list %p is not closed.\n", list);
|
FIXME("Flushing descriptor updates while list %p is not closed.\n", list);
|
||||||
command_list_flush_vk_heap_updates(list);
|
command_list_flush_vk_heap_updates(list);
|
||||||
|
list->descriptor_heap_count = 0;
|
||||||
}
|
}
|
||||||
list->descriptor_heaps[list->descriptor_heap_count++] = heap;
|
list->descriptor_heaps[list->descriptor_heap_count++] = heap;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user