スポンサーリンク
AviUtl2(AviUtl ExEdit2)がリリースされ、試してみようと思ったものの、一部のPCで起動できない問題が発生し原因が分からないとの声があがっており、その中でも数の多い「0x80070057」エラーが手元の一部PCでも発生し、起動することができませんでした。
起動できるPCと起動できないPCがある状況で、その起動できない原因について調べたことを紹介します。
目次
スポンサーリンク
AviUtl2が起動できない「0x80070057」エラー
AviUtl2こと「AviUtl ExEdit2」(現在提供されているのは「テスト版」)のポータブル版(.zip版)をダウンロードし、「aviutl2.exe」を実行して起動しようとしたところ、次のエラーが発生し、起動することができませんでした。
AviUtl ExEdit2: Application Exception
Direct3D.device->CreatePixelShader() failed.
[Note]
HRESULT: 0x80070057
パラメーターが間違っています。
[Place]
Media::PixelShader::loadFromMemory()
何度やり直しても同様でした。
このエラーが発生して起動できなかったのは、比較的古いWindows 10 PCであり、他のWindows 10 PCやWindows 11 PCでは起動することができました。
直前に表示される「D3D ROVs not supported」警告
このエラーが表示されて起動に失敗する直前、もう一つのダイアログが表示されていました。その内容がこちらです。
D3D ROVs not supported.
一部の機能が正しく動作しない可能性があります
こちらでは、「D3D ROVs not supported.」とあり、「D3D ROVsに対応していないため、一部の機能が正しく動作しない可能性がある」という警告です。
原因について調べる
こうした状況でAviUtl2が起動できず、その原因について調べることとしました。
動作環境に「ROV」に関する記述
起動できないエラー自体の「HRESULT: 0x80070057 パラメーターが間違っています」は参考にしにくいため、公式ドキュメントを参考にしてみることにしました。
ここで言う「公式ドキュメント」というのは、ダウンロードした.zipファイルを回答した際に.exeと同梱されていた、「aviutl2.txt」です。
こちらで動作環境を確認しようとしたところ、冒頭で以下の情報が掲載されていることが確認できました。
- 動作環境 -
○Windows10(64bit)以降に対応しています。
○AVX2に対応したCPUが必要です。
○DirectX11.3以上が必要です。
○ROVに対応したGPUが必要です。
※動作確認はWin10+GTX1650な環境で確認しています。
ここでポイントとなったのが、「ROVに対応したGPUが必要です。」との記述です。
エラーの発生前に表示された警告にあった、「D3D ROVs not supported」との関連が疑われます。
ここで「ROV(ROVs)」というのは、Direct3D 11.3 で追加された「ラスタライザー順序付きビュー(Rasterizer Ordered Views)」のことを指すものと思われます。
警告では「not supported(非対応)」と表示されている一方で、動作環境では「ROVに対応したGPUが必要です」とされており、ROVに対応していないGPUを使用していることが、正常に利用できない(起動できない)原因と考えられました。
ROVの対応状況を確認する
そこで、起動できないPCおよび、起動できるPCの「ROV」の対応状況について調べてみることにしました。
そもそも調べる方法自体も難しく、よく利用されるdxdiagでそうした詳しい情報を確認することはできなかったのですが、Microsoft社が提供している開発者向けツールである「DirectX Capabilities Viewer(DirectX Cap Viewer)」を利用して、利用中のGPUが対応している機能を確認することができそうだ、ということが分かりました。
リンク先のGitHubのページにアクセスし、「Tags」から最新版(feb2022)を開き、Assets中の「dxcapsviewer.exe」をそれぞれのPCで起動しました。
かなり詳細な項目が表示され、どこで確認できるのか自体かなり難しかったのですが、まずAviUtl2が起動できるPCで確認してみたところ、「DXGI Devices>NVIDIA GeForce RTX 4060>Direct3D 12>D3D_FEATURE_LEVEL_12_1」のフォルダを開いたところに「Rasterizer Ordered Views」という項目を見つけることができました。
※ChatGPTに教えてもらおうとしたものの、存在しない項目名を案内され、参考にならず、しらみつぶしに探していきました。
そしてその「Rasterizer Ordered Views」の値(Value)は「Yes」となっていました。
AviUtl2を正常に起動できたPCでは、動作環境に指定されている「ROV(Rasterizer Ordered Views)」に対応していた(Yes)、という結果でした。
一方、起動しないPCでも同様に辿っていくと、「DXGI Devices>AMD Radeon HD 7700 Series>Direct3D 12」まで同じようにフォルダを辿っていくことができましたが、その中にある「D3D_FEATURE_LEVEL_○○」という項目は「D3D_FEATURE_LEVEL_11_1」と、先ほどの「12_1」よりも古い番号となる「11_1」となっており、そちらを開くとそこにも「Rasterizer Ordered Views」という項目があったのですが、そちらの値(Value)は先ほどとは異なり、「Optional (No)」となっていました。
ROV非対応が原因か
先ほどの起動できたPCでは「Yes」であったものが、こちらではNo(Optional (No))となっており、動作環境で必要とされていた「ROV」に対応していない、もしくは、動作しない状況であることが分かりました。
現状のドキュメントの記載内容と、エラーダイアログの直前に表示されるダイアログおよびDirectX Caps Viewerの実行内容などから、この「ROV」の対応状況が、起動できない原因と考えられました。
ROV対応PCで使用
そのため、そもそもPC側が対応していない機能(ROV)をAviUtl2が必要としている、ということで、ROVに対応しているPCでAviUtl2を利用することとしました。
今回紹介したエラーでAviUtl2が起動できない、という場合には、他のPC(特に新しいPC)での起動・動作を確認するようにしてみてください。
付録・参考:その他の起動できないエラー
D3D11CreateDevice() failed.
[Note]
HRESULT: 0x887A0004
指定されたデバイスインターフェイスまたは機能レベルがこのシステムでサポートされていません。
[Place]
Media::Direct3Dservice::Direct3DService()
GetPhysicallyInstalledSystemMemory() failed.
[Note]
HRESULT: 0x8007000D
データが無効です。
[Place]
Setting::SettingService::System::System()
failed to register input plugin. [class Plugin::InputPipe32]
CreateProcess() failed.
[Note]
HRESULT: 0x80070002
指定されたファイルが見つかりません。
[Place]
System::PipeProcess::start()
font->GetStringLength() failed.
[Note]
HRESULT: 0x80004005
エラーを特定できません
[Place]
Media::FontManager::registerFont()
failed to register input plugin. [class Plugin::InputPipe32]
load plugin failed.
[Note]
lwinput64.aui
[Place]
Plugin::InputPipe32Process::ControlSection::loadPlugin
device1.As() failed.
[Note]
HRESULT: 0x80004002
unknown error
[Place]
Media::Direct 3DService::Direct3DService()
Direct2DService::Get().factory->CreateDevice() failed.
[Note]
HRESULT: 0x80004001
未実装です。
[Place]
Media::Direct3DService::Direct3DService()
スポンサーリンク
スポンサーリンク