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
|
||||
{
|
||||
|
||||
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()
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue