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>
- dp4 <dest> , <src1> , <src2>
- cut
- emit
- 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
- ftou <dest>, <src> ; float to uint
- call 関数の戻り値は r1.x ?
特殊
- 定数は直接 ( immediate ) 値数できる。(ShaderModel 3.0以前のように Constant を経由しない)
- 絶対値 (abs) は独立した命令ではなく、ソースオペランドに直接適用できる修飾子||となっている。
- CPU と同じように、float の値を 32bit 整数とみなして直接 bit 操作することができる。条件結果による定数の設定などに使われている。
shadermodel4asm.txt · 最終更新: 2012/11/11 03:29 by oga