【问题标题】:how to fix Screen('OpenMovie'.. leading to Matlab crash如何修复屏幕('OpenMovie'.. 导致 Matlab 崩溃
【发布时间】:2014-10-28 15:18:20
【问题描述】:

设置:Matlab Student 2014、Psychtoolbox 3.0.12、GStreamer 1.4.3、ATI Radeon 69xx,全部在 Windows 7 上,全部为 64 位。

屏幕使用不同的参数,仅在Screen('OpenMovie' 整个程序 (Matlab) 崩溃 - 有时出现错误(无法同步帧速率),有时根本没有错误。

我知道它非常具体,并且我认为它在我的配置中(代码将在不同的系统(实验室)上运行)。

到目前为止我已经尝试过:

  • Psychtoolbox 3.0.11、GStreamer SDK、GStreamer 1.4.1
  • 更新的 ATI 驱动程序(完整的催化剂控制中心,..)
  • 删除了多显示器设置(使调试变得更加困难..)
  • Matlab 本身可以工作,GStreamer 也可以(尝试使用 playbin 播放电影)
  • 任何 SyncTrouble 状态:等待垂直同步,三重缓冲关闭
  • 覆盖同步测试或完全跳过(也会崩溃)
  • 寻找丢失的 dll(对于 Screen.mexw64)
  • VBLSyncTest 和 PerceptualVBLSyncTest 看起来很好并且有结果(对我来说)

它必须是非常简单或非常具体的东西 - 我不知何故没有想法。我的猜测是 Radeon 垂直同步设置不起作用 - 出于什么原因。

任何猜测,提示都是赞赏的。 (甚至在 Matlab/Psychtoolbox 中测试屏幕或垂直同步的其他方法)

【问题讨论】:

  • 也许要删除,因为非常具体,也许(?)无法用代码解决,而且我因浪费时间而感到愤怒!

标签: matlab visualization gstreamer ati psychtoolbox


【解决方案1】:

经过数小时的搜索,我想我找到了解决方案 - 哦 Windows! (哦,简单的一行代码)

Screen('Preference', 'ConserveVRAM', 4096);

4096 == kPsychUseBeampositionQueryWorkaround 告诉 PTB 始终使用解决方法来处理中断的波束位置查询 MS-Windows 上的 VBL,即使自动启动测试没有检测到任何 问题。这适用于测试无法检测到损坏的极少数情况 设置。 [Psychtoolbox Docs]

我会在一些 Videocache 操作后重新检查并重新启动。


编辑: 好吧,那只工作了一次,第二次随机工作 - 似乎 ATI Radeon 驱动程序的行为不太确定 - 我还在 Linux(Ubuntu 14.04.1)上进行了检查。具体来说,VSync 速率的行为似乎有些奇怪。

不过,它通常可以在具有开源 radeon 驱动程序(而不是 fglrx 驱动程序)的特定 Linux 上运行。 -> 该 Linux 系统上的问题:它只能配置为一个屏幕(两个监视器设置对于在一个屏幕上进行调试会很好)。 (是的,我尝试过:Unity、Gnome、Xmonad、Gnome+Xmonad - 但我想那是另一回事了)

好吧,我写的够多了,我的解决方案:使用 Linux 发行版(虽然很不满意,因为我无法完成所有工作)。

【讨论】:

  • 重启matlab,它又崩溃了。为什么,为什么! (我所做的只是尝试了一些ConserveVRAM 选项)
猜你喜欢
  • 2015-12-05
  • 2019-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
相关资源
最近更新 更多