Re: [Mesa-dev] [PATCH v2 00/32] i965 disk shader cache

2017-10-23 Thread Emil Velikov
On 21 October 2017 at 00:28, Jason Ekstrand  wrote:
> Over-all, I'm very happy with the way this turned out.  Good work to all
> involved!  I made a few comments here and there and a pile on patch 18.
> That said, I think they should all be fairly easy to resolve and, should
> Emil be willing to hold off on branching for a couple of days, think this
> should be good to land.  With all of the refactors and changes that have
> happened (particularly about params arrays and NIR serialization), I have a
> high level of confidence that we're probably getting it right.  Obviously,
> user testing will be needed, but I think it's all solid in concept.  Let's
> do this!
>
I fear that this request is tad late.

As seen already I'm happy to hear when people plans on feature X.
This was the case with Andres Rodriguez, Christian Gmeiner this
release and Kenneth with earlier one.

Important difference is that those where made ahead of the planned branchpoint.

To help awareness, we have the preliminary schedule available month+
in advance on mesa3d.org.
There are also reminders on mesa-dev/mesa-announce as we get closer to the date.

I realise it may be uneasy reading this but please try to give timely heads-up.

Thank you
Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH v2 00/32] i965 disk shader cache

2017-10-20 Thread Jason Ekstrand
Over-all, I'm very happy with the way this turned out.  Good work to all
involved!  I made a few comments here and there and a pile on patch 18.
That said, I think they should all be fairly easy to resolve and, should
Emil be willing to hold off on branching for a couple of days, think this
should be good to land.  With all of the refactors and changes that have
happened (particularly about params arrays and NIR serialization), I have a
high level of confidence that we're probably getting it right.  Obviously,
user testing will be needed, but I think it's all solid in concept.  Let's
do this!

--Jason

On Wed, Oct 18, 2017 at 10:31 PM, Jordan Justen 
wrote:

