2010-10-01から1ヶ月間の記事一覧
Win64 対応とか書いておきながら公開バイナリは Win32 版のみという、ちょっと寂しい状況でしたので、開発環境を整備して x64 ビルドしてみました。 型の不一致で 4-5 箇所くらい修正しましたが、それ以外はすんなりコンパイルが通りました。修正内容は、デ…
αマスクによるトランジションにステップ数指定機能を実装しました。デモにも反映しました。以前のデモよりもスクリーン切り替えの境界線がくっきりしていると思います。詳細はこちら。 次はイメージの回転か、或いは、ちょっとやってみたいトランジションが…
デモにトランジション処理を追加しました。αマスクは適当に用意したものですので、エフェクトには当たり外れがあるかも。詳細はこちら。凡ミスもいくつか修正してあります。んー。画素の合成処理が増えてきたので、だんだん SIMD の効果が顕著になってきまし…
昼過ぎから四苦八苦しながら実装してました。αブレンディングによるエフェクトなので SIMD が良く効きます。例によって SSSE3 まで対応しています。今日はもう夜遅いので、デモをまとめるのは明日にしようと思います。
体調不良で今日は会社を休みました。肺炎やってからなかなか復調しません。半日くらい寝てました。 とりあえず、先ほどアフィン変換の線形補間のα値保持バージョンを実装しました。デモに反映しても絵的な変化がないので、公開は次の機会に。
イメージの拡大縮小処理の実装をとりあえず完了しました。線形補間の処理負荷が思っていたよりも高く、慌てて SSE2, SSSE3 に対応させました。むー。アフィン変換の線形補間は SSE2 には荷が重いですね。SSSE3 が使えないと、パック、アンパックの嵐であまり…
今日は私と相方と子供二人で、名古屋の東山動物園に行ってきました。 最近、絵本やテレビで動物に興味を持ち始めた上の子供に、本物の動物を見せてあげたいと思って出かけました。が、なかなか計画通りとは行かず。まず昨夜、子供がなかなか寝付かず、その日…
実装したらうまくいったようです。偶数版は SSE2 よりも 2 割くらい速い、かな。奇数版は SSE2 とどっこいです。デモのスプライトの重ね合わせのフェード値が奇数に偏っていたため、効果確認用に、Z オーダー順に奇数偶数と交互に設定するようにしました。微…
_mm_maddubs_epi16 を使用したαブレンディングですが、再考察したところ、0-256 は無理ですが、0-128 ならいけますね。α値が 0 のケースはそもそも上流で描画をカットしていますし、またα値が 128 (=256) の場合は上流で単純転送に振り分けています。つまり…
次はアフィン変換かなー。よく使いそうですし。 ところで SSSE3 の _mm_maddubs_epi16 がいまいち使えませんでした。αブレンディングに組み込めないか検討したのですが、乗数が符号付バイトということで、-128 〜 127 の範囲しか使えません。これが符号無な…
高速化の効果が大きかったので SSSE3 を導入しました。動的切り替えにより、非サポート CPU では SSE2 で動きます。また、機能面では複数スクリーン処理を追加しました。デモには、2 つのスクリーンをクロス フェードするようにしました。一方はこれまでのデ…
公開中のデモについて、Atom や Core i7 では SSE2 適用でとても高速化するのですが、Core 2 であまり速くならず、何故だろうとインテル最適化マニュアルを紐解いてみると、あらなんと。Core 2 では XMM レジスタを使用した演算が、それ以前のアーキテクチャ…
うちの上の子が来年から幼稚園ということで、その申請に行ってきました。我が家の周辺は幼稚園や保育園のそれなりに激戦区らしく、夜から幼稚園の前に並んできました。私が並んだときにはすでに 50 人ほど並んでおり、これって近所迷惑だよなぁとか思いなが…