« DirectSoundの廃止とWASAPIへの移行を検討 | メイン | 32コア問題をソースコードレベルで少し追う »

2017年10月13日

吉里吉里Z 開発:: 論理コア数32以上のCPUで動画再生時エラーが出る問題

    

実際に何個以上からエラーとなるのかは不明だが、少なくとも32コア(16コア/32スレッド)のCPUでは発生する様子。
Ryzen Threadripper 1950X と Opteron 6376 x 2 の環境で確認されている。
IMediaControl::Run や IMediaControl::Pause で 0x80004005 が返され、動画再生に失敗している。
エラーコード 0x80004005 は特定できないエラーが発生。

DirectShow 自体が論理コア数32以上に対応していないか、自前のフィルタ内部で何か問題のある実装をしてしまっている可能性がある。
現在貰ったり見たりしたエラーログからは、これ以上の追求は難しそう。
Ryzen Threadripper 1950X マシンが必要か……

このエラーは吉里吉里2/Z固有の問題ではない(他のエンジンでも発生)ようなので、DirectShow がだいぶ疑わしい。
動画以外のところで発生しているように見えるエンジンもある。
上手くやらないとProcessor affinity周りで問題が起きそうではある。
吉里吉里2/Zでも論理コア数が33以上で32bit版だと動画以外でも落ちる可能性はあるが、それはそもそもAPIレベルでどうしようもない気がする。

vomMFEVR モードを使用して、動画を再生すれば回避できるのではないかと思われる。

----
追記
詳しいログをもらったのでリンクを貼っておく。
エラーログ
このログだとe-moteで問題が発生しているように見える?
エモーションレイアウト調整ファイルと言うのが何かわからないけど、間接的に動画読んでいるファイルなのだろうか?

追記2
ログを追加してもらった。
原因がわからなくなってきた。
再現環境が必要そう。


投稿者 Takenori : 2017年10月13日 21:54




comments powered by Disqus
Total : Today : Yesterday : なかのひと