トップ 最新

kumaryu日記

2007-01-12 ほんやく

_ [monotone] 0.32

もうリリース半月くらい前だけど、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
  これを各データベースに実行してください。

_ [OpenGL] G80

なんか現実逃避にG80世代のOpenGL拡張を調べてみた。GeForce8800なんか持ってないけどな。

何があるかはNVIDIAの開発者サイトに上がってるんで、それを読んだメモ。

EXT_bindable_uniform

シェーダの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パラメータっぽく使えるね、ってことらしい。

しかし行列が実質入れらんねぇのが不便すぎる。

EXT_draw_buffers2

MRTでレンダーターゲット毎にブレンドとカラーマスクを設定できるよ!

使いどころが結構限られるMRTがちょっと便利に。

EXT_draw_instanced

ジオメトリインスタンスができるよ!

DrawElementsInstancedEXTとかで一発で同じプリミティブを沢山描けるようになる。

つか全く同じのを描きまくっても意味ないんで、シェーダではgl_InstanceIDでインスタンスIDが取れる。

上手く使えば速いんだろうけど、難しいねー。

EXT_framebuffer_sRGB

sRGBで描いたりできるよ!

カラーマネジメントって難しいよね。ARB_texture_sRGBと合わせて理解しときたいね。

EXT_geomrtry_shader4

ジオメトリシェーダだよ! なんか最初っから4だよ!

あとで読む。つかジオメトリシェーダって何に使うのかまだ理解してません。

EXT_gpu_shader4

シェーダいろいろ強化したよ!

  • 整数で座標とかLOD指定してテクスチャサンプリングできるよ!
  • シェーダ内でテクスチャサイズ取得できるよ!
  • テクスチャサンプリング時に座標のオフセットを整数定数で指定することができるようになったよ!
  • テクスチャ配列にアクセスできるようになったよ!(EXT_texture_array参照)
  • テクスチャのLOD計算に使う微分値を自分で指定できる"Grad"テクスチャサンプリング関数ができたよ!
  • バッファテクスチャ(EXT_texture_buffer参照)にアクセスできるテクスチャサンプリング関数が出来たよ!
  • LOD直指定のテクスチャサンプリング関数がVertexShader以外でも使えるようになったよ!
  • キューブマップでシャドウマップをサンプルできるようになったよ!
  • varying変数が補完される時のサンプル方法を指定できるようになったよ!
  • 符号付き/無し整数が完全サポートされたよ!
  • truncate関数とround関数が追加されたよ!
  • VertexShaderで使えるgl_VertexIDって呼ばれる組み込み変数が追加されたよ! ArrayElementで暗黙的に渡される頂点番号が入ってるよ!
  • GeometryShaderとFragmentShaderで使えるgl_PrimitiveIDって呼ばれる組み込み変数が追加されたよ! プリミティブ番号が入ってるよ!

はっきり言って、豪勢になりました。

EXT_packed_float

RGBがそれぞれ10bit、11bit、11bitの符号無し浮動小数点フォーマットが使えるようになったよ!

計32bitで浮動小数点はいいね。符号無しなのは仕方ないか。

EXT_texture_array

1Dテクスチャ束ねて2Dテクスチャっぽくアクセスしたり、2Dテクスチャ束ねて3Dっぽくアクセスできるようになったよ!

何が嬉しいのかってーと、ボリュームレンダリングとかで3Dテクスチャ使ったりすると、ミップマップ使う時にデプスまで半分になっちゃうけど、そりゃ困る。そんな時にテクスチャ配列ですよ! と、まあ、そんな感じだと思われ。

MESA_texture_stackと何が違うのかは知らん。

EXT_texture_buffer

バッファオブジェクトをテクスチャとして扱えるよ!

さて、どう使ったものやら…。PBOと上手く使い分けろとな。

EXT_compression_latc

LuminanceAlphaのテクスチャを圧縮できるよ!

メモリ節約節約。

EXT_compression_rgtc

RedとGreenだけのテクスチャを圧縮できるよ!

メモリ節約節約。

EXT_texture_integer

符号付き/無しの整数テクスチャが使えるよ!

完全にシェーダ用。もうなんでもかんでもテクスチャに入れろって?そこでEXT_texture_bufferかなぁ。

EXT_texture_shared_exponent

RGB各9bitの仮数部に共通の指数部5bit入れて符号無し浮動小数点フォーマットが使えるようになったよ!

EXT_packed_floatとの使い分けが微妙。仮数部が大きいからこっちの方が精度は良さげだが…?

NV_depth_buffer_float

デプスバッファを完全に浮動小数点で取るよ!

デプスを使って何かフィルタとかかけるにはいいけど、重そう。

NV_fragment_program4

FragmentProgramも順当に強化されたよ!

cgcの出力以外では見ないだろうなぁ。

NV_framebuffer_multisample_coverage

マルチサンプル時に普通のカラーサンプル数以外にカバレッジを多くサンプルできるようになったよ!

CSAA。

カバレッジだけいっぱいサンプルして16x級とか言うのはどうかと思う。

NV_geometry_program4

アセンブリでもジオメトリシェーダできるよ!

cgcの出力以外では見ないだろうなぁ。

NV_gpu_program4

アセンブリシェーダ用のいろいろ強化だよ!

まあ直接使うことは無いわな。

NV_parameter_buffer_object

アセンブリでもバッファオブジェクトをパラメータにバインドできるよ!

これも普通直接使うことは無いわな。

NV_transform_feedback

VertexShaderとかGeometryShaderの出力をバッファオブジェクトにぶち込めるよ!

どうしてもライスタライズしたくない時に。

機能としては結構便利かもしれんけど、使い方がめんどくせ。

NV_vertex_shader4

アセンブリのVertexProgramも強化されたよ!

すまん忘れてた。