[Mesa-dev] [PATCH 0/4] GL_OES_get_program_binary extension

Tapani tapani.palli at intel.com
Mon Oct 28 11:50:06 CET 2013


On 10/26/2013 07:42 AM, Matt Turner wrote:
> On Thu, Oct 24, 2013 at 1:28 AM, Tapani Pälli <tapani.palli at intel.com> wrote:
>> Hello;
>>
>> These patches introduce GL_OES_get_program_binary extension support for Mesa.
>> There are already stub functions for this extension, patches add the missing
>> functionality part. This is based on the 'more automatic' shader cache work
>> I've been implementing. I wanted to implement this first as this is a standard
>> for applications to use and the automatic cache can be built separately based
>> on these same enablers.
>>
>> As well as code review I would also appreciate any testing efforts with this.
>> I've tested this with my own test apps but as you can imagine the coverage
>> ain't that big. I'm also thinking of building piglit test cases to exercise
>> cache shader but that is still on planning stage.
> Are the implementations for serializing and unserializing cache
> shaders mostly shared between the automatic shader cache and this
> extension's implementation?

Yes, this is my expectation. I have already patches to cache individual 
unlinked shaders and load them on glCompileShader. That cache works also 
on top of this same code. Of course, depending on the final 
implementation there might be more things to cache and more places to touch.

> I worry that the only way to get sufficient testing of that is via the
> automatic shader cache, and that only once it's stable can this
> extension proceed.

I'll be at least testing this implementation with Chromium as it has 
shader cache that uses GL_OES_get_program_binary. I've started to work 
on a patch set that caches individual unlinked shaders and also whole 
linked programs. There's already quite a lot of code here though so I 
would appreciate review comments on OES_get_program_binary 
implementation if you have the time.

Thanks;

// Tapani



More information about the mesa-dev mailing list