遇到了一个神奇的画面渲染问题

2018-10-11 17:27:31 +08:00
 CCtry
前天更新了 1803,结果有很多游戏打开以后出现无响应,其中的部分可以听到音乐,也可以点击按钮,但是看不到画面(黑屏或者白屏)。

挑了两个游戏想用 VS 调试一下看看问题出在哪,结果发现 VS 也变成了白屏……

好不容易找了另一台电脑来分析 dump 文件,发现调用栈都停在了 WaitForSingleObject 这个 win32 函数上。

我初步推断这个函数之所以不能返回是因为 UI 线程出现了死锁。

对着 windbg 分析了半天也没看出症结在哪,所以干脆就把系统重装了。结果一切又变正常了。

昨天晚上想打 dota,结果同样的问题又出现了……

隐约记得死锁发生在 nvd3dum.dll 里面,觉得有可能是 directX 的问题。正好 dota2 支持使用 vulkan 来渲染,更改以后果然好了,可惜其它游戏不支持自己选择渲染 api,问题依然没有解决。

想着会不会是 nv 显卡的问题,于是打开 nv 控制面板去改默认显卡。nv 控制面板里面有一项是提供 3D 效果的预览,结果每次切到那里就无响应。这样基本可以确认是 DX 渲染的问题。

到此为止就卡住了,完全没有任何思路。也去找了各种诊断修复工具但都没什么用。不过可以判断是 DX9 坏掉的几率比较大,因为目前出问题的游戏大多都是用 DX9 渲染的,dota2 的默认渲染 api 也是 DX9。但是使用 DX9 的游戏也有没问题的。
(不过 VS 和从应用商店下的 windbg 为啥也会出问题呢??)

发到这里是想请各位高手来给小弟开拓一下思路,看看有什么办法能搞定这个问题。在此先谢谢各位。
4700 次点击
所在节点    全球工单系统
3 条回复
LuffyGu
2018-10-11 17:44:22 +08:00
你是高手,我们是小弟
lastpass
2018-10-11 17:55:49 +08:00
→_→这不仅仅是 1803 有这个问题,更老的版本也有这个问题。
(sb win10)
目前我找到的解决办法是:进任务管理器,点击游戏进程,选择前置,不要选择切换。
ysc3839
2018-10-11 17:58:10 +08:00
感觉是显卡驱动的问题。VS 和 WinDbg 有问题是因为它们都使用了 WPF。WPF 使用 Direct2D 渲染。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/496787

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX