pmndrs / detect-gpu

Classifies GPUs based on their 3D rendering benchmark score allowing the developer to provide sensible default settings for graphically intensive applications.
MIT License
1.05k stars 57 forks source link

Some GPUs with known BENCHMARK results and higher tier are unrecognized, get FALLBACK and tier 1 in at least Windows + Chrome #121

Open KellyWalker opened 4 months ago

KellyWalker commented 4 months ago

We have seen the following GPU names detected on Windows using Chrome 126.0.0:

If I understand the benchmark data correctly, in both of these cases the base GPU (nvidia quadro gv100, nvidia geforce rtx 3060 laptop gpu) have entries that should allow them to be tier 3. I have also seen some code (e.g. src\internal\cleanRenderer.ts) that strips off some of the extraneous descriptors like "ANGLE", "Direct3D11", etc.

Perhaps there needs to be some additional handling to strip more off, or maybe the logic could be loosened to allow for inclusion of a substring rather than exact match (I have not looked into this).

KellyWalker commented 4 months ago

I checked out the code and added the GPU name strings from original report above to test\data.ts as members of RENDERER_DESKTOP so that I could run tests for them. Those tests passed. Debugging into the tests seems to show that each is correctly identified as the expected base GPU, then mapped to tier 3 with a 'BENCHMARK' result. Can one of the maintainers let me know if this is a legitimate way to have tested the behavior?

Assuming they are accurate, the test results leave me confused, because I have actual captured end-user data that shows the GPU names from the original report being mapped to tier 1 with a 'FALLBACK' result. I am trying to theorize how that could be possible given my test results. Could it happen if some endpoint used to access benchmark data was inaccessible for some reason?