mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-15 16:29:16 +01:00
[dxvk] Use synchronization2 functions for events
This commit is contained in:
parent
adb906b18c
commit
0c79882e84
@ -707,8 +707,8 @@ namespace dxvk {
|
|||||||
|
|
||||||
void cmdSetEvent(
|
void cmdSetEvent(
|
||||||
VkEvent event,
|
VkEvent event,
|
||||||
VkPipelineStageFlags stages) {
|
const VkDependencyInfo* dependencyInfo) {
|
||||||
m_vkd->vkCmdSetEvent(m_execBuffer, event, stages);
|
m_vkd->vkCmdSetEvent2(m_execBuffer, event, dependencyInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2524,8 +2524,17 @@ namespace dxvk {
|
|||||||
|
|
||||||
DxvkGpuEventHandle handle = m_common->eventPool().allocEvent();
|
DxvkGpuEventHandle handle = m_common->eventPool().allocEvent();
|
||||||
|
|
||||||
m_cmd->cmdSetEvent(handle.event,
|
// Supported client APIs can't access device memory in a defined manner
|
||||||
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT);
|
// without triggering a queue submission first, so we really only need
|
||||||
|
// to wait for prior commands, especially queries, to complete.
|
||||||
|
VkMemoryBarrier2 barrier = { VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 };
|
||||||
|
barrier.srcStageMask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
|
||||||
|
|
||||||
|
VkDependencyInfo depInfo = { VK_STRUCTURE_TYPE_DEPENDENCY_INFO };
|
||||||
|
depInfo.memoryBarrierCount = 1;
|
||||||
|
depInfo.pMemoryBarriers = &barrier;
|
||||||
|
|
||||||
|
m_cmd->cmdSetEvent(handle.event, &depInfo);
|
||||||
|
|
||||||
m_cmd->trackGpuEvent(event->reset(handle));
|
m_cmd->trackGpuEvent(event->reset(handle));
|
||||||
m_cmd->trackResource<DxvkAccess::None>(event);
|
m_cmd->trackResource<DxvkAccess::None>(event);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user