[Mesa-dev] [PATCH 23/68] glsl: cache SSBO uniform storage values

Timothy Arceri timothy.arceri at collabora.com
Wed Jun 1 06:23:04 UTC 2016


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

diff --git a/src/compiler/glsl/shader_cache.cpp b/src/compiler/glsl/shader_cache.cpp
index 8e4209b..5863776 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -150,6 +150,10 @@ write_uniforms(struct blob *metadata, struct gl_shader_program *prog)
       blob_write_uint32(metadata, prog->UniformStorage[i].array_stride);
       blob_write_uint32(metadata, prog->UniformStorage[i].matrix_stride);
       blob_write_uint32(metadata, prog->UniformStorage[i].row_major);
+      blob_write_uint32(metadata,
+                        prog->UniformStorage[i].top_level_array_size);
+      blob_write_uint32(metadata,
+                        prog->UniformStorage[i].top_level_array_stride);
 
       encode_type_to_blob(metadata, prog->UniformStorage[i].type);
    }
@@ -187,7 +191,10 @@ read_uniforms(struct blob_reader *metadata, struct gl_shader_program *prog)
       uniforms[i].array_stride = blob_read_uint32(metadata);
       uniforms[i].matrix_stride = blob_read_uint32(metadata);
       uniforms[i].row_major = blob_read_uint32(metadata);
+      uniforms[i].top_level_array_size = blob_read_uint32(metadata);
+      uniforms[i].top_level_array_stride = blob_read_uint32(metadata);
       uniforms[i].type = decode_type_from_blob(metadata);
+
       prog->UniformHash->put(i, uniforms[i].name);
 
       printf("uniform %d: %s %s\n",
-- 
2.5.5



More information about the mesa-dev mailing list