1. 24 Mar, 2015 4 commits
  2. 11 Dec, 2014 2 commits
  3. 09 Dec, 2014 1 commit
  4. 18 Jul, 2014 1 commit
  5. 15 Jun, 2014 2 commits
    • Keith Packard's avatar
      glamor: Add glamor_program based 0-width dashed lines · d18f5801
      Keith Packard authored
      This makes sure the pixelization for dashed lines matches non-dashed
      lines, while also speeding them up.
      v2: Switch to glamor_make_current
      v3: Create dash pattern pixmap without GLAMOR_CREATE_FBO_NO_FBO
      v4: Adopt suggestions from Eric's review:
        - Drops power-of-two alignment of our line vertex data, simplifying
          the code.
        - Stops reading from the VBO.  While on keithp's and my machines the
          VBO is mapped cached, on many implementations it will be mapped WC,
          making those reads extremely expensive.
        - Style fixes (line wrapping, spaces around operators).
      v5: Adopt suggestions from Markus' review:
        - Use max when computing zero-width dashed line length.
          Don't open code max here.
        - Embed CoordModePrevious into VBO writing for dashed lines
          Instead of pre-computing the coord mode previous results, just
          embed this in the loop which fills the vertex buffer. Saves
          re-writing the request buffer, and shortens the code a bit
      v6: Export glamor_destroy_gc for UXA
          UXA needs to call glamor_destroy_gc from its GCFuncs, so export
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
    • Keith Packard's avatar
      glamor: Add glamor_program based copy acceleration · 45ebc4e3
      Keith Packard authored
      Paints with textures, using a temporary buffer for overlapping copies
      Performs CPU to GPU transfers for pixmaps in memory. Accelerates copy
      plane when both objects are in the GPU. Includes copy_window
      acceleration too.
      v2: Use NV_texture_barrier for non-overlapping copies within the same
      v3: Switch to glamor_make_current
      v4: Do overlap check on the bounding box of the region rather than
          on individual boxes
      v5: Use Eric Anholt's re-written comments which provide a more accurate
          description of the code
      v6: Use floating point uniform for copy plane bit multiplier. This
          avoids an int to float conversion in the copy plane fragment shader.
          Use round() instead of adding 0.5 in copy plane. round() and +0.5
          end up generating equivalent code, and performance measurements
          confirm that they are the same speed. Round() is a bit clearer
          though, so we'll use it.
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
      Reviewed-by: default avatarMarkus Wick <markus@selfnet.de>
  6. 05 May, 2014 1 commit
  7. 03 Apr, 2014 2 commits
  8. 01 Apr, 2014 3 commits
  9. 26 Mar, 2014 1 commit
    • Keith Packard's avatar
      glamor: Get testing code using small FBOs working again · 82f91433
      Keith Packard authored
      Glamor has a mode where pixmaps will be constructed from numerous
      small FBOs. This allows testing of the tiled pixmap code without
      needing to create huge pixmaps.
      However, the render glyph code assumed that it could create a pixmap
      large enough for the glyph atlas. Instead of attempting to fix that
      (which would be disruptive and not helpful), I've added a new pixmap
      creation usage, GLAMOR_CREATE_NO_LARGE which forces allocation of a
      single large FBO.
      Now that we have pixmaps with varying FBO sizes, I then went around
      and fixed the few places using the global FBO max size and replaced
      that with the per-pixmap FBO tiling sizes, which were already present
      in each large pixmap.
      Xephyr has been changed to pass GLAMOR_CREATE_NO_LARGE when it creates
      the screen pixmap as it doesn't want to deal with tiling either.
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      Signed-off-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
      Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
  10. 17 Mar, 2014 3 commits
  11. 10 Mar, 2014 1 commit
    • Eric Anholt's avatar
      glamor: Extract the streamed vertex data code used by Render. · d310d566
      Eric Anholt authored
      We should be uploading any vertex data using this kind of upload
      style, since it saves a bunch of extra copies of our vertex data.
        - Add a simple comment about what the function does.
        - Use get_vbo_space()'s return in trapezoids, instead of dereffing
          glamor_priv->vb (by Markus Wick).
        - Fix the double-unmapping by moving put_vbo_space() outside of
        - Remove the rest of the composite_vbo_offset usage, and just always
          use get_vbo_space()'s return value.
        - Fix failure to put_vbo_space in traps when no prims were
        - Unbind the VBO from put_vbo_space().  Keeps callers from
          forgetting to do so.
        - Split out some changes into the previous 3 commits while trying to
          track down a regression.
        - Fix regression due to rebase fail where glamor_priv->vbo_offset
          wasn't incremented.
        - Fix GLES2 VBO sizing.
        - Add a comment about resize behavior.
        - Move glamor_vbo.c init code to glamor_vbo.c from
          glamor_render.c. (Derived from Markus's changes, but the GLES2 fix
          dropped almost all of the code in the functions).
        - Drop the initial BufferData on GLES2 (it happens at put() time).
        - Don't forget to set vbo_offset to the size on GLES2.
        - Use char * instead of void * in the cast to return the vbo_offset.
        - Resize the default FBO to 512kb, to be similar to previous
          behavior.  +1.66124% +/- 0.284223% (n=679) on aa10text.
      Signed-off-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
      Reviewed-by: Markus Wick <markus at selfnet.de>
  12. 05 Mar, 2014 4 commits
  13. 15 Feb, 2014 1 commit
  14. 27 Jan, 2014 6 commits
  15. 18 Dec, 2013 8 commits