トップページgamedev
26コメント12KB

実行部隊VU1を使い倒せ No. 0x00

■ このスレッドは過去ログ倉庫に格納されています
0001vasm02/05/24 03:16ID:???
市場の動向からいって、コイツとの付き合いも長くなりそうです。
煮ても焼いても食えないコイツを「こうやって食ったぜ!」などの
美味しい料理方法を晒して逝こうじゃないですか。
0002名前は開発中のものです。02/05/24 03:22ID:???
// C言語
i=0x8000;
i=(i>>8)&0xff;

// VU1(PS2-VectorUnit)
NOP IADDIU VI01,VI00,0x7fff
NOP IADDIU VI01,VI01,1
NOP MFIR.x VF01x,VI01
ITOF4.x VF01x,VF01x IADDIU VI02,VI00,0xff
FTOI0.x VF01x,VF01x NOP
ITOF4.x VF01x,VF01x NOP
FTOI0.x VF01x,VF01x NOP
NOP MTIR.x VI01,VF01x
NOP IAND  VI01,VI01,VI02
0003名前は開発中のものです。02/05/24 03:23ID:???
NOP[E] NOP
NOP NOP
0004名前は開発中のものです。02/05/24 03:34ID:???
//DotProduct(destination = vf04x*vf04x + vf04y*vf04y + vf04z * vf04z)
VADDX vf01,vf00,vf04x
VADDY vf02,vf00,vf04y
VADDZ vf03,vf00,vf04z
VMULAX acc,vf01,vf04x
VMADDAY acc,vf02,vf04y
VMADDZ vf04,vf03,vf04z
0005名前は開発中のものです。02/05/24 03:56ID:B.P7EKEo
なんかつまらん。
VUプログラミングの肝はループ展開。
0006名前は開発中のものです。02/05/24 04:11ID:???
>>5
お前が、おもしろいこと書けよ。
0007名前は開発中のものです。02/05/24 09:42ID:???
vclネタもおけ?
0008名前は開発中のものです。02/05/24 10:21ID:???
vu0ネタだが・・・

inline void VectorNorm(void *v0, void *v1)
{
asm __volatile__("
lqc2 vf16,0x0(%1)
vmul.xyz vf17,vf16,vf16
vmulax.w ACC,vf00,vf17x
vmadday.w ACC,vf00,vf17y
vmaddz.w vf17,vf00,vf17z
vrsqrt Q,vf00w,vf17w
vwaitq
vmulq.xyz vf16,vf16,Q
sqc2 vf16,0x0(%0)
"
: "r"(v0), "r"(v1)
: "memory"
);
}

でも用途によってはノーマライズって整数でもいいので
値域を限定すれば、ルート部分をテーブルで拾った方が速い罠。
あ、もちろんスクラッチパッドに置かないと意味ないけど。
って使用限定するからps2って使いづらいといわれる罠。
0009名前は開発中のものです。02/05/25 23:18ID:???
内積(精度気にしないバージョン)を記憶を頼りに書いてみる。
久しく触ってないので間違ってるかも。

mul.xyz vf17, vf16, vf16
maxw.x vf01x, vf00, vf00w
nop
nop
adday.x acc, vf17x, vf17y
maddz.x vf17x, vf01x, vf17z

とりあえず1bit誤差を気にせず、nopも入れてみた。lowerは省略。
maxwはaddwでも1.0fさえ入ってれば何でもいい。
vf01xに毎回入れる必要がなければ、そこもなくなる。

>>7 是非
0010902/05/28 00:59ID:???
三角形の重心で拡大縮小てのを記憶を頼りに。

nop  loi 0.3333333333333333333333333333
mulai.xyz acc, vf16, I
maddai.xyz acc, vf17, I
maddai.xyz acc, vf18, I
msubw.xyz vf16, vf16, vf00w
msubw.xyz vf17, vf17, vf00w
msubw.xyz vf18, vf18, vf00w
madd.xyz vf19, vf00, vf00  loi 2.0
msubi.xyz vf16, vf16, I
msubi.xyz vf17, vf17, I
msubi.xyz vf18, vf18, I

うーん、合ってるかな?loi以外のlowerは省略。
重心座標がいらなければvf19に入れる所は必要ないです。
0011902/06/05 02:07ID:???
vu1への転送用にあらかじめ作っておくモデルなどのパケットでは、
いくつかの例外を除いてmscalは使わずにmscntのみ。
それを呼ぶ側でmscalを使い、振り分け。
光源計算ありとなしを切り替えたりとか。
0012名前は開発中のものです。02/07/02 01:36ID:???
どなたか VCL 使っている方います?
あいつ、レジスタを完全に使いきらずに
完全に最適化されないのだけど、やっぱりバグなんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています