[Mesa-dev] [PATCH 0/3] nir: Rework 64-bit attribute handling

Alejandro Piñeiro apinheiro at igalia.com
Sat Sep 1 13:42:46 UTC 2018


As with the original RFC:

Tested-by: Alejandro Piñeiro <apinheiro at igalia.com> (ARB_gl_spirv tests)

Patches 1 and 3:

Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>


On 01/09/18 05:11, Jason Ekstrand wrote:
> NIR handling of 64-bit vertex attributes is inconsistent at best.  When it
> comes vertex attributes which are 196 or 256 bits (dvec3 or dvec4), some
> passes assume they consume two slots, some passes assume they consume one,
> and some passes are configurable.  When you combine that with the limited
> number of tests and apps which use attrib_64bit, it's an utter minefield.
> Since both gallium and i965 want 196-bit and 256-bit attributes to map to
> two slots eventually, you have the challenge of mapping back and forth
> between the two in all the right places.  This series attempts to fix the
> problem and make all of NIR consistently have the dual-slot behavior.
>
> Cc: Timothy Arceri <tarceri at itsqueeze.com>
>
> Jason Ekstrand (3):
>   compiler: Move double_inputs to gl_program::DualSlotInputs
>   radeonsi/nir: Set vs_inputs_dual_locations and let NIR do the remap
>   nir: Drop the vs_inputs_dual_locations option
>
>  src/amd/vulkan/radv_shader.c                  |  1 -
>  src/compiler/glsl/glsl_to_nir.cpp             | 11 +----
>  src/compiler/glsl/ir_set_program_inouts.cpp   |  2 +-
>  src/compiler/glsl/serialize.cpp               |  2 +
>  src/compiler/nir/nir.c                        | 45 ++++++++++++++-----
>  src/compiler/nir/nir.h                        | 11 ++---
>  src/compiler/nir/nir_gather_info.c            | 26 ++---------
>  .../nir/nir_lower_io_arrays_to_elements.c     |  5 +--
>  src/compiler/shader_info.h                    |  3 --
>  src/intel/compiler/brw_compiler.c             |  3 --
>  src/mesa/drivers/dri/i965/brw_draw_upload.c   | 21 ++++-----
>  src/mesa/drivers/dri/i965/genX_state_upload.c |  1 +
>  src/mesa/main/glspirv.c                       | 20 +--------
>  src/mesa/main/mtypes.h                        | 15 +++++++
>  src/mesa/state_tracker/st_glsl_to_nir.cpp     | 45 +++++++++----------
>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp    |  2 +-
>  src/mesa/state_tracker/st_program.c           |  3 +-
>  17 files changed, 96 insertions(+), 120 deletions(-)
>



More information about the mesa-dev mailing list