ユーザ用ツール

サイト用ツール


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