TVTestの64bitビルドでVisualStudio2019(VS2019)を使い、古いCPU(Ivy Bridge:i7-3770T)でうまく動かない(エラーが出る)場合の最適化設定。

※2021/04: VS2019最新版ではうまくビルドできるようですヽ(*^。^*)ノ

第2回的な感じですが。前回と合わせて補足的な感じで。
Spectreの緩和対策オプションを有効にしてみたのでついでにオプションを調べてみた。

うまく動かない場合の症状:

A・TVTest自体が起動しない。
次のいずれかの理由によりファイル にアクセスできません: ネットワーク接続、このファイルの保存先ディスク、またはこのコンピューターにインストールされている記憶域 ドライバーに問題があります。または、ディスクが見つかりません。 このエラーによりプログラム TVTest は終了しました。

プログラム: TVTest
ファイル:

エラー値は [追加データ] セクションに一覧表示されます。
ユーザー操作
1. このファイルをもう一度開きます。 この状況は、プログラムを再実行するときに修復される一時的な問題である可能性があります。
2. このファイルにまだアクセスできず、
ファイルがネットワーク上にある場合は、 ネットワーク管理者がネットワークに問題がないこと、およびサーバーにアクセスできることを検証する必要があります。
– ファイルが、フロッピー ディスクや CD-ROM などのリムーバブル ディスクにある場合は、ディスクがコンピューターに完全に挿入されていることを確認します。
3. CHKDSK を実行してファイル システムをチェックおよび修復します。CHKDSK を実行するには、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックし、「CMD」と入力して、[OK] をクリックします。コマンド プロンプトで「CHKDSK /F」と入力してから、Enter キーを押します。
4. 問題が解決しない場合は、バックアップ コピーからファイルを復元します。
5. 同じディスク上の他のファイルが開くかどうかを確認します。開かない場合は、そのディスクが壊れている可能性があります。ハード ディスクの場合は、管理者またはコンピューター ハードウェア ベンダーに連絡して サポートを受けます。

B・視聴中にチャンネル変更をしようとして落ちる場合。
障害が発生しているアプリケーション名: TVTest.exe、バージョン: 0.10.0.0、タイム スタンプ: 0x5cbb0053
障害が発生しているモジュール名: TVTest_Image.dll、バージョン: 0.0.0.0、タイム スタンプ: 0x5cbb00ad
例外コード: 0xc000041d
障害オフセット: 0x0000000000028a06
障害が発生しているプロセス ID: 0x23f8
障害が発生しているアプリケーションの開始時刻: 0x01d4f76b39f79f9f
障害が発生しているアプリケーション パス: C:\TVTest\TVTest.exe
障害が発生しているモジュール パス: C:\TVTest\TVTest_Image.dll

パターンBのスクショ。(使ってないプラグインでも何か起きてるかも^^;)

第2世代のSandy BridgeマイクロアーキテクチャからAVXの導入が始まり、第3世代のIvy Bridgeマイクロアーキテクチャでももちろんサポートされているバグ取り終わって安定期のはずなんですが…
VisualStudio2019のコンパイラはうまく判断できていないような感じですね。

「うちの環境の場合AVXが悪さをしている(^◇^;」

◆ パターンAのTVTest落ちる場合の設定。AVX使わず配布設定のままビルドすればすんなり動きます。
どうしてもAVX使いたいんだよ!っていうう場合。



インライン展開の設定が重要。

◆パターンBの場合で、AVXを使わず魔改造手前の最適化する場合



◆パターンBの場合で、AVXを使いたいんだよっていい場合の設定。最適化をあきらめましょ。
おーるおあなっしんぐってやつです。うまい設定はあるんでしょうけれども、演算の使用頻度考えたら動けばなんでもいいところ。



おま環対処です。(Skylake:i7-6700ではチューナーのない再生テストのみです=ロゴを読んでいない)
ほかの環境で同じ動作を保証するものではありません