Определите, какой рендерер используется для вершинного шейдера - PullRequest
0 голосов
/ 21 декабря 2011

Apple OpenGL Shader Builder позволяет вам вставить ваш вершинный (или фрагментный) шейдер, он свяжет и проверит его, а затем сообщит вам, какой GL_RENDERER используется для этого шейдера. Для меня это либо показывает: Apple Software Renderer (красным, потому что это означает, что шейдер будет работать медленно), либо AMD Radeon HD 6970M OpenGL Engine (то есть рендерер моего gpu, который я обычно хочу запустить шейдером).

Как я также могу определить это во время выполнения в моем собственном программном обеспечении?

Edit: Запросы GL_RENDERER в моем коде процессора всегда, кажется, возвращают AMD Radeon HD 6970M OpenGL Engine, независимо от того, где я помещаю его в цикл рисования, даже если я использую шейдер, который, как говорит OpenGL Shader Builder, работает на Apple Software Renderer (и я верю этому потому что это очень медленно). Это вопрос запроса GL_RENDERER в нужное время? Если да, то когда?

1 Ответ

0 голосов
/ 21 декабря 2011

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

Так что вы действительно делаете правильный метод.

...