¿Hay algún beneficio de rendimiento al compartir sombreadores entre programas?

14

OpenGL le permite compartir el mismo sombreador entre múltiples programas. Además de ahorrar pequeñas cantidades de memoria y un controlador de sombreador, ¿hay algún beneficio de rendimiento del lado de la GPU para hacer esto?


fuente

Respuestas:

3

Dudo que haya un beneficio de rendimiento del lado de la GPU.

Cuando vincula un sombreador genérico a un programa, por ejemplo, una implementación eficiente debería poder eliminar los atributos no utilizados entre ese sombreador y los otros sombreadores en ese programa y posiblemente incluso simplificar la lógica del sombreador como resultado. Por supuesto, esto no es un beneficio real sobre una combinación de sombreadores ajustados a mano, pero ayuda a administrar la complejidad / combinatoria y posiblemente reduce la cantidad de compilaciones que el controlador tiene que hacer.

Sin embargo, puede haber inconvenientes para hacer esto en términos de golpear implementaciones ineficientes del compilador del controlador. Y hay algunos por ahí, consulte: http://aras-p.info/blog/2010/09/29/glsl-optimizer/ para ver algunas cosas simples que algunas implementaciones pueden equivocarse.

jpaver
fuente