Hi; Here's version 2 of my GL_OES_get_program_binary implementation I sent before: http://lists.freedesktop.org/archives/mesa-dev/2013-October/046934.html
I've fixed the errors Paul Berry found and refactored the code quite a bit. I also split it in to more patches to hopefully make it more readable. My next step is to test how Chrome utilizes this extension and hopefully come up with some nice numbers. I'm also progressing on the automatic cache but it still seems quite a problem as the API allows all kinds of things so I'm trying to come up with a plan what should be done on different entrypoints. Any tips and knowledge on the possible corner cases appreciated ... Branch with the patches applied: http://cgit.freedesktop.org/~tpalli/mesa/log/?h=oes_get_program_binary Tapani Pälli (6): glsl: export populate_symbol_table mesa: iterate method for string_to_uint_map glsl: ir_serializer class for the shader cache glsl: ir_deserializer class for the shader cache glsl: functions to serialize gl_shader and gl_shader_program mesa: OES_get_program_binary functionality src/glsl/Makefile.sources | 3 + src/glsl/ir_cache.cpp | 373 ++++++++++ src/glsl/ir_cache.h | 58 ++ src/glsl/ir_cache_deserializer.cpp | 1341 ++++++++++++++++++++++++++++++++++++ src/glsl/ir_cache_deserializer.h | 301 ++++++++ src/glsl/ir_cache_serializer.cpp | 933 +++++++++++++++++++++++++ src/glsl/ir_cache_serializer.h | 207 ++++++ src/glsl/linker.cpp | 2 +- src/glsl/linker.h | 3 + src/mesa/main/shaderapi.c | 46 +- src/mesa/program/hash_table.h | 8 + 11 files changed, 3267 insertions(+), 8 deletions(-) create mode 100644 src/glsl/ir_cache.cpp create mode 100644 src/glsl/ir_cache.h create mode 100644 src/glsl/ir_cache_deserializer.cpp create mode 100644 src/glsl/ir_cache_deserializer.h create mode 100644 src/glsl/ir_cache_serializer.cpp create mode 100644 src/glsl/ir_cache_serializer.h -- 1.8.1.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev