vs_2_x
Программируемый шейдер вершин состоит из набора инструкций, которые работают с данными вершин. Регистрирует данные передачи в ALU и из него. Чтобы изменить инструкцию, результаты или данные, которые записываются, можно применить дополнительные элементы управления.
Версия вершинного шейдера vs_2_x расширяет набор функций, поддерживаемый vs_2_0. Каждая дополнительная функция представлена соответствующим ограничением в структуре D3DCAPS9 в D3DVS20CAPS. Чтобы использовать какие-либо расширенные функции, представленные этими ограничениями, версию вершинного шейдера необходимо указать как vs_2_x.
- Инструкции. vs_2_x содержит список доступных инструкций.
- Registers — vs_2_x перечисляет различные типы регистров, используемых ALU шейдера вершин.
- Модификаторы регистра вершинных шейдеров используются для изменения способа работы инструкции.
- Модификаторы регистра источника шейдера вершин изменяют данные регистра источника перед выполнением инструкции.
- Swizzling регистра источника дает дополнительный контроль над тем, какие компоненты регистра считываются, копируются или записываются.
- Маскирование регистра назначения определяет, какие компоненты регистра назначения записываются.
Новые возможности
Ниже перечислены новые возможности.
Управление динамическим потоком
Если D3DVS20CAPS> 0, поддерживаются следующие инструкции по управлению динамическим потоком:
Если также задан параметр D3DVS20CAPS , поддерживаются следующие дополнительные инструкции по управлению потоком:
Диапазон значений для динамической глубины управления потоком составляет от 0 до 24 и равен глубине вложенности инструкций по управлению динамическим потоком (дополнительные сведения см. в разделе Ограничения вложенности элемента управления потоком ). Если это ограничение равно нулю, устройство не поддерживает динамические инструкции управления потоком.
Количество временных регистров
D3DVS20CAPS представляет количество временных регистров, поддерживаемых устройством. Диапазон значений для этого ограничения составляет от 12 до 32.
Глубина вложенного элемента управления статическим потоком
D3DVS20CAPS представляет глубину вложенности двух типов инструкций управления статическим потоком: loop - vs/rep - vs и call - vs/callnz bool - vs/if bool - vs. loop - vs/rep - vs инструкции могут быть вложены до D3DVS20CAPS глубоко. Независимо от того, что call - vs/callnz bool - vs инструкции могут быть вложены до D3DVS20CAPS глубоко. Если также задан параметр D3DVS20CAPS, то аргумент callnz pred - vs учитывается в отношении глубины вложенности вызова - vs/callnz bool - vs/if bool - vs (дополнительные сведения см. в разделе Ограничения вложенности управления потоком ).
Предикация
Если задан параметр D3DVS20CAPS , устройство поддерживает setp_comp и предикацию инструкций. Если значение D3DVS20CAPS также больше 0, поддерживаются следующие дополнительные инструкции по управлению динамическим потоком:
Количество инструкций
Каждый вершинный шейдер может содержать до 256 инструкций. Количество выполняемых инструкций может быть гораздо больше (из-за поддержки циклов и повторов) и ограничено D3DCAPS9, которое должно быть по крайней мере 0xFFFF.
Связанные темы