gsdx-d3d11: Cache rt depth stencil on m_state

Cache the depth stencil in addition to color rt.
This will allow us to check for depth stencil equality on slot 4.
This commit is contained in:
Kojin 2019-01-20 01:04:07 -05:00 committed by lightningterror
parent 946e6046b3
commit 57824261c6
2 changed files with 4 additions and 1 deletions

View File

@ -1309,8 +1309,9 @@ void GSDevice11::OMSetRenderTargets(GSTexture* rt, GSTexture* ds, const GSVector
if(m_state.rt_view != rtv || m_state.dsv != dsv) if(m_state.rt_view != rtv || m_state.dsv != dsv)
{ {
m_state.rt_view = rtv; m_state.rt_view = rtv;
m_state.rt_texture = (GSTexture11*)rt; m_state.rt_texture = static_cast<GSTexture11*>(rt);
m_state.dsv = dsv; m_state.dsv = dsv;
m_state.rt_ds = static_cast<GSTexture11*>(ds);
m_ctx->OMSetRenderTargets(1, &rtv, dsv); m_ctx->OMSetRenderTargets(1, &rtv, dsv);
} }
@ -1349,6 +1350,7 @@ void GSDevice11::OMSetRenderTargets(const GSVector2i& rtsize, int count, ID3D11U
m_state.rt_view = NULL; m_state.rt_view = NULL;
m_state.rt_texture = NULL; m_state.rt_texture = NULL;
m_state.rt_ds = NULL;
m_state.dsv = NULL; m_state.dsv = NULL;
if(m_state.viewport != rtsize) if(m_state.viewport != rtsize)

View File

@ -81,6 +81,7 @@ class GSDevice11 : public GSDeviceDX
float bf; float bf;
ID3D11RenderTargetView* rt_view; ID3D11RenderTargetView* rt_view;
GSTexture11* rt_texture; GSTexture11* rt_texture;
GSTexture11* rt_ds;
ID3D11DepthStencilView* dsv; ID3D11DepthStencilView* dsv;
} m_state; } m_state;