On 08/22/2017 02:40 AM, Michel Dänzer wrote:
On 22/08/17 06:31 PM, Timothy Arceri wrote:
On 22/08/17 18:02, Michel Dänzer wrote:
On 22/08/17 10:02 AM, Pierre-Loup A. Griffais wrote:
On 08/18/2017 04:02 AM, Nicolai Hähnle wrote:
On 15.08.2017 01:26, Timothy Arceri wrote:
This will be used to store more information about the cache item
in it's header. This information is intended for 3rd party and
cache analysis use but can also be used for detecting the unlikely
scenario of cache collisions.
---
src/util/disk_cache.h | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/src/util/disk_cache.h b/src/util/disk_cache.h
index 9aade16a9e..d6d7609ffb 100644
--- a/src/util/disk_cache.h
+++ b/src/util/disk_cache.h
@@ -34,20 +34,42 @@
#ifdef __cplusplus
extern "C" {
#endif
/* Size of cache keys in bytes. */
#define CACHE_KEY_SIZE 20
typedef uint8_t cache_key[CACHE_KEY_SIZE];
+/* WARNING: 3rd party applications might be reading the cache item
metadata.
+ * Do not change these values without making the change widely known.
+ * Please contact Valve developers and make them aware of this
change.
+ */
+#define CACHE_ITEM_TYPE_UNKNOWN 0x0
+#define CACHE_ITEM_TYPE_GLSL 0x1
+
+typedef uint32_t cache_item_metadata_type;
Please don't do typedefs like that, they just obfuscate. If you don't
want to just use uint32_t, I'd suggest to use an enum.
At a higher level, what is this actually good for? So I get Valve
wants to parse something in the shader cache, but why / what for?
Steam looks at local entries and delete leftover ones should you upgrade
Mesa or your GPU.
That's rather questionable. Steam should leave purging old cache entries
to Mesa.
My understanding is steam overrides the environment var so that each
game with have its own local cache. If they don't get cleaned up it
could potentially waste a significant amount of space.
I see, thanks for the clarification. I thought Pierre-Loup was referring
to the default Mesa shader cache.
Yes, Steam only messes with the caches it's managing in the first place;
it's in a good position to improve shader cache usage as it has a lot
more context on games and where they live, and can run code at points
Mesa cannot (like when you switch GPUs but never play a given game
again, or a game is uninstalled, or before a game starts), so it can use
that information to ensure optimal cache hit patterns. You can always
opt out of any shader cache related shenanigans by setting this:
STEAM_ENABLE_SHADER_CACHE_MANAGEMENT=0
Thanks,
- Pierre-Loup
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev