nvwgf2umx.dll 显卡崩溃问题尝试修复
问题背景
游戏上线之后,搜集到的奔溃列表里面列表存在大量的显卡驱动异常崩溃,window在vista之后,将显卡驱动模型从Xpdm改为了WDDM。 WDDM的说明详见百度百科,其中最主要的变更如下:
“在WindowsXP时代有20%的系统蓝屏故障是显卡驱动问题造成的。WDDM在技术水平上有两个组件:一个内核模式驱动程序(KMD)和一个执行大部分密集计算的用户模式驱动程序。新版WDDM模型已将代码的大部分移出了内核模式。由于与显示相关的操作只在用户模式下完成,所以大大提高了系统稳定性。”
直白的说,就是将显卡以前驱动容易崩溃的部分从Kernel层移到了用户层,要崩溃就崩溃吧,反正不会蓝屏。 这是个挺程序员化的思维,因为我们经常严重bug解不掉的时候就想办法把他变成一个一般的bug。其实这个原本也没什么问题,但是我感觉官方对这些用户层的崩溃解决的速断远远低于以前(会导致蓝屏的时候),一般的bug解决总是这么慢。
言归正传,厂商官网提供了驱动对应的二进制文件,这些是分析崩溃必须的。
AMD: https://download.amd.com/dir/bin
NVIDIA: https://driver-symbols.nvidia.com/
Intel: https://software.intel.com/sites/downloads/symbols/ …
Microsoft: https://msdl.microsoft.com/download/symbols …
Chrome: …https://chromium-browser-symsrv.commondatastorage.googleapis.com
NVIDIA官网里面说只提供前三年驱动的binaries,不提供任何的pdb文件。官网这段话解释了为何他们要提供这些二进制文件,在不同的机器上会有不同的驱动版本,如果我们拿到一个dump,有可能由于没有必要的组件而无法回溯堆栈,所以NV提供了响应驱动程序的二进制文件。
了解到这些之后,就可以拿到外网上报的崩溃文件,去尝试分析问题的本意源(兼容性,API使用错误等),看看能否找到一些蛛丝马迹。
分析过程
1、首先采用windbg,加载驱动的symbols,看看堆栈,没看出什么更多的信息,symbol对我们调试的帮助是什么,为什么NVIDIA要提供symbols.
2、lm 查看系统信息,看到nvwgf2umx.dll 的symbol并没用被加载,这个dll的类型是export symbol.
symbol类型的描述可以从文档里面看到,export表示windbg没找到匹配的symbol,
lmv可以看到更多的信息
3、直接看不到相关的信息,只能google了。Nvidia的官网论坛有这样一个帖子,遇到的情况和我们类似。
Is this a driver problem or a game problem?
官方人员:定位问题是硬件的问题,建议玩家利用memtest做内存检测;除此之外,他还带了一些常见的显卡驱动问题的Q&&A。
How to provide valuable feedback to NVIDIA
How to enable NVIDIA Graphics Driver and GeForce Experience installer logging
Wagnard Tools (DDU,GMP,TDR Manupulator)-(Updated 09/19/14)
Fix for Control Panel not saving settings
How to make the NVCP display in English
PASCAL WARNING: Bundled and Cheap PCI-E Riser cables can cause decoder corruption and TDR's
在Nvidia的官方论坛,我用nvwgf2umx.dll crash做为关键字,搜了一下,出现了大量的crash。
官网强烈推荐了一遍文章,Stack-walking主要讲了在堆栈损坏的情况下如何利用PE文件中的unwind info去重建堆栈,的确是一篇很好讲述调试机器的文章,也算是意外的收货吧。
官网给出了可能原因:
a) 显卡温度过高: 这类问题玩家可以通过GPUZ和HWMonitor进行监控,确认是否有类似的情况存在。
b) 内存故障: 可以通过memtest进行检测,看看是否存这种case.
c) driver 安装异常,这类倒是可以通过一些工具去进行解决。玩家升级显卡驱动之后出现问题,可以尝试用DDU(Display Driver Uninstaller)来清理对应的驱动,DDU是一款免费的工具,可以用来卸载老的驱动,然后安装指定版本。 个人体验下来,这个工具是真心牛逼,不只有显卡驱动,音频、windows的其他驱动都可以用这个进行处理。
Recommended usage:
-You MUST disconnect your internet or completely block Windows Update when running DDU until you have re-installed your new drivers.
-DDU should be used when having a problem uninstalling / installing a driver or when switching GPU brand.
-DDU should not be used every time you install a new driver unless you know what you are doing.
-DDU will not work on network drive. Please install in a local drive (C:, D: or else).
-The tool can be used in Normal mode but for absolute stability when using DDU, Safemode is always the best.
-If you are using DDU in normal mode, Clean, reboot, clean again, reboot.
-Make a backup or a system restore (but it should normally be pretty safe).
-It is best to exclude the DDU folder completely from any security software to avoid issues.
DDU使用步骤:
1)开机按F8进入安全模式;
2)禁用网络;
3)然后清理驱动程序;
4)官网下载驱动进行安装;
还有另外一款工具DriverDR,DriverDR 一款很好的用来升级驱动的工具,工具是好工具,但是需要花钱, 有钱的可以体验下,我等屌丝就不用了。
最后总结下,官网更多的是从硬件和驱动去解决这类的崩溃,没有提出游戏内容导致这类问题的解决方案,那该如何是好呢?
问题貌似无解,那其他产品类似的crash率如何呢?看了一圈,貌似都是DX9的游戏居多,dx11的不多,没办法评估显卡驱动崩溃的影响面。
对于外网的这些显卡驱动崩溃 ,按照目前的信息,估计也得不出什么结论。在有限的时间内继续深入调查的话,付出收益比并不高,还不如去做其他的事情呢。所以我决定先先搜集下面的信息,然后再内网进行重现,然后看情况进行针对性的处理。
a) 出现这种崩溃的都是哪些玩家?
b) 他们的画面设置是什么?
c) 出现这类问题的显卡是什么? 驱动版本是什么?
d) 出现问题玩家的操作系统是什么?
c) 这类crash都是发生在游戏当中的什么阶段呢?
结论
最近把发生这里错误的机器信息都上报上来,做了一些简单的分析,有如下结论:
1、出现该问题的机器在视频画质的选择上并没有明显的共性,推翻了我原先认为的高画质的机器更容易出现此类crash;
2、驱动版本越新,越容易出现问题,这点倒可以由数据印证,某个版本的驱动会更容易出现问题,下个版本会变得更好;
哈哈,上面两点对我的修复工作没有任何的帮助,目前还在思考中,下面的工作还是从项目本身入手,搭建一系列的测试环境,在各个环境下面修复 DX 的一些告警,然后再看看数据是否有变化。
如果有同行正在研究类似的问题,有相关经验的话,可以留言讨论 或联系QQ 2403798112. 暗号: KHacker.
-------------------------------------------------------------
后记
知乎henry 给出了一些处理该为题的建议,对于第二点,回头外网出现问题的时候,我可以试试看。
2、出现问题中的这种错误提示,依靠开启垂直同步通常是不会有作用的。多半还是得从两个方面入手去解决。
一是显卡驱动和游戏本身的BUG或兼容性问题。可以尝试升级显卡驱动程序版本,或者打上游戏补丁。
二是显卡硬件不太稳定。可以跑一下3DMARK和Furmark测试一下,看看显卡是否也存在同样的问题。
作者:Feng Henry
链接:https://www.zhihu.com/question/317925884/answer/649669864
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
nvwgf2umx.dll 显卡崩溃问题尝试修复的更多相关文章
- 解决方案:ppt打不开,显示发现文件中的内容有问题。可尝试修复此演示文稿
ppt打不开,显示发现文件中的内容有问题.可尝试修复此演示文稿 故障截图如下: 解决方法: 主要是因为文件是网络下载的,office自动锁定了文件(默认不可编辑).在文件上右键-属性-解除锁定(最下面 ...
- ppt打不开,显示发现文件中的内容有问题。可尝试修复此演示文稿
ppt打不开,显示发现文件中的内容有问题.可尝试修复此演示文稿 PPT发现要打开的文件有问题,修复后无法打开该文件 解决方法: 主要是因为文件是网络下载的,office自动锁定了文件(默认不可编辑). ...
- [Winform]关于cefsharp触屏设备长按文本内容,崩溃问题的修复
摘要 在之前遇到cefsharp,在触屏电脑上,长按文本内容,会崩溃的问题. 相关文章 当时遇到这样的问题,在cefsharp项目下提交了bug.已经修复,可以参考当时我提的bug,以及解决过程,可参 ...
- Centos-检查文件系统并尝试修复-fsck
fsck 检查文件系统并尝试修改错误,修复对象为设备,本质上是调用 /sbin/fsck.filesystemName 命令, filesystemName是指定设备的文件系统类型,如图分区中有文件丢 ...
- C#调用c++的dll报错:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏“
一:c++代码内部报错引起.可能是空指针或者其他. 二:需要从c#代码调试进入c++代码.可以吧c++的dll和pdb拷入工程项目的debug目录下面. 三:我发现的错误时在C++内部声明啦全局变量, ...
- 给虚拟机添加新硬盘并分区,fdisk查看分区,分区,重新读取分区表信息partprobe,格式化,挂载,查看分区挂载信息,自动挂载文件/etc/fstab,/etc/fstab文件错误导致重启崩溃后的修复
1.虚拟机关机断电 2.添加硬盘 2.开机 3.fdisk -l查看刚才新添加的硬盘 [root@localhost ~]# fdisk -l 磁盘 /dev/sda:21.5 GB, 2147483 ...
- msvcp71.dll 怎么丢失的?如何修复
解决方法:另一台电脑上下载这个dll,再用优盘拷回来,复制到c:\windows\system32\下. 个人遇到的情况:迅雷下载东西时,或者在操作迅雷时出现的. win7 64位下 点击下载
- centos崩溃后如何修复
首先看能不能进单用户模式,能进去,就用mount -o remount,rw / 重置成可写的. 不能进单用户模式,就进入光盘救援模式,进去挂载了系统,这时候通常是必要的动态静态库出了问题,先应该做的 ...
- asp.net core webapi 似乎未安装在 IIS 中承载 .NET Core 项目所需的 AspNetCoreModule。请尝试修复 Visual Studio 以纠正该问题。
安装 DotNetCore.1.1.0-WindowsHosting 后,提示如题错误. 解决办法: ASP.NET Core 应用程序运行,可以选择 IIS Express 也可以选择 自己运行 , ...
随机推荐
- TortoiseGit与GIt生成ssh秘钥添加到github账号的简单方法!简单使用
今天升级了自己电脑上的git与TortoiseGit,全部换成了最新版,后来不知道怎么的git的秘钥还能使用,可以直接拉取或者提交ssh地址克隆的代码,可是小乌龟客户端就悲剧了 公司的项目有key.p ...
- 3D Slicer中文教程(二)—软件功能界面介绍
1.界面介绍 2.菜单及工具栏介绍 (1)菜单 File-文件菜单 文件菜单包含用于加载MRML场景的选项,用于从互联网下载样本数据集或各种类型的各个数据集.此处还提供了保存场景和数据的选项. Edi ...
- Selenium Navigation
Navigating Navigate a link with WebDriver: driver.get("http://www.google.com") 1.Interacti ...
- ActiveMQ简单介绍及安装
消息中间件 我们简单的介绍一下消息中间件,对它有一个基本认识就好,消息中间件(MOM:Message Orient middleware). 消息中间件有很多的用途和优点: 1. 将数据从一个应用程序 ...
- windows下实现定时重启Apache与MySQL方法
采用at命令添加计划任务.有关使用语法可以到window->“开始”->运行“cmd”->执行命令“at /”,这样界面中就会显示at命令的语法.下面我们讲解下如何让服务器定时启动a ...
- 【原创】大叔问题定位分享(29)datanode启动报错:50020端口被占用
集群中有一台datanode一直启动报错如下: java.net.BindException: Problem binding to [$server1:50020] java.net.BindExc ...
- javascript中Math函数的属性与方法
math函数的属性 Math.PI:返回圆周率. math函数的方法 绝对值: Math.abs(); 对数进行上舍入: Math.ceil(); 对数进行下舍入: Math.floor(); Mat ...
- mysql case when * else end
分条件计算总数 SELECT -- SUM( END) as am, -- SUM( END) as om , -- SUM( END) as aom , -- SUM( then AmoutPric ...
- Spring Boot mybatis HashMap +layui 通用分页
背景: mybatis 常用数据查询的方法都是先建实体类,再建Mapper,最后写Service,如果只是单纯的去查询数据显示,这样操作太麻烦.本文就以mybatis +layui创建通用分页类,简化 ...
- Docker打包 Asp.Net Core应用,在CentOS上运行(转)
转载连接:https://www.cnblogs.com/ibeisha/archive/2017/09/09/netcoreondocker.html 本文主要介绍下运用docker虚拟技术打包As ...