Получение шейдеров для запуска на GPU - PullRequest
2 голосов
/ 18 ноября 2010

У меня есть программа OpenGL, которая использует шейдеры (OpenGL версия 3.3, GLSL версия 1.5).Я слышал, что шейдеры на самом деле работают на процессоре, если вы специально не скажете, чтобы он работал на GPU.(Конечно, единственная причина, по которой я использую шейдеры, заключается в том, чтобы ускорить рендеринг, выполняя вычисления в графическом процессоре, а не в процессоре, поэтому такое поведение мне не подходит.) Это правда?Если да, как заставить шейдер работать на GPU?

Ответы [ 2 ]

10 голосов
/ 18 ноября 2010

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

2 голосов
/ 20 ноября 2010

Я почти уверен, что драйвер всегда пытается запустить каждый шейдер на GPU, а не на CPU.Но не все современные видеокарты поддерживают полный набор функций шейдерных операций.Например, расширение OpenGL 4.0 GL_ARB_gpu_shader_fp64, насколько я знаю, может быть доступно при частичной поддержке.Таким образом, драйвер должен эмулировать некоторые операции в программном режиме на процессоре.Что касается расширений, вы можете проверить свою карту, вызвав glGetString с параметром GL_EXTENSIONS.

...