Этапы графического конвейера
Окно Этапы графического конвейера, одно из средств диагностики графики в Visual Studio, может помочь понять, как определенное событие рисования передается по графическому конвейеру.
Окно Этапы графического конвейера выглядит так:
Примечание
Начиная с Visual Studio 2013 с обновлением 3 окна средств диагностики графики размещаются в отдельной копии среды Visual Studio.В этой специальной среде, которая называется "Анализ графики", нет ненужных меню и параметров, но в остальном окно "Этапы графического конвейера" и рабочий процесс остаются такими же, как и раньше.Подробнее об этом изменении см. в разделе Общие сведения о диагностике графики.
Основные сведения об окне "Этапы графического конвейера"
Окно Этапы графического конвейера может помочь проанализировать вывод каждого этапа графического конвейера, относящийся к конкретному отрисованному объекту. В частности, можно определить этапы, на которых данные были неправильно интерпретированы или преобразованы. Например, можно узнать, был ли объект нарисован вне области экрана на этапе вершинного построителя текстуры. После определения этапа конвейера, на котором возникает проблема, можно использовать другие средства диагностики графики для анализа того, как данные были интерпретированы или преобразованы. Проблемы отрисовки, возникающие на этапах конвейера, часто связаны с неверными дескрипторами формата вершин, ошибками в программах шейдеров или неправильно настроенным состоянием устройства.
Этапы графического конвейера
В окне Этапы графического конвейера отображаются данные графики только для этапов конвейера, которые были активны во время вызова рисования. Чтобы использовать средства графики в Visual Studio для просмотра выходных данных каждого отображаемого этапа, выберите соответствующий эскиз в окне Этапы графического конвейера.
Вычислительные шейдеры в окне Этапы графического конвейера не поддерживаются.
Сборщик входных данных
Считывает данные индексов и вершин, которые предоставляются приложением, и выполняет их сборку для графического оборудования. На эскизе показана каркасная модель собранных вершин. Данные вершин, которые соответствуют позиции, определяются семантикой POSITION. Если семантика POSITION отсутствует в выводе сборщика входных данных, на этапе Сборщик входных данных ничего не отображается. Просмотреть вывод этапа Сборщик входных данных можно с помощью редактора моделей.Вершинный построитель текстуры
Обрабатывает вершины, обычно путем выполнения таких операций, как преобразования, натягивание оболочки и освещение. Вершинный построитель текстуры всегда получает входные данные одной вершины и создает выходные данные одной вершины. На эскизе показано каркасное изображение преобразованной геометрии. Данные вершин, которые соответствуют позиции, определяются семантикой POSITION или SV_POSITION. Если семантика POSITION или SV_POSITION отсутствует в выводе вершинного построителя текстуры, на этапе Вершинный построитель текстуры ничего не отображается. Просмотреть вывод этапа Вершинный построитель текстуры можно с помощью редактора изображений.Шейдер поверхности
Только в Direct3D 11. Обрабатывает геометрические примитивы, такие как четырехугольники, треугольники или линии, разбивая их на геометрические элементы более низкого порядка, которые служат в качестве входных данных для этапа тесселяции фиксированными функциями. Для этапа Шейдер поверхности эскиз не отображается.Шейдер доменов
Только в Direct3D 11. Обрабатывает вершины разделения, выводимые на этапе тесселяции фиксированными функциями, аналогично этапу вершинного построителя текстуры. Для этапа Шейдер доменов эскиз не отображается.Шейдер геометрии
Обрабатывает целые примитивы — точки, линии или треугольники — вместе с дополнительной информацией о вершинах для смежных примитивов. Шейдер геометрии может отклонить примитив или выдать один или несколько новых примитивов. На эскизе показано каркасное изображение преобразованной геометрии. Просмотреть вывод этапа Шейдер геометрии можно с помощью редактора изображений.Построитель текстуры
Обрабатывает интерполированные данные вершин для создания цветных пикселей. На эскизе показано изображение вывода построителя текстуры. Просмотреть вывод этапа Построитель текстуры можно с помощью редактора изображений.Средство слияния вывода
Объединяет различные типы результатов шейдера (например, значения построителя текстуры и данные о глубине) с содержимым целевого объекта отрисовки и буфера глубины, а также данными буфера трафаретов для определения того, какое влияние оказывается на целевой объект отрисовки. На эскизе показано изображение содержимого целевого объекта отрисовки после того, как были объединены различные результаты и было учтено содержимое буфера трафаретов. Просмотреть вывод этапа Средство слияния вывода можно с помощью редактора изображений.
Просмотр и отладка кода шейдера
Вы можете просмотреть код для вершинного построителя текстуры, шейдера поверхности, шейдера доменов, шейдера геометрии или построителя текстуры либо отладить его с помощью элементов управления под этапом конвейера, связанным с шейдером.
Просмотр исходного кода шейдера
- Под этапом конвейера, связанным с шейдером, который нужно просмотреть, выберите заголовок этапа конвейера, например, выберите Вершинный построитель текстуры, чтобы просмотреть исходный код вершинного построителя текстуры.
Отладка шейдера
- Под этапом шейдера, связанным с шейдером, который требуется отладить, под заголовком этапа конвейера выберите Начать отладку. Эта точка входа в отладчик HLSL отлаживает только первый вызов шейдера для соответствующего этапа, то есть первую обрабатываемую вершину, примитив или пиксель. Доступ к другим вызовам этих этапов шейдера можно получить в окне Журнала пикселей графики.
Ссылка на графическое устройство
Чтобы понять, почему вызов рисования определенным образом взаимодействует с конвейером графики, могут потребоваться сведения о текущем состоянии устройства. В окне Этапы графического конвейера есть ссылка на эти сведения.
См. также
Задачи
Пошаговое руководство. Отсутствие объектов вследствие заливки вершин
Пошаговое руководство. Отладка ошибок отрисовки, возникающих из-за заливки