opengl:glsl
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
opengl:glsl [2014/03/17 19:24] – [GPU Emulator を活用する] oga | opengl:glsl [2014/03/17 19:43] – [GLSL の問題] oga | ||
---|---|---|---|
行 103: | 行 103: | ||
など | など | ||
- | 同じ GPU core であったとしても SoC が違えば本当に同一機能かどうかもわかりません。 | + | 同じ GPU core であったとしても SoC が違えば異なる構成になっている可能性があります。 |
- | 特に | + | PowerVR や Mali、Vivante |
スマートフォンやタブレットなど、SoC を採用するメーカーもまたばらばらです。 | スマートフォンやタブレットなど、SoC を採用するメーカーもまたばらばらです。 | ||
行 173: | 行 173: | ||
- | + | (追記) Android 4.4 では修正されており、正しく動作するようになりました。 | |
+ | ただし世の中には Android 4.3 のまま更新されていないデバイスも多いので、 | ||
+ | なんらかの対策は必要です。 | ||
===== OpenGL ES 2.0 GLSL 構文 ===== | ===== OpenGL ES 2.0 GLSL 構文 ===== | ||
行 264: | 行 265: | ||
</ | </ | ||
- | ==== GLSL ES 1.1 を返す ==== | + | ==== Tegra Emulator が GLSL ES 1.1 を返す ==== |
PC の Tegra Emulator が GLSL の version 1.1 を返します。 | PC の Tegra Emulator が GLSL の version 1.1 を返します。 | ||
行 584: | 行 585: | ||
==== Android PowerVR SGX GLSL ES 2.0 関数パラメータ inout が無効になる (2014/03/16 追加) ==== | ==== Android PowerVR SGX GLSL ES 2.0 関数パラメータ inout が無効になる (2014/03/16 追加) ==== | ||
- | * PowerVR | + | * PowerVR |
+ | * PowerVR SGX543MP3 + iOS7.1 + OpenGL ES 2.0 では問題ない | ||
Android PowerVR SGX GLSL で、inout を使って関数から値を返すことができない。 | Android PowerVR SGX GLSL で、inout を使って関数から値を返すことができない。 | ||
+ | 2つ以上 inout 宣言を行った場合に発生。 | ||
<code glsl> | <code glsl> | ||
行 617: | 行 620: | ||
PowerVR 以外の Adreno, Vivante, GeForce (desktop) などでは問題なく動作しています。 | PowerVR 以外の Adreno, Vivante, GeForce (desktop) などでは問題なく動作しています。 | ||
+ | また iOS の PowerVR では他の GPU と同じように正しく動いています。 | ||
対策方法としては、hlsl でよく用いられるように構造体を使う方法があります。 | 対策方法としては、hlsl でよく用いられるように構造体を使う方法があります。 |
opengl/glsl.txt · 最終更新: 2015/09/17 01:40 by oga