Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal. You can also buy games using our partner links for GOG and Humble Store.
We do often include affiliate links to earn us some pennies. See more here.
This will probably be to the delight of many AMD graphics card owners who use the open source Mesa graphics drivers: A patch has been sent into the Mesa-dev mailing list for radeonsi to 'Add disk shader cache'.

I should note, that this patch comes from a newer developer who notes it's their first message to the Mesa-dev mailing list. The patch may need a lot of work, but it's nice to see someone make a start on it.

Also, since this is in the Mesa-dev mailing list it is not in the current Mesa code as it has not been accepted or reviewed as of yet.

The developer said this:
QuoteHi, This is my first mail to the list.

I'm not sure this is the right way to do this, it's my first attempt to patch mesa.
I've tested on a radeon HD7950 with glxgears and quake3. I have some binary shaders in ~/.cache/mesa after running them, and they are re-used when re-launching them.
I wanted to test more recent games, but the LD_LIBRARY_PATH trick didn't work with steam games, and I don't want to install mesa master system-wide.


They also note that it is missing features right now like:
- add #if ENABLE_SHADER_CACHE where needed.
- when loading from disk cache, also insert it to RAM cache.

You can see the mailing list entry here.

I don't own any AMD cards to test it with, nor do I understand the technical bits behind the code. I will leave it up to you in the comments to decide how it looks. I do understand that a shader cache is needed and highly sought-after by many. Article taken from GamingOnLinux.com.
3 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
The comments on this article are closed.
13 comments
Page: «2/2
  Go to:

soulsource Jan 25, 2017
Quoting: MaelraneI honestly don't know: does amdgpu (mesa! Not proprietary pro one) profit from this?
Just to clarify: AMDGPU is the kernel DRM driver used by GCN 1.2 cards, while radeonsi is the user space OpenGL driver (part of mesa) used by all GCN cards. (For GCN 1.1 and 1.0 the kernel DRM module is called radeon.)


Last edited by soulsource on 25 January 2017 at 9:35 am UTC
STiAT Jan 25, 2017
Well, wrong approach for shader caching.

Though, there is another interesting note on the mesa list

QuoteHi,

Welcome to contributing to Mesa :)

I'm not sure how much time you have to work on this feature, but just
letting you know it was my intention to start work on shade cache
support for radeonsi next week.

Tim
STiAT Jan 25, 2017
Quoting: Nyamiou
Quoting: MaelraneI honestly don't know: does amdgpu (mesa! Not proprietary pro one) profit from this?

It would help fix this bug: https://bugs.freedesktop.org/show_bug.cgi?id=97879

and potentially hangs in other games.

They are actually fixing this one.

QuoteTimothee Besset 2017-01-24 18:20:55 UTC
Hello! I have started working on this. I haven't found the root cause yet but I will update here when I have something.

(For context, I did the initial port work for Psyonix. I just recently got a radeonsi setup together so I can look at this now.)
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.