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


Инструкции— vs_2_x

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

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

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

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

Имя Описание Слоты инструкций Настройка Арифметический Управление потоком Создать
abs - vs Абсолютное значение 1 x
add — vs Добавление двух векторов 1 x
break — vs Вырваться из цикла - против... endloop - vs или rep... блок endrep 1 x x
break_comp по сравнению с Условно вырваться из цикла - против... endloop - vs или rep... блок endrep с сравнением 3 x x
breakp — vs Вырваться из цикла - против... endloop - vs или rep... блок endrep на основе предиката 3 x x
call - vs Вызов подпрограммы 2 x
callnz bool - vs Вызов подпрограммы, если логический регистр не равен нулю 3 x
callnz pred — vs Вызов подпрограммы, если регистр предиката не равен нулю 3 x x
crs — vs Перекрестный продукт 2 x
dcl_usage входные данные (sm1, sm2, sm3 — vs asm) Объявление регистров входных вершин (см. раздел Регистры — vs_2_x) 0 x
def — vs Определение констант 0 x
defb — против Определение логической константы 0 x
defi — vs Определение целочисленной константы 0 x
dp3 — vs Трехкомпонентный точечный продукт 1 x
dp4 — vs Четырехкомпонентный точечный продукт 1 x
dst — против Вычисление вектора расстояния 1 x
else — против Начало другого — против блока 1 x
endif — vs Окончание bool if - против... else - vs block 1 x
endloop — vs Конец цикла — против блока 2 x
endrep — vs Конец блока повтора 2 x
exp — vs Полная точность 2x 1 x
expp - vs Частичная точность 2x 1 x
frc — vs Дробный компонент 1 x
if bool — vs Начало bool if — vs block (с использованием логического условия) 3 x
if_comp по сравнению с Начало типа if bool - vs block с помощью сравнения 3 x x
If pred — vs Начало bool if - vs block с условием предиката 3 x x
label — vs Метка 0 x
lit - vs Вычисление частичного освещения 3 x
log — vs Журнал полной точности(x) 1 x
logp — и Журнал частичной точности(x) 1 x
loop — vs Loop 3 x
lrp — vs Линейная интерполяция 2 x
m3x2 — против Умножение 3x2 2 x
m3x3 — против Умножение 3x3 3 x
m3x4 — против Умножение 3x4 4 x
m4x3 — против Умножение 4x3 3 x
m4x4 — vs Умножение 4x4 4 x
mad - vs Умножение и добавление 1 x
max — vs Максимальная 1 x
min - vs Минимальные 1 x
mov — vs Переместить 1 x
mova - vs Перемещение данных из регистра с плавающей запятой в регистр адресов (a0) 1 x
mul — vs Multiply 1 x
nop — против Нет операции 1 x
nrm — vs Нормализация вектора 4D 3 x
pow — против xy 3 x
rcp — vs Взаимные 1 x
rep - vs Повторить 3 x
ret — vs Окончание подпрограммы или main 1 x
rsq — vs Обратный квадратный корень 1 x
setp_comp по сравнению с Установка регистра предиката 1 x x
sge - vs Сравнение больше или равно 1 x
sgn — vs Знак 3 x
sincos - vs Синус и косинус 8 x
slt — vs Меньше сравнения 1 x
sub - vs Subtract 1 x
Vs Версия 0 x

 

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