xserver/glamor
Eric Anholt 6ba6cc57e1 glamor: Just set the logic op to what we want at the start of all rendering.
By dropping the unconditional logic op disable at the end of
rendering, this fixes GL errors being thrown in GLES2 contexts (which
don't have logic ops).  On desktop, this also means a little less
overhead per draw call from taking one less trip through the
glEnable/glDisable switch statement of doom in Mesa.

The exchange here is that we end up taking a trip through it in the
XV, Render, and gradient-generation paths.  If the glEnable() is
actually costly, we should probably cache our logic op state in our
screen, since there's no way the GL could make that switch statement
as cheap as the caller caching it would be.

v2: Don't forget to set the logic op in Xephyr's drawing.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
2015-03-24 12:43:34 -07:00
..
Makefile.am glamor: Add support for SHM sync fences 2014-07-18 12:22:50 -07:00
glamor.c glamor: check max native ALU instructions 2015-03-24 12:43:34 -07:00
glamor.h glamor: Eliminate GLAMOR_TEXTURE_LARGE pixmap type 2015-03-24 12:43:34 -07:00
glamor_addtraps.c glamor: Remove _nf rendering functions 2015-03-24 12:01:39 -07:00
glamor_compositerects.c glamor: Create inline tests for small/large pixmaps 2015-03-24 12:35:02 -07: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: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00
glamor_core.c glamor: Eliminate separate 'large' pixmap private structure 2015-03-24 12:34:50 -07:00
glamor_dash.c glamor: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00
glamor_debug.h glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_egl.c glamor: Eliminate separate 'large' pixmap private structure 2015-03-24 12:34:50 -07:00
glamor_egl_stubs.c glamor: Always destroy EGL image associated with destroyed pixmap 2014-12-09 08:46:45 -08:00
glamor_eglmodule.c Fix files including xorg-server.h by mistake 2014-07-30 12:17:27 -07:00
glamor_fbo.c glamor: Eliminate GLAMOR_TEXTURE_LARGE pixmap type 2015-03-24 12:43:34 -07:00
glamor_font.c glamor: GL_TEXTURE_MAX_LEVEL is not available on GLES2 2015-03-24 12:01:38 -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: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00
glamor_glyphs.c glamor: Remove _nf rendering functions 2015-03-24 12:01:39 -07:00
glamor_gradient.c glamor: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00
glamor_image.c glamor: Remove _nf rendering functions 2015-03-24 12:01:39 -07:00
glamor_largepixmap.c glamor: Create inline tests for small/large pixmaps 2015-03-24 12:35:02 -07:00
glamor_lines.c glamor: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00
glamor_picture.c glamor: Eliminate separate 'large' pixmap private structure 2015-03-24 12:34:50 -07:00
glamor_pixmap.c glamor: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00
glamor_points.c glamor: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00
glamor_prepare.c glamor: Eliminate separate 'large' pixmap private structure 2015-03-24 12:34:50 -07:00
glamor_prepare.h glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_priv.h glamor: check max native ALU instructions 2015-03-24 12:43:34 -07:00
glamor_program.c glamor: do not check for gl errors in glamor_build_program 2015-03-24 12:01:38 -07:00
glamor_program.h glamor: Add glamor_program based 0-width dashed lines 2014-06-15 22:02:41 +01:00
glamor_rects.c glamor: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00
glamor_render.c glamor: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00
glamor_segs.c glamor: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00
glamor_spans.c glamor: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00
glamor_sync.c glamor: Fix build when configured --enable-glamor --disable-xshmfence 2015-03-24 12:43:34 -07:00
glamor_text.c glamor: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00
glamor_transfer.c glamor: Use GL_FRAMEBUFFER instead of GL_READ_FRAMEBUFFER 2015-03-24 12:01:38 -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: Create inline tests for small/large pixmaps 2015-03-24 12:35:02 -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: 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 glamor: Drop constant arguments to glamor_solid(). 2014-07-17 17:34:29 -07:00
glamor_utils.h glamor: Create inline tests for small/large pixmaps 2015-03-24 12:35:02 -07:00
glamor_vbo.c glamor: Fix GLES2 non-VBO temporary memory allocation. 2014-06-23 14:51:56 -07:00
glamor_window.c glamor: Eliminate separate 'large' pixmap private structure 2015-03-24 12:34:50 -07:00
glamor_xv.c glamor: Just set the logic op to what we want at the start of all rendering. 2015-03-24 12:43:34 -07:00