[PATCH xserver] glamor: Make context current in glamor_pixmap_fbo_cache_put

Michel Dänzer michel at daenzer.net
Fri Mar 11 03:21:06 UTC 2016


From: Michel Dänzer <michel.daenzer at amd.com>

Without this, we may be manipulating the context of another screen.

In a system with two GPUs using glamor, this fixes lots of

(EE) glamor256: GL error: GL_INVALID_OPERATION in glBindTexture(non-gen name)

spew since 0b4c0c75 ('glamor: Replace "finish access" shader with texture
swizzling').

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---

BTW, is fbo->tex guaranteed to be non-0 here?

 glamor/glamor_fbo.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c
index d5311a9..a531f60 100644
--- a/glamor/glamor_fbo.c
+++ b/glamor/glamor_fbo.c
@@ -174,6 +174,7 @@ glamor_pixmap_fbo_cache_put(glamor_screen_private *glamor_priv,
      * glamor_picture.c.  Don't reset GL_RED -> GL_ALPHA swizzle, though
      */
     if (glamor_priv->has_texture_swizzle && n_format != 2) {
+        glamor_make_current(glamor_priv);
         glBindTexture(GL_TEXTURE_2D, fbo->tex);
         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_RED);
         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, GL_GREEN);
-- 
2.7.0



More information about the xorg-devel mailing list