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

Marek Olšák maraeo at gmail.com
Fri Feb 10 10:41:43 UTC 2017


Why would you wanna store pointers in the cache?

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


More information about the mesa-dev mailing list