Javascript JS 获取 GPU 型号
阅读(10707)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/。
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 |
通过此表,结合屏幕长宽比/屏幕密度可以得出具体的手机型号了。
因为这个方法在ios12.2及以上就不好使了
为什么用这个方法获取iPhone7、7Plus、X、Xs、Xr的时候并不能返回对应的GPU型号,而是直接返回"Apple Gpu"?