<div dir="ltr">Is this because the 32bit and 64bit versions have slightly different time stamps used in the cache directory name? I was under the impression that the cache itself could be shared between 32bit & 64bit?<div><br></div><div>I guess this only matters for the few games that offer both a 32bit and 64bit binary, producing duplicate entries in both caches potentially </div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, 2 Mar 2017 at 13:16 Grazvydas Ignotas <<a href="mailto:notasas@gmail.com">notasas@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thu, Mar 2, 2017 at 8:36 AM, Timothy Arceri <<a href="mailto:tarceri@itsqueeze.com" class="gmail_msg" target="_blank">tarceri@itsqueeze.com</a>> wrote:<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> On 02/03/17 17:17, Ilia Mirkin wrote:<br class="gmail_msg">
>><br class="gmail_msg">
>> On Thu, Mar 2, 2017 at 1:08 AM, Timothy Arceri <<a href="mailto:tarceri@itsqueeze.com" class="gmail_msg" target="_blank">tarceri@itsqueeze.com</a>><br class="gmail_msg">
>> wrote:<br class="gmail_msg">
>>><br class="gmail_msg">
>>> Previously we were deleting the entire cache if a user switched<br class="gmail_msg">
>>> between 32 and 64 bit applications.<br class="gmail_msg">
>>> ---<br class="gmail_msg">
>>>  src/util/disk_cache.c | 21 +++++++++++++++++++++<br class="gmail_msg">
>>>  1 file changed, 21 insertions(+)<br class="gmail_msg">
>>><br class="gmail_msg">
>>> diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c<br class="gmail_msg">
>>> index 3abdec4..1a91c69 100644<br class="gmail_msg">
>>> --- a/src/util/disk_cache.c<br class="gmail_msg">
>>> +++ b/src/util/disk_cache.c<br class="gmail_msg">
>>> @@ -40,20 +40,32 @@<br class="gmail_msg">
>>>  #include "zlib.h"<br class="gmail_msg">
>>><br class="gmail_msg">
>>>  #include "util/crc32.h"<br class="gmail_msg">
>>>  #include "util/u_atomic.h"<br class="gmail_msg">
>>>  #include "util/mesa-sha1.h"<br class="gmail_msg">
>>>  #include "util/ralloc.h"<br class="gmail_msg">
>>>  #include "main/errors.h"<br class="gmail_msg">
>>><br class="gmail_msg">
>>>  #include "disk_cache.h"<br class="gmail_msg">
>>><br class="gmail_msg">
>>> +#if defined(__x86_64__)<br class="gmail_msg">
>>> +#if defined(__ILP32__)<br class="gmail_msg">
>>> +#define CACHE_ARCH "x32"<br class="gmail_msg">
>>> +#else<br class="gmail_msg">
>>> +#define CACHE_ARCH "x86_64"<br class="gmail_msg">
>>> +#endif<br class="gmail_msg">
>>> +#elif defined(__i386__)<br class="gmail_msg">
>>> +#define CACHE_ARCH "i386"<br class="gmail_msg">
>>> +#else<br class="gmail_msg">
>>> +#define CACHE_ARCH "unknown_arch"<br class="gmail_msg">
>>> +#endif<br class="gmail_msg">
>><br class="gmail_msg">
>><br class="gmail_msg">
>> This seems incomplete.<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> It's complete enough for what we currently support. Maybe could add powerpc<br class="gmail_msg">
> but wouldn't be hard to add if someone was worried about that.<br class="gmail_msg">
<br class="gmail_msg">
ARM is also a potential user with vc4, so the above ifdef tree can<br class="gmail_msg">
become quite nasty quick.<br class="gmail_msg">
<br class="gmail_msg">
You could use (char *)getauxval(AT_PLATFORM) I think, it's Linux<br class="gmail_msg">
specific and requires recent enough glibc version (4 years old or so),<br class="gmail_msg">
but that should cover majority of cache users IMO.<br class="gmail_msg">
<br class="gmail_msg">
I'd suggest something like:<br class="gmail_msg">
const char *arch = NULL;<br class="gmail_msg">
#ifdef HAVE_GETAUXVAL<br class="gmail_msg">
   arch = (const char *)getauxval(AT_PLATFORM);<br class="gmail_msg">
#endif<br class="gmail_msg">
if (!arch)<br class="gmail_msg">
   arch = (sizeof(void *) == 8) ? "64" : "32";<br class="gmail_msg">
<br class="gmail_msg">
This misses x32 but I don't think we should care, mesa was crashing on<br class="gmail_msg">
x32 for years until recently (and still is crashing in some<br class="gmail_msg">
configurations according to a recent report).<br class="gmail_msg">
<br class="gmail_msg">
Gražvydas<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
mesa-dev mailing list<br class="gmail_msg">
<a href="mailto:mesa-dev@lists.freedesktop.org" class="gmail_msg" target="_blank">mesa-dev@lists.freedesktop.org</a><br class="gmail_msg">
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br class="gmail_msg">
</blockquote></div>