Microsoft DirectX 8.0 (C++) |
これらはアドレス レジスタである。これらのレジスタは、Microsoft® DirectX® 8.0 の頂点シェーダ バージョン 1.0 では使用できず、バージョン 1.1 では単一のレジスタのみ使用できる。a0.x と表されるアドレス レジスタは、定数レジスタ ファイルに対する相対アドレス指定における符号付き整数オフセットとして使用できる。
c[a0.x + n]
有効範囲外からの読み取りに対しては、(0.0, 0.0, 0.0, 0.0) が返る。アドレス レジスタは、mov 命令に対してのみデスティネーションになることができる。頂点シェーダは、アドレス レジスタの値を読み取ることはできず、定数レジスタ ファイルの相対アドレス指定で使用することだけができる。サポートされている定数レジスタの範囲の外側のアドレスが指定されている場合、それによる読み取りからは予測不可能な結果が返る。
アドレス レジスタを使用するバージョン 1.0 の頂点シェーダでは、頂点シェーダを作成する Microsoft Direct3D® API の呼び出しが失敗する。バージョン 1.1 の頂点シェーダも、アドレス レジスタを設定せずに使用を試みると失敗する。