Javascript JS 获取 GPU 型号

阅读(10855)

JS 通过 Webgl 可拿到一些环境信息,包括 GPU 型号。

var canvas = document.createElement('canvas');
var gl = canvas.getContext('webgl');  // 等同于 canvas.getContext('experimental-webgl');

var debugInfo = gl.getExtension('WEBGL_debug_renderer_info');

console.log( gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL) );
// GPU 制造商,e.g., Intel Inc.

console.log( gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) );
// GPU 型号,e.g., Intel Iris OpenGL Engine

WEBGL_debug_renderer_info 提供有两个常量值:

  • ext.UNMASKED_VENDOR_WEBGL:GPU 制造商
  • ext.UNMASKED_RENDERER_WEBGL:GPU 型号

除 WEBGL_debug_renderer_info 外,所有支持的 extension 见 https://www.khronos.org/registry/webgl/extensions/

iPhone 的 GPU 型号如下:

Device name GPU
iPhone 8 / 8 Plus/X Apple A11 GPU
iPhone 7 / 7 Plus Apple A10 GPU
iPhone 6s / 6s Plus / SE Apple A9 GPU
iPhone 6 / 6 Plus Apple A8 GPU
iPhone 5s Apple A7 GPU
iPad Pro 12.9寸 (2代) / (10.5寸) Apple A10 GPU
iPad (5代) / iPad Pro (12.9寸) / iPad Pro (9.7寸) Apple A9 GPU
iPad Air 2 / mini 4 Apple A8 GPU
iPad Air / mini 3 / mini 2 Apple A7 GPU
iPod touch (6代) Apple A8 GPU

通过此表,结合屏幕长宽比/屏幕密度可以得出具体的手机型号了。

Tags: webgl,gpu

已有 2 条吐槽

  1. wpy wpy

    因为这个方法在ios12.2及以上就不好使了

  2. 峰

    为什么用这个方法获取iPhone7、7Plus、X、Xs、Xr的时候并不能返回对应的GPU型号,而是直接返回"Apple Gpu"?