Side note, it's possible to obtain the compilation date of the .exe automatically through PE header. It will only fail if the .exe was created by some non-standard compiler or protected by some very impudent DRM.
This way, year part might include auto option which would make it choose the proper year automatically.
In such cases wrongly detected GPU can cause real harm on overall user experience.
What do you mean? Sims 2 simply does not work on modern GPUs because the game is so utterly broken, it needs the GPU override. I'm really not sure what the problem is you're trying to solve here that would warrant dumping a database of hundreds of different GPUs into a project that 99% of the time doesn't have to care about it at all and has solutions for the 1% where it does matter.
@liandris
Side note, it's possible to obtain the compilation date of the .exe automatically through PE header.
I think it will be hard to connect profile to exact year.
That's why I propose to use something like this:
... 00 01 02 ][03 04 05 06 07 ][08 09 10 11 12][13 14 15 16 17][18 19 20 ...
To be sure game was released when GPU was available and popular. Like for 8800 GTX, which was released somewhere in 2006, I checked Batman:AC (2011?) and this GPU is one of only few "high profile" in the games gpu list. And I remember 8800 memes (maybe because of Crysis memes), so I guess it was popular and widely used (maybe only by game-devs).
@doitsujin
It would be near dozen most known gpu models.
Well, I can do this outside DXVK, and I started this already, but as I said it useless for other things than Wine/DXVK.
So I decided to share.
I'm still not sure I understand why we need this. So basically you want generic profiles in order to convince a handful of games using some very specific engines to use different settings on first launch? Why not just use the graphics menu and change things by hand? Things don't really get any more user friendly than that..
This really sounds like a really dumb "solution" for a problem in a handful of games.
Well, that's why RFC. If you sure you don't need this in DXVK, then we can just collect the list. Because it's hard to remember vendor/device IDs or exact marketing names (in case game detects GPU by it's name). Then it can be used e.g. in wiki, or by Proton and variants with integrated protonfixes, etc.
I don't mean this thing needed to fix something (it can be used to fix), just easy to use alternative for existing override options. Also easy to experiment if an game have problems.
wined3d already has an exhaustive (although somewhat out of date) list that maps GPU/Vendor ID to GPU names, I don't think we need to reinvent the wheel here.
Okay, I guess I should not expect any help here.
Nothing extracted yet.
Description
Many games use GPU
VendorID/DeviceIDorDeviceNameto determine default settings, some of them have predefined lists of this data. For obvious reasons older games knows nothing about modern GPUs.Idea
Let's collect a list of most popular GPU models and use them for built-in profiles (option).
E.g.
dxvk.profile = 2010,nvidia,high(maybe even,strictto override VMEM and maybe driver version), where:(step is
5, so valid ones are: 2000, 2005,...)(amd or nvidia, maybe intel for year index >= 2020)
(valid ones are: high, mid, low)
For every next year index there will be new high preset GPU models, all other models will be shifted down (aliases).
Defaults: top of the list, e.g.
=highmean=2020,<current gpu>,high.Order: don't matter (e.g.
=amd,2015,mid).I don't know much about GPU models, but I checked/compared some configs from my currently installed games and can propose
0x10DE, 0x0191, NVIDIA GeForce 8800 GTXfor=2010,nvidia,high.It present in all lists I found. Except for
2015this GPU can be stillhigh(5) for UE3 games released near 2015, butlow/midfor CryEngine (State of Decay).**Click for draft list**
Left: presence in UE3 configs (one of),
Middle: CryEngine list (from State of Decay),
Right: UE3 device marketing name
Max. perf level: 5 for ue3, 4 for cryengine.
Motivation
I can name UE3 games or CryEngine games, but this is about first launch user experience. Even when launched with low-spec preset, there are game settings usually available to improve things.
Or games like GTA IV, even DXVK have some hardcoded GPU models for Sims2 and Halo in it's config. In such cases wrongly detected GPU can cause real harm on overall user experience.
Of-cause we can use available options to override GPU info, but IMHO profiles will be more user-friendly.
This profiles almost useless outside Wine/DXVK, so better have them in one place, instead of third-party tools/configs.
Examples
I tested Borderlands 2 with default DXVK config and with override known by the game. This is UE3 game, uses predefined list of GPU IDs. With defaults it was launched with performance level 4 (lowered resolution and view distance setting), while with override it was launched with performance level 5.
**Click for config diff**
green - default, red - high (override, GeForce GTX 590)