Поделиться через


Инструкции по ps_3_0

В этом разделе содержатся справочные сведения по инструкциям по пиксельным шейдерам версии 3_0.

Существует несколько типов инструкций по шейдеру текстуры, как показано в таблице. Столбцы справа означают следующее:

  • Слоты инструкций — количество слотов инструкций, используемых каждой инструкцией.
  • Настройка. Пиксельный шейдер должен иметь инструкцию версии и быть первой инструкцией.
  • Арифметика. Эти инструкции предоставляют математические операции в шейдере.
  • Текстура. Эти инструкции используются для загрузки и выборки данных текстуры, а также для изменения координат текстуры.
  • Управление потоком. Эти инструкции обеспечивают статическое и динамическое управление потоком для выполнения инструкций.
  • Создать — эти инструкции являются новыми для данной версии.

Набор инструкций

Имя Описание Слоты инструкций Настройка Арифметический Текстура Управление потоком Создать
abs - ps Абсолютное значение 1 x
add - ps Добавление двух векторов 1 x
break - ps Вырваться из цикла... endloop или rep... блок endrep 1 x
break_comp — ps Условно вырваться из цикла... endloop или rep... блок endrep с сравнением 3 x
breakp - ps вырваться из цикла... endloop или rep... блок endrep на основе предиката 3 x
call - ps Вызов подпрограммы 2 x
callnz bool - ps Вызов подпрограммы, если логический регистр не равен нулю 3 x
callnz pred - ps Вызов подпрограммы, если регистр предиката не равен нулю 3 x
cmp — ps Сравнение источника с 0 1 x
crs - ps Перекрестный продукт 2 x
dcl_samplerType (sm2, sm3 - ps asm) Объявление измерения текстуры для выборки 0 x
dcl_semantics (sm3 - ps asm) Объявление входных и выходных регистров 0 x x
def — ps Определение констант 0 x
defb — ps Определение логической константы 0 x
defi - ps Определение целочисленной константы 0 x
dp2add — ps 2D-точечная продукция и добавить 2 x
dp3 — ps 3D-точечное изделие 1 x
dp4 — ps 4D-точечная продукция 1 x
dsx — ps Скорость изменения в направлении X 2 x
dsy — ps Скорость изменения в направлении y 2 x
else - ps Начало блока else 1 x
endif — ps Завершить если... else block 1 x
endloop - ps Завершение цикла 2 x x
endrep — ps Конец блока повтора 2 x
exp — ps Полная точность 2x 1 x
frc — ps Дробный компонент 1 x
if bool - ps Начало блока if 3 x
if_comp — ps Начало блока if с помощью сравнения 3 x
if pred — ps Начало блока if с предикацией 3 x
label — ps Метка 0 x
log — ps Журнал полной точности(x) 1 x
loop — ps Loop 3 x x
lrp - ps Линейная интерполяция 2 x
m3x2 — ps Умножение 3x2 2 x
m3x3 — ps Умножение 3x3 3 x
m3x4 — ps Умножение 3x4 4 x
m4x3 — ps Умножение 4x3 3 x
m4x4 — ps Умножение 4x4 4 x
mad - ps Умножение и добавление 1 x
max — ps Максимум 1 x
min - ps Минимальные 1 x
mov - ps Переместить 1 x
mul - ps Multiply 1 x
nop - ps Нет операции 1 x
nrm — ps Normalize 3 x
pow - ps xy 3 x
Ps Версия 0 x
rcp — ps Взаимные 1 x
rep - ps Повторить 3 x
ret - ps Конец подпрограммы 1 x
rsq — ps Обратный квадратный корень 1 x
setp_comp Настройка регистра предиката 1 x
sincos - ps Синус и косиус 8 x
sub - ps Subtract 1 x
texkill - ps Преобразовывая отрисовка пикселе 2 x
texld — ps_2_0 и вверх Пример текстуры См. примечание 1 x
texldb — ps Выборка текстуры с смещением уровня детализации из w-компонента 6 x
texldl — ps Выборка текстуры с уровнем детализации из w-component См. примечание 2 x x
texldd — ps Выборка текстур с градиентами, предоставленными пользователем 3 x
texldp — ps Выборка текстуры с проективным делением на w-компонент См. примечание 3. x

 

Примечания.

  1. Если текстура является кубической картой, слоты = 4; в противном случае слоты = 1.
  2. Если текстура является кубической картой, слоты = 5; в противном случае слоты = 2.
  3. Если текстура является кубической картой, слоты = 4; в противном случае слоты = 3.

Инструкции по шейдеру пикселей