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

Jordan Justen jordan.l.justen at intel.com
Fri Mar 16 17:08:43 UTC 2018


On 2018-03-16 04:52:55, Tapani Pälli wrote:
> 
> 
> On 03/15/2018 11:07 AM, Tapani Pälli wrote:
> > Patches 1-3:
> > Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
> 
> Make that the whole series!

Thanks!

> I tested also briefly with app that uses glProgramBinary to implement 
> cache and verified result of GL_LINK_STATUS query with glGetProgramiv 
> after glProgramBinary.

If the app saves/loads the binary to a file, then you might see a
difference in the output for the second run when MESA_GLSL=cache_info
is set. (Before it would always say "Falling back to NIR")

-Jordan

> 
> > (also verified with xfb using app)
> > 
> > On 03/14/2018 09:26 AM, Jordan Justen wrote:
> >> 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(-)
> >>
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list