xserver-multidpi/glamor
Olivier Fourdan 8646398136 glamor: Two pass won't work on memory pixmaps
When selecting "CA_TWO_PASS" in glamor_composite_clipped_region() when
the hardware does not support "GL_ARB_blend_func_extended", we call
glamor_composite_choose_shader() twice in a row, which in turn calls
glamor_pixmap_ensure_fbo().

On memory pixmaps, the first call will set the FBO and the second one
will fail an assertion in glamor_upload_picture_to_texture() because
the FBO is already set.

Bail out earlier when the mask pixmap is in memory and the hardware
capabilities would require to use two pass, so that the assertion is not
failed and the rendering is correct.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99346
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2017-01-24 11:27:33 -08:00
..
glamor_addtraps.c glamor: Remove _nf rendering functions 2015-03-24 12:01:39 -07:00
glamor_composite_glyphs.c glamor: Declare "pos" in the composite glyph GLSL 1.20 vertex shader 2016-08-23 12:59:55 +09:00
glamor_compositerects.c glamor: fix wrong offset on composite rectangles 2016-04-15 16:31:36 -04: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: Fix pixmap offset for bitplane in glamor_copy_fbo_cpu 2016-10-05 13:57:13 -04:00
glamor_core.c glamor: Replace "finish access" shader with texture swizzling. 2016-03-10 11:12:43 -05:00
glamor_dash.c glamor: Preserve GL_RED bits in R channel when destination is GL_RED [v2] 2016-05-26 09:17:59 -07:00
glamor_debug.h glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_egl_stubs.c glamor: Delay making pixmaps shareable until we need to. 2015-11-18 10:04:44 -08:00
glamor_egl.c glamor: Trust eglGetPlatformDisplayEXT if it exists 2017-01-02 13:07:25 -05:00
glamor_egl.h glamor: Squash unused variable warning 2017-01-02 15:38:45 -05:00
glamor_eglmodule.c Fix files including xorg-server.h by mistake 2014-07-30 12:17:27 -07:00
glamor_fbo.c glamor: Remove the FBO cache. 2016-07-18 15:22:04 -04:00
glamor_font.c dix: Switch to the libXfont2 API (v2) 2016-07-18 15:25:59 -04:00
glamor_font.h glamor: store old fonts in double width textures. 2016-01-13 11:21:02 +10: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: Simplify the pixmap box looping. 2016-01-29 18:13:09 -08:00
glamor_gradient.c glamor: fix spelling mistakes 2016-09-25 10:40:08 -07:00
glamor_image.c glamor: Use glamor_prepare_access_box() for PutImage/GetImage fallback 2015-07-16 10:43:54 -07:00
glamor_largepixmap.c glamor: fix spelling mistakes 2016-09-25 10:40:08 -07:00
glamor_lines.c glamor: Simplify the pixmap box looping. 2016-01-29 18:13:09 -08:00
glamor_picture.c glamor: Replace "finish access" shader with texture swizzling. 2016-03-10 11:12:43 -05:00
glamor_pixmap.c glamor: Move glamor_render.c pict handling to glamor_picture.c 2015-07-10 09:42:58 -07:00
glamor_points.c glamor: Simplify the pixmap box looping. 2016-01-29 18:13:09 -08:00
glamor_prepare.c glamor: make current in prepare paths 2015-07-16 10:57:00 -07:00
glamor_prepare.h glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_priv.h glamor: Fall back to software for CopyPlane if we need to 2016-09-28 12:52:05 -04:00
glamor_program.c glamor: Fix link failure on GLES2. 2016-09-29 09:11:12 -07:00
glamor_program.h glamor: Add support for CA rendering in a single pass. 2016-01-26 12:02:42 -08:00
glamor_rects.c glamor: Simplify the pixmap box looping. 2016-01-29 18:13:09 -08:00
glamor_render.c glamor: Two pass won't work on memory pixmaps 2017-01-24 11:27:33 -08:00
glamor_segs.c glamor: Simplify the pixmap box looping. 2016-01-29 18:13:09 -08:00
glamor_spans.c glamor: spans: fixup wrong count on glDrawArrays 2016-09-30 08:46:03 -07:00
glamor_sync.c glamor: Make glamor_sync_init work with --disable-xshmfence 2016-09-25 11:00:24 -07:00
glamor_text.c glamor: Translate solid text background region after clipping 2016-07-15 12:59:43 -04:00
glamor_transfer.c glamor: Preserve GL_RED bits in R channel when destination is GL_RED [v2] 2016-05-26 09:17:59 -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: Preserve GL_RED bits in R channel when destination is GL_RED [v2] 2016-05-26 09:17:59 -07:00
glamor_transform.h glamor: Preserve GL_RED bits in R channel when destination is GL_RED [v2] 2016-05-26 09:17:59 -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 Convert glamor & glx to new *allocarray functions 2015-04-21 16:58:08 -07:00
glamor_utils.h glamor: Remove #if 0-ed picture dumping code. 2016-09-29 09:11:11 -07:00
glamor_vbo.c glamor: Use vertex array objects 2016-01-21 06:49:40 +10: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 glamor: Fix XvPutImage when src_y != 0 2016-03-08 13:05:38 -05:00
glamor.c glamor: restore vfunc handlers on init failure 2016-11-30 09:45:52 +01:00
glamor.h glamor: Add glamor_shareable_fd_from_pixmap() 2016-09-13 10:26:21 +02:00
Makefile.am glamor: Use eglGetPlatformDisplay{,EXT} if we can 2016-10-05 16:03:13 -04:00