xserver/glamor
Keith Packard 45ebc4e3fa glamor: Add glamor_program based copy acceleration
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
drawable

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 <keithp@keithp.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Markus Wick <markus@selfnet.de>
2014-06-15 22:02:41 +01:00
..
Makefile.am glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor.c glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor.h glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor_addtraps.c glamor: Rely on nested mappings to handle src==dst and !prepare bugs. 2014-03-17 14:30:56 -07:00
glamor_compositerects.c glamor: Remove an extra copy of RegionNil(). 2014-01-27 09:30:47 -08:00
glamor_context.h glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_copy.c glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor_core.c glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_debug.h glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_egl.c glamor: Explain the weird EGL_NO_CONTEXT code. 2014-04-23 10:32:30 -07:00
glamor_egl_stubs.c glamor: Move glamor_egl_screen_init() prototype to glamor.h 2014-04-01 10:31:09 -07:00
glamor_eglmodule.c xorg: Connect up the glamor XV code, xorg DDX-only for now. 2014-03-05 13:10:20 -08:00
glamor_fbo.c glamor: Fallback to system memory when fail to allocate one big fbo. 2014-04-23 10:41:19 -07:00
glamor_fill.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_font.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_font.h glamor: Add glamor_program based poly_text and image_text 2014-04-03 13:07:52 -07:00
glamor_glx.c glamor: Do the same MakeCurrent(None) for GLX as we do for EGL. 2014-04-23 10:32:32 -07:00
glamor_glyphblt.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_glyphs.c glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor_gradient.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_image.c glamor: Add glamor_transfer based glamor_get_image and glamor_put_image 2014-04-23 10:36:18 -07:00
glamor_largepixmap.c glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor_picture.c glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_pixmap.c glamor: Move a make_current before the first GL call entrypoint. 2014-04-23 10:32:34 -07:00
glamor_points.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_polylines.c glamor: Improve the performance of line fallbacks. 2014-03-17 14:30:57 -07:00
glamor_prepare.c glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_prepare.h glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_priv.h glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor_program.c glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor_program.h glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor_rects.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_render.c glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor_segment.c glamor: Don't forget to check whether we can fall back in polysegment. 2014-05-12 14:47:06 -07:00
glamor_spans.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_text.c glamor: Work around libXfont when it fails to use defaultChar 2014-05-05 13:18:22 -07:00
glamor_tile.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_transfer.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_transfer.h glamor: Add simple upload/download functions in glamor_transfer 2014-04-03 13:07:51 -07:00
glamor_transform.c glamor: Add infrastructure for generating shaders on the fly 2014-03-26 12:58:40 -07:00
glamor_transform.h glamor: Add infrastructure for generating shaders on the fly 2014-03-26 12:58:40 -07:00
glamor_trapezoid.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_triangles.c glamor: Rely on nested mappings to handle src==dst and !prepare bugs. 2014-03-17 14:30:56 -07:00
glamor_utils.h glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_vbo.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_window.c glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_xv.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00