Буду ли я использовать мощность графического процессора при использовании программы OpenGL? - PullRequest
2 голосов
/ 16 октября 2011

У меня довольно старая видеокарта ATI HD 3400, которая не поддерживает OpenCL, поэтому мне интересно, могу ли я поиграть с библиотеками OpenGL, предоставляемыми драйвером катализатора ATI?

Если мой алгоритм работает на glutDisplayFunc ( displayFunc ), то есть на displayFun (), стоит ли это на самом деле мощность процессора или питания графического процессора?

1 Ответ

3 голосов
/ 16 октября 2011

GLUT - это просто библиотека, которая управляет специфичным для платформы окном и созданием контекста GL. Функция, которую вы передаете glutDisplayFunc, вызывается GLUT в соответствующее время и контекст для платформы, на которой вы работаете; он не выполняется на GPU.

Невозможно иметь код, который вы скомпилировали обычным способом, как часть более крупной программы, выполняемой на графическом процессоре.

Однако, отдельные графические операции , выполняемые внутри вашего дисплея, конечно же, выполняют рендеринг на GPU; ЦП все еще вычисляет, какую графическую операцию выполнить, но фактически не отображает результаты. Каждая функция gl является обычной функцией ЦП, но она отправляет команду через системную шину на вашу видеокарту, которая затем выполняет фактический рендеринг.

Кроме того, эти операции являются асинхронными; gl функции не ждут, пока ваш графический процессор завершит работу, прежде чем позволить вашей программе продолжаться. Это полезно, потому что ваш процессор и графический процессор могут работать одновременно - графический процессор рисует графику, а процессор определяет, какую графику рисовать. С другой стороны, если вам нужна связь в другом направлении - например, glReadPixels - тогда процессор должен ждать, пока GPU догонит. Это также разница между glFlush и glFinish.

...