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

Broken in firefox #79

Closed Pho3niX90 closed 2 years ago

Pho3niX90 commented 3 years ago

Tested "https://pmndrs.github.io/detect-gpu/" in firefox in numerous devices, all of which report incorrectly vs Chrome.

In firefox, it is either reported as "FALLBACK" or "BLOCKLISTED"

TimvanScherpenzeel commented 3 years ago

Hi @Pho3niX90, could you list the results you get in Chrome and Firefox for the devices versus what you expect?

My Windows 10 computer is reporting the wrong result as well.

{
  "fps": 60,
  "gpu": "nvidia geforce gtx 980",
  "isMobile": false,
  "tier": 3,
  "type": "BENCHMARK"
}

vs

{
  "fps": 143,
  "gpu": "nvidia geforce rtx 2060 super",
  "isMobile": false,
  "tier": 3,
  "type": "BENCHMARK"
}
puckey commented 3 years ago

I am also seeing a BLOCKLISTED type..

{
  "fps": -1,
  "gpu": "radeon r9 200",
  "isMobile": false,
  "tier": 0,
  "type": "BLOCKLISTED"
}

For my machine, it seems Firefox is returning radeon r9 200 series as renderer where Chrome gives the correct ati technologies inc., amd radeon pro 5300m opengl engine, opengl 4.1 ati-3.10.21)

puckey commented 3 years ago

@Pho3niX90 Could you report what the following code returns when you paste it into the Firefox javascript console vs what it says in the Chrome console:

const ctx = document.createElement('canvas').getContext('webgl');
ctx.getParameter(ctx.getExtension('WEBGL_debug_renderer_info').UNMASKED_RENDERER_WEBGL);

or just paste what you see in https://webglreport.com under Renderer

@TimvanScherpenzeel any idea why the radeon r9 200 would be blocklisted? I don't see it included in either of the referenced urls: https://github.com/pmndrs/detect-gpu/blob/master/src/internal/blocklistedGPUS.ts

TimvanScherpenzeel commented 3 years ago

@puckey, no idea why it is currently blocklisted, I'm fine with taking it off. When I started the project I scrambled a bit around the internet and source code of websites that were doing GPU detection. Most of the list does indeed come from the mentioned sources.

Could it be that Firefox is intentially obfuscating GPU devices?

I'm getting "ANGLE (NVIDIA GeForce GTX 980 Direct3D11 vs_5_0 ps_5_0)" on Firefox but I'm 100% sure it is a 2060 super as reported by Chrome.

puckey commented 3 years ago

Okay, I will take it out of the blocklist and add it to my active pr. Just had a thought though: do we really need a blocklist? I.e. wouldn't the browsers themselves block? How many blocked gpus are around?

I did a cursory search in the mozilla codebase, but couldn't find anything on them obfuscating things.. maybe they are just doing a bad job?

Pho3niX90 commented 3 years ago

@puckey

Firefox: image

Chrome: image

puckey commented 3 years ago

Yeah, so I am not sure we can do anything about Firefox incorrectly identifying the renderer.. Perhaps you want to make a ticket for them to look into it: https://bugzilla.mozilla.org/

We will unblock the R9 in the next version

puckey commented 2 years ago

R9 is now unblocked in master