[Mesa-dev] [PATCH 0/6] Shader cache; transform feedback; i965 program-binary

Jordan Justen jordan.l.justen at intel.com
Wed Mar 14 07:26:09 UTC 2018


git://people.freedesktop.org/~jljusten/mesa shader-cache-xform-fb+prog-bin-v1

Patches 1 - 3 remove the restriction preventing the disk shader cache
from being enabled if transform feedback is enabled via the GL API.
These patches affect all drivers that support shader cache.

Patches 4 - 6 address an issue I found with i965 when running DOTA2
with the shader cache enabled. It appears that if the shader cache is
enabled, we will never use the shader cache for programs loaded with
ProgramBinary.

We had been setting the LinkStatus to LINKING_SUCCESS, and previously
i965 would skip using the shader cache if the LinkStatus wasn't
LINKING_SKIPPED. Either patch 5 or 6 should address this, but I think
6 still makes sense.

I sent out a related series on Sunday. It turned out that series
triggered issues where if ProgramBinary was used, and transform
feedback was enabled. For this reason, I looked into the transform
feedback limitation addressed in patches 1 - 3.

Jordan Justen (6):
  glsl/shader_cache: Allow shader cache usage with transform feedback
  i965: Allow disk shader cache usage with transform feedback
  glsl: Remove api_enabled tracking for transform feedback
  glsl/serialize: Save shader program metadata sha1
  i965: Allow disk shader cache usage with LINKING_SUCCESS status
  main/program_binary: In ProgramBinary set link status as
    LINKING_SKIPPED

 src/compiler/glsl/link_varyings.cpp        |  2 --
 src/compiler/glsl/linker.cpp               | 11 +----------
 src/compiler/glsl/serialize.cpp            |  4 ++++
 src/compiler/glsl/shader_cache.cpp         |  6 ++++++
 src/mesa/drivers/dri/i965/brw_disk_cache.c | 11 -----------
 src/mesa/main/mtypes.h                     |  3 ---
 src/mesa/main/program_binary.c             |  2 +-
 7 files changed, 12 insertions(+), 27 deletions(-)

-- 
2.16.1



More information about the mesa-dev mailing list