Как создать отладочные маркеры в OpenGL? - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь отладить некоторый графический код OpenGL 3.3+ с помощью RenderDoc, и я хотел бы определить некоторые маркеры отладки для проходов рендеринга, которые могут быть распознаны RenderDoc.

Я использую GLEW и пытался использоватьglPushGroupMarkerEXT / glPopGroupMarkerEXT для определения этих маркеров, но я получаю нарушение прав доступа при вызове glPushGroupMarkerEXT, поэтому я предполагаю, что расширение, обеспечивающее эту функциональность, не загружено.Я также пытался проверить, доступно ли расширение GL_EXT_debug_marker, используя glewIsSupported, но это возвращает false.

Эта функция не поддерживается или я ее не правильно использую?Или есть ли другой способ добиться этого?

1 Ответ

0 голосов
/ 20 января 2019

EXT_debug_marker - это не расширение, которое вы хотите использовать.Он старый и никогда не получал широкой поддержки .Его функциональность была включена в KHR_debug , который более широко поддерживается , и сам по себе является ядром OpenGL с 4.3 (он же: 5+ лет назад).

Теперь отладкафункциональность маркера отличается между двумя.KHR_debug превращает маркеры в еще один вид пользовательского отладочного уведомления.Таким образом, там, где вы бы назвали glInsertEventMarkerEXT, вместо этого вы вызываете более общий glDebugMessageInsert, используя GL_DEBUG_TYPE_MARKER в качестве типа сообщения .Если вы используете glPush/PopGroupMarkerEXT, вы вместо этого используете glPush/PopDebugGroup, который используется для произвольной области видимости.Такие группировки не используют тип маркера;они используют типы GL_DEBUG_TYPE_PUSH/POP_GROUP, чтобы вы могли определить разницу между группировкой и маркерами.

...