git://people.freedesktop.org/~jljusten/mesa i965-get-program-binary-gen-v1 Currently we only save the nir program out when GetProgramBinary is called.
It is likely that the program using ARB_get_program_binary will also use the default gen program after loading a program with ProgramBinary. Therefore, it is also likely to save significant time if we save and restore the default gen program with ARB_get_program_binary. Since we use driver_cache_blob in gl_program for both the shader cache and ARB_get_program_binary, I had to allow the shader cache and ARB_get_program_binary to have separate paths to fill in different binaries for driver_cache_blob. We could also consider just saving the default gen program out with the shader cache glsl serialized cache entry. Then the shader cache and ARB_get_program_binary would still use the same format for driver_cache_blob. I tested this with DOTA 2 which uses ARB_get_program_binary. I also tested in CI which runs the deqp/cts/piglit ARB_get_program_binary tests. Cc: Timothy Arceri <tarc...@itsqueeze.com> Jordan Justen (19): mesa: Add disk shader cache driver blob callback st/mesa: Skip serializing driver_cache_blob if it exists st/mesa: i965: Use ShaderCacheSerializeDriverBlob driver function i965: Use ShaderCacheSerializeDriverBlob driver function mesa: Always call ProgramBinarySerializeDriverBlob i965: Move brw_program_*serialize_nir to brw_program_binary.c i965: Add brw_program_deserialize_driver_blob i965: Add brw_(read|write)_blob_program_data functions i965: Add brw_stage_cache_id to map gl stages to brw cache_ids i965: Add brw_prog_key_set_id helper to set the program id on any stage i965: Use brw_prog_key_set_id in disk cache load/store code i965: Add support for driver cache blob containing the gen program compiler/blob: Add blob_skip_bytes i965: Regenerate blob without gen program for shader cache i965: Replace brw_setup_tex_for_precompile brw with devinfo i965: Add brw_populate_default_key mesa: Add gl_shader_program param to ProgramBinarySerializeDriverBlob i965: Add flag_state param to brw_search_cache i965: Support saving the gen program with glGetProgramBinary src/compiler/blob.c | 7 + src/compiler/blob.h | 6 + src/compiler/glsl/shader_cache.cpp | 8 + src/mesa/drivers/dri/i965/brw_blorp.c | 4 +- src/mesa/drivers/dri/i965/brw_clip.c | 5 +- src/mesa/drivers/dri/i965/brw_context.c | 6 +- src/mesa/drivers/dri/i965/brw_context.h | 8 +- src/mesa/drivers/dri/i965/brw_cs.c | 22 +- src/mesa/drivers/dri/i965/brw_cs.h | 4 + src/mesa/drivers/dri/i965/brw_disk_cache.c | 73 ++----- src/mesa/drivers/dri/i965/brw_ff_gs.c | 6 +- src/mesa/drivers/dri/i965/brw_gs.c | 23 +- src/mesa/drivers/dri/i965/brw_gs.h | 4 + src/mesa/drivers/dri/i965/brw_link.cpp | 11 - src/mesa/drivers/dri/i965/brw_program.c | 70 +++--- src/mesa/drivers/dri/i965/brw_program.h | 30 ++- src/mesa/drivers/dri/i965/brw_program_binary.c | 283 ++++++++++++++++++++++++- src/mesa/drivers/dri/i965/brw_program_cache.c | 26 ++- src/mesa/drivers/dri/i965/brw_sf.c | 5 +- src/mesa/drivers/dri/i965/brw_state.h | 10 +- src/mesa/drivers/dri/i965/brw_tcs.c | 64 +++--- src/mesa/drivers/dri/i965/brw_tes.c | 47 ++-- src/mesa/drivers/dri/i965/brw_vs.c | 32 ++- src/mesa/drivers/dri/i965/brw_vs.h | 4 + src/mesa/drivers/dri/i965/brw_wm.c | 55 +++-- src/mesa/drivers/dri/i965/brw_wm.h | 4 + src/mesa/main/dd.h | 16 ++ src/mesa/main/program_binary.c | 21 +- src/mesa/state_tracker/st_context.c | 8 +- src/mesa/state_tracker/st_shader_cache.c | 19 ++ src/mesa/state_tracker/st_shader_cache.h | 10 + 31 files changed, 658 insertions(+), 233 deletions(-) -- 2.16.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev