Hi; This is version 2 of the shader cache patches. I've fixed issues with Lightsmark and Warsow that the first series had, I was not simply caching enough information for reconstructing ir_variables correctly. Internal API has some changes and data is now first written to memory and then dumped as a whole to disk. I also added '--enable-shadercache' configure option that needs to be used for getting the cache functionality. It might make also sense to support environment variables that Nvidia driver has for their cache (__GL_SHADER_DISK_CACHE and __GL_SHADER_DISK_CACHE_PATH) (?)
Currently I'm working on fixing remaining Piglit issues. When I get Piglit fully passing I will start to work on OES_get_program_binary extension implementation that utilizes this ir_cache. If you want to test this, Mesa tree with patches on top is available here: git://people.freedesktop.org/~tpalli/mesa:shader_cache_patches Tapani Pälli (4): glsl: add ir_cache class for IR serialization (WIP) mesa: gl_shader_cache class (WIP) glsl: export populate_symbol_table glsl: use gl_shader_cache when compiling (WIP) configure.ac | 19 + src/glsl/Makefile.sources | 2 + src/glsl/glsl_parser_extras.cpp | 44 ++ src/glsl/ir_cache.h | 627 ++++++++++++++++++++++ src/glsl/ir_cache_serialize.cpp | 679 ++++++++++++++++++++++++ src/glsl/ir_cache_unserialize.cpp | 1054 +++++++++++++++++++++++++++++++++++++ src/glsl/linker.cpp | 2 +- src/glsl/linker.h | 3 + src/mesa/Makefile.sources | 1 + src/mesa/main/context.c | 4 + src/mesa/main/mtypes.h | 6 + src/mesa/main/shadercache.cpp | 208 ++++++++ src/mesa/main/shadercache.h | 68 +++ 13 files changed, 2716 insertions(+), 1 deletion(-) 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 create mode 100644 src/mesa/main/shadercache.cpp create mode 100644 src/mesa/main/shadercache.h -- 1.8.1.4 _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
