[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