0x00 楔子

最近客户在使用我们的的三维可视化平台的时候,总是会出现浏览器崩溃,webgl context lost的情况。 这种请一般出现在电脑配置很低的电脑上,比如没有独显,只有很小现存的集成显卡的电脑。

但是客户的电脑大部分都是配置还不错,有独立的显卡。

经过摸索和分析,最终发现了问题所在:就是电脑根本没有用上独立显卡,也就是说虽然硬件上有独立显卡,但是实际上三维程序还是用的集成显卡,导致跑不动三维程序。

如何判断三维程序是否用上了独立显卡呢,其实我们可以打开电脑的任务管理器,打开"性能"标签,一般可以看到两个GPU(Intel开头的是集成显卡,NVIDIA开头的是独立显卡)

从图中,可以看出 GPU0(集显) 使用率搞到88%,而GPU1(独显) 使用率却未0,表示三维应用程序未使用独显。

0x01 原因探究

经过测试,发现电脑不使用独立显卡的原因大概分为几类:

驱动未正确安装

独立显卡的驱动未安装,或者显卡的驱动未正确安装,导致电脑的独立显卡不能使用。 可以通过电脑的设备管理器查看是否又独立显卡的适配器,如果没有,多半是未有安装显卡驱动。

显示器未接独立显卡

如果是台式机接主板自带的VGA/DVI/HDMI都是核显负责输出和运算,不接独显的接口不能发挥任何作用。反之,接了独显,那么CPU核显也会自动屏蔽不发挥作用。典型的例子就是你接了独显,比如N卡,只会有一个NVIDIA控制面板,而不会再出现一个英特尔核芯显卡控制界面。

如果是笔记本的话,一般带DP接口的一定是独显接口,其他接口如HDMI,VGA都是核显输出,但是笔记本硬性规则都是核显负责画面输出,独显负责需要运行的3D应用程序,这是英特尔强制规定的,所以笔记本除了有N卡独显的NVIDIA控制面板以外,还会有英特尔核芯显卡控制面板。值得注意的是,在6代以后的笔记本,有些bios提供了屏蔽核显的选项,有些是可以允许自由切换,或者一些超高端的笔记本,显卡为1070,1080甚至1080 SLI的,直接出厂就屏蔽了核显,没有这个核显的需要。测试都表明,核显在1070以上的笔记本机型,某些优化不到位的游戏会拖累独显性能,导致帧数下降,整体也比单独运行独显帧数要稍低。

程序指定使用集显

笔记本电脑,电脑可以同时使用集显和独显。

打开电脑NVIDIA 控制面板,可以指定程序使用独显还是集显,如下图所示:

如果指定了浏览器,比如chrome使用集成显卡,那么webgl也不会用到独立显卡。

0x02 如何解决

其实看了前面的“原因探究”,可以很方便的给出相应的解决方案。

如果未安装显卡驱动,就安装显卡驱动即可。安装的时候,需要注意选择正确的版本。

如果是台式机,检查显示器接头是否接在独立显卡的接口上,如果接在集成显卡的接口上,改变接口即可。

如果是程序指定了集显,改成使用独显即可。

过程不在详述。

0x03 结语

如果发现电脑配置不错,但是简单的三维应用很卡,多半是上述原因。

如果对可视化感兴趣,可以和我交流,微信541002349。

关注公号“ITMan彪叔” 可以及时收到更多有价值的文章。