> git://people.freedesktop.org/~jljusten/mesa i965-shader-cache-v2
>
> The series adds support for a disk shader cache for i965, but it does
> not enable it by default. To enable the i965 shader cache you need to
> set the environment variable MESA_GLSL_CACHE_DISABLE=0.
>
> v2:
>
>  * Fallback now uses Connor & Jason's nir serialization patch. This
>simplified the fallback code considerably.
>
>  * Reworked uniform handling based on Jason's new uniform handling. We
>no longer have to use pointer magic, which simplified the push/pull
>constant save/restore.
>
>  * Patches 1 - 12 are for nir serialization
>
> Carl Worth (1):
>   intel/compiler: add new field for storing program size
>
> Connor Abbott (2):
>   glsl: move shader_cache type handling to glsl_types
>   nir: add serialization and deserialization
>
> Jason Ekstrand (4):
>   nir: Get rid of nir_shader::stage
>   nir/intrinsics: Set the correct num_indices for load_output
>   compiler/types: Support [de]serializing void types
>   nir: Add hooks for testing serialization
>
> Jordan Justen (19):
>   glsl: Zero per_vertex_accumulator::fields for valgrind & nir_serialize
>   nir: Zero local_size const struct for valgrind & nir_serialize
>   intel/nir: Zero local index const struct for valgrind & nir_serialize
>   nir: Zero nir_load_const_instr::value for valgrind & nir_serialize
>   glsl_to_nir: Zero nir_variable struct for valgrind & nir_serialize
>   glsl_to_nir: Zero nir_constant in constant_copy for valgrind &
> nir_serialize
>   main: Add nir serialization fields to gl_program
>   glsl/shader_cache: Save and restore serialized nir in gl_program
>   i965/link: Serialize program to nir after linking for shader cache
>   i965: Don't rely on nir for uses_texture_gather
>   i965: Add shader cache support for compute
>   i965: add cache fallback support using serialized nir
>   i965: Don't link when the program was found in the disk cache
>   i965: Initialize sha1 hash of dri config options
>   glsl/shader_cache: Save fs (BlendSupport) metadata
>   disk_cache: Fix issue reading GLSL metadata
>   dri drivers: Always add the sha1 build-id
>   i965: Initialize disk shader cache if MESA_GLSL_CACHE_DISABLE is false
>   disk_cache: Add support for MESA_GLSL_CACHE_TIMESTAMP in debug builds
>
> Timothy Arceri (6):
>   i965: add initial implementation of on disk shader cache
>   i965: Add shader cache support for vertex and fragment stages
>   i965: add shader cache support for geometry shaders
>   i965: add shader cache support for tess stages
>   mesa/glsl: add api_enabled flag to gl_transform_feedback_info
>   i965: add support for cached shaders with xfb qualifiers
>
>  src/amd/common/ac_nir_to_llvm.c|   30 +-
>  src/amd/common/ac_shader_info.c|2 +-
>  src/amd/vulkan/radv_shader.c   |4 +-
>  src/compiler/Makefile.sources  |2 +
>  src/compiler/glsl/builtin_variables.cpp|1 +
>  src/compiler/glsl/glsl_to_nir.cpp  |   14 +-
>  src/compiler/glsl/link_varyings.cpp|5 +-
>  src/compiler/glsl/shader_cache.cpp |  193 +---
>  src/compiler/glsl_types.cpp|  174 +++
>  src/compiler/glsl_types.h  |7 +
>  src/compiler/nir/meson.build   |2 +
>  src/compiler/nir/nir.c |   17 +-
>  src/compiler/nir/nir.h |   20 +-
>  src/compiler/nir/nir_clone.c   |2 +-
>  src/compiler/nir/nir_gather_info.c |   14 +-
>  src/compiler/nir/nir_intrinsics.h  |2 +-
>  src/compiler/nir/nir_linking_helpers.c |   14 +-
>  src/compiler/nir/nir_lower_alpha_test.c|2 +-
>  src/compiler/nir/nir_lower_atomics.c   |2 +-
>  src/compiler/nir/nir_lower_bitmap.c|2 +-
>  src/compiler/nir/nir_lower_clamp_color_outputs.c   |2 +-
>  .../nir/nir_lower_clip_cull_distance_arrays.c  |8 +-
>  src/compiler/nir/nir_lower_drawpixels.c|2 +-
>  src/compiler/nir/nir_lower_io.c|4 +-
>  src/compiler/nir/nir_lower_io_to_temporaries.c |4 +-
>  src/compiler/nir/nir_lower_io_types.c  | 

[Mesa-dev] [PATCH v2 00/32] i965 disk shader cache

2017-10-18 Thread Jordan Justen
git://people.freedesktop.org/~jljusten/mesa i965-shader-cache-v2

The series adds support for a disk shader cache for i965, but it does
not enable it by default. To enable the i965 shader cache you need to
set the environment variable MESA_GLSL_CACHE_DISABLE=0.

v2:

 * Fallback now uses Connor & Jason's nir serialization patch. This
   simplified the fallback code considerably.

 * Reworked uniform handling based on Jason's new uniform handling. We
   no longer have to use pointer magic, which simplified the push/pull
   constant save/restore.

 * Patches 1 - 12 are for nir serialization

Carl Worth (1):
  intel/compiler: add new field for storing program size

Connor Abbott (2):
  glsl: move shader_cache type handling to glsl_types
  nir: add serialization and deserialization

Jason Ekstrand (4):
  nir: Get rid of nir_shader::stage
  nir/intrinsics: Set the correct num_indices for load_output
  compiler/types: Support [de]serializing void types
  nir: Add hooks for testing serialization

Jordan Justen (19):
  glsl: Zero per_vertex_accumulator::fields for valgrind & nir_serialize
  nir: Zero local_size const struct for valgrind & nir_serialize
  intel/nir: Zero local index const struct for valgrind & nir_serialize
  nir: Zero nir_load_const_instr::value for valgrind & nir_serialize
  glsl_to_nir: Zero nir_variable struct for valgrind & nir_serialize
  glsl_to_nir: Zero nir_constant in constant_copy for valgrind &
