1. 09 Oct, 2019 1 commit
  2. 23 May, 2018 1 commit
    • Roland Scheidegger's avatar
      llvmpipe: improve rasterization discard logic · 7b89fcec
      Roland Scheidegger authored
      
      
      This unifies the explicit rasterization discard as well as the implicit
      rasterization disabled logic (which we need for another state tracker),
      which really should do the exact same thing.
      We'll now toss out the prims early on in setup with (implicit or
      explicit) discard, rather than do setup and binning with them, which
      was entirely pointless.
      (We should eventually get rid of implicit discard, which should also
      enable us to discard stuff already in draw, hence draw would be
      able to skip the pointless clip and fallback stages in this case.)
      We still need separate logic for only null ps - this is not the same
      as rasterization discard. But simplify the logic there and don't count
      primitives simply when there's an empty fs, regardless of depth/stencil
      tests, which seems perfectly acceptable by d3d10.
      While here, also fix statistics for primitives if face culling is
      enabled.
      No piglit changes.
      Reviewed-by: Brian Paul's avatarBrian Paul <brianp@vmware.com>
      Reviewed-by: Jose Fonseca's avatarJose Fonseca <jfonseca@vmware.com>
      7b89fcec
  3. 23 Jun, 2017 1 commit
  4. 19 Feb, 2016 1 commit
  5. 03 Feb, 2016 1 commit
  6. 02 Feb, 2016 1 commit
    • Roland Scheidegger's avatar
      llvmpipe: drop scissor planes early if the tri is fully inside them · 99bd96ab
      Roland Scheidegger authored
      
      
      If the tri is fully inside a scissor edge (or rather, we just use the
      bounding box of the tri for the comparison), then we can drop these
      additional scissor "planes" early. We do not even need to allocate
      space for them in the tri.
      
      The math actually appears to be slightly iffy due to bounding boxes
      being rounded, but it doesn't matter in the end.
      
      Those scissor rects are costly - the 4 planes from the scissor are
      already more expensive to calculate than the 3 planes from the tri itself,
      and it also prevents us from using the specialized raster code for small
      tris.
      
      This helps openarena performance by about 8% or so. Of course, it helps
      there that while openarena often enables scissoring (and even moves the
      scissor rect around) I have not seen a single tri actually hit the
      scissor rect, ever.
      
      v2: drop individual scissor edges, and do it earlier, not even allocating
      space for them.
      v3: help the compiler a bit with simpler code, suggested by Brian.
      Reviewed-by: Brian Paul's avatarBrian Paul <brianp@vmware.com>
      99bd96ab
  7. 13 Jan, 2016 1 commit
  8. 07 Jan, 2016 1 commit
  9. 04 Dec, 2015 1 commit
    • Roland Scheidegger's avatar
      llvmpipe: use provoking vertex for layer/viewport · ddaf8d7b
      Roland Scheidegger authored
      
      
      d3d10 actually requires using provoking (first) vertex. GL is happy with
      any vertex (as long as we say it's undefined in the corresponding queries).
      Up to now we actually used vertex 0 for viewport index, and vertex 1 for
      layer (for tris), which really didn't make sense (probably a typo). Also,$
      since we reorder vertices of clockwise triangle, that actually meant we used
      a different vertex depending if the traingle was cw or ccw (still ok by gl).
      However, it should be consistent with what draw (clip) does, and using
      provoking vertex seems like the sensible choice (draw clip will be fixed
      next as it is totally broken there).
      While here, also use the correct viewport always even when not needed
      in setup (we pass it down to jit fragment shader it might be needed there
      for getting correct near/far depth values).
      
      No piglit changes.
      Reviewed-by: Brian Paul's avatarBrian Paul <brianp@vmware.com>
      Reviewed-by: Jose Fonseca's avatarJose Fonseca <jfonseca@vmware.com>
      ddaf8d7b
  10. 21 Jul, 2015 1 commit
    • Ilia Mirkin's avatar
      gallium: replace INLINE with inline · a2a1a580
      Ilia Mirkin authored
      
      
      Generated by running:
      git grep -l INLINE src/gallium/ | xargs sed -i 's/\bINLINE\b/inline/g'
      git grep -l INLINE src/mesa/state_tracker/ | xargs sed -i 's/\bINLINE\b/inline/g'
      git checkout src/gallium/state_trackers/clover/Doxyfile
      
      and manual edits to
      src/gallium/include/pipe/p_compiler.h
      src/gallium/README.portability
      
      to remove mentions of the inline define.
      Signed-off-by: Ilia Mirkin's avatarIlia Mirkin <imirkin@alum.mit.edu>
      Acked-by: default avatarMarek Olšák <marek.olsak@amd.com>
      a2a1a580
  11. 17 Jan, 2014 1 commit
    • Jose Fonseca's avatar
      s/Tungsten Graphics/VMware/ · 87712850
      Jose Fonseca authored
      Tungsten Graphics Inc. was acquired by VMware Inc. in 2008.  Leaving the
      old copyright name is creating unnecessary confusion, hence this change.
      
      This was the sed script I used:
      
          $ cat tg2vmw.sed
          # Run as:
          #
          #   git reset --hard HEAD && find include scons src -type f -not -name 'sed*' -print0 | xargs -0 sed -i -f tg2vmw.sed
          #
      
          # Rename copyrights
          s/Tungsten Gra\(ph\|hp\)ics,\? [iI]nc\.\?\(, Cedar Park\)\?\(, Austin\)\?\(, \(Texas\|TX\)\)\?\.\?/VMware, Inc./g
          /Copyright/s/Tungsten Graphics\(,\? [iI]nc\.\)\?\(, Cedar Park\)\?\(, Austin\)\?\(, \(Texas\|TX\)\)\?\.\?/VMware, Inc./
          s/TUNGSTEN GRAPHICS/VMWARE/g
      
          # Rename emails
          s/alanh@tungstengraphics.com/alanh@vmware.com/
          s/jens@tungstengraphics.com/jowen@vmware.com/g
          s/jrfonseca-at-tungstengraphics-dot-com/jfonseca-at-vmware-dot-com/
          s/jrfonseca\?@tungstengraphics.com/jfonseca@vmware.com/g
          s/keithw\?@tungstengraphics.com/keithw@vmware.com/g
          s/michel@tungstengraphics.com/daenzer@vmware.com/g
          s/thomas-at-tungstengraphics-dot-com/thellstom-at-vmware-dot-com/
          s/zack@tungstengraphics.com/zackr@vmware.com/
      
          # Remove dead links
          s@Tungsten Graphics (http://www.tungstengraphics.com)@Tungsten
      
       Graphics@g
      
          # C string src/gallium/state_trackers/vega/api_misc.c
          s/"Tungsten Graphics, Inc"/"VMware, Inc"/
      Reviewed-by: Brian Paul's avatarBrian Paul <brianp@vmware.com>
      87712850
  12. 08 Jan, 2014 1 commit
  13. 09 Dec, 2013 1 commit
    • Matthew McClure's avatar
      llvmpipe: clamp fragment shader depth write to the current viewport depth range. · 0319ea9f
      Matthew McClure authored and Jose Fonseca's avatar Jose Fonseca committed
      
      
      With this patch, generate_fs_loop will clamp any fragment shader depth writes
      to the viewport's min and max depth values. Viewport selection is determined
      by the geometry shader output for the viewport array index. If no index is
      specified, then the default viewport index is zero. Semantics for this path
      can be found in draw_clamp_viewport_idx and lp_clamp_viewport_idx.
      
      lp_jit_viewport was created to store viewport information visible to JIT code,
      and is validated when the LP_NEW_VIEWPORT dirty flag is set.
      
      lp_rast_shader_inputs is responsible for passing the viewport_index through
      the rasterizer stage to fragment stage (via lp_jit_thread_data).
      Reviewed-by: default avatarRoland Scheidegger <sroland@vmware.com>
      Reviewed-by: Jose Fonseca's avatarJosé Fonseca <jfonseca@vmware.com>
      0319ea9f
  14. 25 Nov, 2013 1 commit
  15. 14 Aug, 2013 1 commit
  16. 07 Aug, 2013 1 commit
  17. 03 Aug, 2013 1 commit
  18. 26 Jun, 2013 1 commit
    • Roland Scheidegger's avatar
      llvmpipe: add support for nested / overlapping queries · 2e4da1f5
      Roland Scheidegger authored
      
      
      OpenGL doesn't support this but d3d10 does.
      It is a bit of a pain as it is necessary to keep track of queries
      still active at the end of a scene, which is also why I cheat a bit
      and limit the amount of simultaneously active queries to (arbitrary)
      16 (simplifies things because don't have to deal with a real list
      that way). I can't think of a reason why you'd really want large
      numbers of overlapping/nested queries so it is hopefully fine.
      (This only affects queries which need to be binned.)
      
      v2: don't copy remainder of array when deleting an entry simply replace
      the deleted entry with the last one (order doesn't matter).
      Reviewed-by: Jose Fonseca's avatarJose Fonseca <jfonseca@vmware.com>
      2e4da1f5
  19. 19 Jun, 2013 1 commit
    • Roland Scheidegger's avatar
      llvmpipe: handle more queries · dc5dc4fd
      Roland Scheidegger authored
      
      
      Handle PIPE_QUERY_GPU_FINISHED and PIPE_QUERY_TIMESTAMP_DISJOINT, and
      also fill out the ps_invocations and c_primitives from the
      PIPE_QUERY_PIPELINE_STATISTICS (the others in there should already
      be handled). Note that ps_invocations isn't pixel exact, just 16 pixel
      exact but I guess it's better than nothing.
      Doesn't really seem to work correctly but there's probably bugs elsewhere.
      Reviewed-by: Jose Fonseca's avatarJose Fonseca <jfonseca@vmware.com>
      dc5dc4fd
  20. 07 Jun, 2013 1 commit
    • Roland Scheidegger's avatar
      llvmpipe: add support for layered rendering · d8146f24
      Roland Scheidegger authored
      
      
      Mostly just make sure the layer parameter gets passed through to the right
      places (and get clamped, can do this at setup time), fix up clears to
      clear all layers and disable opaque optimization. Luckily don't need to
      touch the jitted code.
      (Clears invoked via pipe's clear_render_target method will not work however
      since the pipe_util_clear function used for it doesn't handle clearing
      multiple layers yet.)
      
      v2: per Brian's suggestion, prettify var initialization and add some comments,
      add assertion for impossible layer specification for surface.
      Reviewed-by: Brian Paul's avatarBrian Paul <brianp@vmware.com>
      Reviewed-by: Jose Fonseca's avatarJose Fonseca <jfonseca@vmware.com>
      d8146f24
  21. 25 May, 2013 2 commits
  22. 23 Apr, 2013 1 commit
    • Jose Fonseca's avatar
      gallium: Replace gl_rasterization_rules with lower_left_origin and half_pixel_center. · 2737abb4
      Jose Fonseca authored
      
      
      Squashed commit of the following:
      
      commit 04c5fa2cbb8e89d6f2fa5a75af1cca03b1f6b852
      Author: José Fonseca <jfonseca@vmware.com>
      Date:   Tue Apr 23 17:37:18 2013 +0100
      
          gallium: s/lower_left_origin/bottom_edge_rule/
      
      commit 4dff4f64fa83b9737def136fffd161d55e4f1722
      Author: José Fonseca <jfonseca@vmware.com>
      Date:   Tue Apr 23 17:35:04 2013 +0100
      
          gallium: Move diagram to docs.
      
      commit 442a63012c8c3c3797f45e03f2ca20ad5f399832
      Author: James Benton <jbenton@vmware.com>
      Date:   Fri May 11 17:50:55 2012 +0100
      
          gallium: Replace gl_rasterization_rules with lower_left_origin and half_pixel_center.
      
          This change is necessary to achieve correct results when using OpenGL
          FBOs.
      Reviewed-by: Marek Olšák's avatarMarek Olšák <maraeo@gmail.com>
      2737abb4
  23. 02 Nov, 2010 1 commit
    • Keith Whitwell's avatar
      llvmpipe: avoid generating tri_16 for tris which extend past tile bounds · 98445b43
      Keith Whitwell authored
      Don't trim triangle bounding box to scissor/draw-region until after
      the logic for emitting tri_16.  Don't generate tri_16 commands for
      triangles with untrimmed bounding boxes outside the current tile.
      
      This is important as the tri-16 itself can extend past tile bounds and
      we don't want to add code to it to check against tile bounds (slow) or
      restrict it to locations within a tile (pessimistic).
      98445b43
  24. 15 Oct, 2010 4 commits
  25. 12 Oct, 2010 2 commits
  26. 09 Oct, 2010 1 commit
  27. 08 Oct, 2010 1 commit
  28. 25 Sep, 2010 1 commit
  29. 21 Sep, 2010 1 commit
  30. 18 Sep, 2010 1 commit
  31. 07 Sep, 2010 2 commits
  32. 27 Aug, 2010 3 commits