[Mesa-dev] [PATCH 38/87] glsl: cache some more image metadata

Timothy Arceri timothy.arceri at collabora.com
Wed Jul 13 02:47:33 UTC 2016


---
 src/compiler/glsl/shader_cache.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/compiler/glsl/shader_cache.cpp b/src/compiler/glsl/shader_cache.cpp
index 66007d4..568d1dd 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -897,6 +897,12 @@ write_shader_metadata(struct blob *metadata, gl_linked_shader *shader)
 
       blob_write_uint32(metadata, glprog->ClipDistanceArraySize);
 
+      blob_write_uint32(metadata, shader->NumImages);
+      blob_write_bytes(metadata, shader->ImageAccess,
+                       sizeof(shader->ImageAccess));
+      blob_write_bytes(metadata, shader->ImageUnits,
+                       sizeof(shader->ImageUnits));
+
       if (shader->Stage == MESA_SHADER_FRAGMENT) {
          struct gl_fragment_program *fprog =
             (struct gl_fragment_program *) glprog;
@@ -939,6 +945,12 @@ read_shader_metadata(struct blob_reader *metadata,
 
       glprog->ClipDistanceArraySize = blob_read_uint32(metadata);
 
+      linked->NumImages  = blob_read_uint32(metadata);
+      blob_copy_bytes(metadata, (uint8_t *) linked->ImageAccess,
+                      sizeof(linked->ImageAccess));
+      blob_copy_bytes(metadata, (uint8_t *) linked->ImageUnits,
+                      sizeof(linked->ImageUnits));
+
       if (linked->Stage == MESA_SHADER_FRAGMENT) {
          struct gl_fragment_program *fprog =
             (struct gl_fragment_program *) glprog;
-- 
2.7.4



More information about the mesa-dev mailing list