Hello; These patches introduce GL_OES_get_program_binary extension support for Mesa. There are already stub functions for this extension, patches add the missing functionality part. This is based on the 'more automatic' shader cache work I've been implementing. I wanted to implement this first as this is a standard for applications to use and the automatic cache can be built separately based on these same enablers.
As well as code review I would also appreciate any testing efforts with this. I've tested this with my own test apps but as you can imagine the coverage ain't that big. I'm also thinking of building piglit test cases to exercise cache shader but that is still on planning stage. The spec for extension is here: http://www.khronos.org/registry/gles/extensions/OES/OES_get_program_binary.txt Tapani Pälli (4): glsl: export populate_symbol_table mesa: iterate method for string_to_uint_map glsl: add ir_cache class and functions for shader serialization mesa: OES_get_program_binary functionality src/glsl/Makefile.sources | 2 + src/glsl/ir_cache.h | 691 +++++++++++++++++ src/glsl/ir_cache_serialize.cpp | 967 ++++++++++++++++++++++++ src/glsl/ir_cache_unserialize.cpp | 1508 +++++++++++++++++++++++++++++++++++++ src/glsl/linker.cpp | 2 +- src/glsl/linker.h | 3 + src/mesa/main/shaderapi.c | 46 +- src/mesa/program/hash_table.h | 8 + 8 files changed, 3219 insertions(+), 8 deletions(-) create mode 100644 src/glsl/ir_cache.h create mode 100644 src/glsl/ir_cache_serialize.cpp create mode 100644 src/glsl/ir_cache_unserialize.cpp -- 1.8.1.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev