xserver/glamor
Joshua Ashton 89163917e1 glamor: Don't glFlush/ctx switch unless any work has been performed
`glamor_make_current` is always called before any calls to GL.

Apply some dirty-tracking to whenever we call `glamor_make_current` so
that we can avoid a decent amount of redundant GL work on each
Dispatch cycle.

Gamescope previously was waking up an empty Xwayland server with an
XQueryPointer and I noticed a significant amount of churn doing
redundant GL work.

This has been addressed on the Gamescope side as well, but avoiding any
useless GL context switches and flushes when glamor is doing nothing
is still beneficial for CPU and power usage on portable devices.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Emma Anholt <emma@anholt.net>
Acked-by: Olivier Fourdan <ofourdan@redhat.com
2023-03-17 12:38:23 +00:00
..
glamor.c glamor: Don't glFlush/ctx switch unless any work has been performed 2023-03-17 12:38:23 +00:00
glamor.h Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
glamor_addtraps.c glamor: Remove _nf rendering functions 2015-03-24 12:01:39 -07:00
glamor_composite_glyphs.c glamor: use dual source blend on GL 2.1 with ARB_ES2_compatibility 2022-12-01 08:41:57 +00:00
glamor_compositerects.c glamor: fix wrong offset on composite rectangles 2016-04-15 16:31:36 -04:00
glamor_context.h glamor: Assume EGL in glamor_context 2021-09-15 19:14:23 +00:00
glamor_copy.c rootless: Use screen_x and screen_y instead of pixmap pointer hacks 2023-01-20 17:10:54 +00:00
glamor_core.c glamor: Stop tracking the screen_fbo. 2017-06-02 17:46:45 -07:00
glamor_dash.c glamor: Fix dashed line rendering. 2017-03-16 11:30:58 -07:00
glamor_debug.h glamor: Remove the "delayed fallback" code. 2017-06-02 17:46:48 -07:00
glamor_egl.c glamor: Don't initialize on softpipe 2023-01-19 20:06:04 +00:00
glamor_egl.h glamor/xwayland: Define EGL_NO_X11 2019-11-04 20:49:33 +01:00
glamor_egl_ext.h glamor: Implement PixmapFromBuffers and BuffersFromPixmap 2018-03-05 13:27:49 -05:00
glamor_egl_stubs.c glamor: Unbreak glamor_fd_from_pixmap() 2018-06-27 15:07:56 -04:00
glamor_eglmodule.c glamor: Bump version to 1.0.1 to signal depth 30 support. 2018-02-27 10:18:07 -05:00
glamor_fbo.c glamor: make sure the correct FBO is cleared 2019-11-22 17:12:03 +01:00
glamor_font.c glamor: add glamor_glsl_has_ints wrapper 2021-07-07 08:41:50 +10:00
glamor_font.h glamor: store old fonts in double width textures. 2016-01-13 11:21:02 +10:00
glamor_glyphblt.c glamor: Check glamor_set_destination_drawable() return value 2017-03-15 15:41:13 -04:00
glamor_gradient.c glamor: transpose gradients transparently 2022-12-01 08:41:57 +00:00
glamor_image.c glamor: Avoid software fallback for planemasked ZPixmap GetImage 2017-03-20 13:48:40 -04:00
glamor_largepixmap.c Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
glamor_lines.c glamor: Check glamor_set_destination_drawable() return value 2017-03-15 15:41:13 -04:00
glamor_picture.c glamor: make use of GL_EXT_texture_format_BGRA8888 2022-12-01 08:41:57 +00:00
glamor_pixmap.c rootless: Use screen_x and screen_y instead of pixmap pointer hacks 2023-01-20 17:10:54 +00:00
glamor_points.c glamor: Check glamor_set_destination_drawable() return value 2017-03-15 15:41:13 -04:00
glamor_prepare.c glamor: Fix a compiler warning since the recent OOM fixes. 2019-03-28 13:55:22 -07:00
glamor_prepare.h glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_priv.h glamor: Don't glFlush/ctx switch unless any work has been performed 2023-03-17 12:38:23 +00:00
glamor_program.c glamor: fix XVideo run with GLES 2022-12-01 08:41:57 +00:00
glamor_program.h glamor: use dual source blend on GL 2.1 with ARB_ES2_compatibility 2022-12-01 08:41:57 +00:00
glamor_rects.c glamor: add glamor_glsl_has_ints wrapper 2021-07-07 08:41:50 +10:00
glamor_render.c glamor: handle EXT_gpu_shader4 in dual source blend paths 2023-02-10 07:38:11 +10:00
glamor_segs.c glamor: Check glamor_set_destination_drawable() return value 2017-03-15 15:41:13 -04:00
glamor_spans.c glamor: add glamor_glsl_has_ints wrapper 2021-07-07 08:41:50 +10:00
glamor_sync.c glamor: Don't glFlush/ctx switch unless any work has been performed 2023-03-17 12:38:23 +00:00
glamor_text.c glamor: Translate solid text background region after clipping 2016-07-15 12:59:43 -04:00
glamor_transfer.c glamor: Introduce a central place for our pixmap format/type handling. 2019-04-17 19:34:48 +00:00
glamor_transfer.h glamor: Introduce a central place for our pixmap format/type handling. 2019-04-17 19:34:48 +00:00
glamor_transform.c glamor: Fix more fallback paths with non-GXcopy rop with GLES 2019-05-28 18:10:56 +00:00
glamor_transform.h glamor: glamor_set_destination_drawable() can fail 2017-03-15 15:41:12 -04:00
glamor_trapezoid.c glamor: Remove _nf rendering functions 2015-03-24 12:01:39 -07:00
glamor_triangles.c glamor: Remove _nf rendering functions 2015-03-24 12:01:39 -07:00
glamor_utils.c Convert glamor & glx to new *allocarray functions 2015-04-21 16:58:08 -07:00
glamor_utils.h glamor: Don't glFlush/ctx switch unless any work has been performed 2023-03-17 12:38:23 +00:00
glamor_vbo.c Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
glamor_window.c glamor: Drop tracking of the last picture attached to pixmaps. 2015-07-10 09:42:58 -07:00
glamor_xv.c Consolidate fourcc.h 2020-09-15 11:43:16 +02:00
meson.build ephyr/glamor: Port to EGL 2021-09-15 19:14:23 +00:00