ダウンロード
スポンサーシップ
既知の問題
MSVC パッケージと MinGW パッケージの違い
Minw および MSVC パッケージの内容
OpenGL および OpenGL ES の共通共有ライブラリ
Microsoft CLonD3D12、GLonD3D12、Dozen Vulkan ドライバーおよび D3D12 VA-API の共通依存関係
デスクトップ OpenGL ドライバー
OpenGL オフスクリーン レンダリング ドライバー
OpenGL ES ドライバーと EGL ライブラリ
バルカンドライバー
OpenCL ドライバー、コンパイラー、バックエンド
Direct3D ドライバー、ライブラリ、およびツール
VA-APIドライバー
ライブラリとツールのテスト
開発パッケージ
デバッグパッケージ
Mesa3D を自分で構築する
インストールと使用方法
使用上の注意
Mesa3D をアンインストールする
レガシー ソフトウェアの互換性
OpenGL コンテキスト構成のオーバーライド
環境変数を設定する方法
Visual Studio および MSYS2 Mingw-w64 を使用した Mesa 24.2.6 ビルドがリリース セクションで利用できるようになりました。
mesa-dist-win プロジェクトには、2024 年 11 月 1 日まで延長されたスポンサーシップが与えられました。スポンサーシップは、12 GB RAM、6 スレッド AMD EPYC 7763、および Petrosky の 150 GB NVMe SSD を搭載したビルド マシンとして使用する、フランス ノード上の無料 VPS で構成されています。 @Directox01 のおかげで、仮想プライベート サーバー ホスティング会社が誕生しました。
これは、よく発生するすべての問題と既知の解決策または回避策のリストです。特定のリリースは、そのサブセットによってのみ影響を受けます。
Mesa3D OpenGL ES およびデスクトップ OpenGL ドライバーでのlibgallium_wgl.dll
欠落エラー
この問題は、21.2.x 以前で作成された既存のアプリケーションごとのデプロイメントで、21.3.0 以降に更新するときに発生します。アプリのデプロイメントごとにやり直すだけで修正できます。 Gallium メガドライバーをopengl32.dll
から分離することは非常に侵襲的な変更であり、既存のアプリごとの展開では抵抗できませんでした。影響を受けるプログラムが 32 ビットであるか 64 ビットであるか覚えていない場合は、プログラムの実行可能ファイルが存在するフォルダー内のopengl32.dll
ショートカットを右クリックし、ファイルの場所を開くを選択します。 location が x64 で終わる場合は 64 ビット、それ以外の場合は 32 ビットです。
Mesa3D OpenGL ES でのlibEGL.dll
欠落エラー
この問題は、21.2.x 以前で作成された既存のアプリケーションごとのデプロイメントで、21.3.0 以降に更新するときに発生します。アプリのデプロイメントごとにやり直すだけで修正できます。 EGL サポートは非常に侵襲的な変更であり、既存のアプリごとのデプロイメントでは対抗できませんでした。影響を受けるプログラムが 32 ビットであるか 64 ビットであるか覚えていない場合は、プログラムの実行可能ファイルが存在するフォルダー内のopengl32.dll
ショートカットを右クリックし、ファイルの場所を開くを選択します。 location が x64 で終わる場合は 64 ビット、それ以外の場合は 32 ビットです。
MinGW リリース パッケージの Mesa3D opengl32.dll
でlibvulkan-1.dll
が見つからないというエラーが発生する
Zink ドライバーが MSYS2 MinGW-W64 vulkan-devel パッケージ グループでビルドされた 22.2.0 より前のリリースのみが影響を受けます。 MinGW リリース パッケージからfix-libvulkan-1.dll-missing-error.cmd
実行して修正します。このツールは、 auto
コマンド ライン オプションによる無人実行をサポートしています。このツールは、必要な場合にのみ MinGW リリース パッケージにバンドルされており、それ以外の場合は意図的に欠落しています。 LunarG ではなくこの Vulkan SDK を使用するかどうかは、どちらが新しいローダーとヘッダーに付属しているかに基づいて決定されます。
MSVC と MinGW パッケージの両方の 64 ビット バイナリには、AVX を搭載した CPU が必要ですが、必要ではありません。
これは、Mesa 22.0 以降では問題になりません。この問題は、AVX の使用法が共通コードに漏洩する SWR ドライバーを含む 64 ビット バイナリによって発生します。これは、ここ、ここ、ここで報告された上流のバグです。
MinGW パッケージの Mesa opengl32.dll
21.0.0 以降の Vulkan ランタイムに依存します
この問題は、zink ドライバーの明示的な使用にこの要件を含めることによって 22.2.0 で修正されました。これは、Windows をサポートするために Zink ドライバーにパッチが適用されたときに導入されたアップストリームの回帰です。
21.0.0 以降、Mesa opengl32.dll
使用すると、プログラムが OpenGL サポートがないように動作する場合があります。
これは欠陥ではなく、環境変数が正しく設定されていない場合の Mesa の動作の変更です。これは通常、使用するリリース パッケージに存在しない Mesa ドライバーを選択した場合、またはホスト システムがハードウェア要件を満たしていない、または依存関係が不足しているために初期化に失敗した場合に発生します。 MSVC と MinGW パッケージの違い、および Mingw と MSVC パッケージの内容を読むと、トラブルシューティングに役立ちます。
libglapi.dll
欠落に関連するエラーに関する重要な注意事項
この問題は、アプリごとの展開ツールを介して Mesa3D デスクトップ OpenGL ドライバーを使用するプログラムで発生する可能性がありますが、システム全体の展開には影響しません。共有 glapi サポートが導入される前にアプリごとのデプロイメントが行われた場合、このような問題が発生する可能性があります。共有 glapi は、20.0.2 以降、MSVC パッケージと MinGW パッケージの両方で一貫して利用可能です。
原因に関係なくこれらのエラーを修正するには、再デプロイする必要があります。影響を受けるプログラムが 32 ビットであるか 64 ビットであるか覚えていない場合は、プログラムの実行可能ファイルが存在するフォルダー内のopengl32.dll
ショートカットを右クリックし、ファイルの場所を開くを選択します。 location が x64 で終わる場合は 64 ビット、それ以外の場合は 32 ビットです。
17.3.5.501-1 以前からアップグレードする場合、同じ解決策による同じ問題が osmesa に当てはまります。
MinGW パッケージには SSSE3 を搭載した CPU が必要ですが、ソフトウェア レンダリング ドライバーにより 3 ~ 5% のパフォーマンス向上が得られます。
21.2.0 で導入された d3d10sw は、MSVC パッケージでのみ使用できます。
Mingw から MSVC バイナリに移行する必要がある場合は、Mingw パッケージの Mesa バイナリ フォルダを対応する MSVC に置き換えるだけです。
次の Mesa3D ドライバーとビルド アーティファクトが各リリースに同梱されています。
GLAPI 共有ライブラリ。ファイル名: libglapi.dll
。 OpenGL と OpenGL ES の両方のサポートを提供する場合は、その存在が必要です。 Mesa3D オフスクリーン レンダラーと、すべての Mesa3D OpenGL ドライバーおよび OpenGL ES ドライバー (存在する場合) はこれに依存します。 20.0.2 以降、MSVC と MSYS2 Mingw-w64 パッケージの両方で利用できます。
ガリウム OpenGL メガドライバー。ファイル名: libgallium_wgl.dll
。存在する場合、 opengl32.dll
の代わりにすべての Mesa3D デスクトップ OpenGL ドライバーが含まれています。 21.3.0 でデビューしました。 Mesa3D EGL ライブラリと OpenGL ES ドライバーは、存在する場合はそれに依存します。
Mesa3D WGL ランタイム。ファイル名: opengl32.dll
。これには、以前はすべての Mesa3D デスクトップ OpenGL ドライバーが含まれており、OpenGL ES はこれに依存していましたが、21.3.0 以降はガリウム OpenGL メガドライバーのローダーのみに縮小されたため、アプリケーションごとの展開を介して Mesa3D デスクトップ OpenGL ドライバーを使用するプログラムのみがこれに依存します。今。
再配布用の DirectX IL。ファイル名: dxil.dll
。このバイナリ再頒布可能ファイルは、Windows SDK および DirectX Shader Compiler で提供され、リリース プロセス中にパッケージ化されます。必要に応じて、展開ツールによってインストールされます。
llvmパイプ。 llvmpipe は、ハードウェア アクセラレーションが不可能な場合のフォールバックを目的としたデスクトップ OpenGL ソフトウェア レンダラーです。優れたパフォーマンスを備えた非常に軽いゲームのみを処理できます。これは、GLonD3D12 が利用できないか、ロードに失敗した場合のデフォルトの Mesa3D デスクトップ OpenGL ドライバーです。 Mesa3D デスクトップ OpenGL バンドルopengl32.dll
またはlibgallium_wgl.dll
後者が利用可能な場合) の一部として、x86 と x64 の両方で利用できます。デフォルトのドライバーではない場合は、環境変数GALLIUM_DRIVER=llvmpipe
を設定してドライバーを選択します。
Softpipe は、ゲームのパフォーマンスには重点を置いていない、デスクトップ OpenGL ソフトウェア レンダラーのリファレンス実装です。 Mesa3D デスクトップ OpenGL バンドルopengl32.dll
またはlibgallium_wgl.dll
後者が利用可能な場合) の一部として、x86 と x64 の両方で利用できます。環境変数GALLIUM_DRIVER=softpipe
を設定してこれを選択します。
GLonD3D12。 MSVC パッケージでは x86 と x64 の両方で利用可能で、22.2.0 以降は MinGW パッケージで利用可能です。また、Mesa3D デスクトップ OpenGL バンドルの一部であるopengl32.dll
またはlibgallium_wgl.dll
後者が利用可能な場合) および 22.3.0 以前ではスタンドアロンopenglon12.dll
として利用できます。同じように。公式には Windows 10 v10.0.19041.488 以降が必要であることに加えて、再配布 - dxil.dll
の読み込みに DirectX IL にも依存します。dxil.dll は展開ツール経由でインストールできます。利用可能でロードできる場合、これは D3D12 GPU アクセラレーション システム上のデフォルトの Mesa3D デスクトップ OpenGL ドライバーです。 21.0.0 で導入されたこのドライバーは、D3D12 API 呼び出しを返すラッパーとして動作します。この性質により、GPU アクセラレーションを使用できます。デフォルトで選択されていない場合はGALLIUM_DRIVER=d3d12
およびLIBGL_ALWAYS_SOFTWARE=1
環境変数を設定することで、Windows に組み込まれている Direct3D WARP ソフトウェア レンダラーを使用してテストできます。スタンドアロン コピーでは、 GALLIUM_DRIVER=d3d12
を設定する必要はなく、システム全体の展開ツールを介してのみインストールできます。スタンドアロンの GLonD3D12 および Mesa3D デスクトップ OpenGL バンドルは、システム全体の展開ツールを使用するときに相互に置き換えられますが、いつでも元に戻すことができます。
ジンク。このドライバーは、21.0.0 の MinGW パッケージと 21.2.0 の MSVC パッケージで導入され、Mesa3D デスクトップ OpenGL バンドルopengl32.dll
またはlibgallium_wgl.dll
後者が利用可能な場合) の一部として x86 と x64 の両方で利用できます。 GLonD3D12 と同様に、Vulkan API 呼び出しを返すラッパーとして動作します。この性質のため、デフォルトで GPU アクセラレーションが使用されますが、ソフトウェア レンダリングもサポートしています。 GALLIUM_DRIVER=zink
環境変数を介して選択しますが、初期化には少なくとも 1 つの Vulkan デバイスと Vulkan ローダー/ランタイムが必要であることに注意してください。 zink は、22.1.0 までデフォルトで Vulkan CPU タイプのデバイスを無視しました。現在では、より優先度の高い Vulkan タイプのデバイスが存在しない場合、Vulkan CPU タイプのデバイスが自動的に選択される優先システムが使用されています。 Vulkan CPU タイプのデバイスで Zink をテストするには、 LIBGL_ALWAYS_SOFTWARE=1
(Mesa 22.1.0 以降) またはZINK_USE_LAVAPIPE=true
(Mesa 22.1.0 で非推奨) を設定することによってのみ実行できます。
swr.このドライバーは Mesa 22.0 以降では使用できなくなりました。ファイル名: swrAVX.dll
、 swrAVX2.dll
、 swrSKX.dll
、 swrKNL.dll
。 Mesa3D デスクトップ OpenGL バンドルのopengl32.dll
またはlibgallium_wgl.dll
後者が利用可能な場合) の外部に存在しますが、それでも依存します。 Intel が開発したこの代替デスクトップ OpenGL ソフトウェア レンダリング ドライバーは、視覚化ソフトウェア用に最適化されています。 MSVC パッケージで利用可能であり、20.1.7 以降は MinGW パッケージでも利用できます。 x64 のみをサポートしており、x86 は正式にはサポートされていません。現在 4 つの DLL があり、ユーザー CPU が実行できる内容に基づいて 1 つだけがロードされます。 GALLIUM_DRIVER 環境変数の値を swr に設定すると、swr に切り替えることができます。
オスメサ。ファイル名: osmesa.dll
。 x86 と x64 の両方で使用できます。このドライバーは、特別な場合に、ウィンドウ システムやオペレーティング システムに依存せずに Mesa コードを使用してレンダリングするように設計されたソフトウェアによって使用されます。 21.0.0 以降はオスメサ ガリウムのみが残りました。 OpenGL 3.x 以降をサポートします。 20.0.2 以降、osmesa とスタンドアロン GLLES ドライバーの統合は、プロセスでlibglapi.dll
必要とする MSVC パッケージと MSYS2 Mingw-w64 パッケージの両方で利用できます。
EGLライブラリ。ファイル名: libEGL.dll
。 OpenGL ES ドライバーによって使用される Mesa3D EGL ライブラリ。これは 21.3.0 でデビューし、MSVC パッケージと MSYS2 パッケージの両方で 32 ビットおよび 64 ビット アプリケーションで利用できます。デスクトップ OpenGL バンドルのopengl32.dll
またはlibgallium_wgl.dll
(後者が利用可能な場合) に依存します。
OpenGL ES スタンドアロン ドライバー。ファイル名: libGLESv1_CM.dll
およびlibGLESv2.dll
。 32 ビットおよび 64 ビット アプリケーションで使用できる OpenGL ES 1.x、2.x、および 3.x スタンドアロン ドライバー。 20.0.2 以降、MSVC パッケージと MSYS2 Mingw-w64 パッケージの両方で利用できます。これらは、利用可能な場合は Mesa3D EGL ライブラリに依存し、利用可能な場合はデスクトップ OpenGL バンドルのopengl32.dll
またはlibgallium_wgl.dll
に依存します。
lavapipe Vulkan CPU ドライバーは、21.1.0 以降、MSVC パッケージと MinGW パッケージの両方で利用可能です。ファイル名: lvp_icd.x86_64.json
、 lvp_icd.x86.json
、 vulkan_lvp.dll
。一部のプログラムは、Vulkan CPU タイプのデバイスを意図的に無視する場合があることに注意してください。導入方法については、使用上の注意を参照してください。
Microsoft の 12 ダースの Vulkan ドライバーは、MSVC パッケージでは 22.1.0 以降、MinGW パッケージでは 22.2.0 以降で利用可能です。このドライバーは機能するために D3D12 API に依存しており、サポートされているシステムでは GPU アクセラレーションを使用できます。ファイル名: dzn_icd.x86_64.json
、 dzn_icd.x86.json
、 vulkan_dzn.dll
。導入方法については、使用上の注意を参照してください。
AMD グラフィックス用の Vulkan ドライバー (radv) は、@zmike の提案に従って 22.1.0 以降、すぐに動作しなくなるため利用できなくなりました。 RADV は、21.2.0 以降、MSVC パッケージと MinGW パッケージの両方で利用可能になりました。その 32 ビット バイナリは Mesa 22.0 以降で利用可能でした。ファイル名: radeon_icd.x86_64.json
、 radeon_icd.x86.json
、 libvulkan_radeon.dll
、およびvulkan_radeon.dll
。導入方法については、使用上の注意を参照してください。
Microsoft OpenCL スタック。ファイル名: clon12compiler.dll
(コンパイラー)、 openclon12.dll
(ICD)、およびWinPixEventRuntime.dll
(x64 のみの依存関係)。 21.0.0 で導入されたこれらのコンポーネントは、それぞれ 21.3.0 (コンパイラのみ) および 21.3.6-2 以降、最終的に mesa-dist-win によって提供されます。 CLonD3D12 ドライバーは OpenCL ICD として利用できます。導入方法については、使用上の注意を参照してください。 CLonD3D12 は正式には Windows 10 v10.0.19041.488 以降を必要とし、再配布には DirectX IL に依存します ( dxil.dll
のロード)。これは展開ツール経由でインストールできます。 CLonD3D12 は、D3D12 API 呼び出しを返すラッパーとして動作します。この性質により、利用可能な場合は D3D12 GPU アクセラレーションを使用できます。それ以外の場合は、Windows 組み込みの WARP ソフトウェア レンダリングが使用されます。 WARP を使用する場合、CLonD3D12 は CL_DEVICE_TYPE_GPU をアドバタイズしていましたが、23.0.0 では CL_DEVICE_TYPE_CPU に変更されました。microsoft/OpenCLOn12#19 を参照してください。一部のプログラムは、CL_DEVICE_TYPE_CPU が意図的に設定されているドライバーを無視します。 Mesa 24.0.3 以降では、 CLON12_WARP_IS_HARDWARE
環境変数値を 1 に設定することで、23.0.0 より前の古い動作を復元できます。
clover OpenCL スタックは現在使用できないため、Windows サポートが完了するまで 22.1.1 のリリース パッケージから削除されました。ファイル名: MesaOpenCL.dll
(ICD)、 OpenCL.dll
(スタンドアロン ランタイム)、およびpipe_swrast.dll
(パイプ ローダー)。ランタイムは、21.3.7 以降のアプリごとのデプロイメント ツールを使用して、またはそれが依存するすべての利用可能なパイプ ローダーとともにコピー&ペーストすることで古いバージョンにデプロイできます。導入中、ランタイムはシステム上に存在する他のすべての OpenCL ICD を非表示にし、ソフトウェアが Mesa3D クローバーを唯一の OpenCL ドライバーとして使用できるようにします。 ICD の展開方法については、使用上の注意を参照してください。
D3D10 ソフトウェア レンダラは、21.2.0 以降の MSVC パッケージで利用可能です。ファイル名: d3d10sw.dll
。これは Microsoft WARP のドロップイン代替品であり、残念ながら、これを導入するクリーンな方法はありません。
SPIR-V から DXIL へのツールとライブラリは、21.0.0 以降の MSVC パッケージで利用可能であり、22.2.0 以降の MinGW パッケージでも同様に利用できます。ファイル名: libspirv_to_dxil.dll
、 spirv_to_dxil.dll
、およびspirv2dxil.exe
。
VA-API D3D12 ドライバー。ファイル名: vaon12_drv_video.dll
。このドライバーは 22.3.0 で利用可能になりました。 GLonD3D12、CLonD3D12、および 12 と同様に、これは Direct3D 12 API 上で実行される階層化ドライバーであるため、利用可能な場合は GPU アクセラレーションを使用できます。導入手順は Microsoft によって文書化されています。このプロセスを支援するために、アプリケーションごとの展開ツールが更新されました。
ガリウム生インターフェース。この非推奨のコンポーネントは Mesa3D 22.3.0 で削除されました。ファイル名: graw.dll
、 graw_null.dll
。これは、主にテストに使用されるグラフィックス API を持たないダミーのガリウム ドライバーです。 x86 と x64 の両方で、フル (ウィンドウ システム サポートあり) バージョンとヘッドレス (ウィンドウなし) バージョンが利用可能です。 20.0.2 以降、ウィンドウ付きバージョンとウィンドウなしバージョンの両方が MSVC パッケージと MSYS2 Mingw-w64 パッケージの両方で利用可能です。
テストスイート。多数の実行可能な単体テスト。
32 ビットと 64 ビットの両方のビルドのヘッダーとライブラリは、開発パックと呼ばれる別のアーカイブにあります。
22.2.0 以降では、PDB 形式のデバッグ シンボルを含む MSVC デバッグ情報パッケージと、MinGW アサート対応のデバッグ最適化ビルド パッケージが利用可能です。 MinGW デバッグ バイナリは、リリース版のドロップイン代替品として使用できます。アプリケーションごとのデプロイメントを使用するソフトウェアの場合、これはシームレスであるはずですが、システム全体のデプロイメントの場合、リリース ビルドからデバッグ ビルドへ、またはその逆に切り替えるには再デプロイメントが必要です。 MinGW デバッグの詳細については、debug/mingw-start-debugging.sh を参照してください。
私のビルドを複製したい場合は、ビルド手順をここから入手できます。
まず、Mingw パッケージと MSVC パッケージのどちらかを選択します。詳細については、「MSVC パッケージと MinGW パッケージの違い」セクションを参照してください。リリース パッケージを抽出する前に、Mesa を使用するプログラムが実行されている場合はすべて閉じます。解凍後、2 つの展開オプションにアクセスできるようになります。どちらも Mesa をインストールしたディレクトリにあります。どちらの展開ユーティリティにも最初からやり直しのメカニズムがあるため、必要なすべての展開を 1 つのセッションで行うことができます。導入ツールは、Mesa3D の OpenGL および OpenGL ES コンポーネントと OpenCL clover スタンドアロンのみをサポートします。
システム全体の展開ツール。クラウド環境の仮想マシンなど、ハードウェア アクセラレーションによる OpenGL サポートが不足しているシステムを対象としていますが、任意の Windows システムで使用して、インボックス ソフトウェア レンダリング OpenGL 1.1 ドライバーを置き換えることもできます。RDP 接続など、ハードウェア アクセラレーションによる OpenGL が利用できないユースケース向けに OpenGL サポートを拡張します。 。 Windows を実行している Virtualbox VM には潜在的な問題があるため、システム全体の導入ツールを使用して Mesa3D デスクトップ OpenGL ドライバーが VM 内にインストールされている場合は、そのような VM で 3D アクセラレーションを無効にすることをお勧めします (#9 を参照)。
アプリケーションごとの展開ツール。ハードウェア アクセラレーションによる OpenGL サポートの有無に関係なく、単一プログラムの Mesa3D を展開するために使用されます。アプリごとの展開ユーティリティの変更は永続的であり、アップグレードや再インストール後も維持されます。アプリごとの展開ユーティリティを使用すると、ストレージの節約に役立ち、使用するようにオプトインした Mesa ドライバーへのシンボリック リンクを作成するため、Mesa インストール ディレクトリから DLL を手動でコピーする必要がなくなるため、作業が簡単になります。この動作により、Mesa を使用するすべてのプログラムが同じ最新バージョンを使用するようになります。アプリごとのデプロイメント ユーティリティは、アプリが 64 ビットまたは32 ビットと必要なドライバー。 32 ビット アプリケーションは、実行中にタスク マネージャーで名前がマークされます。ほとんどのアプリケーションは GPU の機能に関係なく Mesa を使用しますが、一部のアプリケーションは、システム ディレクトリからのみ OpenGL をロードできるほど賢い場合があります。アプリケーションのファイル名を指定すると、アプリケーションが Mesa3D を使用したくないときに強制的に使用するように、.local ファイルが生成されます。また、Federico Dossena の Mesainjector を使用してこの問題を回避することもできます。 Mesainjector のビルド手順。
200x 初期以降の古いアプリケーションでは、MESA_EXTENSION_MAX_YEAR 環境変数セットが必要になる場合があります。レガシー ソフトウェアの互換性セクションを参照してください。
OpenGL 3.2 以降を必要とするアプリケーションでは、OpenGL コンテキスト構成のオーバーライドが必要になる場合があります。
OpenGL コンテキスト構成のオーバーライド、他のドライバーへの切り替え、古いアプリケーションの互換性に関する例は、ここで入手できます。
公式 Mesa3D ドキュメントはここから入手できます。
OpenCL ICD の展開は、ICD ファイルをシステム OpenCL ランタイム (たとえば、 Windowssystem32
のopencl.dll
) に登録することによって行われます。システム OpenCL ランタイムがない場合は、Intel OpenCL CPU ランタイムをインストールすることで入手できます。 AMD CPUでも同様に動作します。
Vulkan ドライバーのデプロイは、ICD 検出メソッドを使用して Vulkan ランタイムを通じて行われます。 Vulkan ランタイムは Vulkan をサポートするグラフィックス ドライバーにバンドルされているため、手動でインストールする必要がない場合があることに注意してください。
システム全体の展開を実行し、可能な場合はアンインストール操作を実行してから終了します。
Everything ツールをダウンロードして実行します (どのフレーバーでも機能するはずです)。
アプリケーションごとの展開ツールを実行し、実行したままにします。
Everything ツールのメニューの下のテキスト フィールドにlibgallium_wgl.dll attrib:L
と入力し、Everything ツールを実行したままにします。
Everything ツールの各検索結果について:
Windows エクスプローラーで [パスを開く] または [ファイルの場所を開く] コンテキスト メニュー オプションを使用してその場所を開きます。
*.local ファイルを見つけて削除します。ただし、その場所への展開中にファイル名を指定したことが確実な場合に限ります。
アドレスバーから場所をコピーし、それをアプリケーション展開ツールごとにフィードします。
追加のデプロイメントを要求されるまで、すべてのデプロイメントに対して「いいえ」を送信し、そこで「はい」を送信します。
libgallium_wgl.dll の場合と同じ方法で、それぞれ osmesa.dll および graw.dll ファイル名を使用してステップ 4 と 5 を繰り返します。
アプリケーションごとの展開とすべてのツールを閉じます。
Mesa3D Vulkan ドライバーのいずれかを使用するように Vulkan ランタイムを構成するレジストリの変更と環境変数をすべて元に戻します。どのような変更を元に戻さなければならないかについては、使用上の注意を参照してください。
OpenCL を除き、手順 8 を繰り返します。
警告: アプリケーション展開ツールごとに特定のファイルが上書きされたプログラムは、再インストール/修復が必要になる場合があります。 22.0.0 以降、アプリケーションごとの展開ツールがこの展開シナリオを検出し、警告します。
200x 初期以降の古いアプリケーションでは、バッファ オーバーフローを回避するために MESA_EXTENSION_MAX_YEAR 環境変数を設定する必要がある場合があります。値として年番号が必要で、最も一般的に使用されるのは 2001 です。 Mesa3D 拡張機能リストは年でソートされているため、Mesa3D によって返される拡張機能リストを、提供された年までにリリースされた拡張機能 (提供された年を含む) にトリミングします。
例: set MESA_EXTENSION_MAX_YEAR=2001
。環境変数の設定方法を参照してください。
OpenGL 3.1 のリリースでは、OpenGL 3.0 で非推奨としてマークされた多くの機能が削除され、OpenGL 3.2 のリリース以降、この OpenGL 仕様ブランチは OpenGL コア プロファイルとして知られています。また、OpenGL 3.3 では、前方互換性コンテキストとして知られる OpenGL 仕様の新しいブランチが導入され、OpenGL 3.1 では削除されなかった OpenGL 3.0 の非推奨の機能が削除されました。ほとんどの独自ドライバーは、OpenGL 3.1 の GL_ARB_compatibility 拡張機能および OpenGL 3.2 以降の互換性コンテキストの形式で提供されるこれらの変更からの除外を実装しました。複雑さ、特に GL_ARB_compatibility と互換性コンテキストの適切な実装テストが不足しているため、Mesa3D 開発者は、Mesa 18.1 で GL_ARB_compatibility サポートが導入され、その後 Mesa 21.3 で llvmpipe の互換性コンテキストのサポートが OpenGL 4.5 に追加されるまで、この分野の作業を遅らせることを選択しました。結論として、OpenGL 互換性コンテキストを要求するプログラムは、Mesa 18.0 の場合は OpenGL 3.0、Mesa 18.1 の場合は 3.1、Mesa 21.3 以降の場合は 4.5 を超えることはありません。残念ながら、この種のプログラムは Windows 上で蔓延しており、開発者はコア プロファイルに必要なコンテキスト フラグの使用を避ける傾向があります。幸いなことに、Mesa3D は、要求された OpenGL コンテキストをオーバーライドするメカニズムを提供します。 OpenGL コンテキスト構成をオーバーライドする環境変数が 2 つあります。
MESA_GL_VERSION_OVERRIDE
OpenGL コンテキストのバージョンとタイプを指定するために使用されます。次の形式の値が必要です
OpenGLMajorVersion.OpenGLMinorVersion{FC|COMPAT]。
FC は、前方互換性のあるコンテキストを意味します。 COMPAT は、OpenGL 3.2 以降の互換性コンテキストと、OpenGL 3.1 で有効になっている GL_ARB_compatibility を意味します。バージョン番号の後に文字列がない場合は、指定された OpenGL バージョンの Mesa3D デフォルト コンテキスト タイプを意味します。これは、OpenGL 3.0 で有効になっている非推奨の機能、Mesa 18.1 以降の OpenGL 3.1 で有効になっている GL_ARB_compatibility、および OpenGL 3.2 以降のコア プロファイルです。例: 3.3FC は OpenGL 3.3 前方互換性コンテキストを意味し、3.1COMPAT は GL_ARB_compatibility を備えた OpenGL 3.1 を意味し、3.2 は OpenGL 3.2 コア プロファイルを意味します。 llvmpipe ドライバーのデフォルト値は、Mesa>=21.3 の場合は 4.5COMPAT、Mesa>=18.1 の場合は 3.1COMPAT、Mesa<=18.0 の場合は 3.0COMPAT です。
この変数によって提供される非常に重要な機能は、不完全な OpenGL コンテキストを構成できることです。プログラムは、使用中の Mesa3D ドライバーから完全なものとして、Khronos 認定を備えた最高の OpenGL コンテキストまでしか要求できません。現在、llvmpipe はすべての OpenGL プロファイルで OpenGL 4.5 に対して認定されています。現在、swr と GLonD3D12 は、コア プロファイル/前方互換性コンテキストで OpenGL 3.3、互換性プロファイルで 3.1 に対して認定されています。 zink OpenGL のサポートは、基礎となる Vulkan ドライバーに依存します。 Mesa 17.3 以降、OpenGL 4.6 用の値が認識されます。
MESA_GLSL_VERSION_OVERRIDE
シェーディング言語のバージョンを指定するために使用されます。サポートされる値は、整数に変換されたバージョン番号です: 110、120、130、140。150、330、400、410、420、430、440、450、および 460。値 460 は Mesa 17.3 以降でのみ認識されます。たとえば、値 130 は GLSL 1.30 に一致します。クラッシュや不具合を引き起こす可能性のあるプログラムの混乱を避けるために、OpenGL コンテキストとシェーディング言語のバージョンを常に同期しておくことをお勧めします。これは、ほとんどのアプリケーションが OpenGL と GLSL のバージョンを同期させる独自のドライバーの動作に依存しているために発生する可能性があります。 OpenGL - GLSL 相関表は次のとおりです。 llvmpipe のデフォルト値: MESA_GL_VERSION_OVERRIDE が未定義の場合、またはコア プロファイルと一致する場合、Mesa 21.3 の場合は 450、Mesa 18.1 の場合は 140、Mesa 18.0 の場合は 130。
Windows で環境変数を設定する最も簡単な方法は、バッチ ファイルを作成することです。おそらくそうする必要があるでしょう:
選択した Mesa3D ドライバーによってデフォルトで公開されているバージョンよりも高い OpenGL および GLSL バージョンを必要とするすべてのアプリケーション。
デスクトップ OpenGL 用のデフォルト以外のドライバーを選択する場合。
古いプログラムの互換性のために拡張子のリストをトリミングする必要がある場合。
メモ帳を開いてバッチ スクリプトを作成するだけです。保存するときは、ファイル名の末尾を .bat または .cmd にし、保存の種類をすべてのファイルに変更し、保存場所をアプリケーションの実行可能ファイルが存在する場所に変更します。バッチ スクリプトに関するある程度のスキルがある場合は、rpcs3 と GPU Caps Viewer の例に示すように、CD コマンドを使用してスクリプトの実行中に現在のディレクトリを変更し、スクリプトを任意の場所に保存できる可能性が広がります。 Mesa で使用されるほとんどの環境変数のドキュメントは、ここから入手できます。完全な例はここから入手できます。
同じバッチ スクリプトに複数の環境変数を設定して、Mesa3D が提供する機能を組み合わせることができます。