* 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:
Jake.Stine 2010-07-02 14:31:50 +00:00
parent 02a655dc76
commit 2fda352baf
2 changed files with 23 additions and 22 deletions

View File

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

View File

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