Как запустить отладчик HLSL в Visual Studio 2017? - PullRequest
0 голосов
/ 29 мая 2018

Я не могу найти опцию для запуска отладчика HLSL в Visual Studio 2017.

Документ Microsoft дает указание запустить его из окна Графика конвейерного этапа или из истории пикселов графики

https://msdn.microsoft.com/en-us/library/hh873197.aspx

Однако я понятия не имею, что это такое и как к ним добраться

Когда я устанавливаю точку останова в hlsl-коде в Visual Studio IDE напрямую, он просто показывает "The Breakpoint will not currently be hit" поверхпустой красный круг.Я предполагаю, что мне нужно открыть код hlsl в отладчике hlsl, чтобы он разбился на строку.

Я запускаю новый шаблон проекта DirectX 11 App(Universal Windows) в режиме отладки x64 и устанавливаю точки останова как в вершине, так и в пикселях.Шейдеры.

Спасибо,

1 Ответ

0 голосов
/ 29 мая 2018
  1. Убедитесь, что ваши шейдеры скомпилированы с поддержкой отладки - с опцией /Zi, если вы используете компилятор HLSL.
  2. Убедитесь, что устройство DX создано с включенной отладкой (флаг D3D11_CREATE_DEVICE_DEBUG)).
  3. Запустите сеанс отладки GFX, перейдя в Главное меню -> Отладка -> Графика -> Начать отладку графики.Это создаст окно с запросом о повышенных привилегиях для всплывающего окна, запуска вашей программы и отображения окна сеанса diag с кнопкой «Захват кадра» и временной шкалой.
  4. Теперь заставьте ваше приложение отображать желаемое изображение и захватывать кадры.Иереста, используя соответствующую кнопку.Снимок экрана с захваченным кадром появится в списке.
  5. Закройте приложение.Это вызовет финализацию (некоторую постобработку) сеанса diag, что займет некоторое время.
  6. Нажмите на название кадра (синее) в списке захваченных кадров.Откроется окно графического анализатора VS - здесь вы фактически отлаживаете графику.
  7. Посередине будет (воспроизводится) снимок экрана с рамкой - вы можете щелкнуть в любом месте по нему, и в окне истории пикселей должно появитьсябыть списком вызовов отрисовки, изменяющих этот пиксель.Расширяя этот список, вы сможете найти вызов интересующего шейдера.Он должен иметь треугольную кнопку «Воспроизвести», запускающую отладку шейдера и переходящую в код шейдера, где вы можете просматривать переменные, устанавливать точки останова и другие вещи.
  8. В качестве альтернативы слева будет список событий, содержащий все модификации конвейера ирисовать (отмечены кистью) звонки.Найдите интересующий вас розыгрыш и выберите его.В окне этапов конвейера должна быть диаграмма со скриншотами продуктов каждого этапа с соответствующей ссылкой шейдера и кнопкой «Play», которая запускает отладку шейдера.
...