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


call (sm4 - asm)

Вызывает подпрограмму, помеченную тем, где в программе отображается метка l# .

call l #
Элемент Описание
L #
[in] Метка подпрограммы.

Комментарии

При обнаружении ret верните выполнение инструкции после этого вызова.

Формат маркера для удобства содержит смещение соответствующей метки в шейдере.

В следующем примере показана инструкция вызова.

                ...
                call l3
                ...
                ret
                label l3
                    ...
                    retc_nz r0.x
                    ...
                ret

Ограничения

  • Подпрограммы могут вложить 32 в глубину.
  • Реализация прозрачно управляет возвращаемым стеком адресов.
  • Если в стеке обратных адресов уже есть 32 записи и выполняется вызов , вызов пропускается.
  • Автоматический стек параметров отсутствует. Приложение может использовать индексируемый временный массив регистров (x#[]) для реализации стека вручную. Однако обратные адреса вызова подпрограммы не видны и являются ортогональными для любого ручного управления стеком, выполняемого приложением.
  • Индексирование параметра l# запрещено.
  • Рекурсия не разрешена.

Эта инструкция применяется к следующим этапам шейдера:

Вершинный построитель текстуры Шейдер геометрии Построитель текстуры
x x x

Минимальная модель шейдера

Эта функция поддерживается в следующих моделях шейдеров.

Модель шейдера Поддерживается
Модель шейдера 5 да
Модель шейдера 4.1 да
Модель шейдера 4 да
Модель шейдера 3 (DirectX HLSL) нет
Модель шейдера 2 (DirectX HLSL) нет
Модель шейдера 1 (DirectX HLSL) нет

Сборка шейдера модели 4 (DirectX HLSL)