wangqr / Aegisub

Win64 nightly builds available at GHA artifact, also at following link:
https://ftp.wangqr.tk/aegisub/
Other
795 stars 49 forks source link

视频窗口花屏 | Video render glitch after upgrading Win LTSC 2019 -> Win 2004 #55

Closed vxzms closed 4 years ago

vxzms commented 4 years ago

在打开视频后,会在视频窗口出现如下图所示的花屏

载入空白视频

Aegisub 版本:3.3.0+均出现,r8942 正常 Windows 版本:Windows 10 Pro N 2004 19041.329

wangqr commented 4 years ago
  1. 请提供显卡型号和显卡驱动版本。您也可以尝试更新显卡驱动,看看能否解决此问题
  2. 在同一机器上以前是否有正常工作过(即,是升级到2004后才出现此问题,还是一直有此问题,还是这是您在此机器上首次使用Aegisub wangqr fork)?
  3. 由于我正在使用Windows 2004而未出现此问题,您可能需要二分法测试r8942到3.3.0之间的版本,以具体确认具体的首个故障版本。您可以自行编译并使用git bisect,也可以在 https://ftp.wangqr.tk/aegisub/pre-v3.3.0-nightly/ 找到部分3.3.0之前的nightly版本
  4. 请提供相关日志,日志在 Help -> Log window 中查看。这里的目的是看 <video/out/gl> 部分是否有报错
vxzms commented 4 years ago
  1. 显卡型号 显卡驱动 驱动日期
    NVIDIA GeForce GTX 1050 Ti 26.21.14.4292 2020/4/7
    Intel UHD Graphics 630 27.20.100.8280 2020/5/19

二者均为最新驱动

  1. 这台机器之前使用的是最新版本号的 Windows 10 LTSC 2019,Aegisub wangqr fork 一切正常,当时使用的独立显卡驱动相同,集成显卡驱动应该不同(不记得是哪个版本了)

  2. 我对 https://ftp.wangqr.tk/aegisub/pre-v3.3.0-nightly/ 中的 nightly 版本进行了测试,20181212 的 8957-build-d4f06c0 正常,20190322 的 8955-dev-69310d4 及之后的均出现该问题

  3. log from aegisub-win64-nightly-20190322 (8955-dev-69310d4) 的 video/out/gl 部分

    I 9818  .426130400 <video/out/gl> [C:\Users\wangqr\Files\src\Aegisub\src\video_out_gl.cpp:VideoOutGL::InitTextures:112]  Video size: 1280x720
    I 9818  .426204200 <video/out/gl> [C:\Users\wangqr\Files\src\Aegisub\src\video_out_gl.cpp:TestTexture:74]  VideoOutGL::TestTexture: 64x64
    I 9818  .426223400 <video/out/gl> [C:\Users\wangqr\Files\src\Aegisub\src\video_out_gl.cpp:TestTexture:74]  VideoOutGL::TestTexture: 16384x16384
    I 9818  .426226900 <video/out/gl> [C:\Users\wangqr\Files\src\Aegisub\src\video_out_gl.cpp:VideoOutGL::DetectOpenGLCapabilities:92]  Maximum texture size is 16384x16384
    I 9818  .426233400 <video/out/gl> [C:\Users\wangqr\Files\src\Aegisub\src\video_out_gl.cpp:TestTexture:74]  VideoOutGL::TestTexture: 16384x8192
    I 9818  .426276300 <video/out/gl> [C:\Users\wangqr\Files\src\Aegisub\src\video_out_gl.cpp:VideoOutGL::InitTextures:243]  Using texture size: 2048x1024
wangqr commented 4 years ago
  1. 您可以在播放视频过程中检查任务管理器,以确定Aegisub使用的是哪一个GPU: taskmgr 建议您尝试更换成另一个GPU以测试是否是驱动故障。软件所使用的GPU可以在桌面右键 -> NVIDIA control panel或者Windows settings -> Graphics settings -> Graphics performance settings 中修改
  2. d4f06c0...69310d4 之间的修改:boost::GIL升级;编译工具变化时带来的wxWidgets升级(3.1.1 -> 3.1.2)。为了判断具体原因,如果您不方便编译,我可以稍后编译一份使用wxWidgets 3.1.1的Aegisub以确认是否是wxWidgets升级导致
  3. 这个log看起来没有异常
wangqr commented 4 years ago

另外,您可以在视频上右键 -> Save PNG snapshot看看保存的视频截图是否正常(我个人觉得大概率是正常的,因为从您的图上看,Visual Tool的十字坐标也未能正确显示,所以应该是OpenGL坏了而非视频解码)

vxzms commented 4 years ago
  1. 根据您的提示,我进行了下列测试
运行使用的显卡及驱动版本 是否正常 截图是否正常
当前使用的集显驱动 (27.20.100.8280)
独显驱动 (26.21.14.4292)
官网最新集显驱动 (27.20.100.8336)
OEM 提供的最新集显驱动 (25.20.100.6617)
  1. 就麻烦您编译一份使用 wxWidgets 3.1.1 的 Aegisub 了
wangqr commented 4 years ago

For those who found this issue but cannot understand Chinese: OP reports that this is only happening on Intel GPU. Switching to nvidia GPU can workaround this issue.

wangqr commented 4 years ago

wxWidgets 3.1.1 的测试版如下: 您需要先下载r9137: https://ftp.wangqr.tk/aegisub/aegisub-win64-cmake-20200606-r9137.zip 再将此压缩包内的文件覆盖进同一目录: Aegisub-r9137-wxWidgets-3b047b58ce.zip

vxzms commented 4 years ago

使用 wxWidgets 3.1.1 的 Aegisub r9137 视频窗口正常

wangqr commented 4 years ago

