mirror of https://github.com/PCSX2/pcsx2.git
GSdx:
* Fix BIOS graphical errors by re-introducing part of the PATH1 hacks, which is still needed until further notice. * Likely fix for DX10+ cards crashing on Configure... (still can't test directly because MSI sucks, sorry folks) git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3370 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
02a655dc76
commit
2fda352baf
|
@ -89,12 +89,6 @@ static bool DXUTDelayLoadDXGI()
|
||||||
return ( m_DXGIFactory != NULL );
|
return ( m_DXGIFactory != NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
static void* GetDX11Proc( const char* methodname )
|
|
||||||
{
|
|
||||||
if( !DXUT_EnsureD3D11APIs() ) return NULL;
|
|
||||||
return GetProcAddress( s_hModD3D11, methodname );
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GSUtil::IsDirect3D11Available()
|
bool GSUtil::IsDirect3D11Available()
|
||||||
{
|
{
|
||||||
static bool m_CheckRun = false;
|
static bool m_CheckRun = false;
|
||||||
|
@ -105,9 +99,9 @@ bool GSUtil::IsDirect3D11Available()
|
||||||
if( !DXUTDelayLoadDXGI() )
|
if( !DXUTDelayLoadDXGI() )
|
||||||
{
|
{
|
||||||
m_D3D11Available = false;
|
m_D3D11Available = false;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
CComPtr<ID3D11Device> dev;
|
CComPtr<ID3D11Device> dev;
|
||||||
CComPtr<ID3D11DeviceContext> ctx;
|
CComPtr<ID3D11DeviceContext> ctx;
|
||||||
D3D_FEATURE_LEVEL level;
|
D3D_FEATURE_LEVEL level;
|
||||||
|
@ -117,9 +111,9 @@ bool GSUtil::IsDirect3D11Available()
|
||||||
|
|
||||||
m_D3D11Available = !FAILED(hr);
|
m_D3D11Available = !FAILED(hr);
|
||||||
m_HasD3D11Features = (level >= D3D_FEATURE_LEVEL_11_0);
|
m_HasD3D11Features = (level >= D3D_FEATURE_LEVEL_11_0);
|
||||||
|
}
|
||||||
|
|
||||||
UnloadDynamicLibraries();
|
if( !m_D3D11Available ) UnloadDynamicLibraries();
|
||||||
|
|
||||||
return m_D3D11Available;
|
return m_D3D11Available;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,6 +127,8 @@ void GSUtil::UnloadDynamicLibraries()
|
||||||
if( s_hModD3D11 ) FreeLibrary(s_hModD3D11);
|
if( s_hModD3D11 ) FreeLibrary(s_hModD3D11);
|
||||||
if( s_hModDXGI ) FreeLibrary(s_hModDXGI);
|
if( s_hModDXGI ) FreeLibrary(s_hModDXGI);
|
||||||
|
|
||||||
|
s_DynamicD3D11CreateDevice = NULL;
|
||||||
|
s_DynamicCreateDXGIFactory = NULL;
|
||||||
s_hModD3D11 = NULL;
|
s_hModD3D11 = NULL;
|
||||||
s_hModDXGI = NULL;
|
s_hModDXGI = NULL;
|
||||||
}
|
}
|
||||||
|
@ -150,6 +146,7 @@ GSDevice11::GSDevice11()
|
||||||
|
|
||||||
GSDevice11::~GSDevice11()
|
GSDevice11::~GSDevice11()
|
||||||
{
|
{
|
||||||
|
GSUtil::UnloadDynamicLibraries();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GSDevice11::Create(GSWnd* wnd)
|
bool GSDevice11::Create(GSWnd* wnd)
|
||||||
|
|
|
@ -1563,22 +1563,26 @@ template<int index> void GSState::Transfer(uint8* mem, uint32 size)
|
||||||
m_dump.Transfer(index, start, mem - start);
|
m_dump.Transfer(index, start, mem - start);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if(index == 0)
|
if(index == 0)
|
||||||
{
|
{
|
||||||
if(size == 0 && path.nloop > 0)
|
if(size == 0 && path.nloop > 0)
|
||||||
{
|
{
|
||||||
if(m_mt)
|
if(m_mt)
|
||||||
{
|
{
|
||||||
// TODO
|
// Hackfix for BIOS, which sends an incomplete packek when it does an XGKICK without
|
||||||
|
// having an EOP specified anywhere in VU1 memory. Needed until PCSX2 is fixed t
|
||||||
|
// handle it more properly (ie, without looping infinitely).
|
||||||
|
|
||||||
path.nloop = 0;
|
path.nloop = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// Unused in 0.9.7 and above, but might as well keep this for now; allows GSdx
|
||||||
|
// to work with legacy editions of PCSX2.
|
||||||
Transfer<0>(mem - 0x4000, 0x4000 / 16);
|
Transfer<0>(mem - 0x4000, 0x4000 / 16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T> static void WriteState(uint8*& dst, T* src, size_t len = sizeof(T))
|
template<class T> static void WriteState(uint8*& dst, T* src, size_t len = sizeof(T))
|
||||||
|
|
Loading…
Reference in New Issue