1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-05 01:24:14 +01:00

[dxvk] Ignore some pipeline flags when ending render pass

This commit is contained in:
Philip Rebohle 2023-06-22 23:41:24 +02:00
parent 0895858901
commit 8704ed7af6

View File

@ -4958,9 +4958,16 @@ namespace dxvk {
if (unlikely(newPipeline->getSpecConstantMask() != m_state.gp.constants.mask)) if (unlikely(newPipeline->getSpecConstantMask() != m_state.gp.constants.mask))
this->resetSpecConstants<VK_PIPELINE_BIND_POINT_GRAPHICS>(newPipeline->getSpecConstantMask()); this->resetSpecConstants<VK_PIPELINE_BIND_POINT_GRAPHICS>(newPipeline->getSpecConstantMask());
if (m_state.gp.flags != newPipeline->flags()) { DxvkGraphicsPipelineFlags oldFlags = m_state.gp.flags;
m_state.gp.flags = newPipeline->flags(); DxvkGraphicsPipelineFlags newFlags = newPipeline->flags();
DxvkGraphicsPipelineFlags hazardMask(
DxvkGraphicsPipelineFlag::HasTransformFeedback,
DxvkGraphicsPipelineFlag::HasStorageDescriptors);
m_state.gp.flags = newFlags;
if (((oldFlags ^ newFlags) & hazardMask) != 0) {
// Force-update vertex/index buffers for hazard checks // Force-update vertex/index buffers for hazard checks
m_flags.set(DxvkContextFlag::GpDirtyIndexBuffer, m_flags.set(DxvkContextFlag::GpDirtyIndexBuffer,
DxvkContextFlag::GpDirtyVertexBuffers, DxvkContextFlag::GpDirtyVertexBuffers,