This should fix [bug 54339](https://bugs.winehq.org/show_bug.cgi?id=54339) for desktop models.
PCI IDs were obtained from https://devicehunt.com/view/type/pci/vendor/10DE/ and additionally verified against https://techpowerup.com/vgabios/ except for the 40xx SUPER line models that were obtained only from https://techpowerup.com/vgabios/ .
I tested the patch on Debian trixie against wine-9.0 and 10.0~rc2 with my 3090: my card was correctly recognized and there were some performance gains when playing SC2. I've also created a [ppa with patched packages for Ubuntu noble and oracular](https://launchpad.net/~morgwai/+archive/ubuntu/wine) and posted links on reddit to [r/linux_gaming](https://www.reddit.com/r/linux_gaming/comments/1i37g2q/pls_help_testing_wine...) and [r/ubuntu](https://www.reddit.com/r/Ubuntu/comments/1i3ifkx/pls_help_testing_wine_patch...) asking for help with testing with other models, but the posts were removed and [my account was banned](https://www.reddit.com/user/morgwai666/) for "posting spam" (I tried to appeal, but never got a reply). I am however completely almost sure that other 30xx models will work correctly as well since this is the same GPU architecture. 40xx models should work correctly as long as `DRIVER_NVIDIA_KEPLER` is able to support them: I believe this to be the case, but was not able to test it.
As both 30xx and 40xx series are really messed up in terms of different variants within the same "base models" (things "Ti", "LHR", VRAM size *may* correspond to different PCI IDs), constant names and string descriptions became really long which in turn messed up the code formatting/alignment. Please let me know if the current formatting is acceptable or if I should change it somehow or maybe even add one more commit that increases spacing between fields in all other rows to make it all aligned.
I skipped mobile models for now: honestly putting this together was extremely tedious and frustrating (especially as it was unfolding before my eyes how messed up the mapping is due to different variants), so I didn't want to dedicate more time to this until I received some positive feedback.
-- v4: wined3d: Add Nvidia RTX40xx series desktop models data. wined3d: Add Nvidia RTX30xx series desktop models data.
From: Piotr Morgwai Kotarbinski foss@morgwai.pl
PCI IDs were obtained from devicehunt.com/view/type/pci/vendor/10DE/ and additionally verified against techpowerup.com/vgabios/ .
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54339 --- dlls/wined3d/adapter_gl.c | 18 ++++++++++++++++-- dlls/wined3d/directx.c | 16 +++++++++++++++- dlls/wined3d/wined3d_private.h | 18 ++++++++++++++++-- 3 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index 1bbafc7957e..99d42018773 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -1299,8 +1299,22 @@ cards_nvidia_binary[] = /* Direct 3D 11 */ {"Tesla T4", CARD_NVIDIA_TESLA_T4}, {"Ampere A10", CARD_NVIDIA_AMPERE_A10}, - {"RTX 3080", CARD_NVIDIA_GEFORCE_RTX3080}, /* GeForce 3000 - highend */ - {"RTX 3070", CARD_NVIDIA_GEFORCE_RTX3070}, /* GeForce 3000 - highend */ + {"RTX 3090 Ti", CARD_NVIDIA_GEFORCE_RTX3090TI}, + {"RTX 3090", CARD_NVIDIA_GEFORCE_RTX3090}, + {"RTX 3080 Ti", CARD_NVIDIA_GEFORCE_RTX3080TI}, + {"RTX 3080 12GB", CARD_NVIDIA_GEFORCE_RTX3080_12GB}, + {"RTX 3080 10GB LHR", CARD_NVIDIA_GEFORCE_RTX3080_10GB_LHR}, + {"RTX 3080 10GB", CARD_NVIDIA_GEFORCE_RTX3080_10GB}, + {"RTX 3070 Ti", CARD_NVIDIA_GEFORCE_RTX3070TI}, + {"RTX 3070 mobile", CARD_NVIDIA_GEFORCE_RTX3070_MOBILE}, + {"RTX 3070 LHR", CARD_NVIDIA_GEFORCE_RTX3070_LHR}, + {"RTX 3070", CARD_NVIDIA_GEFORCE_RTX3070}, + {"RTX 3060 Ti GA104 LHR", CARD_NVIDIA_GEFORCE_RTX3060TI_GA104_LHR}, + {"RTX 3060 Ti GA104", CARD_NVIDIA_GEFORCE_RTX3060TI_GA104}, + {"RTX 3060 Ti GA103", CARD_NVIDIA_GEFORCE_RTX3060TI_GA103}, + {"RTX 3060 LHR", CARD_NVIDIA_GEFORCE_RTX3060_LHR}, + {"RTX 3060", CARD_NVIDIA_GEFORCE_RTX3060}, + {"RTX 3050", CARD_NVIDIA_GEFORCE_RTX3050}, {"RTX 2080 Ti", CARD_NVIDIA_GEFORCE_RTX2080TI}, /* GeForce 2000 - highend */ {"RTX 2080", CARD_NVIDIA_GEFORCE_RTX2080}, /* GeForce 2000 - highend */ {"RTX 2070", CARD_NVIDIA_GEFORCE_RTX2070}, /* GeForce 2000 - highend */ diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 03f969006a8..28d55a5c5d7 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -480,8 +480,22 @@ static const struct wined3d_gpu_description gpu_description_table[] = {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX2070, "NVIDIA GeForce RTX 2070", DRIVER_NVIDIA_KEPLER, 8192}, {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX2080, "NVIDIA GeForce RTX 2080", DRIVER_NVIDIA_KEPLER, 8192}, {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX2080TI, "NVIDIA GeForce RTX 2080 Ti", DRIVER_NVIDIA_KEPLER, 11264}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3050, "NVIDIA GeForce RTX 3050", DRIVER_NVIDIA_KEPLER, 6144}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3060, "NVIDIA GeForce RTX 3060", DRIVER_NVIDIA_KEPLER, 8192}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3060_LHR, "NVIDIA GeForce RTX 3060 (Low Hash Rate)", DRIVER_NVIDIA_KEPLER, 8192}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3060TI_GA103, "NVIDIA GeForce RTX 3060 Ti (GA103)", DRIVER_NVIDIA_KEPLER, 8192}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3060TI_GA104, "NVIDIA GeForce RTX 3060 Ti (GA104)", DRIVER_NVIDIA_KEPLER, 8192}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3060TI_GA104_LHR, "NVIDIA GeForce RTX 3060 Ti (GA104, Low Hash Rate)", DRIVER_NVIDIA_KEPLER, 8192}, {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3070, "NVIDIA GeForce RTX 3070", DRIVER_NVIDIA_KEPLER, 8192}, - {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3080, "NVIDIA GeForce RTX 3080", DRIVER_NVIDIA_KEPLER, 10240}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3070_LHR, "NVIDIA GeForce RTX 3070 (Low Hash Rate)", DRIVER_NVIDIA_KEPLER, 8192}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3070_MOBILE, "NVIDIA GeForce RTX 3070 (mobile)", DRIVER_NVIDIA_KEPLER, 8192}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3070TI, "NVIDIA GeForce RTX 3070 Ti", DRIVER_NVIDIA_KEPLER, 8192}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3080_10GB, "NVIDIA GeForce RTX 3080 10GB", DRIVER_NVIDIA_KEPLER, 10240}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3080_10GB_LHR, "NVIDIA GeForce RTX 3080 10GB (Low Hash Rate)", DRIVER_NVIDIA_KEPLER, 10240}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3080_12GB, "NVIDIA GeForce RTX 3080 12GB", DRIVER_NVIDIA_KEPLER, 10240}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3080TI, "NVIDIA GeForce RTX 3080 Ti", DRIVER_NVIDIA_KEPLER, 12288}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3090, "NVIDIA GeForce RTX 3090", DRIVER_NVIDIA_KEPLER, 24576}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3090TI, "NVIDIA GeForce RTX 3090 Ti", DRIVER_NVIDIA_KEPLER, 24576}, {HW_VENDOR_NVIDIA, CARD_NVIDIA_TESLA_T4, "NVIDIA Tesla T4", DRIVER_NVIDIA_KEPLER, 16384}, {HW_VENDOR_NVIDIA, CARD_NVIDIA_AMPERE_A10, "NVIDIA Ampere A10", DRIVER_NVIDIA_KEPLER, 24576},
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 18cbbae0fbe..66d444cb76c 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2317,8 +2317,22 @@ enum wined3d_pci_device CARD_NVIDIA_GEFORCE_RTX2070 = 0x1f07, CARD_NVIDIA_GEFORCE_RTX2080 = 0x1e87, CARD_NVIDIA_GEFORCE_RTX2080TI = 0x1e07, - CARD_NVIDIA_GEFORCE_RTX3070 = 0x249d, - CARD_NVIDIA_GEFORCE_RTX3080 = 0x2206, + CARD_NVIDIA_GEFORCE_RTX3050 = 0x2507, + CARD_NVIDIA_GEFORCE_RTX3060 = 0x2544, + CARD_NVIDIA_GEFORCE_RTX3060_LHR = 0x2504, + CARD_NVIDIA_GEFORCE_RTX3060TI_GA103 = 0x2414, + CARD_NVIDIA_GEFORCE_RTX3060TI_GA104 = 0x2486, + CARD_NVIDIA_GEFORCE_RTX3060TI_GA104_LHR = 0x2489, + CARD_NVIDIA_GEFORCE_RTX3070 = 0x2484, + CARD_NVIDIA_GEFORCE_RTX3070_LHR = 0x2488, + CARD_NVIDIA_GEFORCE_RTX3070_MOBILE = 0x249d, + CARD_NVIDIA_GEFORCE_RTX3070TI = 0x2482, + CARD_NVIDIA_GEFORCE_RTX3080_10GB = 0x2206, + CARD_NVIDIA_GEFORCE_RTX3080_10GB_LHR = 0x2216, + CARD_NVIDIA_GEFORCE_RTX3080_12GB = 0x220a, + CARD_NVIDIA_GEFORCE_RTX3080TI = 0x2208, + CARD_NVIDIA_GEFORCE_RTX3090 = 0x2204, + CARD_NVIDIA_GEFORCE_RTX3090TI = 0x2203, CARD_NVIDIA_TESLA_T4 = 0x1eb8, CARD_NVIDIA_AMPERE_A10 = 0x2236,
From: Piotr Morgwai Kotarbinski foss@morgwai.pl
PCI IDs were obtained from devicehunt.com/view/type/pci/vendor/10DE/ and additionally verified against techpowerup.com/vgabios/ except for the SUPER line models that were obtained only from techpowerup.com/vgabios/ .
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54339 --- dlls/wined3d/adapter_gl.c | 10 ++++++++++ dlls/wined3d/directx.c | 10 ++++++++++ dlls/wined3d/wined3d_private.h | 10 ++++++++++ 3 files changed, 30 insertions(+)
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index 99d42018773..6c31acac7b8 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -1297,6 +1297,16 @@ static const struct wined3d_renderer_table cards_nvidia_binary[] = { /* Direct 3D 11 */ + {"RTX 4090", CARD_NVIDIA_GEFORCE_RTX4090}, + {"RTX 4080 SUPER", CARD_NVIDIA_GEFORCE_RTX4080SUPER}, + {"RTX 4080", CARD_NVIDIA_GEFORCE_RTX4080}, + {"RTX 4070 Ti SUPER", CARD_NVIDIA_GEFORCE_RTX4070TISUPER}, + {"RTX 4070 Ti", CARD_NVIDIA_GEFORCE_RTX4070TI}, + {"RTX 4070 SUPER", CARD_NVIDIA_GEFORCE_RTX4070SUPER}, + {"RTX 4070", CARD_NVIDIA_GEFORCE_RTX4070}, + {"RTX 4060 Ti 16GB", CARD_NVIDIA_GEFORCE_RTX4060TI16G}, + {"RTX 4060 Ti 8GB", CARD_NVIDIA_GEFORCE_RTX4060TI8G}, + {"RTX 4060", CARD_NVIDIA_GEFORCE_RTX4060}, {"Tesla T4", CARD_NVIDIA_TESLA_T4}, {"Ampere A10", CARD_NVIDIA_AMPERE_A10}, {"RTX 3090 Ti", CARD_NVIDIA_GEFORCE_RTX3090TI}, diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 28d55a5c5d7..dfda5751e98 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -498,6 +498,16 @@ static const struct wined3d_gpu_description gpu_description_table[] = {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX3090TI, "NVIDIA GeForce RTX 3090 Ti", DRIVER_NVIDIA_KEPLER, 24576}, {HW_VENDOR_NVIDIA, CARD_NVIDIA_TESLA_T4, "NVIDIA Tesla T4", DRIVER_NVIDIA_KEPLER, 16384}, {HW_VENDOR_NVIDIA, CARD_NVIDIA_AMPERE_A10, "NVIDIA Ampere A10", DRIVER_NVIDIA_KEPLER, 24576}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX4060, "NVIDIA GeForce RTX 4060", DRIVER_NVIDIA_KEPLER, 8192}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX4060TI8G, "NVIDIA GeForce RTX 4060 Ti 8GB", DRIVER_NVIDIA_KEPLER, 8192}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX4060TI16G, "NVIDIA GeForce RTX 4060 Ti 16GB", DRIVER_NVIDIA_KEPLER, 16384}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX4070, "NVIDIA GeForce RTX 4070", DRIVER_NVIDIA_KEPLER, 12288}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX4070SUPER, "NVIDIA GeForce RTX 4070 SUPER", DRIVER_NVIDIA_KEPLER, 12288}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX4070TI, "NVIDIA GeForce RTX 4070 Ti", DRIVER_NVIDIA_KEPLER, 12288}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX4070TISUPER, "NVIDIA GeForce RTX 4070 Ti SUPER", DRIVER_NVIDIA_KEPLER, 16384}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX4080, "NVIDIA GeForce RTX 4080", DRIVER_NVIDIA_KEPLER, 16384}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX4080SUPER, "NVIDIA GeForce RTX 4080 SUPER", DRIVER_NVIDIA_KEPLER, 16384}, + {HW_VENDOR_NVIDIA, CARD_NVIDIA_GEFORCE_RTX4090, "NVIDIA GeForce RTX 4090", DRIVER_NVIDIA_KEPLER, 24576},
/* AMD cards */ {HW_VENDOR_AMD, CARD_AMD_RAGE_128PRO, "ATI Rage Fury", DRIVER_AMD_RAGE_128PRO, 16 }, diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 66d444cb76c..838b8ed4639 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2335,6 +2335,16 @@ enum wined3d_pci_device CARD_NVIDIA_GEFORCE_RTX3090TI = 0x2203, CARD_NVIDIA_TESLA_T4 = 0x1eb8, CARD_NVIDIA_AMPERE_A10 = 0x2236, + CARD_NVIDIA_GEFORCE_RTX4060 = 0x2882, + CARD_NVIDIA_GEFORCE_RTX4060TI8G = 0x2803, + CARD_NVIDIA_GEFORCE_RTX4060TI16G = 0x2805, + CARD_NVIDIA_GEFORCE_RTX4070 = 0x2786, + CARD_NVIDIA_GEFORCE_RTX4070SUPER = 0x2783, + CARD_NVIDIA_GEFORCE_RTX4070TI = 0x2782, + CARD_NVIDIA_GEFORCE_RTX4070TISUPER = 0x2705, + CARD_NVIDIA_GEFORCE_RTX4080 = 0x2704, + CARD_NVIDIA_GEFORCE_RTX4080SUPER = 0x2702, + CARD_NVIDIA_GEFORCE_RTX4090 = 0x2684,
CARD_REDHAT_VIRGL = 0x1010,
This merge request was approved by Elizabeth Figura.
This merge request was approved by Jan Sikorski.