Existe algum benefício de desempenho no compartilhamento de shaders entre programas?


14

O OpenGL permite compartilhar o mesmo sombreador entre vários programas. Além de economizar pequenas quantidades de memória e um identificador de sombreador, existem benefícios de desempenho no lado da GPU para fazer isso?

Respostas:


3

Duvido que haja um benefício no desempenho da GPU.

Quando você vincula um sombreador genérico a um programa, por exemplo, uma implementação eficiente deve poder remover atributos não utilizados entre esse sombreador e os outros sombreadores desse programa e, possivelmente, até simplificar a lógica do sombreador. Obviamente, isso não é um benefício real em relação a uma combinação de shader ajustado manualmente, mas ajuda a gerenciar a complexidade / combinatória e, possivelmente, reduz o número de compilações que o driver precisa fazer.

No entanto, pode haver desvantagens em fazer isso em termos de atingir implementações ineficientes de driver-compilador. E existem alguns por aí, verifique: http://aras-p.info/blog/2010/09/29/glsl-optimizer/ para ver algumas coisas simples que algumas implementações podem dar errado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.