[Mesa-dev] [PATCH 06/40] glsl: add helper to convert pointers to uint64_t

Timothy Arceri tarceri at itsqueeze.com
Fri Feb 10 11:38:38 UTC 2017


On 10/02/17 21:41, Marek Olšák wrote:

> Why would you wanna store pointers in the cache?

Because we need them to restore the various things that get crammed into 
prog_data on i965. Such as uniforms, images, etc

https://github.com/tarceri/Mesa/commit/bd0391b0c9ee56c14ccf5abbff4fad15d9cd70d0

>
> Marek
>
> On Tue, Feb 7, 2017 at 4:42 AM, Timothy Arceri <tarceri at itsqueeze.com> wrote:
>> From: Timothy Arceri <timothy.arceri at collabora.com>
>>
>> This will be used to store all pointers in the cache as 64bit ints
>> allowing us to avoid issues when a 32bit program reads a cached
>> shader that was created by a 64bit application.
>> ---
>>   src/compiler/glsl/shader_cache.h | 10 ++++++++++
>>   1 file changed, 10 insertions(+)
>>
>> diff --git a/src/compiler/glsl/shader_cache.h b/src/compiler/glsl/shader_cache.h
>> index 8bd0a3c..1596c33 100644
>> --- a/src/compiler/glsl/shader_cache.h
>> +++ b/src/compiler/glsl/shader_cache.h
>> @@ -27,6 +27,16 @@
>>
>>   #include "util/disk_cache.h"
>>
>> +static uint64_t inline
>> +ptr_to_uint64_t(void *ptr)
>> +{
>> +   uint64_t ptr_int = (uint64_t) ptr;
>> +#if __i386__
>> +   ptr_int &= 0xFFFFFFFF;
>> +#endif
>> +   return ptr_int;
>> +}
>> +
>>   void
>>   shader_cache_write_program_metadata(struct gl_context *ctx,
>>                                       struct gl_shader_program *prog);
>> --
>> 2.9.3
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list