ARM GPUセミナー中級編

あとで自分メモとして参照するために まとめておきました。
2
kinneko @kinneko

#armjp 圧縮ツール。事前圧縮のツールによって、品質がかわってくる。Mali用のものはフリーでダウンロードできる。Win用。http://t.co/GbOl8Xo1osから。

2014-04-25 14:58:13
kinneko @kinneko

#armjp ブレンディング。アルファブレンディングなど。テクスチャマッピング後にブレンドすることもできる。後の隠れた色を読み出せないと計算できないので、Read Modify Writeのメモリコストの高い処理。ピクセルごとににやるとアンチエイリアスにも使える。

2014-04-25 15:00:23
kinneko @kinneko

#armjp ステンシルテスト。型抜き。カラーバッファ以外に型情報としてステンシルバッファに入れておく。ゲームで遠景と動かない近景に。影の生成にも使われている。

2014-04-25 15:02:26
kinneko @kinneko

#armjp 半透明プリミティブ。原則後ろから前に描画が必要。

2014-04-25 15:06:10
kinneko @kinneko

#armjp 法線のもう1つの使い道。テクスチャをいろいろまとめてアトラスとして混合させる。そこに法線マップというのを色として持っておく。バンプマッピング。法線情報の色を考慮する。頂点数を増やさないで立体感を出す。

2014-04-25 15:07:38
kinneko @kinneko

#armjp デプステスト。隠面消去に使われている。このためにZ値が残っている。デプスバッファを更新して書き戻し、カラーバッファのフィルタのように使う。省かれたものは捨てる。処理としては重い。

2014-04-25 15:07:57
kinneko @kinneko

@naobsd GPUは同じじゃまいか。

2014-04-25 15:15:41
kinneko @kinneko

@naobsd GPUは同じじゃまいか。

2014-04-25 15:15:41
FUKAUMI Naoki @naobsd

@kinneko kernel moduleとかuserland binaryとかの供給がSoCメーカー依存なので...

2014-04-25 15:19:51
kinneko @kinneko

@naobsd まぁ、わかってますけど...

2014-04-25 15:20:49
kinneko @kinneko

#armjp 新パイプライン。固定だった機能がプログラマブルになった。機能が増えすぎてハードでやるのはたいへんになってきた。演算ユニットが固定機能パイプラインに変わった。頂点とフラグメントがシェーダーになった。シェーダーで置き換えられる部分はAPI削除になった。

2014-04-25 15:27:38
kinneko @kinneko

#armjp シェーダーって? プログラマブル・シェーダー。テクスチャ処理の例。シェーダー用の言語がある。GLSL。Direct3DではHDSL、nVIDIAではCg。

2014-04-25 15:30:01
kinneko @kinneko

#armjp アセンブラでの書き方は公開されていない。シェーダー言語で書くのが必須。

2014-04-25 15:30:52
kinneko @kinneko

#armjp シェーダ言語のサンプルはMaliのサイトにサンプルがたくさんある。無料。Eclipseプラグイン。出力画面を見ながら効果を確認しつつ使える。

2014-04-25 15:33:22
kinneko @kinneko

#armjp シェーダ言語もコンパイルが必要。GPUごとにバイナリが異なる。オンラインコンパイルで解決。オフラインコンパイラを使うこともできる。容量が小さく、コンパイルないので早く動く。

2014-04-25 15:35:22
kinneko @kinneko

#armjp バッファ・オブジェクト。データのかたまりをオブジェクトとしてGPUに投げられるようになった。FBOフレームバッファオブジェクト(OpenGLだけで描画できるように), VBO頂点バッファ・オブジェクト。

2014-04-25 15:37:06
kinneko @kinneko

#armjp Maliの無料ツールやドキュメントや動画もある。参考にしてほしい。

2014-04-25 15:37:51
kinneko @kinneko

#armjp パート2。OpenGLとGPU。

2014-04-25 15:38:26
kinneko @kinneko

#armjp GPUがあると、パイプライン処理がどうなるか。アクセラレーションの範囲は自由。CPUでやるか、GPUでやるか。

2014-04-25 15:39:49
kinneko @kinneko

#armjp GPU内部ブロック図。どうやってアクセラレーションしているのか。各ブロックにL1キャッシュ。L2とAXIがつながっている。パイプラインなので一箇所遅いと遅くなる。

2014-04-25 15:41:59
kinneko @kinneko

#armjp GPU使うと速くなる? 何度も同じデータを扱うものをハード化してペナルティを低くする補完回路など。専用ロジックハード、キャッシュ、並列化。

2014-04-25 15:46:31
kinneko @kinneko

#armjp ソフトウエアも複雑になっている。GPUもソフトウエア開発者のほうが多くなっている。デバイスドライバ(GPL版あり登録で落とせる)とDDK(ソフトウエアライブラリ。こちらは落とせない)。

2014-04-25 15:48:24