Signed-off-by: Henri Verbeet hverbeet@codeweavers.com --- dlls/wined3d/adapter_gl.c | 14 ++++++++++++++ dlls/wined3d/directx.c | 6 ++++++ dlls/wined3d/wined3d_private.h | 4 ++++ 3 files changed, 24 insertions(+)
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index 2a3514a1bef..af0db3eec21 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -1192,6 +1192,7 @@ static enum wined3d_gl_vendor wined3d_guess_gl_vendor(const struct wined3d_gl_in || strstr(gl_vendor_string, "DRI R300 Project") || strstr(gl_vendor_string, "Tungsten Graphics, Inc") || strstr(gl_vendor_string, "VMware, Inc.") + || strstr(gl_vendor_string, "Red Hat") || strstr(gl_vendor_string, "Intel") || strstr(gl_renderer, "Mesa") || strstr(gl_renderer, "Gallium") @@ -1232,6 +1233,10 @@ 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_vendor_string, "Red Hat") + || strstr(gl_renderer, "virgl")) + return HW_VENDOR_REDHAT; + if (strstr(gl_renderer, "SVGA3D")) return HW_VENDOR_VMWARE;
@@ -1790,6 +1795,10 @@ cards_nvidia_mesa[] = {"nv04", CARD_NVIDIA_RIVA_TNT}, {"nv03", CARD_NVIDIA_RIVA_128}, }, +cards_redhat[] = +{ + {"virgl", CARD_REDHAT_VIRGL}, +}, cards_vmware[] = { {"SVGA3D", CARD_VMWARE_SVGA3D}, @@ -1814,6 +1823,10 @@ nvidia_gl_vendor_table[] = {GL_VENDOR_MESA, "Mesa Nouveau driver", cards_nvidia_mesa, ARRAY_SIZE(cards_nvidia_mesa)}, {GL_VENDOR_NVIDIA, "NVIDIA binary driver", cards_nvidia_binary, ARRAY_SIZE(cards_nvidia_binary)}, }, +redhat_gl_vendor_table[] = +{ + {GL_VENDOR_MESA, "Red Hat driver", cards_redhat, ARRAY_SIZE(cards_redhat)}, +}, vmware_gl_vendor_table[] = { {GL_VENDOR_MESA, "VMware driver", cards_vmware, ARRAY_SIZE(cards_vmware)}, @@ -1860,6 +1873,7 @@ card_vendor_table[] = { {HW_VENDOR_AMD, "AMD", amd_gl_vendor_table, ARRAY_SIZE(amd_gl_vendor_table)}, {HW_VENDOR_NVIDIA, "NVIDIA", nvidia_gl_vendor_table, ARRAY_SIZE(nvidia_gl_vendor_table)}, + {HW_VENDOR_REDHAT, "Red Hat",redhat_gl_vendor_table, ARRAY_SIZE(redhat_gl_vendor_table)}, {HW_VENDOR_VMWARE, "VMware", vmware_gl_vendor_table, ARRAY_SIZE(vmware_gl_vendor_table)}, {HW_VENDOR_INTEL, "Intel", intel_gl_vendor_table, ARRAY_SIZE(intel_gl_vendor_table)}, }; diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 544c76ed5c1..75622be80c4 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -187,6 +187,9 @@ static const struct driver_version_information driver_version_table[] = {DRIVER_NVIDIA_GEFORCE6, DRIVER_MODEL_NT6X, "nvd3dum.dll", 18, 13, 783}, {DRIVER_NVIDIA_GEFORCE8, DRIVER_MODEL_NT6X, "nvd3dum.dll", 18, 13, 4052},
+ /* Red Hat */ + {DRIVER_REDHAT_VIRGL, DRIVER_MODEL_GENERIC, "virgl.dll", 0, 0, 0}, + /* VMware */ {DRIVER_VMWARE, DRIVER_MODEL_NT5X, "vm3dum.dll", 14, 1, 1134},
@@ -376,6 +379,9 @@ static const struct wined3d_gpu_description gpu_description_table[] = {HW_VENDOR_AMD, CARD_AMD_RADEON_RX_480, "Radeon (TM) RX 480 Graphics", DRIVER_AMD_RX, 4096}, {HW_VENDOR_AMD, CARD_AMD_RADEON_RX_VEGA, "Radeon RX Vega", DRIVER_AMD_RX, 8192},
+ /* Red Hat */ + {HW_VENDOR_REDHAT, CARD_REDHAT_VIRGL, "Red Hat VirtIO GPU", DRIVER_REDHAT_VIRGL, 1024}, + /* VMware */ {HW_VENDOR_VMWARE, CARD_VMWARE_SVGA3D, "VMware SVGA 3D (Microsoft Corporation - WDDM)", DRIVER_VMWARE, 1024},
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 6e39db4fa86..0df3f2ab2a5 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2252,6 +2252,7 @@ enum wined3d_pci_vendor HW_VENDOR_AMD = 0x1002, HW_VENDOR_NVIDIA = 0x10de, HW_VENDOR_VMWARE = 0x15ad, + HW_VENDOR_REDHAT = 0x1af4, HW_VENDOR_INTEL = 0x8086, };
@@ -2435,6 +2436,8 @@ enum wined3d_pci_device CARD_NVIDIA_TITANX_PASCAL = 0x1b00, CARD_NVIDIA_TITANV = 0x1d81,
+ CARD_REDHAT_VIRGL = 0x1010, + CARD_VMWARE_SVGA3D = 0x0405,
CARD_INTEL_830M = 0x3577, @@ -2623,6 +2626,7 @@ enum wined3d_display_driver DRIVER_NVIDIA_GEFORCEFX, DRIVER_NVIDIA_GEFORCE6, DRIVER_NVIDIA_GEFORCE8, + DRIVER_REDHAT_VIRGL, DRIVER_VMWARE, DRIVER_WINE, DRIVER_UNKNOWN,