Detect GPU
Classify GPU's based on their benchmark score in order to provide an adaptive experience.
Demo
Installation
Make sure you have Node.js installed.
$ npm install detect-gpuUsage
detect-gpu uses benchmarking scores in order to determine what tier should be assigned to the user's GPU. If no WebGLContext can be created or the GPU is blacklisted TIER_0 is assigned. One should provide a HTML fallback page that a user should be redirected to.
By default are all GPU's that have met these preconditions classified as TIER_1. Using user agent detection a distinction is made between mobile (mobile and tablet) prefixed using GPU_MOBILE_ and desktop devices prefixed with GPU_DESKTOP_. Both are then followed by TIER_N where N is the tier number.
In order to keep up to date with new GPU's coming out detect-gpu splits the benchmarking scores in 4 tiers based on rough estimates of the market share.
By default detect-gpu assumes 0% of the lowest scores to be insufficient to run the experience and is assigned TIER_0. 50% of the GPU's are considered good enough to run the experience and are assigned TIER_1. 30% of the GPU's are considered powerful and are classified as TIER_2. The last 20% of the GPU's are considered to be very powerful, are assigned TIER_3, and can run the experience with all bells and whistles.
You can tweak these percentages when registering the application as shown below:
; const GPUTier = ;Development
$ yarn start $ yarn serve $ yarn lint $ yarn test $ yarn build $ yarn parse-analytics $ yarn update-benchmarksLicence
My work is released under the MIT license.
detect-gpu uses both mobile and desktop benchmarking scores from https://www.notebookcheck.net/.
The unmasked renderers have been gathered using the analytics script that one can find in scripts/analytics_embed.js.