Binary 2.0 Conference 2006
先週末に Binary 2.0 カンファレンス 2006 が開催されました。どの発表もたいへん興味深くおもしろかったと思います。 わたしもライトニングトークのプレゼンテーションではいい汗を流させていただきました。 発表スライドの PDF ファイルはこちらにあります。
以下は自分のプレゼンテーションの解説および反省文です。
まず発表タイトル "tty hacks for PS3 Linux" の意図したところは、 「RSX(GPU) も使えず制約の多い PS3 Linux 環境では X11 なんか使わずに Linux のあやしい tty/console ioctl を使いこなし ps3fb を直にいじっていい気分になろう」ということだったのですが、 プレゼンテーションプログラムや Wii Remote (Wii リモコン) いじりにかまけていたら 準備時間が足りなくなり、まったくそのような話にできずに終わってしまいました。
プレゼンテーションプログラムでは描画に SDL および OpenGL を使っています。 今回は VSYNC 待ちもできる ps3fb driver を使うことにこだわり、 x11 driver ではなく fbcon driver の改造に挑んでみました。
SDL の fbcon driver には OpenGL サポートがないため、 有名な Mesa3D ライブラリの変種である OSMesa を組み込んでいます。 OSMesa は OS やハードウェアに依存しないオフスクリーンレンダリングライブラリで、 現在の PS3 Linux のように、 CPU はそれなりに速いがグラフィクス性能は貧弱でメモリマップされたフレームバッファくらいしかないという、 不遇なプラットフォームではよく使われます。
しかしやはり CPU のみでは基本的なピクセル塗り潰し性能という点で苦しく、 NTSC で 720x480 というローデフ解像度でもせいぜい 15-20FPS 程度しか出ませんでした。 まあ OSMesa はぜんぶ C で書かれているので、 PowerPC の VMX を駆使したアセンブリプログラムでも書けば高速化の余地はありますが、 かなり不毛な作業に思えます。 はやく PS3 Linux でも RSX(GPU) が使えるようになってほしいものです。 SCEI/NVIDIA にプロプラエタリな DRI モジュールを提供していただく形になるでしょうか。
Wii Remote については前回のエントリでも書きましたが、 まず各コンポーネントのポータビリティに起因する問題で苦労しました。 また発表会場で使えるセンサーバーが用意できなかったので、 赤外線センサが使えず加速度センサのみでなんとかする必要がありました。
Wii Remote の加速度センサはかなり敏感で、 すこし傾けただけで重力の方向が変わり出力値に表れるため、 正直いって加速度センサだけを使ってポインティングデバイスとするのは無理があります (こちらのページが詳しい)。 しかたないので、 WiiSports ばりにトリガを握って Wii Remote を縦や横に振るとキューブが回転するという、 まったく大味なインタフェースになりました (プレゼンスポーツ?)。
サウンドは SDL_mixer を普通に使っています。 音ネタは OpenOffice.org の配布物の中にいろいろあったのでそれから拝借しました。 またスライドは例によって OpenOffice.org Impress を使って作成し、 PDF 出力したあとに GhostScript で 512x512 のビットマップに変換して用いました。
今回のプレゼンテーションプログラムは、
PS3 Linux や Wii Remote でなにかやろうとしている人の参考になるかと思ったので、
Cube Presenter
と名前をつけて公開することにしました。
PS3 Linux でなくても OpenGL/SDL/SDL_mixer が使える環境であれば、
そのまま make して動かせると思います。
ビットマップデータを添付ファイルの
b2con2006slides.tar.gz
にさしかえると、
今回のプレゼンテーションが再現できます。
かなりへっぽこなプログラムなのはご容赦ください。 3 日ほどで作らないといけなかったので…。 また Cube Presenter サイトも急造したもので PS3 Linux における手順がまだぜんぜん書かれていません。 Xorg の環境だと重たい、おかしいという現象も確認されています。 今後更新する予定ですので、もうしばらくお待ちください。
なお今回話す予定だった tty hacks ネタはいろいろあるので、 この blog で gdb hacks みたいなカテゴリをつくって公開していこうかと思います。
カテゴリ
PLAYSTATION 3トラックバック(0)
このブログ記事を参照しているブログ一覧: Binary 2.0 Conference 2006
このブログ記事に対するトラックバックURL: http://www.keshi.org/mt/mt-tb.cgi/52
コメントする