[Mesa-dev] V2 GLSL IR & TGSI on-disk shader cache

Timothy Arceri tarceri at itsqueeze.com
Fri Feb 17 09:18:37 UTC 2017



On 17/02/17 19:26, Nicolai Hähnle wrote:
> On 16.02.2017 23:55, Timothy Arceri wrote:
>> On 17/02/17 01:27, Nicolai Hähnle wrote:
>>> Hi Timothy,
>>>
>>> thank you for the update. I had a look at all the patches now, and
>>> especially the glsl parts looks basically ready to go. There are only
>>> minor comments for which I don't need a full resend of the series, and
>>> an open question on patch 22 where it would be nice to get a proper
>>> answer.
>>
>> Thanks! It's a relief to finally get this stuff reviewed.
>
> It's definitely good to have concrete progress. There's always the
> possibility that we still missed some metadata, so I wonder what your
> testing plan is for this. Games, obviously, but perhaps consecutive runs
> of piglit give useful info as well?

Yes, I've been doing consecutive piglit runs throughout development. I 
still need to do some runs of the CTS, but at this point I'm pretty 
confident we should have everything. I've done a huge amount of 
re-factoring of the structs that store this meta-data to reduce the 
amount of data we need to store both in the cache and at run time, so if 
I missed anything it should be fairly minor and easy to fix.

>
>
>> I'm not really
>> sure about an authoritative source for patch 22, although I'm happy to
>> add the group check, I think it makes some sense.
>
> Please push the patch; in its current form its better than nothing, and
> even the loader doesn't do fancier checks. It has my R-b.

ok, thanks :)

>
>
>>> On 14.02.2017 01:52, Timothy Arceri wrote:
>>>> Changes in V2:
>>>>
>>>> - no longer mess around storing/restoring any pointers
>>>> - implemented support for compute shaders
>>>> - dropped some patches only needed by i965 for now
>>>> - add fallback support for shader source that is changed after its
>>>> compiledi (piglit test on the list)
>>>> - simplify cache enable for r600/radeonsi by unconditionally creating
>>>> the cache in screen_create.
>>>
>>> Remind me how each part of the cache can be disabled?
>>
>> We can't really enable GLSL IR cache by itself (I guess we could enable
>> tgis but that wouldn't make much sense). The code simply checks id
>> ctx->Cache != NULL in various locations which means cache is enabled.
>
> There should still be some environment variable to disable the cache.
> R600_DEBUG=nocache, for example, since it's the driver that creates the
> actual disk cache structure now.

oh, that would be MESA_GLSL_CACHE_DISABLE=1 which is checked when the 
driver calls disk_cache_create()

>
> Cheers,
> Nicolai
>
>>
>>>
>>> Thanks,
>>> Nicolai
>>>
>>>
>>>> - make glsl version (the version reported as supported by the
>>>> implemenation at
>>>>   compile time) part of the sha1 input rather than adding mesa string
>>>> to the cache object itself.
>>>>   This avoids fallbacks and should be more reliable.
>>>> - add any drirc options as sha1 inputs
>>>> - some other tidy ups suggested by Nicolai and Marek
>>>>
>>>> In future we probably want to check what other env vars have been set,
>>>> but for now the gl/glsl version and drirc options should cover most
>>>> things.
>>>>
>>>> _______________________________________________
>>>> mesa-dev mailing list
>>>> mesa-dev at lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>>>
>>>
>


More information about the mesa-dev mailing list