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:
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.
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.
Some you may have missed, popular articles from the last month:
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
1 Likes, Who?
Well, wrong approach for shader caching.
Though, there is another interesting note on the mesa list
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
0 Likes
Quoting: NyamiouQuoting: 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.)
0 Likes
See more from me