1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-12 13:08:50 +01:00

[d3d9] Re-bind framebuffer if RT hazards change

Otherwise we never set the feedback loop bits in the backend.
This commit is contained in:
Philip Rebohle 2022-08-17 12:56:45 +02:00 committed by Joshie
parent 7ddfcfeb20
commit 3c2fc41e4c
2 changed files with 4 additions and 1 deletions

View File

@ -6054,9 +6054,11 @@ namespace dxvk {
if (unlikely(m_activeHazardsRT != 0)) if (unlikely(m_activeHazardsRT != 0))
MarkRenderHazards(); MarkRenderHazards();
if (unlikely((m_lastHazardsDS == 0) != (m_activeHazardsDS == 0))) { if (unlikely((!m_lastHazardsDS) != (!m_activeHazardsDS))
|| unlikely((!m_lastHazardsRT) != (!m_activeHazardsRT))) {
m_flags.set(D3D9DeviceFlag::DirtyFramebuffer); m_flags.set(D3D9DeviceFlag::DirtyFramebuffer);
m_lastHazardsDS = m_activeHazardsDS; m_lastHazardsDS = m_activeHazardsDS;
m_lastHazardsRT = m_activeHazardsRT;
} }
for (uint32_t i = 0; i < caps::MaxStreams; i++) { for (uint32_t i = 0; i < caps::MaxStreams; i++) {

View File

@ -1261,6 +1261,7 @@ namespace dxvk {
uint32_t m_fetch4 = 0; uint32_t m_fetch4 = 0;
uint32_t m_lastHazardsDS = 0; uint32_t m_lastHazardsDS = 0;
uint32_t m_lastHazardsRT = 0;
uint32_t m_lastSamplerTypesFF = 0; uint32_t m_lastSamplerTypesFF = 0;
D3D9SpecializationInfo m_specInfo = D3D9SpecializationInfo(); D3D9SpecializationInfo m_specInfo = D3D9SpecializationInfo();