1. 24 Apr, 2019 4 commits
  2. 23 Apr, 2019 3 commits
  3. 22 Apr, 2019 4 commits
  4. 18 Apr, 2019 1 commit
  5. 17 Apr, 2019 1 commit
  6. 16 Apr, 2019 5 commits
  7. 13 Apr, 2019 1 commit
    • Andres Gomez's avatar
      glsl/linker: location aliasing requires types to have the same width · 332da02f
      Andres Gomez authored
      From the OpenGL 4.60.5 spec, section 4.4.1 Input Layout Qualifiers,
      Page 67, (Location aliasing):
      
        " Further, when location aliasing, the aliases sharing the location
          must have the same underlying numerical type and bit
          width (floating-point or integer, 32-bit versus 64-bit, etc.) and
          the same auxiliary storage and interpolation qualification."
      
      Additionally, we have improved the linker error descriptions.
      Specifically, when taking structs into account we were producing a
      linker error because we assumed that all components in each location
      were used and that would cause component aliasing. This is not
      accurate of the actual problem. Now, the failure specifies that the
      underlying numerical type incompatibility is the cause for the
      failure.
      
      Fixes the following piglit test:
      
      tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-width-mismatch-double-float.shader_test
      
      v2:
        - Do not assert if we see invalid numerical types. These come
          straight from shader code, so we should produce linker errors if
          shaders attempt to do location aliasing on variables that are not
          numerical such as records.
        - While we are at it, improve error reporting for the case of
          numerical type mismatch to include the shader stage.
      
      v3:
        - Allow location aliasing of images and samplers. If we get these
          it means bindless support is active and they should be handled
          as 64-bit integers (Ilia)
        - Make sure we produce link errors for any non-numerical type
          for which we attempt location aliasing, not just structs.
      
      v4:
        - Rebased with minor fixes (Andres).
        - Added fixing tag to the commit log (Andres).
      
      v5:
        - Remove the helper function and check individually for the
          underlying numerical type and bit width (Timothy).
        - Implicitly, assume that any non-treated type which is checked for
          its underlying numerical type is either integer or
          float and has a defined bit width (Timothy).
        - Implicitly, assume that structs are the only non-treated
          non-numerical type (Timothy).
        - Improve the linker error descriptions and commit log (Andres).
      
      Fixes: 13652e75 ("glsl/linker: Fix type checks for location aliasing")
      Cc: Ilia Mirkin <imirkin@alum.mit.edu>
      Cc: Timothy Arceri <tarceri@itsqueeze.com>
      Cc: Iago Toral Quiroga <itoral@igalia.com>
      Signed-off-by: Andres Gomez's avatarAndres Gomez <agomez@igalia.com>
      Reviewed-by: Timothy Arceri's avatarTimothy Arceri <tarceri@itsqueeze.com>
      (cherry picked from commit 75a3dd97)
      [Andres Gomez: is_record() instead of is_struct() and brought glsl_base_type_get_bit_size]
      Signed-off-by: Andres Gomez's avatarAndres Gomez <agomez@igalia.com>
      332da02f
  8. 12 Apr, 2019 3 commits
  9. 11 Apr, 2019 3 commits
  10. 09 Apr, 2019 2 commits
  11. 08 Apr, 2019 1 commit
  12. 05 Apr, 2019 2 commits
  13. 02 Apr, 2019 1 commit
  14. 01 Apr, 2019 3 commits
  15. 29 Mar, 2019 2 commits
  16. 28 Mar, 2019 2 commits
  17. 27 Mar, 2019 2 commits