[Mesa-dev] [PATCH 2/4] util/disk_cache: add struct cache_item_metadata

Michel Dänzer michel at daenzer.net
Tue Aug 22 09:40:48 UTC 2017


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.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the mesa-dev mailing list