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 <tarc...@itsqueeze.com> wrote:
From: Timothy Arceri <timothy.arc...@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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to