Skip to content

Commit 2c908f4

Browse files
GS/DX11: Check if Depth feedback is enabled before making a copy.
1 parent c1bf4d5 commit 2c908f4

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

pcsx2/GS/Renderers/DX11/GSDevice11.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2870,7 +2870,7 @@ void GSDevice11::RenderHW(GSHWDrawConfig& config)
28702870
}
28712871

28722872
if (draw_ds && (config.require_one_barrier || (config.require_full_barrier && m_features.multidraw_fb_copy)) &&
2873-
config.ps.IsFeedbackLoopDepth())
2873+
m_features.depth_feedback == GSDevice::DepthFeedbackSupport::Depth && config.ps.IsFeedbackLoopDepth())
28742874
{
28752875
// Requires a copy of the DS.
28762876
draw_ds_clone = CreateTexture(rtsize.x, rtsize.y, 1, draw_ds->GetFormat(), true);
@@ -2946,15 +2946,18 @@ void GSDevice11::SendHWDraw(const GSHWDrawConfig& config,
29462946

29472947
auto CopyAndBind = [&](GSVector4i drawarea) {
29482948
if (draw_rt_clone)
2949+
{
29492950
CopyRect(draw_rt, draw_rt_clone, drawarea, drawarea.left, drawarea.top);
2951+
if ((one_barrier || full_barrier))
2952+
PSSetShaderResource(2, draw_rt_clone);
2953+
if (config.tex && config.tex == draw_rt)
2954+
PSSetShaderResource(0, draw_rt_clone);
2955+
}
29502956
if (draw_ds_clone)
2957+
{
29512958
CopyRect(draw_ds, draw_ds_clone, drawarea, drawarea.left, drawarea.top);
2952-
if ((one_barrier || full_barrier) && draw_rt_clone)
2953-
PSSetShaderResource(2, draw_rt_clone);
2954-
if ((one_barrier || full_barrier) && draw_ds_clone)
29552959
PSSetShaderResource(4, draw_ds_clone);
2956-
if (config.tex && config.tex == draw_rt)
2957-
PSSetShaderResource(0, draw_rt_clone);
2960+
}
29582961
};
29592962

29602963
const GSVector4i rtsize(0, 0, (draw_rt ? draw_rt : draw_ds)->GetWidth(), (draw_rt ? draw_rt : draw_ds)->GetHeight());

0 commit comments

Comments
 (0)