i.MX28 のグラフィック系ブロックと X.Org のインテグレーション
ブロック一覧
LCD interface (LCDIF)
Data Co-Processor (DCP)
Pixel Pipeline (PXP)
LCDIF
LCD にデータを送る
LCD の種類に合わせて違うプロトコルを喋るのが仕事
AXI Master を持つので自力でバッファを DMA 転送できる
Data Co-Processor
すごい汎用 DMA みたいなやつ
Copy, blit, fill, encrypt, decrypt, hash ができる
X.Org EXA が必要とするうちの Solid (fill), Copy, UploadToScreen, DownloadFromScreen が表現できる
計算ができないので Composite は clear, src, dst 以外多分無理
Pixel Pipeline
Crop, mask, scale, color conversion, overlay, alpha blending などが可能
制約が多いのでなんかつかいにくそう
X.Org
xf86-video-* が X.Org のドライバ
EXA は X.Org のドライバのハードへの架け橋になる API で、これ自体は単一のドライバにはならない
EXA
実装例:
Rockchip の RGA (Raster Graphic Acceleration) の例
xorg.conf
code:xorg.conf
Section "Device"
Identifier "device"
Driver "modesetting"
Option "SWcursor" "on"
EndSection
Section "Screen"
Identifier "screen"
Device "device"
DefaultDepth 16
EndSection
参考リンク
The reasons for that come down to there being no 2D acceleration standard ..., each hardware blitter engine being different, and other complexities that make 2D acceleration harder than one might otherwise think.
まあたしかにね〜
わかりやすすぎ
EXA の API がちゃんとドキュメントされている
Composite の operation 一覧
Composite の opeartion 一覧(言葉による説明)
Compositor を作る上での説明
Render protocol を通じて EXA の Composite() を呼ぶ話の周辺
GBM の話にすぐ行っちゃうけど一応
DIX のヘッダ