Регистр адресов

Регистр a0 является регистром адресов. Один регистр доступен в версии vs_1_1. Регистр адресов, обозначенный как a0.x в vs_1_1, можно использовать в качестве смещения целого числа со знаком для относительной адресации в файле регистра константы. Для версий vs_2_0 и выше все четыре компонента (.x, .y, .z, .w) доступны для относительной адресации.

c[a0.x + n]

Регистр адресов не может быть прочитан вершинным шейдером, он может использоваться только для относительной адресации регистра констант. При чтении значений за пределами допустимого диапазона будут возвращены значения (0,0, 0,0, 0,0). Регистр адресов может быть только назначением для mov - vs инструкции. Если число с плавающей запятой перемещается в целочисленный регистр, происходит циклический преобразование в ближайший.

Все шейдеры должны инициализировать регистр адресов перед его использованием. Для версий vs_2_0 и выше инструкция mova - vs может переместить значение с плавающей запятой в регистр адресов.

Версии вершинного шейдера 1_1 2_0 2_sw 2_x 3_0 3_sw
Регистр адресов x x x x x x

 

Регистры вершинного шейдера