1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-20 19:54:19 +01:00

[dxvk] Fix missing indirect dispatch barriers and tracking

This commit is contained in:
Philip Rebohle 2018-10-07 17:33:03 +02:00
parent 417b6cb6dc
commit af16461858
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99

View File

@ -884,7 +884,7 @@ namespace dxvk {
auto physicalSlice = buffer.physicalSlice();
if (m_barriers.isBufferDirty(buffer.physicalSlice(), DxvkAccess::Read))
if (m_barriers.isBufferDirty(physicalSlice, DxvkAccess::Read))
m_barriers.recordCommands(m_cmd);
if (this->validateComputeState()) {
@ -897,10 +897,19 @@ namespace dxvk {
physicalSlice.handle(),
physicalSlice.offset());
m_cmd->trackResource(
physicalSlice.resource());
m_queries.endQueries(m_cmd,
VK_QUERY_TYPE_PIPELINE_STATISTICS);
this->commitComputePostBarriers();
m_barriers.accessBuffer(physicalSlice,
VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
buffer.bufferInfo().stages,
buffer.bufferInfo().access);
}
m_cmd->addStatCtr(DxvkStatCounter::CmdDispatchCalls, 1);