Не удается загрузить шейдеры Cg, когда RenderDoc присоединен в OpenGL

Я пытаюсь отладить свою игру OpenGL с помощью RenderDoc, но если я запускаю из RenderDoc, то графика не отображается, и Cg выдает ошибки при запуске. Как мне заставить RenderDoc работать с моей игрой?

Я получаю пару ошибок:

  • cgGLGetLatestProfile(CG_GL_VERTEX) возвращается CG_PROFILE_ARBVP1 (намного более низкий профиль, чем возвращается, когда не запускается из RenderDoc)
  • cgGLGetLatestProfile(CG_GL_FRAGMENT) возвращается CG_PROFILE_UNKNOWN
  • При попытке загрузить шейдер с этим профилем или с жестко закодированным более новым, он говорит The profile is not supported,
  • После этого выводится дополнительная ошибка: fatal error C9999: InitHAL failed,

В документации RenderDoc упоминается, что dbghelp.dll не следует использовать в сочетании с RenderDoc, поэтому я удалил наше включение dbghelp.lib и всех ссылок на dll и заголовок из нашего кода, поэтому я думаю, что я не использую dbghelp.dll больше.

Используемая графическая карта - GeForce GTX 560, и при запуске игры GL_VERSION сообщается как 4.6.0 NVIDIA 391.35, Я также попытался запустить на другом компьютере новую видеокарту (Nvidia 1050ti) и попытался установить новейшие драйверы, но это не имело никакого значения. Это все на Windows 10 64bit.

У нас также есть опция DirectX9 в нашем движке. Когда я использую это и запускаю игру из RenderDoc, она запускается нормально и показывает оверлей RenderDoc поверх игры. Однако, поскольку RenderDoc на самом деле не поддерживает DirectX9, я не могу захватить кадр таким образом (как и ожидалось).

0 ответов

Другие вопросы по тегам