URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1a61a8b9a7c7cdbb42b74a76c2ec825f7107cc83 Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Sat Feb 25 02:30:06 2017 -0800
i965: Initialize disk shader cache if MESA_GLSL_CACHE_DISABLE is false (Apologies for the double negative.) For now, the shader cache is disabled by default on i965 to allow us to verify its stability. In other words, to enable the shader cache on i965, set MESA_GLSL_CACHE_DISABLE to false or 0. If the variable is unset, then the shader cache will be disabled. We use the build-id of i965_dri.so for the timestamp, and the pci device id for the device name. v2: * Simplify code by forcing link to include build id sha. (Matt) v3: * Don't use a for loop with snprintf for bin to hex. (Matt) * Assume fixed length render and timestamp string to further simplify code. Cc: Matt Turner <matts...@gmail.com> Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ccb700526f647e0d02cb1c500b6aee083ba1b9d7 Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Wed Oct 18 15:04:37 2017 -0700 dri drivers: Always add the sha1 build-id v4: * Add Android build changes. (Emil) Cc: Dylan Baker <dylanx.c.ba...@intel.com> Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Dylan Baker <dylanx.c.ba...@intel.com> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e5b141634cff3aa1f68699f39a2c3794261a32b1 Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Fri Oct 13 22:04:52 2017 -0700 disk_cache: Fix issue reading GLSL metadata This would cause the read of the metadata content to fail, which would prevent the linking from being skipped. Seen on Rocket League with i965 shader cache. Fixes: b86ecea3446e "util/disk_cache: write cache item metadata to disk" Cc: Timothy Arceri <tarc...@itsqueeze.com> Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e6ecd7d73fdbbca45ed398185eee2823e381d472 Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Tue Mar 28 11:48:55 2017 -0700 glsl/shader_cache: Save fs (BlendSupport) metadata Fixes many GL 4.5 CTS blend tests, such as: * GL45-CTS.blend_equation_advanced.extension_directive_enable * GL45-CTS.blend_equation_advanced.extension_directive_warn * GL45-CTS.blend_equation_advanced.blend_all.GL_MULTIPLY_KHR_all_qualifier * GL45-CTS.blend_equation_advanced.blend_specific.GL_COLORBURN_KHR v2: * Directly save the BlendSupport field to avoid potentially including a pointer in the future in the structure is updated. (tarceri) Cc: Timothy Arceri <tarc...@itsqueeze.com> Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7f5204a0dbfc2c3ab240842f06d3afb2e7b9ed2c Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Sat Feb 25 17:36:28 2017 -0800 i965: Initialize sha1 hash of dri config options Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=478a73fdfaf1fed57bc7f05e672f6728e27ab110 Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Sat Feb 25 02:37:57 2017 -0800 i965: Don't link when the program was found in the disk cache Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Cc: Timothy Arceri <tarc...@itsqueeze.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c3a8ae105ca4c6abdd967bd569b9605967cfcf25 Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Wed Oct 18 19:25:48 2017 -0700 i965: add cache fallback support using serialized nir If the i965 gen program cannot be loaded from the cache, then we fallback to using a serialized nir program. This is based on "i965: add cache fallback support" by Timothy Arceri <timothy.arc...@collabora.com>. Tim's version was written to fallback to compiling from source, and therefore had to be much more complex. After Connor and Jason implemented nir serialization, I was able to rewrite and greatly simplify this patch. Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Acked-by: Timothy Arceri <tarc...@itsqueeze.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a4078b819f648fb8e2b6dde8f6017f46a38c54f2 Author: Timothy Arceri <timothy.arc...@collabora.com> Date: Tue Jan 24 08:35:51 2017 +1100 i965: add support for cached shaders with xfb qualifiers For now this disables the shader cache when transform feedback is enabled via the GL API as we don't currently allow for it when generating the sha for the shader. Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=15f39e8654b3dd94821624af73f7045906e6d354 Author: Timothy Arceri <timothy.arc...@collabora.com> Date: Sat Nov 19 16:16:08 2016 +1100 mesa/glsl: add api_enabled flag to gl_transform_feedback_info This will be used to disable the shader cache when xfb is enabled via the api as we don't currently allow for it when generating the sha for the shader. Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8a019f5601ced415d13f55e3c06ab4cb3b7d5989 Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Wed Mar 1 16:52:23 2017 -0800 i965: Add shader cache support for compute v2: * Use MAYBE_UNUSED. (Matt) Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=42383faf51c69aa2c456d7dd5abfcb7c04c93709 Author: Timothy Arceri <timothy.arc...@collabora.com> Date: Tue Nov 29 12:25:54 2016 +1100 i965: add shader cache support for tess stages v2: * Use MAYBE_UNUSED. (Matt) [jordan.l.jus...@intel.com: *_cached_program => brw_disk_cache_*_program] Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5a4afd822fa3c6f8879d1228d1ec08da90aacf35 Author: Timothy Arceri <timothy.arc...@collabora.com> Date: Tue Nov 29 12:24:54 2016 +1100 i965: add shader cache support for geometry shaders v2: * Use MAYBE_UNUSED. (Matt) [jordan.l.jus...@intel.com: *_cached_program => brw_disk_cache_*_program] Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2589e7ddafb63583498f5f7138914d2a2e634960 Author: Timothy Arceri <timothy.arc...@collabora.com> Date: Tue Jan 24 08:41:36 2017 +1100 i965: Add shader cache support for vertex and fragment stages This enables the cache on vertex and fragment shaders only. v2: * Use MAYBE_UNUSED. (Matt) [jordan.l.jus...@intel.com: reword subject] [jordan.l.jus...@intel.com: *_cached_program => brw_disk_cache_*_program] Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=516d50db319396c23fd599012aec8b3fbc0ee5a6 Author: Timothy Arceri <timothy.arc...@collabora.com> Date: Fri Jul 1 17:02:57 2016 +1000 i965: add initial implementation of on disk shader cache This uses the Mesa disk_cache support to write out the final linked binary for vertex and fragment shader programs. This is based off the initial implementation done by Carl Worth. It has been significantly reworked, first by Tim Arceri, and then by Jordan Justen. v2: * Squash 'i965: add image param shader cache support' * Squash 'i965: add shader cache support for pull param pointers' * Sustantially simplified by a rework on top of Jason's 2975e4c56a7a. * Rename load_program_data to read_program_data. (Jason) v3: * Simplify and align program read/write. (Jason) v4: * Don't save prog_data size since we know it from the stage. (Ken) * Don't save program size, since prog_data includes the size. (Ken) * Remove `assert` that potentially could be triggered by disk corruption of the cache entries. (Ken) * Fix compute shader scratch allocation. (Ken) * Remove special case mapping for non-LLC. (Ken) * Remove SET_UPLOAD_PARAMS macro [jordan.l.jus...@intel.com: *_cached_program => brw_disk_cache_*_program] [jordan.l.jus...@intel.com: brw_shader_cache.c => brw_disk_cache.c] [jordan.l.jus...@intel.com: don't map to write program when LLC is present] [jordan.l.jus...@intel.com: set program_written_to_cache on read from cache] [jordan.l.jus...@intel.com: only try cache when status is linking_skipped] [jordan.l.jus...@intel.com: all v2-v4 changes noted above] Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f9d5a7add42af5a2e4410526d1480a08f41317ae Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Tue Oct 31 00:34:32 2017 -0700 i965: Calculate thread_count in brw_alloc_stage_scratch Previously, thread_count was sent in from the stage after some stage specific calculations. Those stage specific calculations were moved into brw_alloc_stage_scratch, which will allow the shader cache to also use the same calculations. Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f082d7f64f4bbdc29a04b3ddb6491251cafdd9e2 Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Sat Oct 21 01:30:13 2017 -0700 intel/compiler: Add functions to get prog_data and prog_key sizes for a stage v2: * Return unsigned instead of size_t. (Ken) Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=05b11933619c8f57bef1e0d71c34c523993d6257 Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Sat Oct 21 01:29:16 2017 -0700 intel/compiler: Add union types for prog_data and prog_key stages Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4c7a1ec62a5fdb42fb175da28f7b6c5c13f6478f Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Sat Oct 21 02:23:30 2017 -0700 blob: Don't set overrun if reading 0 bytes at end of data Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3dcbc5cdaa871f6ad2f123d0eb81f32fbfa7070b Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Sat Oct 21 20:55:45 2017 -0700 intel/compiler: Remove final_program_size from brw_compile_* The caller can now use brw_stage_prog_data::program_size which is set by the brw_compile_* functions. Cc: Jason Ekstrand <ja...@jlekstrand.net> Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=540636045fc4893d19f68f04157ce246a2ccbebe Author: Carl Worth <cwo...@cworth.org> Date: Thu Apr 14 10:59:16 2016 +1000 intel/compiler: add new field for storing program size This will be used by the on disk shader cache. v2: * Set in brw_compile_* rather than brw_codegen_*. (Jason) Signed-off-by: Timothy Arceri <timothy.arc...@collabora.com> [jordan.l.jus...@intel.com: Only add to brw_stage_prog_data] Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1edf0fe612d595bf1eee711b60db17eb25759f82 Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Fri Jul 28 15:46:02 2017 -0700 i965: Don't rely on nir for uses_texture_gather When a program is restored from the shader cache, prog->nir will be NULL, but prog->info will be restored. Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0610a624a1286cec1b9a0a19be63f46aae518377 Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Fri Oct 13 13:07:50 2017 -0700 i965/link: Serialize program to nir after linking for shader cache If the shader cache is enabled, after linking the program, we serialize the program to nir. This will be saved out by the glsl shader cache support. Later, if the same program is found in the cache, we can use the nir for a fallback in the unlikely case that the gen binary program is not found in the cache. Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6b815e405dc87d13233bf2ddbf44a3ba0b2bd3ac Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Fri Oct 13 13:02:29 2017 -0700 glsl/shader_cache: Save and restore serialized nir in gl_program v3: * Rename serialized_nir* to driver_cache_blob*. (Tim) Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=571bee96d5456bb62fad2aaf72d9119b24650c5a Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Fri Oct 13 13:00:23 2017 -0700 main: Add driver cache blob fields to gl_program These fields can be used to optionally save off a driver blob with the program metadata. For example, serialized nir, or tgsi. v3: * Rename serialized_nir* to driver_cache_blob*. (Tim) * Free memory. (Jason) Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=54f691311c1f56c6aed693c21e820e4dd52b7f20 Author: Jason Ekstrand <jason.ekstr...@intel.com> Date: Thu Sep 14 16:49:53 2017 -0700 nir: Add hooks for testing serialization Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com> Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=120da009755414ba62b0f902a67ad22004b9a304 Author: Connor Abbott <cwabbo...@gmail.com> Date: Tue Sep 12 23:17:51 2017 -0400 nir: add serialization and deserialization v2 (Jason Ekstrand): - Various whitespace cleanups - Add helpers for reading/writing objects - Rework derefs - [de]serialize nir_shader::num_* - Fix uses of blob_reserve_bytes - Use a bitfield struct for packing tex_instr data v3: - Zero nir_variable struct on deserialization. (Jordan) - Allow nir_serialize.h to be included in C++. (Jordan) - Handle NULL info.name. (Jason) - Set info.name to NULL when name is NULL. (Jordan) Acked-by: Timothy Arceri <tarc...@itsqueeze.com> Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com> Acked-by: Jason Ekstrand <ja...@jlekstrand.net> _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit