инструкции 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 |
Примечания:
- Если D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT задано, слоты = 2; в противном случае слоты = 1.
- Если D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT задано, а текстура — карта куба, слоты = 4; в противном случае слот = 1.
- Если D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT задано, слоты = 6; в противном случае слоты = 1.
- Если D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT не задано, слоты = 1; иначе:
- Если задано D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT, а текстура — карта куба, слоты = 4.
- Если D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT задано, а текстура не является картой куба, слоты = 3.
Связанные разделы