1. 25 Oct, 2019 2 commits
  2. 24 Oct, 2019 1 commit
  3. 06 Mar, 2019 1 commit
  4. 05 Feb, 2019 1 commit
    • Kenneth Graunke's avatar
      nir: Avoid splitting compact arrays into per-element variables. · 15c69021
      Kenneth Graunke authored
      
      
      Compact arrays are used for special variables like clip and cull
      distances, or tessellation levels.  Drivers using compact arrays
      assume that these values will always be actual arrays.  We don't
      want to turn a float[1] gl_CullDistance into a single float; that
      would confuse drivers.
      
      Today, i965 uses compact arrays, and Gallium drivers use
      nir_lower_io_arrays_to_elements, so we haven't had any overlap
      that would demonstrate the issue.  Iris will use both.
      Reviewed-by: Timothy Arceri's avatarTimothy Arceri <tarceri@itsqueeze.com>
      15c69021
  5. 22 Jan, 2019 1 commit
  6. 14 Jan, 2019 1 commit
  7. 08 Jan, 2019 2 commits
    • Jason Ekstrand's avatar
      glsl_type: Add support for explicitly laid out matrices and arrays · 6cebeb4f
      Jason Ekstrand authored and Jason Ekstrand's avatar Jason Ekstrand committed
      
      
      SPIR-V allows for matrix and array types to be decorated with explicit
      byte stride decorations and matrix types to be decorated row- or
      column-major.  This commit adds support to glsl_type to encode this
      information.  Because this doesn't work nicely with std430 and std140
      alignments, we add asserts to ensure that we don't use any of the std430
      or std140 layout functions with explicitly laid out types.
      
      In SPIR-V, the layout information for matrices is applied to the parent
      struct member instead of to the matrix type itself.  However, this is
      gets rather clumsy when you're walking derefs trying to compute offsets
      because, the moment you hit a matrix, you have to crawl back the deref
      chain and find the struct.  Instead, we take the same path here as we've
      taken in spirv_to_nir and put the decorations on the matrix type itself.
      
      This also subtly adds support for strided vector types.  These don't
      come up in SPIR-V directly but you can get one as the result of taking a
      column from a row-major matrix or a row from a column-major matrix.
      Reviewed-by: Alejandro Piñeiro's avatarAlejandro Piñeiro <apinheiro@igalia.com>
      6cebeb4f
    • Jason Ekstrand's avatar
      glsl_type: Drop the glsl_get_array_instance C helper · d34f19fe
      Jason Ekstrand authored and Jason Ekstrand's avatar Jason Ekstrand committed
      It was added in bce6f998
      
       even though it's completely redundant with
      glsl_array_type().
      Reviewed-by: Alejandro Piñeiro's avatarAlejandro Piñeiro <apinheiro@igalia.com>
      Reviewed-by: Caio Oliveira's avatarCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
      d34f19fe
  8. 18 Dec, 2018 1 commit
  9. 25 Oct, 2018 1 commit
  10. 22 Oct, 2018 1 commit
  11. 06 Sep, 2018 1 commit
    • Jason Ekstrand's avatar
      radeonsi/nir: Set vs_inputs_dual_locations and let NIR do the remap · 0909a57b
      Jason Ekstrand authored
      
      
      We were going out of our way to disable dual-location re-mapping in NIR
      only to then do the remapping in st_glsl_to_nir.cpp.  Presumably, this
      was so that double_inputs would be correct for the core state tracker.
      However, now that we've it to gl_program::DualSlotInputs which is
      unaffected by NIR lowering, we can let NIR lower things for us.  The one
      tricky bit here is that we have to remap the inputs_read bitfield back
      to the single-slot convention for the gallium state tracker to use.
      
      Since radeonsi is the only NIR-capable gallium driver that also supports
      GL_ARB_vertex_attrib_64bit, we only have to worry about radeonsi when
      making core gallium state tracker changes.
      Acked-by: default avatarMarek Olšák <marek.olsak@amd.com>
      Reviewed-by: Timothy Arceri's avatarTimothy Arceri <tarceri@itsqueeze.com>
      0909a57b
  12. 23 Jun, 2018 3 commits
  13. 30 Jan, 2018 1 commit
  14. 13 Dec, 2017 1 commit
  15. 04 Dec, 2017 2 commits
  16. 03 Dec, 2017 1 commit