Ответ 1
Это возможно в Xcode с версии 4.2, c.f. https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_2.html#//apple_ref/doc/uid/00200-SW5
Итак, у меня есть приложение 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 невозможно подключить отладчик к приложению, работающему либо в симуляторе, либо на реальном устройстве) - это не так приятно.
Я пропустил что-то очевидное? Какие у меня варианты? Как другие отлаживают свои сцены?
Это возможно в Xcode с версии 4.2, c.f. https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_2.html#//apple_ref/doc/uid/00200-SW5
Существует несколько инструментов отладки OpenGL ES 1.1/2.0 от поставщиков графических процессоров. Практически эти инструменты требуют реального устройства, но Imagination Technologies предоставляет библиотеки эмуляции и инструмент трассировки, который вы использовали. Вы использовали PVRTrace с PVRVFrame?
(Я считаю, что gDEBugger 5.7 - лучший инструмент для отладки OpenGL ES 1.1/2.0, но он больше не доступен...)
Я обнаружил, что 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 года.
Отладчик GNU (gdb) является одним из бэкендов для Xcode (поскольку gcc является компилятором бэкэнд, имеет смысл, что бэкэнд-отладчик также будет инструментом GNU, я также предполагаю, что вы разрабатываете на Mac, если не, Google gdb или mingw). Хотя это "трудно использовать", GDB чрезвычайно эффективен. Он может проходить через все приложение, и я считаю, что он может принимать основные дампы текущего приложения.
Проверьте документацию по любым другим вопросам, которые могут возникнуть у вас. Как я уже сказал, он мощный, и один абзац никогда не сможет оправдать его.