vkd3d: Invalidate binding state on query resolve.

Fixes random broken AO in Necromunda on RADV.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
Hans-Kristian Arntzen 2021-06-17 12:56:23 +02:00
parent 7ab0846242
commit 5c971f216e
1 changed files with 6 additions and 0 deletions

View File

@ -2770,6 +2770,9 @@ static size_t get_query_heap_stride(D3D12_QUERY_HEAP_TYPE heap_type)
return sizeof(uint64_t);
}
static void d3d12_command_list_invalidate_root_parameters(struct d3d12_command_list *list,
VkPipelineBindPoint bind_point, bool invalidate_descriptor_heaps);
static bool d3d12_command_list_gather_pending_queries(struct d3d12_command_list *list)
{
/* TODO allocate arrays from command allocator in case
@ -3070,6 +3073,9 @@ static bool d3d12_command_list_gather_pending_queries(struct d3d12_command_list
list->pending_queries_count = 0;
result = true;
d3d12_command_list_invalidate_current_pipeline(list, true);
d3d12_command_list_invalidate_root_parameters(list, VK_PIPELINE_BIND_POINT_COMPUTE, true);
cleanup:
vkd3d_free(resolves);
vkd3d_free(dispatches);