nir_serialize
  main: Add nir serialization fields to gl_program
  glsl/shader_cache: Save and restore serialized nir in gl_program
  i965/link: Serialize program to nir after linking for shader cache
  i965: Don't rely on nir for uses_texture_gather
  i965: Add shader cache support for compute
  i965: add cache fallback support using serialized nir
  i965: Don't link when the program was found in the disk cache
  i965: Initialize sha1 hash of dri config options
  glsl/shader_cache: Save fs (BlendSupport) metadata
  disk_cache: Fix issue reading GLSL metadata
  dri drivers: Always add the sha1 build-id
  i965: Initialize disk shader cache if MESA_GLSL_CACHE_DISABLE is false
  disk_cache: Add support for MESA_GLSL_CACHE_TIMESTAMP in debug builds

Timothy Arceri (6):
  i965: add initial implementation of on disk shader cache
  i965: Add shader cache support for vertex and fragment stages
  i965: add shader cache support for geometry shaders
  i965: add shader cache support for tess stages
  mesa/glsl: add api_enabled flag to gl_transform_feedback_info
  i965: add support for cached shaders with xfb qualifiers

 src/amd/common/ac_nir_to_llvm.c|   30 +-
 src/amd/common/ac_shader_info.c|2 +-
 src/amd/vulkan/radv_shader.c   |4 +-
 src/compiler/Makefile.sources  |2 +
 src/compiler/glsl/builtin_variables.cpp|1 +
 src/compiler/glsl/glsl_to_nir.cpp  |   14 +-
 src/compiler/glsl/link_varyings.cpp|5 +-
 src/compiler/glsl/shader_cache.cpp |  193 +---
 src/compiler/glsl_types.cpp|  174 +++
 src/compiler/glsl_types.h  |7 +
 src/compiler/nir/meson.build   |2 +
 src/compiler/nir/nir.c |   17 +-
 src/compiler/nir/nir.h |   20 +-
 src/compiler/nir/nir_clone.c   |2 +-
 src/compiler/nir/nir_gather_info.c |   14 +-
 src/compiler/nir/nir_intrinsics.h  |2 +-
 src/compiler/nir/nir_linking_helpers.c |   14 +-
 src/compiler/nir/nir_lower_alpha_test.c|2 +-
 src/compiler/nir/nir_lower_atomics.c   |2 +-
 src/compiler/nir/nir_lower_bitmap.c|2 +-
 src/compiler/nir/nir_lower_clamp_color_outputs.c   |2 +-
 .../nir/nir_lower_clip_cull_distance_arrays.c  |8 +-
 src/compiler/nir/nir_lower_drawpixels.c|2 +-
 src/compiler/nir/nir_lower_io.c|4 +-
 src/compiler/nir/nir_lower_io_to_temporaries.c |4 +-
 src/compiler/nir/nir_lower_io_types.c  |2 +-
 src/compiler/nir/nir_lower_samplers.c  |3 +-
 src/compiler/nir/nir_lower_samplers_as_deref.c |2 +-
 src/compiler/nir/nir_lower_system_values.c |1 +
 src/compiler/nir/nir_lower_two_sided_color.c   |2 +-
 src/compiler/nir/nir_lower_wpos_center.c   |2 +-
 src/compiler/nir/nir_lower_wpos_ytransform.c   |2 +-
 src/compiler/nir/nir_print.c   |6 +-
 src/compiler/nir/nir_serialize.c   | 1220 
 src/compiler/nir/nir_serialize.h   |   43 +
 src/compiler/nir/nir_validate.c|2 +-
 src/compiler/spirv/spirv_to_nir.c  |   52 +-
 src/compiler/spirv/vtn_variables.c |   16 +-
 src/gallium/auxiliary/nir/tgsi_to_nir.c|2 +