mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-20 19:54:19 +01:00
[dxvk] Fix graphics UAV barriers
We broke this when replacing gfxBarriers with execBarriers, since starting a render pass instance clears queued up barriers.
This commit is contained in:
parent
59475fb053
commit
5ff6f3a2ca
@ -5234,18 +5234,25 @@ namespace dxvk {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_state.gp.flags.any(DxvkGraphicsPipelineFlag::HasStorageDescriptors,
|
||||
DxvkGraphicsPipelineFlag::HasTransformFeedback)) {
|
||||
this->commitGraphicsBarriers<Indexed, Indirect, false>();
|
||||
this->commitGraphicsBarriers<Indexed, Indirect, true>();
|
||||
}
|
||||
|
||||
if (m_flags.test(DxvkContextFlag::GpDirtyFramebuffer))
|
||||
this->updateFramebuffer();
|
||||
|
||||
if (!m_flags.test(DxvkContextFlag::GpRenderPassBound))
|
||||
this->startRenderPass();
|
||||
|
||||
if (m_state.gp.flags.any(
|
||||
DxvkGraphicsPipelineFlag::HasStorageDescriptors,
|
||||
DxvkGraphicsPipelineFlag::HasTransformFeedback)) {
|
||||
this->commitGraphicsBarriers<Indexed, Indirect, false>();
|
||||
|
||||
// This can only happen if the render pass was active before,
|
||||
// so we'll never strat the render pass twice in one draw
|
||||
if (!m_flags.test(DxvkContextFlag::GpRenderPassBound))
|
||||
this->startRenderPass();
|
||||
|
||||
this->commitGraphicsBarriers<Indexed, Indirect, true>();
|
||||
}
|
||||
|
||||
if (m_flags.test(DxvkContextFlag::GpDirtyIndexBuffer) && Indexed) {
|
||||
if (unlikely(!this->updateIndexBufferBinding()))
|
||||
return false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user