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


инструкции ps_2_x

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

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

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

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

Имя Описание Слоты инструкций Настройка Арифметика Текстура Управление потоком Новые функции
abs - ps Абсолютная величина 1 x
добавление — ps Добавление двух векторов 1 x
перерыв — ps Вырваться из реа... Блок endrep 1 x x
break_comp — ps Условно вырваться из реа... Блок endrep с сравнением 3 x x
разрыв — ps Вырваться из реа... Блок endrep, основанный на предикате 3 x x
вызов — ps Вызов подпрограммы 2 x x
callnz bool - ps Вызов подпрограммы, если логический регистр не равен нулю 3 x x
callnz pred - ps Вызов подпрограммы, если регистр предиката не равен нулю 3 x x
cmp — ps Сравнение источника с 0 1 x
crs - ps Перекрестный продукт 2 x
dcl_samplerType (sm2, sm3 - ps asm) Объявление измерения текстуры для примера 0 x
dcl - (sm2, sm3 - ps asm) Объявите связь между регистрами выходных данных вершинного шейдера и регистрами входных данных шейдера пикселей. 0 x
def — ps Определение констант 0 x
defb — ps Определение логического константы 0 x x
defi — ps Определение целочисленной константы 0 x x
dp2add — ps 2D dot product and add 2 x
dp3 — ps 3D dot product 1 x
dp4 — ps 4D dot product 1 x
dsx — ps Скорость изменения в направлении x 2 x x
dsy — ps Скорость изменения в направлении y 2 x x
else - ps Начать другой блок 1 x x
endif — ps Конец если... else block 1 x x
endrep — ps Конец блока повтора 2 x x
exp — ps Полная точность 2x 1 x
frc — ps Дробный компонент 1 x
, если bool - ps Начало блока if 3 x x
if_comp — ps Начало блока if с сравнением 3 x x
, если предварительно — ps Начало блока с предикатом 3 x x
метка — ps Ярлык 0 x x
журнал — ps Полный журнал точности (x) 1 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
сумасшедший - ps Умножение и добавление 1 x
максимальное — ps Максимум 1 x
мин - ps Минимум 1 x
mov - ps Двигаться 1 x
mul - ps Умножать 1 x
nop — ps Нет операции 1 x
nrm — ps Нормализовать 3 x
pow - ps xy 3 x
ps Версия 0 x
rcp — ps Взаимный 1 x
rep — ps Повторять 3 x x
ret — ps Конец подпрограммы 1 x x
rsq — ps Корень взаимной квадратной площади 1 x
setp_comp Настройка регистра предиката 1 x x
sincos - ps Синус и косинус 8 x
sub — ps Вычитать 1 x
texkill - ps Убийство отрисовки пикселей См. примечание 1 x
texld - ps_2_0 и вверх Пример текстуры См. примечание 2 x
texldb — ps Выборка текстуры с предвзятостью уровня детализации от w-component См. примечание 3 x
texldd - ps Выборка текстур с градиентами, предоставляемыми пользователем 3 x x
texldp — ps Выборка текстур с проецивным разделением на w-component См. примечание 4 x

 

Примечания:

  1. Если D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT задано, слоты = 2; в противном случае слоты = 1.
  2. Если D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT задано, а текстура — карта куба, слоты = 4; в противном случае слот = 1.
  3. Если D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT задано, слоты = 6; в противном случае слоты = 1.
  4. Если D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT не задано, слоты = 1; иначе:

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