opengl:gpusl
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
opengl:gpusl [2014/06/11 15:18] – [GPU/Shader Language] oga | opengl:gpusl [2015/03/04 22:02] (現在) – [GPU/Shader Language] oga | ||
---|---|---|---|
行 7: | 行 7: | ||
| Cg (NVIDIA) | | Cg (NVIDIA) | ||
| Mantle (AMD) | Y | | Mantle (AMD) | Y | ||
- | | Metal (Apple) | + | | Metal (Apple) |
| CUDA (NVIDIA) | | CUDA (NVIDIA) | ||
- | | OpenCL | + | | OpenCL |
| RenderScript (Android) | | RenderScript (Android) | ||
+ | | SPIR-V (Vulkan) | ||
+ | |||
行 19: | 行 21: | ||
* data type (vector, matrix 等) とその演算子、組み込み関数などは基本的に互換性なし | * data type (vector, matrix 等) とその演算子、組み込み関数などは基本的に互換性なし | ||
- | C言語タイプ(LLVM/ | + | LLVM/clang を使った |
GLSL のようにドライバ毎にコンパイラが異なっている場合は、同じ言語でも実装が GPU によって異なるため、初歩的なバグが残っていることも少なくありません。 | GLSL のようにドライバ毎にコンパイラが異なっている場合は、同じ言語でも実装が GPU によって異なるため、初歩的なバグが残っていることも少なくありません。 | ||
- | GLSL が一番方言が強いですが、最も多くのプラットフォームで走るシェーダー言語でもあります。 | + | GLSL が一番方言が強いですが、Smartphone からブラウザまで最も多くのプラットフォームで走るシェーダー言語でもあります。 |
行 59: | 行 61: | ||
同じシェーダー言語だったとしても入出力のインターフェースに互換性がないと、そのまま再利用することが出来ません。 | 同じシェーダー言語だったとしても入出力のインターフェースに互換性がないと、そのまま再利用することが出来ません。 | ||
- | そのため、入出力の記述を共通化するために定められたフォーマットが DirectX HLSL の SAS です。 | + | 入出力の記述を共通化するために定められたフォーマットが DirectX HLSL の SAS です。 |
ただし厳密に SAS に従った実装は多くなく、部分的な流用が多いものと考えられます。 | ただし厳密に SAS に従った実装は多くなく、部分的な流用が多いものと考えられます。 | ||
- | また決められたルールだけでは不足するので、実際の描画時は何らかの独自の拡張がどうしても必要となってしまいます。 | + | 決められたルールだけでは不足するので、実際の描画時は何らかの独自拡張が必要となっていることも問題です。 |
- | また SAS 自体も途中で仕様をリセットしたことがあり、一度互換性が失われました。 | + | また SAS 自体も途中で仕様を完全にリセットしたことがあります。 |
+ | これは互換性が全くない仕様変更であり、初期の実装が無駄になっています。 | ||
+ | それゆえ信頼性の面でも不安が残り普及を妨げることとなりました。 | ||
GUI との相性が良いためツールではよく利用されていますが、 | GUI との相性が良いためツールではよく利用されていますが、 | ||
- | 完全に互換性が保たれるところまでは到達していません。 | + | やはり完全な互換性が確保できているわけではありません。 |
opengl/gpusl.1402467490.txt.gz · 最終更新: 2014/06/11 15:18 (外部編集)