wined3d: Recognize VMware SVGA3D.
Unfortunately I was only able to test this by overriding the GL_RENDERER and GL_VENDOR strings returned by the driver.
This commit is contained in:
parent
9ee120f108
commit
720f686874
|
@ -52,6 +52,7 @@ enum wined3d_display_driver
|
|||
DRIVER_NVIDIA_GEFORCE2MX,
|
||||
DRIVER_NVIDIA_GEFORCEFX,
|
||||
DRIVER_NVIDIA_GEFORCE6,
|
||||
DRIVER_VMWARE,
|
||||
DRIVER_UNKNOWN
|
||||
};
|
||||
|
||||
|
@ -1168,6 +1169,9 @@ static const struct driver_version_information driver_version_table[] =
|
|||
{DRIVER_NVIDIA_GEFORCEFX, DRIVER_MODEL_NT5X, "nv4_disp.dll", 14, 11, 7516},
|
||||
{DRIVER_NVIDIA_GEFORCE6, DRIVER_MODEL_NT5X, "nv4_disp.dll", 15, 12, 6658},
|
||||
{DRIVER_NVIDIA_GEFORCE6, DRIVER_MODEL_NT6X, "nvd3dum.dll", 15, 12, 6658},
|
||||
|
||||
/* VMware */
|
||||
{DRIVER_VMWARE, DRIVER_MODEL_NT5X, "vm3dum.dll", 14, 1, 1134},
|
||||
};
|
||||
|
||||
struct gpu_description
|
||||
|
@ -1296,6 +1300,10 @@ static const struct gpu_description gpu_description_table[] =
|
|||
{HW_VENDOR_AMD, CARD_AMD_RADEON_HD7700, "AMD Radeon HD 7700 Series", DRIVER_AMD_R600, 1024},
|
||||
{HW_VENDOR_AMD, CARD_AMD_RADEON_HD7800, "AMD Radeon HD 7800 Series", DRIVER_AMD_R600, 2048},
|
||||
{HW_VENDOR_AMD, CARD_AMD_RADEON_HD7900, "AMD Radeon HD 7900 Series", DRIVER_AMD_R600, 2048},
|
||||
|
||||
/* VMware */
|
||||
{HW_VENDOR_VMWARE, CARD_VMWARE_SVGA3D, "VMware SVGA 3D (Microsoft Corporation - WDDM)", DRIVER_VMWARE, 1024},
|
||||
|
||||
/* Intel cards */
|
||||
{HW_VENDOR_INTEL, CARD_INTEL_830M, "Intel(R) 82830M Graphics Controller", DRIVER_INTEL_GMA800, 32 },
|
||||
{HW_VENDOR_INTEL, CARD_INTEL_855GM, "Intel(R) 82852/82855 GM/GME Graphics Controller", DRIVER_INTEL_GMA800, 32 },
|
||||
|
@ -1616,6 +1624,9 @@ static enum wined3d_pci_vendor wined3d_guess_card_vendor(const char *gl_vendor_s
|
|||
|| strstr(gl_vendor_string, "Intel Inc."))
|
||||
return HW_VENDOR_INTEL;
|
||||
|
||||
if (strstr(gl_renderer, "SVGA3D"))
|
||||
return HW_VENDOR_VMWARE;
|
||||
|
||||
if (strstr(gl_vendor_string, "Mesa")
|
||||
|| strstr(gl_vendor_string, "Brian Paul")
|
||||
|| strstr(gl_vendor_string, "Tungsten Graphics, Inc")
|
||||
|
@ -2238,29 +2249,41 @@ static enum wined3d_pci_device select_card_nvidia_mesa(const struct wined3d_gl_i
|
|||
return PCI_DEVICE_NONE;
|
||||
}
|
||||
|
||||
static enum wined3d_pci_device select_card_vmware(const struct wined3d_gl_info *gl_info, const char *gl_renderer)
|
||||
{
|
||||
if (strstr(gl_renderer, "SVGA3D"))
|
||||
return CARD_VMWARE_SVGA3D;
|
||||
|
||||
return PCI_DEVICE_NONE;
|
||||
}
|
||||
|
||||
static const struct gl_vendor_selection
|
||||
{
|
||||
enum wined3d_gl_vendor gl_vendor;
|
||||
const char *description; /* Description of the card selector i.e. Apple OS/X Intel */
|
||||
enum wined3d_pci_device (*select_card)(const struct wined3d_gl_info *gl_info, const char *gl_renderer);
|
||||
}
|
||||
nvidia_gl_vendor_table[] =
|
||||
{
|
||||
{GL_VENDOR_NVIDIA, "Nvidia binary driver", select_card_nvidia_binary},
|
||||
{GL_VENDOR_APPLE, "Apple OSX NVidia binary driver", select_card_nvidia_binary},
|
||||
{GL_VENDOR_MESA, "Mesa Nouveau driver", select_card_nvidia_mesa},
|
||||
},
|
||||
amd_gl_vendor_table[] =
|
||||
{
|
||||
{GL_VENDOR_APPLE, "Apple OSX AMD/ATI binary driver", select_card_amd_binary},
|
||||
{GL_VENDOR_FGLRX, "AMD/ATI binary driver", select_card_amd_binary},
|
||||
{GL_VENDOR_MESA, "Mesa AMD/ATI driver", select_card_amd_mesa},
|
||||
{GL_VENDOR_APPLE, "Apple OSX AMD/ATI binary driver", select_card_amd_binary},
|
||||
{GL_VENDOR_FGLRX, "AMD/ATI binary driver", select_card_amd_binary},
|
||||
{GL_VENDOR_MESA, "Mesa AMD/ATI driver", select_card_amd_mesa},
|
||||
},
|
||||
nvidia_gl_vendor_table[] =
|
||||
{
|
||||
{GL_VENDOR_APPLE, "Apple OSX NVidia binary driver", select_card_nvidia_binary},
|
||||
{GL_VENDOR_MESA, "Mesa Nouveau driver", select_card_nvidia_mesa},
|
||||
{GL_VENDOR_NVIDIA, "Nvidia binary driver", select_card_nvidia_binary},
|
||||
},
|
||||
vmware_gl_vendor_table[] =
|
||||
{
|
||||
{GL_VENDOR_MESA, "VMware driver", select_card_vmware},
|
||||
},
|
||||
intel_gl_vendor_table[] =
|
||||
{
|
||||
{GL_VENDOR_APPLE, "Apple OSX Intel binary driver", select_card_intel},
|
||||
{GL_VENDOR_INTEL, "Mesa Intel driver", select_card_intel},
|
||||
{GL_VENDOR_MESA, "Mesa Intel driver", select_card_intel},
|
||||
{GL_VENDOR_APPLE, "Apple OSX Intel binary driver", select_card_intel},
|
||||
{GL_VENDOR_INTEL, "Mesa Intel driver", select_card_intel},
|
||||
{GL_VENDOR_MESA, "Mesa Intel driver", select_card_intel},
|
||||
};
|
||||
|
||||
static enum wined3d_pci_device select_card_fallback_nvidia(const struct wined3d_gl_info *gl_info)
|
||||
|
@ -2333,14 +2356,17 @@ static const struct
|
|||
}
|
||||
card_vendor_table[] =
|
||||
{
|
||||
{HW_VENDOR_NVIDIA, "Nvidia", nvidia_gl_vendor_table,
|
||||
sizeof(nvidia_gl_vendor_table) / sizeof(nvidia_gl_vendor_table[0]),
|
||||
select_card_fallback_nvidia},
|
||||
{HW_VENDOR_AMD, "AMD", amd_gl_vendor_table,
|
||||
sizeof(amd_gl_vendor_table) / sizeof(amd_gl_vendor_table[0]),
|
||||
{HW_VENDOR_AMD, "AMD", amd_gl_vendor_table,
|
||||
sizeof(amd_gl_vendor_table) / sizeof(*amd_gl_vendor_table),
|
||||
select_card_fallback_amd},
|
||||
{HW_VENDOR_INTEL, "Intel", intel_gl_vendor_table,
|
||||
sizeof(intel_gl_vendor_table) / sizeof(intel_gl_vendor_table[0]),
|
||||
{HW_VENDOR_NVIDIA, "Nvidia", nvidia_gl_vendor_table,
|
||||
sizeof(nvidia_gl_vendor_table) / sizeof(*nvidia_gl_vendor_table),
|
||||
select_card_fallback_nvidia},
|
||||
{HW_VENDOR_VMWARE, "VMware", vmware_gl_vendor_table,
|
||||
sizeof(vmware_gl_vendor_table) / sizeof(*vmware_gl_vendor_table),
|
||||
select_card_fallback_amd},
|
||||
{HW_VENDOR_INTEL, "Intel", intel_gl_vendor_table,
|
||||
sizeof(intel_gl_vendor_table) / sizeof(*intel_gl_vendor_table),
|
||||
select_card_fallback_intel},
|
||||
};
|
||||
|
||||
|
|
|
@ -1350,10 +1350,11 @@ struct wined3d_pixel_format
|
|||
|
||||
enum wined3d_pci_vendor
|
||||
{
|
||||
HW_VENDOR_SOFTWARE = 0x0000,
|
||||
HW_VENDOR_AMD = 0x1002,
|
||||
HW_VENDOR_NVIDIA = 0x10de,
|
||||
HW_VENDOR_INTEL = 0x8086,
|
||||
HW_VENDOR_SOFTWARE = 0x0000,
|
||||
HW_VENDOR_AMD = 0x1002,
|
||||
HW_VENDOR_NVIDIA = 0x10de,
|
||||
HW_VENDOR_VMWARE = 0x15ad,
|
||||
HW_VENDOR_INTEL = 0x8086,
|
||||
};
|
||||
|
||||
enum wined3d_pci_device
|
||||
|
@ -1475,6 +1476,8 @@ enum wined3d_pci_device
|
|||
CARD_NVIDIA_GEFORCE_GTX770M = 0x11e0,
|
||||
CARD_NVIDIA_GEFORCE_GTX770 = 0x1184,
|
||||
|
||||
CARD_VMWARE_SVGA3D = 0x0405,
|
||||
|
||||
CARD_INTEL_830M = 0x3577,
|
||||
CARD_INTEL_855GM = 0x3582,
|
||||
CARD_INTEL_845G = 0x2562,
|
||||
|
|
Loading…
Reference in New Issue