mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-20 10:54:16 +01:00
[dxvk] Remove incorrect framebuffer-space barriers
We're technically required to use VK_DEPENDENCY_BY_REGION_BIT, but that isn't actually good enough.
This commit is contained in:
parent
803ec3542d
commit
c5676d3108
@ -4344,21 +4344,10 @@ namespace dxvk {
|
||||
|
||||
|
||||
void DxvkContext::commitGraphicsPostBarriers() {
|
||||
bool fs = m_state.gp.flags.test(DxvkGraphicsPipelineFlag::HasFsStorageDescriptors);
|
||||
bool vs = m_state.gp.flags.test(DxvkGraphicsPipelineFlag::HasVsStorageDescriptors);
|
||||
|
||||
if (vs) {
|
||||
// External subpass dependencies serve as full memory
|
||||
// and execution barriers, so we can use this to allow
|
||||
// inter-stage synchronization.
|
||||
this->spillRenderPass();
|
||||
} else if (fs) {
|
||||
this->emitMemoryBarrier(
|
||||
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||
VK_ACCESS_SHADER_WRITE_BIT,
|
||||
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||
VK_ACCESS_SHADER_READ_BIT);
|
||||
}
|
||||
// External subpass dependencies serve as full memory
|
||||
// and execution barriers, so we can use this to allow
|
||||
// inter-stage synchronization.
|
||||
this->spillRenderPass();
|
||||
}
|
||||
|
||||
|
||||
|
@ -151,17 +151,6 @@ namespace dxvk {
|
||||
VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, 0 };
|
||||
}
|
||||
|
||||
if (ops.barrier.srcStages & (
|
||||
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT |
|
||||
VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT |
|
||||
VK_PIPELINE_STAGE_ALL_COMMANDS_BIT)) {
|
||||
subpassDeps[subpassDepCount++] = { 0, 0,
|
||||
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||
VK_ACCESS_SHADER_WRITE_BIT,
|
||||
VK_ACCESS_SHADER_READ_BIT, 0 };
|
||||
}
|
||||
|
||||
if (ops.barrier.srcStages && ops.barrier.dstStages) {
|
||||
subpassDeps[subpassDepCount++] = {
|
||||
0, VK_SUBPASS_EXTERNAL,
|
||||
|
Loading…
x
Reference in New Issue
Block a user