Skip to content
  • Emma Anholt's avatar
    glamor: Extract the streamed vertex data code used by Render. · d310d566
    Emma 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.
    
    v2:
      - 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
        flush_composite_rects().
      - Remove the rest of the composite_vbo_offset usage, and just always
        use get_vbo_space()'s return value.
    v3:
      - Fix failure to put_vbo_space in traps when no prims were
        generated.
      - Unbind the VBO from put_vbo_space().  Keeps callers from
        forgetting to do so.
    v4:
      - 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.
    v5:
      - 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).
    v6:
      - 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: default avatarEric Anholt <eric@anholt.net>
    Reviewed-by: Markus Wick <markus at selfnet.de>
    d310d566