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.