1. 23 Apr, 2020 1 commit
  2. 21 Apr, 2020 2 commits
  3. 16 Apr, 2020 1 commit
  4. 12 Apr, 2020 1 commit
  5. 27 Mar, 2020 1 commit
  6. 26 Mar, 2020 1 commit
  7. 24 Mar, 2020 1 commit
    • Neil Roberts's avatar
      glsl: Add an IR lowering pass to convert mediump operations to 16-bit · b83f4b9f
      Neil Roberts authored
      This works by finding the first rvalue that it can lower using an
      ir_rvalue_visitor. In that case it adds a conversion to float16
      after each rvalue and a conversion back to float before storing
      the assignment.
      
      Also it uses a set to keep track of rvalues that have been
      lowred already. The handle_rvalue method of the rvalue visitor doesn’t
      provide any way to stop iteration. If we handle a value in
      find_precision_visitor we want to be able to stop it from descending into
      the lowered rvalue again.
      
      Additionally this pass disallows converting nodes containing non-float.
      The can_lower_rvalue function explicitly excludes any branches
      that have non-float types except bools. This avoids the need to have
      special handling for functions that convert to int or double.
      Co-authored-by: Hyunjun Ko's avatarHyunjun Ko <zzoon@igalia.com>
      
      v2. Adds lowering for texture samples
      
      v3. Instead of checking whether each node can be lowered while walking the
      tree, a separate tree walk is now done to check all of the nodes in a
      single pass. The lowerable nodes are added to a set which is checked
      during find_precision_visitor instead of calling can_lower_rvalue.
      
      v4. Move the special case for temporaries to find_lowerable_rvalues. This
      needs to be handled while checking for lowerable rvalues so that any
      later dereferences of the variable will see the right precision.
      
      v5. Add an override to visit ir_call instructions and apply the same
      technique to override the precision of the temporary variable in the
      same way as done for builtin temporaries and ir_assignment calls.
      
      v6. Changes the pass so that it doesn’t need to lower an entire subtree in
      order do perform a lowering. Instead, certain instructions can be
      marked as being indepedent of their child instructions. For example,
      this is the case with array dereferences. The precision of the array
      index doesn’t have any bearing on whether things using the result of
      the array deref can be lowered.
      
      Now, only toplevel lowerable nodes are added to the lowerable_rvalues
      instead instead of additionally adding all of the subnodes.
      
      It now also only needs one hash table instead of two.
      
      v7. Don’t try to lower sampler types. Instead, the sample instruction is
      now treated as an independent point where the result of the sample can
      be used in a lowered section. The precision of the sampler type
      determines the precision of the sample instruction. This also means
      the coordinates to the sampler can be lowered.
      
      v8. Use f2fmp instead of f2f16.
      
      v9.  Disable lowering derivatives calcualtions, which might not work
      properly on some hw backends.
      Reviewed-by: Kristian H. Kristensen's avatarKristian H. Kristensen <hoegsberg@google.com>
      Part-of: <!3885>
      b83f4b9f
  8. 21 Mar, 2020 1 commit
  9. 11 Mar, 2020 1 commit
  10. 03 Mar, 2020 3 commits
  11. 02 Mar, 2020 1 commit
  12. 26 Feb, 2020 1 commit
  13. 24 Feb, 2020 1 commit
  14. 13 Feb, 2020 1 commit
  15. 11 Feb, 2020 1 commit
  16. 23 Jan, 2020 1 commit
  17. 15 Jan, 2020 1 commit
  18. 02 Dec, 2019 1 commit
    • Kenneth Graunke's avatar
      st/mesa: Add GL_TDFX_texture_compression_FXT1 support · 1bdd342b
      Kenneth Graunke authored
      Eric recently added PIPE_FORMAT_FXT1_RGB[A] as part of his format
      unification work.  This was really most of the work of implementing
      the extension.  We just need to handle it in a couple of places and
      expose the extension.
      
      v2: Reject the new formats in llvmpipe_is_format_supported to prevent
          crashes because it doesn't know how to handle the new formats.
      
      Reviewed-by: Marek Olšák <marek.olsak@amd.com> [v1]
      Reviewed-by: Eric Anholt <eric@anholt.net> [v1]
      1bdd342b
  19. 12 Nov, 2019 1 commit
  20. 21 Oct, 2019 1 commit
  21. 17 Oct, 2019 1 commit
  22. 16 Oct, 2019 1 commit
  23. 08 Oct, 2019 1 commit
  24. 30 Sep, 2019 1 commit
  25. 18 Sep, 2019 1 commit
  26. 17 Sep, 2019 1 commit
  27. 16 Sep, 2019 1 commit
    • Kenneth Graunke's avatar
      st/mesa: Increase GL_POINT_SIZE_RANGE minimum to 1.0 · d9d6305b
      Kenneth Graunke authored
      Table 23.54 of the OpenGL 4.5 spec lists the minimum values for
      GL_POINT_SIZE_RANGE as [1, 1].  So zero is not allowed (even though
      arguably this could be useful for MSAA rendering, where a sub-1px
      point might cover only some samples...)
      
      This fixes the WebGL 2.0 conformance suite's state.gl-get-calls test
      on Chromium on Linux, which uses desktop OpenGL.  The test checks that
      the minimum value of GL_ALIASED_POINT_SIZE_RANGE is 1.  Unfortunately,
      that query doesn't exist in desktop GL, so it checks POINT_SIZE_RANGE,
      which is the anti-aliased value.  There's not really anything better
      for Chromium to do here, unfortunately.  When running Chromium with
      --api=es3, it maps it to the correct query and the test already works.
      Reviewed-by: Jordan Justen's avatarJordan Justen <jordan.l.justen@intel.com>
      Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
      d9d6305b
  28. 10 Sep, 2019 1 commit
    • Caio Marcelo de Oliveira Filho's avatar
      gallium: Add ARB_gl_spirv support · eca8032f
      Caio Marcelo de Oliveira Filho authored
      The PIPE_CAP_GL_SPIRV capability enables ARB_gl_spirv and
      ARB_spirv_extensions, and will make sure the corresponding SPIR-V
      capabilities and extensions lists are initialized.
      
      The additional PIPE_CAP_GL_SPIRV_VARIABLE_POINTERS capability enables
      the support for Variable Pointers in SPIR-V shaders.  This depends on
      the driver and is not mandatory for ARB_gl_spirv support.
      
      v2: Add a PIPE_CAP for Variable Pointers.  (Marek)
      
      Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> [v1]
      eca8032f
  29. 05 Sep, 2019 1 commit
  30. 08 Aug, 2019 1 commit
    • Ilia Mirkin's avatar
      st/mesa: relax EXT_shader_image_load_store enable · 582c8634
      Ilia Mirkin authored
      There's no reason to bring format-less load requirement into this
      extension. It requires a size to be provided, and a compatible format is
      computed from the size + data type. For example
      
        layout(size1x32) uniform iimage1D image;
      
      becomes
      
        DCL IMAGE[0], 1D, PIPE_FORMAT_R32_SINT, WR
      
      whereas PIPE_CAP_IMAGE_LOAD_FORMATTED is designed to allow
      PIPE_FORMAT_NONE to be provided as a format and still enable LOAD
      operations to be performed.
      
      So the shader has all the information it needs about the format.
      Signed-off-by: Ilia Mirkin's avatarIlia Mirkin <imirkin@alum.mit.edu>
      Reviewed-by: default avatarMarek Olšák <marek.olsak@amd.com>
      582c8634
  31. 07 Aug, 2019 1 commit
  32. 06 Aug, 2019 1 commit
  33. 02 Aug, 2019 1 commit
  34. 30 Jul, 2019 1 commit
  35. 18 Jul, 2019 1 commit
  36. 10 Jul, 2019 2 commits