Let's go ahead and throw this in here, should bring support of Intel IGP back in with DX9.... I can't actually test this for an obvious reason, but I figure while Windows is broken anyway, go ahead with it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7707 8ced0084-cf51-0410-be5f-012b33b47a6e That should fix the seg faults on IGP chipsets. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7715 8ced0084-cf51-0410-be5f-012b33b47a6e Compile fix. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7716 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
59072adc32
commit
ad508ab8fb
|
@ -28,7 +28,8 @@ D3DXCOMPILESHADERTYPE PD3DXCompileShader = NULL;
|
||||||
|
|
||||||
namespace DX9
|
namespace DX9
|
||||||
{
|
{
|
||||||
|
static char vsVersions[5][7] = {"ERROR", "vs_1_4", "vs_2_a", "vs_3_0", "vs_4_0"};
|
||||||
|
static char psVersions[5][7] = {"ERROR", "ps_1_4", "ps_2_a", "ps_3_0", "ps_4_0"};
|
||||||
// D3DX
|
// D3DX
|
||||||
HINSTANCE hD3DXDll = NULL;
|
HINSTANCE hD3DXDll = NULL;
|
||||||
int d3dx_dll_ref = 0;
|
int d3dx_dll_ref = 0;
|
||||||
|
@ -55,6 +56,7 @@ static bool auto_depth_stencil = false;
|
||||||
|
|
||||||
#define VENDOR_NVIDIA 4318
|
#define VENDOR_NVIDIA 4318
|
||||||
#define VENDOR_ATI 4098
|
#define VENDOR_ATI 4098
|
||||||
|
#define VENDOR_INTEL 32902
|
||||||
|
|
||||||
bool bFrameInProgress = false;
|
bool bFrameInProgress = false;
|
||||||
|
|
||||||
|
@ -112,6 +114,10 @@ bool IsATIDevice()
|
||||||
{
|
{
|
||||||
return GetCurAdapter().ident.VendorId == VENDOR_ATI;
|
return GetCurAdapter().ident.VendorId == VENDOR_ATI;
|
||||||
}
|
}
|
||||||
|
bool IsIntelDevice()
|
||||||
|
{
|
||||||
|
return GetCurAdapter().ident.VendorId == VENDOR_INTEL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
HRESULT Init()
|
HRESULT Init()
|
||||||
|
@ -139,6 +145,11 @@ HRESULT Init()
|
||||||
int adapter = g_Config.iAdapter;
|
int adapter = g_Config.iAdapter;
|
||||||
D3D->GetDeviceCaps((adapter >= 0 && adapter < std::min(MAX_ADAPTERS, numAdapters)) ? adapter : D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &caps);
|
D3D->GetDeviceCaps((adapter >= 0 && adapter < std::min(MAX_ADAPTERS, numAdapters)) ? adapter : D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &caps);
|
||||||
Enumerate();
|
Enumerate();
|
||||||
|
if(IsIntelDevice()){
|
||||||
|
// Murder the a because Intel doesn't support 2.0a because the 'a' part was a ATI and Nvidia war going on
|
||||||
|
psVersions[2][5] = '0';
|
||||||
|
vsVersions[2][5] = '0';
|
||||||
|
}
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
@ -522,16 +533,14 @@ D3DFORMAT GetSupportedDepthSurfaceFormat(D3DFORMAT target_format)
|
||||||
|
|
||||||
const char *VertexShaderVersionString()
|
const char *VertexShaderVersionString()
|
||||||
{
|
{
|
||||||
static const char *versions[5] = {"ERROR", "vs_1_4", "vs_2_a", "vs_3_0", "vs_4_0"};
|
|
||||||
int version = ((D3D::caps.VertexShaderVersion >> 8) & 0xFF);
|
int version = ((D3D::caps.VertexShaderVersion >> 8) & 0xFF);
|
||||||
return versions[std::min(4, version)];
|
return vsVersions[std::min(4, version)];
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *PixelShaderVersionString()
|
const char *PixelShaderVersionString()
|
||||||
{
|
{
|
||||||
static const char *versions[5] = {"ERROR", "ps_1_4", "ps_2_a", "ps_3_0", "ps_4_0"};
|
|
||||||
int version = ((D3D::caps.PixelShaderVersion >> 8) & 0xFF);
|
int version = ((D3D::caps.PixelShaderVersion >> 8) & 0xFF);
|
||||||
return versions[std::min(4, version)];
|
return psVersions[std::min(4, version)];
|
||||||
}
|
}
|
||||||
|
|
||||||
LPDIRECT3DSURFACE9 GetBackBufferSurface()
|
LPDIRECT3DSURFACE9 GetBackBufferSurface()
|
||||||
|
|
|
@ -47,6 +47,7 @@ namespace D3D
|
||||||
#define FOURCC_NULL ((D3DFORMAT)(MAKEFOURCC('N','U','L','L')))
|
#define FOURCC_NULL ((D3DFORMAT)(MAKEFOURCC('N','U','L','L')))
|
||||||
|
|
||||||
bool IsATIDevice();
|
bool IsATIDevice();
|
||||||
|
bool IsIntelDevice();
|
||||||
HRESULT Init();
|
HRESULT Init();
|
||||||
HRESULT Create(int adapter, HWND wnd, int resolution, int aa_mode, bool auto_depth);
|
HRESULT Create(int adapter, HWND wnd, int resolution, int aa_mode, bool auto_depth);
|
||||||
void Close();
|
void Close();
|
||||||
|
|
Loading…
Reference in New Issue