Commit 27335726 authored by Roderick Colenbrander's avatar Roderick Colenbrander Committed by Alexandre Julliard

wined3d: Add registry key for overriding the pci vendor id.

parent 52d59718
...@@ -1675,6 +1675,12 @@ static HRESULT WINAPI IWineD3DImpl_GetAdapterIdentifier(IWineD3D *iface, UINT Ad ...@@ -1675,6 +1675,12 @@ static HRESULT WINAPI IWineD3DImpl_GetAdapterIdentifier(IWineD3D *iface, UINT Ad
*(pIdentifier->DeviceId) = wined3d_settings.pci_device_id; *(pIdentifier->DeviceId) = wined3d_settings.pci_device_id;
} }
if(wined3d_settings.pci_vendor_id != PCI_VENDOR_NONE)
{
TRACE_(d3d_caps)("Overriding pci vendor id with: %x\n", wined3d_settings.pci_vendor_id);
*(pIdentifier->VendorId) = wined3d_settings.pci_vendor_id;
}
if (Flags & WINED3DENUM_NO_WHQL_LEVEL) { if (Flags & WINED3DENUM_NO_WHQL_LEVEL) {
*(pIdentifier->WHQLLevel) = 0; *(pIdentifier->WHQLLevel) = 0;
} else { } else {
......
...@@ -43,6 +43,7 @@ wined3d_settings_t wined3d_settings = ...@@ -43,6 +43,7 @@ wined3d_settings_t wined3d_settings =
TRUE, /* Use of GLSL enabled by default */ TRUE, /* Use of GLSL enabled by default */
ORM_BACKBUFFER, /* Use the backbuffer to do offscreen rendering */ ORM_BACKBUFFER, /* Use the backbuffer to do offscreen rendering */
RTL_AUTO, /* Automatically determine best locking method */ RTL_AUTO, /* Automatically determine best locking method */
PCI_VENDOR_NONE,/* PCI Vendor ID */
PCI_DEVICE_NONE,/* PCI Device ID */ PCI_DEVICE_NONE,/* PCI Device ID */
0, /* The default of memory is set in FillGLCaps */ 0, /* The default of memory is set in FillGLCaps */
NULL, /* No wine logo by default */ NULL, /* No wine logo by default */
...@@ -263,6 +264,21 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv) ...@@ -263,6 +264,21 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
wined3d_settings.pci_device_id = pci_device_id; wined3d_settings.pci_device_id = pci_device_id;
} }
} }
if ( !get_config_key_dword( hkey, appkey, "VideoPciVendorID", &tmpvalue) )
{
int pci_vendor_id = tmpvalue;
/* A pci device id is 16-bit */
if(pci_vendor_id > 0xffff)
{
ERR("Invalid value for VideoPciVendorID. The value should be smaller or equal to 65535 or 0xffff\n");
}
else
{
TRACE("Using PCI Vendor ID %04x\n", pci_vendor_id);
wined3d_settings.pci_vendor_id = pci_vendor_id;
}
}
if ( !get_config_key( hkey, appkey, "VideoMemorySize", buffer, size) ) if ( !get_config_key( hkey, appkey, "VideoMemorySize", buffer, size) )
{ {
int TmpVideoMemorySize = atoi(buffer); int TmpVideoMemorySize = atoi(buffer);
......
...@@ -185,6 +185,7 @@ static inline float float_16_to_32(const unsigned short *in) { ...@@ -185,6 +185,7 @@ static inline float float_16_to_32(const unsigned short *in) {
#define RTL_TEXDRAW 3 #define RTL_TEXDRAW 3
#define RTL_TEXTEX 4 #define RTL_TEXTEX 4
#define PCI_VENDOR_NONE 0xffff /* e.g. 0x8086 for Intel and 0x10de for Nvidia */
#define PCI_DEVICE_NONE 0xffff /* e.g. 0x14f for a Geforce6200 */ #define PCI_DEVICE_NONE 0xffff /* e.g. 0x14f for a Geforce6200 */
/* NOTE: When adding fields to this structure, make sure to update the default /* NOTE: When adding fields to this structure, make sure to update the default
...@@ -200,6 +201,7 @@ typedef struct wined3d_settings_s { ...@@ -200,6 +201,7 @@ typedef struct wined3d_settings_s {
BOOL glslRequested; BOOL glslRequested;
int offscreen_rendering_mode; int offscreen_rendering_mode;
int rendertargetlock_mode; int rendertargetlock_mode;
unsigned short pci_vendor_id;
unsigned short pci_device_id; unsigned short pci_device_id;
/* Memory tracking and object counting */ /* Memory tracking and object counting */
unsigned int emulated_textureram; unsigned int emulated_textureram;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment