3

AMD は OpenGL 仕様に非常に厳密に従っていますが、nVidia は仕様に従わなくても動作することがよくあります。一例として、nVidia はglDrawElementsCPU メモリ上で要素のインデックス ( で使用) をサポートしていますが、AMD は要素配列バッファからの要素インデックスのみをサポートしています。

私の質問は: nVidia ドライバーを使用して厳密な OpenGL 動作を強制する方法はありますか? 現在、Windows/OpenGL 3.2/FreeGlut/GLEW セットアップのソリューションに興味があります。

編集: ドライバー自体に厳密な動作を強制することができない場合 - 厳密な動作を保証する OpenGL プロキシ (GLIntercept など) はありますか?

4

2 に答える 2

4

仕様を厳密に実施するベンダーはありません。AMD、nVidia、Intel、PowerVR など、すべてに特異性があり、悲しいことに、それらと一緒に暮らすことを学ばなければなりません。これは、Microsoft が D3D で唯一の HLSL コンパイラを実装するのとは対照的に、各ベンダーが独自の GLSL コンパイラを実装することの厄介な点の 1 つです。

ANGLE プロジェクトは、主要な Web ブラウザーの多くで共有される単一のシェーダー バリデーターを提供することで、これをある程度軽減しようとしていますが、これは困難な戦いであり、これはほとんどの場合 WebGL にのみ適用されます。すべてのベンダーが API 全体を独自に実装する場合、常に実装の違いがあります。

Khronos グループは、WebGL / OpenGL ES の場合と同様に、デスクトップ OpenGL の一連の適合性テストを確立するというタスクに真剣に取り組んでいるため、状況は少し良くなり始める可能性があります。しかし、ドライバーに厳密な適合モードでの動作を強制することは、実際には標準的なことではありません。#pragmasコンパイラーがより厳密に動作するように示唆するものがあるかもしれませんが、これらはすべてベンダー固有です。

ちなみに、この質問は GLSL自体とは何の関係もないことはわかっていますが、これは私が挙げることができる最良の例でした。

于 2013-09-16T08:56:58.053 に答える