dcl_maxOutputVertexCount (sm4 - asm)
Объявляет максимальное число вершин, которое может выводиться геометрическим шейдером.
число dcl_maxOutputVertexCount |
---|
Элемент | Описание |
---|---|
Рассчитывать |
[in] 32-разрядное целое число без знака от 1 до n включительно. |
Геометрический шейдер может выводить не более 1024 32-разрядных значений. Это максимальное значение включает размер входных данных и размер данных, созданных шейдером.
Ниже приведены некоторые ограничения.
- Если число вершин достигается до завершения выполнения геометрического шейдера, шейдер завершает работу.
- Геометрический шейдер может достичь конца своей программы перед выводом каких-либо вершин; это совершенно законно.
- При отладке геометрического шейдера можно определить количество созданных вершин, подсчитав количество созданных инструкций выдачи.
Эта инструкция применяется к следующим этапам шейдера:
Вершинный построитель текстуры | Шейдер геометрии | Построитель текстуры |
---|---|---|
x |
Эта инструкция содержится для упрощения отладки шейдера в сборке; вы не можете создать шейдер на языке ассемблера с помощью модели шейдера 4.
Пример
Рассмотрим некоторые примеры.
Предположим, что входные данные состоят из положения (.xyzw) и цвета (RGB). Каждый компонент потребляет один байт; если задано 7 байт, максимальное число вершин, которые может создать шейдер, будет равно 1024 / (4 + 3) = 146.
dcl_maxOutputVertexCount 146
Предположим, что шейдер геометрии создает 32 вектора из 4 компонентов. Максимальное число вершин, которые может создать шейдер, будет равно 1024 / (32 * 4) = 8.
dcl_maxOutputVertexCount 8
Минимальная модель шейдера
Эта функция поддерживается в следующих моделях шейдеров.
Модель шейдера | Поддерживается |
---|---|
Модель шейдера 5 | да |
Модель шейдера 4.1 | да |
Модель шейдера 4 | да |
Модель шейдера 3 (DirectX HLSL) | нет |
Модель шейдера 2 (DirectX HLSL) | нет |
Модель шейдера 1 (DirectX HLSL) | нет |