ps_3_0
Программируемый пиксельный шейдер состоит из набора инструкций, которые работают с пиксельными данными. Регистрирует передачу данных в ALU и из него. Для изменения инструкции, результатов или записанных данных можно применить дополнительный контроль.
- ps_3_0 Инструкции содержит список доступных инструкций.
- ps_3_0 Registers перечислены различные типы регистров, используемых ALU пиксельного шейдера.
- Модификаторы Используются для изменения способа работы инструкции.
- Маска записи регистра назначения определяет, какие компоненты регистра назначения будут записаны.
- Модификаторы регистра источника шейдера пикселей изменяют данные регистра источника перед выполнением инструкции.
- Source Register Swizzling дает дополнительный контроль над тем, какие компоненты регистра считываются, копируются или записываются.
Новые возможности
Добавление регистра лиц. Добавьте регистр позиции. Цветовые регистры (v#) теперь являются полностью плавающей запятой, и регистры координат текстуры (t#) были консолидированы. Входные объявления принимают имена использования, и для компонентов заданного регистра разрешено несколько вариантов использования.
Управление динамическим потоком
Устройство поддерживает динамическое управление потоком (если bool — ps, break — ps и break_comp — ps). Глубина вложенности составляет от 0 до 24.
Количество временных регистров
Количество поддерживаемых временных регистров — 32.
Глубина вложенного элемента управления статическим потоком
Call - ps/callnz /call_pred может быть вложен на максимальную глубину 4. Независимо от того, инструкции loop - ps/rep - ps могут быть вложены на максимальную глубину 4.
Произвольный swizzle
Поддерживается произвольный swizzle. См. статью Source Register Swizzling.
Инструкции по градиенту
Поддерживаются инструкции по градиенту. См . dsx — ps, dsy — ps и texldd — ps.
Предикация
Поддерживается предикация инструкций. См. раздел Регистрация предиката.
Зависимое ограничение чтения
Зависимые ограничения на чтение отсутствуют.
Ограничение инструкций текстуры
Инструкции по текстурам не ограничены.
Число инструкций
Каждый пиксельный шейдер допускается в любом месте от 512 до количества слотов в MaxPixelShader30InstructionSlots (не более 32768). Число выполнений инструкций может быть гораздо больше из-за поддержки циклов. Значение MaxPShaderInstructionsExecuted должно быть не менее 2^16.
Число выборок
Доступное количество выборок текстур — 16.
Ограничения для устройств
Если поддерживается ps_3_0, в оборудовании поддерживаются следующие ограничения (как минимум):
Колпачок | Значение |
---|---|
MaxTextureWidth, MaxTextureHeight | По 4 КБ |
MaxTextureRepeat | 8 КБ |
MaxAnisotropy | 16 |
PixelShaderVersion | 3_0 |
MaxPixelShader30InstructionSlots | 512 |
Устанавливаются следующие примитивные ограничения: | D3DPMISCCAPS_BLENDOP, D3DPMISCCAPS_CLIPPLANESCALEDPOINTS, D3DPMISCCAPS_CLIPTLVERTS, D3DPMISCCAPS_CULLCCW, D3DPMISCCAPS_CULLCW, D3DPMISCCAPS_CULLNONE, D3DPMISCCAPS_FOGINFVF, D3DPMISCCAPS_MASKZ |
Устанавливаются следующие растровые крышки: | D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE, D3DPRASTERCAPS_SCISSORTEST в D3DCAPS9 |
Полная поддержка смещения глубины, включая: | D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS |
Полный набор сравнений для проверки глубины и альфа-теста, включая: | Все файлы D3DPCMPCAPS в D3DCAPS9. |
Режимы наложения источника | В качестве источника поддерживаются все режимы смешивания (за исключением D3DPBLENDCAPS_SRCALPHASAT, D3DPBLENDCAPS_BOTHSRCALPHA и D3DPBLENDCAPS_BOTHINVSRCALPHA). |
Поддерживаются следующие ограничения текстуры: | D3DPTEXTURECAPS_CUBEMAP, D3DPTEXTURECAPS_MIPCUBEMAP, D3DPTEXTURECAPS_MIPMAP, D3DPTEXTURECAPS_MIPVOLUMEMAP, D3DPTEXTURECAPS_PERSPECTIVE, D3DPTEXTURECAPS_PROJECTED, D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, D3DPTEXTURECAPS_VOLUMEMAP |
Ниже приведены ограничения фильтра текстуры, крышки фильтра текстуры тома и ограничения фильтров текстур куба. | D3DPTFILTERCAPS_MINFPOINT, D3DPTFILTERCAPS_MINFLINEAR, D3DPTFILTERCAPS_MINFANISOTROPIC (это не требуется для VolumeTextureFilterCaps и CubeTextureFilterCaps ), D3DPTFILTERCAPS_MIPFPOINT, D3DPTFILTERCAPS_MIPFLINEAR, D3DPTFILTERCAPS_MAGFPOINT, D3DPTFILTERCAPS_MAGFLINEAR |
На этапах вершины и пикселя поддерживаются следующие режимы адреса текстуры: | D3DPTADDRESSCAPS_WRAP, D3DPTADDRESSCAPS_MIRROR, D3DPTADDRESSCAPS_CLAMP, D3DPTADDRESSCAPS_BORDER, D3DPTADDRESSCAPS_INDEPENDENTUV D3DPTADDRESSCAPS_MIRRORONCE |
Поддерживаются все крышки шейдера пикселей. | DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. Поддерживаются следующие функции: предикация, произвольные повороты и инструкции градиента. Нет ограничений на зависимое чтение и не ограничено сочетанием инструкций текстуры и математических инструкций. |
Поддерживаются все операции набора элементов. Сюда входят два боковых трафарета. | См . раздел D3DSTENCILOP. |
Размер точки поддержки устройств на вершину | D3DFVFCAPS_PSIZE в D3DCAPS9 |
Поддержка двух текстур не в мощности. | Полная поддержка или условная поддержка, не поддерживающая pow-2; Устройство не должно иметь только ограничения квадратной текстуры, как в D3DPTEXTURECAPS_SQUAREONLY. |
Если устройство поддерживает несколько целевых элементов подготовки к просмотру, поддерживаются следующие ограничения: | D3DPMISCCAPS_INDEPENDENTWRITEMASKS, D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING |
Если vs_3_0 поддерживается | MaxUserClipPlanes в D3DCAPS9 — 6 |
Связанные темы