xserver/glamor
Keith Packard 5062b4fadd glamor: Add glamor_transfer based glamor_get_image and glamor_put_image
These use the upload_boxes and download_boxes helpers to provide
reasonably efficient image transfer.

Fixes segfaults in Xephyr with x11perf -reps 1.

Performance improvements:

Improves -putimage10 by 548.218% +/- 88.601% (n=10).
Improves -putimage500 by 3.71014% +/- 1.5049% (n=10).
Improves -getimage10 by 8.37004% +/- 4.58274% (n=10).
No statistically significant difference on -getimage500 (n=10).

v2: Fix rebase failures, don't forget to check/prepare the gc in
    putimage fallbacks (changes by anholt).

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
2014-04-23 10:36:18 -07:00
..
Makefile.am glamor: Add glamor_transfer based glamor_get_image and glamor_put_image 2014-04-23 10:36:18 -07:00
glamor.c glamor: Add glamor_transfer based glamor_get_image and glamor_put_image 2014-04-23 10:36:18 -07:00
glamor.h Merge remote-tracking branch 'krh/xwayland-for-keithp' 2014-04-03 15:35:01 -07: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_copyarea.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_copyplane.c glamor: Add missing prepares on the GC during fb fallbacks. 2014-03-17 14:30:56 -07:00
glamor_copywindow.c glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_core.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07: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: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -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: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07: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: Get testing code using small FBOs working again 2014-03-26 12:58:40 -07:00
glamor_picture.c glamor: Rely on nested mappings to handle src==dst and !prepare bugs. 2014-03-17 14:30:56 -07: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_priv.h glamor: Add glamor_transfer based glamor_get_image and glamor_put_image 2014-04-23 10:36:18 -07:00
glamor_program.c glamor: Use plain GLSL 1.20 features for fill code. 2014-04-03 13:07:51 -07:00
glamor_program.h glamor: Add infrastructure for generating shaders on the fly 2014-03-26 12:58:40 -07: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: Wire alpha to 1 for pictures without alpha bits 2014-04-23 10:35:26 -07:00
glamor_segment.c glamor: Move glamor_poly_segment to separate glamor_segment.c file 2014-03-26 12:58:40 -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: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -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 glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07: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