Подтвердить что ты не робот

Отладка OpenGL ES 2.0

Итак, у меня есть приложение OpenGL ES 2.0. Он компилируется и работает в iPhone/iPad-симуляторах, на реальном iPhone/iPad и под Windows, используя библиотеки эмуляторов Imgtec (т.е. PVRVframe).

В упомянутом приложении у меня есть один конкретный призыв к вызову, который не дает пикселов, записанных в цель, хотя все состояние, которое я могу запросить, выглядит разумным (просмотр, проверка глубины/трафаретная проверка/отбраковка/смешение, завершение фреймбуфера и т.д.)), и AFAICT Я представляю разумные данные вершин.

То, что я на этот раз, - это инструмент Pix/ GPAD, который позволит мне пройти через сцену и просмотреть состояние, которое я не могу напрямую запросить из OpenGL в точке рассматриваемого вызова ничьей (например, фактическое содержимое буфера вершины/индекса).

Ни PVRTrace, ни инструменты OSX не отображают достаточное количество состояний для отладки этой проблемы. В частности, они не захватывают буферные или текстурные данные вершин/индексов (инструменты OSX также не захватывают источник шейдера).

gDEBugger, ранее ответ на этот вопрос в Stack Overflow, теперь находится в версии 5.8 - он стал бесплатным, что хорошо, но больше не поддерживает OpenGL ES 2 (под Windows, no Конфигурация ES2-рендеринга доступна через EGL, а в OSX невозможно подключить отладчик к приложению, работающему либо в симуляторе, либо на реальном устройстве) - это не так приятно.

Я пропустил что-то очевидное? Какие у меня варианты? Как другие отлаживают свои сцены?

4b9b3361

Ответ 2

Существует несколько инструментов отладки OpenGL ES 1.1/2.0 от поставщиков графических процессоров. Практически эти инструменты требуют реального устройства, но Imagination Technologies предоставляет библиотеки эмуляции и инструмент трассировки, который вы использовали. Вы использовали PVRTrace с PVRVFrame?

  • PowerVR (Imagination Technologies)
    • PVRVFrame - это библиотеки эмуляции OpenGL ES 1.1/2.0 на OpenGL. И вызовы GL можно проследить с помощью PVRTrace с графическим интерфейсом.
    • PVRTrace также может подключаться к устройствам Linux ARMv7.
  • Adreno (Qualcomm)
  • Tegra (NVIDIA)
    • PerfHUD ES имеет отладчик кадров как профилировщик Adreno. Это требует Tegra Development Kit.
  • Мали (ARM)

(Я считаю, что gDEBugger 5.7 - лучший инструмент для отладки OpenGL ES 1.1/2.0, но он больше не доступен...)

Ответ 3

Я обнаружил, что gDebugger 5.7 для Windows IS по-прежнему доступен:

http://files.gremedy.com/downloads/gDEBugger-5_7.msi

Я изменил этот URL-адрес из того, что находится в верхней части этой страницы загрузки: Вид источника: HTTP://www.gremedy.com/downloading.php платформа = windows32

Возможно, можно получить доступ к той же версии для других платформ с помощью одного и того же трюка.

Старый файл лицензии доступен здесь: http://www.geeks3d.com/20101207/3d-programming-gdebugger-advanced-opengl-debugger-now-free/

Но это истекло 31 января 2011 года.

Ответ 4

Отладчик GNU (gdb) является одним из бэкендов для Xcode (поскольку gcc является компилятором бэкэнд, имеет смысл, что бэкэнд-отладчик также будет инструментом GNU, я также предполагаю, что вы разрабатываете на Mac, если не, Google gdb или mingw). Хотя это "трудно использовать", GDB чрезвычайно эффективен. Он может проходить через все приложение, и я считаю, что он может принимать основные дампы текущего приложения.

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