Шейдеры OpenGL скомпилированы на GPU или CPU? Как двоичный вывод зависит от производителя графического процессора? - PullRequest
12 голосов
/ 27 августа 2011

Во-первых; как скомпилированы шейдеры OpenGL? Они скомпилированы на процессоре или графическом процессоре, или это зависит от реализации? У разных производителей разные бинарные выходы; если так, возможно ли кросс-компиляция двоичного файла для одного типа графического процессора на другом графическом процессоре? Я разрабатываю игру, которую планирую запустить на чипах Intel GFX, ATI и NVidia. Я бы предпочел поставлять только двоичные части шейдеров, без необходимости компилировать исходный код на клиентских компьютерах. Это возможно? Как работает процесс компиляции шейдеров?

1 Ответ

12 голосов
/ 27 августа 2011

Процесс компиляции, вообще говоря, выполняется на процессоре. Однако результат отличается не только от поставщика, но и от модели. Таким образом, шейдеры должны быть перекомпилированы на компьютере пользователя, чтобы оставаться совместимым с любой моделью графического процессора, которую пользователь может использовать (включая модели графического процессора, которые могут не существовать при написании вашей игры!)

...