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:
Shawn Hoffman 2011-10-08 15:23:00 -07:00
parent 59072adc32
commit ad508ab8fb
2 changed files with 15 additions and 5 deletions

View File

@ -28,7 +28,8 @@ D3DXCOMPILESHADERTYPE PD3DXCompileShader = NULL;
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
HINSTANCE hD3DXDll = NULL;
int d3dx_dll_ref = 0;
@ -55,6 +56,7 @@ static bool auto_depth_stencil = false;
#define VENDOR_NVIDIA 4318
#define VENDOR_ATI 4098
#define VENDOR_INTEL 32902
bool bFrameInProgress = false;
@ -112,6 +114,10 @@ bool IsATIDevice()
{
return GetCurAdapter().ident.VendorId == VENDOR_ATI;
}
bool IsIntelDevice()
{
return GetCurAdapter().ident.VendorId == VENDOR_INTEL;
}
HRESULT Init()
@ -139,6 +145,11 @@ HRESULT Init()
int adapter = g_Config.iAdapter;
D3D->GetDeviceCaps((adapter >= 0 && adapter < std::min(MAX_ADAPTERS, numAdapters)) ? adapter : D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &caps);
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;
}
@ -522,16 +533,14 @@ D3DFORMAT GetSupportedDepthSurfaceFormat(D3DFORMAT target_format)
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);
return versions[std::min(4, version)];
return vsVersions[std::min(4, version)];
}
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);
return versions[std::min(4, version)];
return psVersions[std::min(4, version)];
}
LPDIRECT3DSURFACE9 GetBackBufferSurface()

View File

@ -47,6 +47,7 @@ namespace D3D
#define FOURCC_NULL ((D3DFORMAT)(MAKEFOURCC('N','U','L','L')))
bool IsATIDevice();
bool IsIntelDevice();
HRESULT Init();
HRESULT Create(int adapter, HWND wnd, int resolution, int aa_mode, bool auto_depth);
void Close();