[Mesa-dev] [v2 0/4] RFC: gl_shader cache v2
Tapani Pälli
tapani.palli at intel.com
Sun Sep 29 23:14:55 PDT 2013
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
More information about the mesa-dev
mailing list