[PATCH] wined3d: Recognise virgl.
Henri Verbeet
hverbeet at codeweavers.com
Fri Jan 4 09:00:02 CST 2019
Signed-off-by: Henri Verbeet <hverbeet at 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,
--
2.11.0
More information about the wine-devel
mailing list