C'è qualche vantaggio in termini di prestazioni nel condividere shader tra programmi?


14

OpenGL ti consente di condividere lo stesso shader tra più programmi. A parte il risparmio di piccole quantità di memoria e una maniglia dello shader, ci sono vantaggi in termini di prestazioni sul lato GPU?

Risposte:


3

Dubito che ci sia un vantaggio in termini di prestazioni sul lato GPU.

Ad esempio, quando si associa uno shader generico a un programma, un'implementazione efficiente dovrebbe essere in grado di rimuovere gli attributi inutilizzati tra lo shader e gli altri shader in quel programma e, di conseguenza, eventualmente anche semplificare la logica dello shader. Ovviamente, questo non è un vero vantaggio rispetto a una combinazione shader sintonizzata a mano, ma aiuta a gestire la complessità / combinatoria e forse a ridurre il numero di compilazioni che il driver deve fare.

Tuttavia, potrebbero esserci degli svantaggi nel fare ciò in termini di colpire implementazioni inefficienti del compilatore driver. E ce ne sono alcuni là fuori, controlla: http://aras-p.info/blog/2010/09/29/glsl-optimizer/ per alcune semplici cose che alcune implementazioni possono sbagliare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.