Программные шейдеры

Программные шейдеры реализуются для разработки шейдеров без поддержки базового оборудования. Они поддерживают полный набор функций. Так как они реализованы в программном обеспечении, они не будут производить лучшую производительность.

Версия Набор возможностей Требования
vs_2_sw Все возможности vs_2_x Поддерживается только программной обработкой вершин и эталонным устройством.
vs_3_sw Все возможности vs_3_0 Поддерживается только программной обработкой вершин и эталонным устройством.
ps_2_sw Все возможности ps_2_x Поддерживается только эталонным устройством.
ps_3_sw Все возможности ps_3_0 Поддерживается только эталонным устройством.

 

Некоторые проверки для программных шейдеров не выполняются. Это полезно для отладки и создания прототипов. Следующие проверки не выполняются: (все остальные проверки остаются прежними).

Тип проверки Релаксации
Количество инструкций: Это удобно для vs_2_sw, vs_3_sw и ps_2_sw, ps_3_sw. Разрешены неограниченные инструкции.
Число констант float: Это удобно для vs_2_sw, vs_3_sw и ps_2_sw, ps_3_sw. Допускается до 8192 констант.
Число целочисленных констант: Это удобно для vs_2_sw, vs_3_sw и ps_2_sw, ps_3_sw. Допускается до 2048 констант.
Количество логических констант: Это удобно для vs_2_sw, vs_3_sw и ps_2_sw, ps_3_sw. Допускается до 2048 констант.
Глубина зависимого чтения: Это расслаблено для ps_2_sw. Как и в vs_3_0 и ps_3_0, разрешено неограниченное количество зависимых операций чтения.
Количество инструкций и меток для управления потоком: Это расслаблено для vs_2_sw. Разрешены неограниченные инструкции по управлению потоком и метки до 2048.
Число циклов, запусков и шагов: Они расслаблены для vs_2_sw, vs_3_sw, ps_2_sw и ps_3_sw. Размер начального и промежуточного шага итерации для инструкций rep и цикла — это 32-разрядные интергеры со знаком. Количество интераций может составлять до MAX_INT/64.
Ограничения порта для чтения: vs_2_sw, vs_3_sw, ps_2_sw и ps_3_sw не имеют ограничения на доступ к портам чтения.
Количество интерполяторов: В vs_3_sw 16 регистров — vs_3_0 (o#) и 10 регистров ps_3_0 (v#) для ps_3_sw.

 

Справочник по шейдеру Asm