もうリリース半月くらい前だけど、monotone 0.32のNEWSをてきとーに訳しました。
2006年12月27日(水) 09:57:48 UTC 0.32リリースしたよ。 変更点 - "mtn serve"はコマンドラインでパターンを取らなくなりました。 かわりに許可フックを使ってください。 - "mtn log"でログをどこから表示するか指定するオプションが"--revision"から "--fram"に変更されました。 - authorセレクタは暗黙的にワイルドカード展開されることがなくなりました。 - MTN/logを作業中にいじってコミットする時に、"magic"テンプレート行を コミットする前にファイルから取り除かない限りコミットが成功しないよう になりました。 これは空のlogファイルでテストしてる時などの事故を防ぐものです。 - "db regenerate_caches"が"db regenerate_rosters"を置き換えるマイグ レーションコマンドとして追加されました。 アップデートで追加されたキャッシュ等を再構築したり生成する操作を一般 化します。 "db migrate"と同じように、データベースのスキーマを更新し新しい機能の ためのデータを生成します。 このリリースではrostersの他に"heighs"情報をトポロジ操作の高速化のた めに追加します。 速度向上 - "mtn annotate file"と"mtn log file"なんかのファイルがされたリビジョ ン数に依存する操作がめっちゃ速くなりました。 どちらのコマンドも"mtn automate toposort"と同じように"heights"と呼ば れる全てのリビジョンのトポロジカルオーダーをキャッシュするデータを使 用します。 このデータを生成したり使用するにはアップグレード後に各データベースに 対して次のコマンドを一度だけ実行する必要があります。 $ mtn -d mydb.mtn db regenerate_caches 新機能 - "mtn automate content_diff" - "mtn automate get_file_of" (get_fileと同じですが、 ファイルパスの 他にリビジョンも指定できます。 - "mtn import"コマンド - "mtn log --to" - netsync_note_*フックに渡される情報が増え、http/smtp/etcなんかのス テータスコードが含まれるようになりました。 - includedirpattern(dir, fileglob)がフックとして追加されました。 バグ修正 - "automate stdio"で環境によって入力が反復されておかしくなるのが修正 されました。 - "mtn annotate file"と"mtn log file"なんかの(以下略) (訳注:なぜか速度向上の項にあったものと同じ項がここにありました) - spawn_redirectedフック関数が空のファイル名をストリームへのリダイレ クトと認識されるようになりました。 - "mtn log"は適切なトポロジカル順序を使用し、"height"キャッシュデー タを使用するようになりました。 - "automate stdio"コマンド間でオプションをクリアするようになりました。 - gcc3でのコンパイル問題を修正しました。 - オプション文字列が適切に翻訳されないことがあるローカライズ周りのバ グを修正しました。 その他 - botanライブラリを1.6.0にしました。 - boost1.34に対応しました。 - "mtn automate get_option"のドキュメントを追加しました。 - notes/ディレクトリを追加しました。
0.31からのアップグレードは以下のように。
- 0.31以前: データベースのフォーマットが変更されました。 次のように実行してください(その前にバックアップ忘れんなよ): $ mtn -d mydb.mtn db migrate $ mtn -d mydb.mtn db regenerate_caches これを各データベースに実行してください。
なんか現実逃避にG80世代のOpenGL拡張を調べてみた。GeForce8800なんか持ってないけどな。
何があるかはNVIDIAの開発者サイトに上がってるんで、それを読んだメモ。
シェーダのuniform変数にバッファオブジェクトをバインドできるよ!
使い方が微妙なんだが、uniformの前にbindableを付けてbindable uniformという形式で変数を宣言する。
その時に型は構造体か配列じゃなきゃならんそうだ。
で、その名前に対してUniformBufferEXTでバッファオブジェクトをバインドすると、シェーダ内でその変数を参照した時にバッファオブジェクトの内容が参照されるってわけよ。
GetUniformBufferSizeEXTを使うと必要なバッファオブジェクトのサイズが取れて、これ以上の長さのバッファオブジェクトじゃないとバインドできないらしい。
GetUniformOffsetEXTにbindable uniform変数のメンバを指定すると、先頭からのオフセットが取れる。値を設定する時にはこれを使えと。
vec2とかvec3とかvec4なんかの浮動小数点メンバーは少なくともxyzwが順にならんでるのが保証されるらしいんだが、boolとかbvecとかmatはフォーマットが実装依存らしい。というかGetUniformOffsetEXTにbool、bvec、matなメンバーの名前渡すとエラー。なのでbindable uniformにそれらを入れても役に立たんこと請け合い。
複数のシェーダのbindable uniformに一個のバッファオブジェクトをバインドするのができるんで、アセンブリシェーダでのstate.envパラメータっぽく使えるね、ってことらしい。
しかし行列が実質入れらんねぇのが不便すぎる。
MRTでレンダーターゲット毎にブレンドとカラーマスクを設定できるよ!
使いどころが結構限られるMRTがちょっと便利に。
ジオメトリインスタンスができるよ!
DrawElementsInstancedEXTとかで一発で同じプリミティブを沢山描けるようになる。
つか全く同じのを描きまくっても意味ないんで、シェーダではgl_InstanceIDでインスタンスIDが取れる。
上手く使えば速いんだろうけど、難しいねー。
sRGBで描いたりできるよ!
カラーマネジメントって難しいよね。ARB_texture_sRGBと合わせて理解しときたいね。
ジオメトリシェーダだよ! なんか最初っから4だよ!
あとで読む。つかジオメトリシェーダって何に使うのかまだ理解してません。
シェーダいろいろ強化したよ!
はっきり言って、豪勢になりました。
RGBがそれぞれ10bit、11bit、11bitの符号無し浮動小数点フォーマットが使えるようになったよ!
計32bitで浮動小数点はいいね。符号無しなのは仕方ないか。
1Dテクスチャ束ねて2Dテクスチャっぽくアクセスしたり、2Dテクスチャ束ねて3Dっぽくアクセスできるようになったよ!
何が嬉しいのかってーと、ボリュームレンダリングとかで3Dテクスチャ使ったりすると、ミップマップ使う時にデプスまで半分になっちゃうけど、そりゃ困る。そんな時にテクスチャ配列ですよ! と、まあ、そんな感じだと思われ。
MESA_texture_stackと何が違うのかは知らん。
バッファオブジェクトをテクスチャとして扱えるよ!
さて、どう使ったものやら…。PBOと上手く使い分けろとな。
LuminanceAlphaのテクスチャを圧縮できるよ!
メモリ節約節約。
RedとGreenだけのテクスチャを圧縮できるよ!
メモリ節約節約。
符号付き/無しの整数テクスチャが使えるよ!
完全にシェーダ用。もうなんでもかんでもテクスチャに入れろって?そこでEXT_texture_bufferかなぁ。
RGB各9bitの仮数部に共通の指数部5bit入れて符号無し浮動小数点フォーマットが使えるようになったよ!
EXT_packed_floatとの使い分けが微妙。仮数部が大きいからこっちの方が精度は良さげだが…?
デプスバッファを完全に浮動小数点で取るよ!
デプスを使って何かフィルタとかかけるにはいいけど、重そう。
FragmentProgramも順当に強化されたよ!
cgcの出力以外では見ないだろうなぁ。
マルチサンプル時に普通のカラーサンプル数以外にカバレッジを多くサンプルできるようになったよ!
CSAA。
カバレッジだけいっぱいサンプルして16x級とか言うのはどうかと思う。
アセンブリでもジオメトリシェーダできるよ!
cgcの出力以外では見ないだろうなぁ。
アセンブリシェーダ用のいろいろ強化だよ!
まあ直接使うことは無いわな。
アセンブリでもバッファオブジェクトをパラメータにバインドできるよ!
これも普通直接使うことは無いわな。
VertexShaderとかGeometryShaderの出力をバッファオブジェクトにぶち込めるよ!
どうしてもライスタライズしたくない時に。
機能としては結構便利かもしれんけど、使い方がめんどくせ。
アセンブリのVertexProgramも強化されたよ!
すまん忘れてた。