GSdx D3D11: Workaround for Gust games, must enable sprite hack (which these games need anyway) and it will fix the squares caused by the Nvidia fix. Not a perfect solution but we can't have it both ways :(

This commit is contained in:
refractionpcsx2 2015-11-10 22:58:43 +00:00
parent ac0e40a2b7
commit 52802371e4
2 changed files with 4 additions and 2 deletions

View File

@ -110,6 +110,7 @@ bool GSDevice11::Create(GSWnd* wnd)
scd.Windowed = TRUE; scd.Windowed = TRUE;
spritehack = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_SpriteHack", 0) : 0;
// NOTE : D3D11_CREATE_DEVICE_SINGLETHREADED // NOTE : D3D11_CREATE_DEVICE_SINGLETHREADED
// This flag is safe as long as the DXGI's internal message pump is disabled or is on the // This flag is safe as long as the DXGI's internal message pump is disabled or is on the
// same thread as the GS window (which the emulator makes sure of, if it utilizes a // same thread as the GS window (which the emulator makes sure of, if it utilizes a
@ -1267,8 +1268,8 @@ void GSDevice11::OMSetRenderTargets(GSTexture* rt, GSTexture* ds, const GSVector
memset(&vp, 0, sizeof(vp)); memset(&vp, 0, sizeof(vp));
vp.TopLeftX = -0.01f; vp.TopLeftX = (spritehack > 0) ? 0.0f : -0.01f;
vp.TopLeftY = -0.01f; vp.TopLeftY = (spritehack > 0) ? 0.0f : -0.01f;
vp.Width = (float)size.x; vp.Width = (float)size.x;
vp.Height = (float)size.y; vp.Height = (float)size.y;
vp.MinDepth = 0.0f; vp.MinDepth = 0.0f;

View File

@ -54,6 +54,7 @@ class GSDevice11 : public GSDeviceDX
CComPtr<ID3D11Buffer> m_ib_old; CComPtr<ID3D11Buffer> m_ib_old;
bool m_srv_changed, m_ss_changed; bool m_srv_changed, m_ss_changed;
int spritehack;
struct struct
{ {