• 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>
glamor_render.c 68 KB