那么,这是wxWidgets的regression。如果您愿意,我可以对其间的wxWidgets版本进行二分并提供编译后的二进制,以确定具体问题来源。整个过程需要测试约12个不同版本的wxWidgets。

为了方便追溯,覆盖用的文件名将是如下形式:

Aegisub-r9141-wxWidgets-111ff4e618.zip
        ^~~~~           ^~~~~~~~~~
        Aegisub版本     wxWidgets版本

而您需要测试并报告某个wxWidgets版本是好的还是坏的。

如果您愿意测试,下面是二分测试的第一个版本,111ff4e618: 基于r9141: https://ftp.wangqr.tk/aegisub/aegisub-win64-cmake-20200629-r9141.zip 覆盖这些文件: Aegisub-r9141-wxWidgets-111ff4e618.zip

vxzms commented 4 years ago

对于测试乐意至极

测试1 111ff4e618 不正常

wangqr commented 4 years ago

Bisecting: 1231 revisions left to test after this (roughly 10 steps) [2171d407e1] 仍然基于r9141,覆盖这些文件:Aegisub-r9141-wxWidgets-2171d407e1.zip

vxzms commented 4 years ago

测试2 2171d407e1 正常

wangqr commented 4 years ago

Bisecting: 627 revisions left to test after this (roughly 9 steps) [41045df7ea] 仍然基于r9141,覆盖这些文件:Aegisub-r9141-wxWidgets-41045df7ea.zip

vxzms commented 4 years ago

测试3 41045df7ea 不正常

wangqr commented 4 years ago

Bisecting: 301 revisions left to test after this (roughly 8 steps) [a5fe9de656] 仍然基于r9141,覆盖这些文件:Aegisub-r9141-wxWidgets-a5fe9de656.zip

vxzms commented 4 years ago

测试4 a5fe9de656 正常

wangqr commented 4 years ago

Bisecting: 148 revisions left to test after this (roughly 7 steps) [7cddac83a9] 仍然基于r9141,覆盖这些文件:Aegisub-r9141-wxWidgets-7cddac83a9.zip

vxzms commented 4 years ago

测试5 7cddac83a9 正常

wangqr commented 4 years ago

Bisecting: 80 revisions left to test after this (roughly 6 steps) [e3c3a0f188] 仍然基于r9141,覆盖这些文件:Aegisub-r9141-wxWidgets-e3c3a0f188.zip

vxzms commented 4 years ago

测试6 e3c3a0f188 不正常

wangqr commented 4 years ago

Bisecting: 34 revisions left to test after this (roughly 5 steps) [fad9c688e6] 仍然基于r9141,覆盖这些文件:Aegisub-r9141-wxWidgets-fad9c688e6.zip

vxzms commented 4 years ago

测试7 fad9c688e6 正常

wangqr commented 4 years ago

Bisecting: 17 revisions left to test after this (roughly 4 steps) [195df9af7f] 仍然基于r9141,覆盖这些文件:Aegisub-r9141-wxWidgets-195df9af7f.zip

vxzms commented 4 years ago

测试8 195df9af7f 正常

wangqr commented 4 years ago

Bisecting: 8 revisions left to test after this (roughly 3 steps) [5ae9694506] 仍然基于r9141,覆盖这些文件:Aegisub-r9141-wxWidgets-5ae9694506.zip

vxzms commented 4 years ago

测试9 5ae9694506 正常

wangqr commented 4 years ago

Bisecting: 4 revisions left to test after this (roughly 2 steps) [3206df50c4] 仍然基于r9141,覆盖这些文件:Aegisub-r9141-wxWidgets-3206df50c4.zip

vxzms commented 4 years ago

测试10 3206df50c4 不正常

wangqr commented 4 years ago

Bisecting: 1 revision left to test after this (roughly 1 step) [b28dd88994] 仍然基于r9141,覆盖这些文件:Aegisub-r9141-wxWidgets-b28dd88994.zip

vxzms commented 4 years ago

测试11 b28dd88994 不正常

wangqr commented 4 years ago

Bisecting: 0 revisions left to test after this (roughly 0 steps) [fad33800dc] 仍然基于r9141,覆盖这些文件:Aegisub-r9141-wxWidgets-fad33800dc.zip

vxzms commented 4 years ago

测试12 fad33800dc 正常

wangqr commented 4 years ago

感谢测试!产生问题的commit是 https://github.com/wxWidgets/wxWidgets/commit/b28dd88994ec144c2235721ef8e1133b3651e790 。我稍后会看一下是Aegisub的问题,还是给wxWidgets报issue

vxzms commented 4 years ago

好的 辛苦您了

wangqr commented 4 years ago

麻烦测试一下这个,仍然是覆盖进r9141:Aegisub-r9141+patch1.zip 指明了OpenGL color buffer bits和OpenGL alpha buffer bits

wangqr commented 4 years ago

另外在您的环境中,wxWidgets自己的OpenGL sample能正常显示吗? wxWidgets-samples-opengl-cube.zip

图片

vxzms commented 4 years ago

patch1 显示正常

wxWidgets OpenGL Cube Sample 显示如下

wangqr commented 4 years ago

稍后会上传r9142的nightly build。它与patch1是完全相同的

vxzms commented 4 years ago

更新下

今天我在通过 Windows 10 的设备管理器更新集成显卡驱动程序后(26.20.100.7324)重新测试了该问题(之前只通过 Intel 官网更新驱动),经测试之前出问题的版本均可正常显示

该问题持续期间,其他软件也不能正常或完整调用 OpenCL 及 OpenGL

推测是在之前卸载 IntelGraphicsControlPanel 的时候导致系统显卡部分功能损坏或 Intel 新版显卡驱动问题