Unity 6.3
0 онлайн 3 гостей 3 в системе
Вход

Отладка шейдеров с PIX

PIX это инструмент для настройки производительности и отладки от Microsoft, для разработчиков Windows. Он предлагает ряд режимов для анализа производительности приложения, и включает в себя возможность захвата кадров DirectX проектов из приложения для отладки.

Используйте PIX для исследования проблем в Windows 64-битных (x86_64) автономных или универсальных приложениях платформы Windows.

Чтобы установить PIX, скачать и запустить Microsoft PIX установщик и следуйте инструкциям.

Дополнительные сведения о PIX см. в документации Microsoft PIX Introduction и PIX Documentation.

Отладка шейдеров DirectX с помощью PIX

Вы должны использовать встроенную версию вашего приложения Unity для захвата кадров, а не версию, запущенную в Unity Editor. Это потому, что вам нужно запустить целевое приложение из PIX для захвата кадров GPU.

Использование сборки для разработки добавляет дополнительную информацию в PIX, что облегчает навигацию по захвату сцены.

Создание проекта с отладочным шейдером

Для отладки шейдера с исходным кодом в PIX, вам нужно вставить следующую прагму в код шейдера: #pragma enable_d3d11_debug_symbols

Пример

В следующем руководстве используется базовый пример для демонстрации всего процесса.

Создать базовый проект:

  1. Создать новый Unity проекта (см. документацию Центра по Проекты).

  2. В верхнем меню перейдите в Ассеты > Создание > Шейдер > Стандартный Shader поверхности. Это создает новый файл шейдера в вашей папке Project.

  3. Выберите файл шейдера и в окне Inspector нажмите Открыть. Это откроет файл шейдера в редакторе скриптов. Вставьте #pragma enable_d3d11_debug_symbols в код шейдера, под другими строками #pragma.

  4. Создать новый Материал (меню: Активы > Создать > Материал).

  5. В окне Inspector материала выберите Шейдер, перейдите в Таможняи выберите только что созданный шейдер.

  6. Создать 3D куб GameObject (меню: GameObject > 3D Объект > Куб).

  7. Назначьте свой новый Материал своему новому GameObject. Для этого перетащите Материал из окна Project в куб 3D.

Захват кадра из автономного приложения Windows:

  1. Перейти к Файл > Создание профилей, и в соответствии Платформы, выбрать Windows или создать профиль сборки на 2000 год Windows платформа. Установить Архитектура до Intel 64-бит, и обеспечить возможность Разработка Build.

  2. Нажмите Строительство.

  3. Запуск PIX.

  4. Нажмите на Домой, затем Подключить

  5. Выберите Компьютер localhost , чтобы использовать ваш PC для захвата, и нажмите connect.

  6. В поле Выберите целевой процесс выберите вкладку Запуск Win32 и используйте кнопку Просмотр для выбора исполняемого файла приложения. Обратите внимание, что здесь "Win32" означает неUWP приложение; файл приложения должен быть 64-битным двоичным файлом.

  7. Включите Launch для GPU Capture, затем используйте Запуск для запуска приложения.

  8. Используйте приложение как обычно до тех пор, пока не будете готовы захватить кадр. Чтобы захватить кадр, нажмите Print Screen на клавиатуре или щелкните значок камеры на панели захватов GPU. В панели появится миниатюра кадра. Чтобы открыть кадр, щелкните миниатюру.

  9. Чтобы начать анализ записи, нажмите на выделенный текст или маленький значок Играть на панели меню.

  10. Выберите вкладку Pipeline и используйте окно __Events__, чтобы перейти к интересующему вас вызову на рисование.

  11. В нижней половине вкладки Pipeline выберите цель отображения из списка OM (Output Merger), чтобы посмотреть результат вызова отрисовки. Выберите пиксель на объекте, который хотите отладить. Обратите внимание: щёлкнув по пикселю правой кнопкой мыши, можно просмотреть историю вызовов отрисовки — так удобно найти нужный вызов.

  12. Выберите Отладочный пиксель на панели Детали пикселя.

  13. На панели отладки используйте Параметры шейдера, чтобы выбрать стадию шейдера для отладки.

  14. Используйте панель инструментов или горячие клавиши для прохождения кода.

Дополнительные сведения об отладке шейдеров с PIX, см. видео серии Microsoft PIX на Windows, в частности Часть 5 — Вкладка "Отладка".

Дополнительные сведения о захвате GPU в PIX см. в документации Microsoft по захватам GPU.