Недавно я попытался написать немного кода шейдера GLSL, и мне не повезло, когда шейдер не отрисовал то, что я ожидал (в основном, все на экране было черным). Вот инструменты, которые я пробовал:
Интеграция с Nvidia NSight VS - она вылетает сразу же, когда я запускаю приложение, пытаюсь соединить другое приложение даже с простым рисованием треугольника, и все равно ничего не получается. Поищите в Интернете и на форуме Nvidia и выясните, что это обычная проблема, и, похоже, не удалось найти никакого решения.
glslDevil - он может запустить приложение, но затем программа продолжает выход до того, как произойдет какой-либо рендеринг, GL Trace
wglMakeCurrent(0, 0) wglDeleteContext(00010000) ChildProcess exited
Получите еще один сбой при запуске другого приложения, когда после вызова glDeleteTexture (1, 0314EF74) Дочерний процесс завершился
Я понятия не имею, что происходит.
AMD PerfStudio 2 - кажется, это наиболее многообещающий инструмент, успешно запускающий мое приложение и отображающий необходимую информацию. Однако, похоже, не поддерживается отладка GLSL, я не могу пройти через шейдер и посмотреть локальные переменные и т. Д.? Вроде поддерживает только шейдер DirextX
gDebugger - инструмент работает довольно хорошо, похож на AMD PerfStudio, но опять же, это не отладчик, он не может проходить через код шейдера и отслеживать любые локальные переменные.
Printf - ?? Кто-то при переполнении стека говорит, что с помощью printf, как я могу выполнить printf () в шейдере?
Преобразование шейдера DirectX в GLSL - поскольку шейдер DirectX имеет лучший инструмент отладки, и есть такие инструменты, как http://sourceforge.net/projects/hlsl2glsl/ для автоматического преобразования hlsl в glsl, кажется, это может быть альтернативой. Мне лично не понравилось это решение, и я очень хотел бы иметь другой выбор.
Может ли кто-нибудь подсказать, как вы отлаживаете свой GLSL? Какой инструмент вы успешно используете?
Я бегаю по:
- NVidia GFX 460v2
- Visual Studio 2008 и 2010
- GLEW
- OpenGL 2.0
ARB_debug_output
? - person genpfault   schedule 24.05.2014