« 吉里吉里Z 64bit対応 契約書ひな形 | メイン | MMX サポートを残すかどうか »

2016年01月20日

吉里吉里Z 開発:: 64bit対応作業の予定

    

64bit 対応は、64bit 版のみになるのではなく、32bit 版と 64bit 版の2つのバージョンが同時にリリースされることになる。
32bit 版はほぼ今まで通りだけど、SSE2/AVX2 対応による描画周りの高速化が期待できる。
また、イントリンシック+テンプレートと言う構造になる予定なので、バリエーションの展開がしやすくなるため従来拡大縮小やアフィン変換などでブレンドモードが限定されていたものが、operateRect と同じようにブレンドモード対応しやすくなる( (現バージョンでは未実装です)と書かれていた部分が実装しやすくなる )。
この部分も今回対応予定だけど、スケジュールによっては今回は見送る可能性もある。
他に対応できるかどうかと言うものに、通常のアルファ合成以外での destination alpha を考慮した合成がある。
アルファを持つ画像2つを合成した時に、出力にもアルファが求められる時、通常の合成とは異なり destination alpha も考慮する必要があり、この合成は現在通常のアルファ合成のみでサポートされている。
通常のアルファ合成であれば式の変形で簡略化できるが、加算合成などでは式が複雑になる。

拡大縮小やアフィン変換でのブレンドサポートと destination alpha を考慮したブレンドを現在やろうとしたら一時レイヤーへ描き出したりする必要があるので、これが実現できるとその分ショートカット出来て高速化が期待できる。

libjpeg の置き換えも 32bit 版に影響するが、速くなるか遅くなるかは置き換えてみないことには何とも言えない。
今使用している SIMD 版 libjpeg は 32bit 版のみなので、64bit では使えないため libjpeg-turbe に変更する。
大幅な速度変化はないと思われるが、やってみないとわからないところ。

その他は 32bit の各種機能で 64bit 対応する必要がある箇所の対応。
プラグインは extrans, krmovie, kropus, menu, wuvorbis を対応する予定。
64bit 対応で必要な作業で書いている extrans, krmovie, wuvorbis 以外はほとんどプロジェクトの設定追加してビルドしていくのみと思われるが、menu 対応でいくつか修正の必要があったので、その都度対応が必要になる箇所もある。
対応が必要なケースはいくつか対応しているうちに類型化出来るはず。
その他 KAGParser などについては時間次第。
単純な細かい作業なので、一気に対応してしまわなくても、今後順次対応していける。


スケジュール

3月末 64bit対応版テスト公開し色々な人に確認してもらいつつテスト
5月末 64bit対応版正式リリース

上記のように書いているが、64bit対応は一気に書き換えると言う性質のものではないので、バイナリ公開は適時行う予定。
まずは、SSE2 対応を進める途中段階で何度かリリースして、高速化などを実感してもらいたい(期待したほどではないかもしれないが)。
プラグイン( extrans, krmovie, kropus, menu, wuvorbis )については1個ずつ対応していくので、これも順次公開。
その他の作業についても、関連性が低いので順次公開していく。

SSE2/AVX2 対応部分以外は 32bit 版には関係薄いので、興味も少ないかもしれない。


投稿者 Takenori : 2016年01月20日 22:48




comments powered by Disqus
Total : Today : Yesterday : なかのひと