@@ -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