shadermodel4asm
ShaderModel 5.0 アセンブラ命令
ShaderModel 5.0 ではアセンブラ命令もマニュアル上で公開されています。
ShaderModel4.0 アセンブラ命令
dcl_input <入力レジスタ宣言>
dcl_input_siv <入力レジスタ宣言>, <system semantic>
dcl_output <出力レジスタ宣言>
dcl_output_siv <出力レジスタ宣言>, <system semantic>
dcl_constantbuffer
dcl_temps <レジスタアロケート数>
dcl_maxout <最大出力数>
dcl_inputprimitive <primitivetype>
dcl_outputtopology <topology>
dcl_sampler <sampler> , <mode>
dcl_resource_texture2d (typelist) <register>
dcl_immediateConstantBuffer { .. }
mul <dest> , <src1> , <src2>
div <dest> , <src1> , <src2>
mad <dest> , <src1> , <src2> , <src3>
mov <dest> , <src1>
movc <dest>, <src1>, <src2>, <src3>
add <dest> , <src1> , <src2>
or <dest> , <src1> , <src2>
and <dest> , <src1> , <src2>
iadd <dest> , <src1> , <src2>
umul <dest1> , <dest2> , <src1> , <src2>
lt <dest>, <const>, <src>
ge <dest> , <src1> , <src2>
sample <dest> , <src1> , <texture> , <sampler>
resinfo <dest>, <const>, <texture> ; GetDimensions (float)
resinfo_uint <dest>, <const>, <texture> ; GetDimensions (uint)
discard <src1> ; clip
ret
if_nz <src1>
if_z <src1>
else
endif
switch <int>
case <const>
default
break
endswitch
call <label> ; ret で戻る
label <label_name>
retc_nz
特殊
定数は直接 ( immediate ) 値数できる。(ShaderModel 3.0以前のように Constant を経由しない)
絶対値 (abs) は独立した命令ではなく、ソースオペランドに直接適用できる修飾子||となっている。
CPU と同じように、float の値を 32bit 整数とみなして直接 bit 操作することができる。条件結果による定数の設定などに使われている。
shadermodel4asm.txt · 最終更新: 2012/11/11 03:29 by oga