webgl未使用独立显卡报告的更多相关文章

  1. Windows 同一时候开启核心显卡与独立显卡(不接显示器启动核芯显卡)

    採用Mp4视频压缩格式编码时,非常耗CPU.所以决定上显卡.进行显卡加速.选择了Intel核心显卡进行视频编码加速,效果非常理想.但如今的问题是:在PC上如何同一时候开启核心显卡与独立显卡.经过几番周 ...

  2. CentOS7下安装NVIDIA独立显卡驱动出现X service error问题解决方法

    问题症状: 最近在CentOS7下安装NVIDIA独立显卡驱动的过程中出现X service error问题,如下图所示: 解决方法: 0.到NVIDIA 官网上下载驱动文件(.run 格式) : N ...

  3. DELLR720 独立显卡DVI转VGA问题

    第一种情况:DELLR720默认不接独立显卡,直接用板载VGA输出,不需要调system blos 第二种情况:DELLR720接独立显卡,需要DVI输出,需要更改系统blos system blos ...

  4. 解决 Ubuntu 18.10 使用较新的独立显卡输出无法初始化图形界面并配置深度学习开发环境

    原文地址:解决 Ubuntu 18.10 使用较新的独立显卡输出无法初始化图形界面并配置深度学习开发环境 0x00 配置 硬件 OS: Ubuntu 18.10 Base Board: ASUS WS ...

  5. ubuntu频繁死机--独立显卡问题

    问题:笔记本安装ubuntu时以及装好后有时会出现花屏.死机的问题,系统报错 *ERROR* UVD not responding, trying to reset the VCPU!!! *ERRO ...

  6. manjaro 配置 独立显卡驱动

    参考 https://blog.csdn.net/weixin_42205310/article/details/81905293 尝试多次 只有这篇配置成功. ①先解决依赖sudo pacman - ...

  7. 让游戏以高性能GPU(独立显卡)运行

    在EXE中导出全局变量: N卡: extern "C" { __declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001 ...

  8. 游戏开发人员眼中的Unity 3D网页游戏測评报告

    眼下.能够实现3D页游的主流技术有Silverlight.XNA.Flash.HTML5和Unity3D. 当中.Unity3D作为一款专注于3D游戏的浏览器插件.最近在国内外页游产品线骚动异常:本人 ...

  9. 学废了系列 - WebGL与Node.js中的Buffer

    WebGL 和 Node.js 中都有 Buffer 的使用,简单对比记录一下两个完全不相干的领域中 Buffer 异同,加强记忆. Buffer 是用来存储二进制数据的「缓冲区」,其本身的定义和用途 ...

随机推荐

  1. Basler相机启动问题xml读取出错

    切记!同一张网卡上多网口分别连多相机的时候,不要用同一个网段!!很容易出错!

  2. response.getWriter().write()和 response.getWriter().print()的区别 以及 PrintWriter对象 和 out对象 的区别

    感谢原文作者:krismile__qh 原文链接:https://blog.csdn.net/krismile__qh/article/details/89926001 一.response.getW ...

  3. Spring与Struts2整合时action自动注入的问题

    当Struts和Spring框架进行整合时,原本由action实例化对象的过程移交给spring来做(这个过程依赖一个叫struts2-spring-plugin的jar包,这个包主要的功能就是实现刚 ...

  4. NSLog 和printf区别

    NSLog是Foundation框架供的Objective-C日志输出函数,与标准C中的printf函数类似,并可以格式化输出. NSLog传递进去的格式化字符是NSString的对象,而不是char ...

  5. LeetCode随缘刷题之无重复字符的最长子串

    欢迎评论区交流. package leetcode.day_12_04; /** * 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度. * <p> * 示例1: * &l ...

  6. springCloud项目解决跨域问题

    通过 spring cloud gateway 实现, 方式一:选择在主启动类中注册 CorsWebFilter 类: /** * 1.允许cookies跨域 * 2.允许向该服务器提交请求的URI, ...

  7. 垃圾陷阱 && [NOIP2014 提高组] 飞扬的小鸟

    #include<bits/stdc++.h> using namespace std; int d,n,dp[1010]; struct node{int t,f,h;} a[1010] ...

  8. Solution -「ROI 2019」「LOJ #3192」课桌

    \(\mathcal{Description}\)   Link.   原题意足够简洁啦.( \(\mathcal{Solution}\)   乍一看比较棘手,但可以从座位的安排方式入手,有结论:   ...

  9. 图解python | 循环与控制

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...

  10. MySQL explain结果Extra中"Using Index"与"Using where; Using index"区别探究

    问题背景 最近用explain命令分析查询sql执行计划,时而能看到Extra中显示为"Using index"或者"Using where; Using Index&q ...