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) нет

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