Xpra: Ticket #599: Xpra 0.13.5 fails with error on glGenFramebuffers

Hi,

working with a kubuntu client (intel graphics) and a kubuntu server (nvidia graphics with proprietary driver). Both 64 bit, both at 14.04 (trusty) ubuntu release.

With latest xpra 0.13.5, server starts fine, but client cannot attach.

When attaching I get lots of errors, where the issue seems to be:

ValueError: glGenFramebuffers requires 1 arguments (n), received 2: (1, c_uint(1L))

Specifically

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/xpra/client/gl/gl_window_backing.py", line 436, in gl_expose_event
    drawable = self.gl_init()
  File "/usr/lib/python2.7/dist-packages/xpra/client/gl/gl_window_backing.py", line 297, in gl_init
    self.gl_init_textures()
  File "/usr/lib/python2.7/dist-packages/xpra/client/gl/gl_window_backing.py", line 245, in gl_init_textures
    glGenFramebuffers(1, self.offscreen_fbo)
  File "/usr/lib/python2.7/dist-packages/OpenGL/latebind.py", line 45, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/dist-packages/OpenGL/wrapper.py", line 570, in wrapperCall
    pyArgs = tuple( calculate_pyArgs( args ))
  File "/usr/lib/python2.7/dist-packages/OpenGL/wrapper.py", line 347, in calculate_pyArgs
    args
ValueError: glGenFramebuffers requires 1 arguments (n), received 2: (1, c_uint(1L))
2014-06-13 18:47:59,252 using audio codec: MPEG 1 Audio, Layer 3 (MP3)
2014-06-13 18:47:59,425 do_paint_rgb32 error
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/xpra/client/window_backing_base.py", line 339, in do_paint_rgb32
    success = (self._backing is not None) and self._do_paint_rgb32(img_data, x, y, width, height, rowstride, options)
  File "/usr/lib/python2.7/dist-packages/xpra/client/gl/gl_window_backing.py", line 445, in _do_paint_rgb32
    return self._do_paint_rgb(32, img_data, x, y, width, height, rowstride, options)
  File "/usr/lib/python2.7/dist-packages/xpra/client/gl/gl_window_backing.py", line 452, in _do_paint_rgb
    drawable = self.gl_init()
  File "/usr/lib/python2.7/dist-packages/xpra/client/gl/gl_window_backing.py", line 305, in gl_init
    glBindFramebuffer(GL_FRAMEBUFFER, self.offscreen_fbo)
  File "/usr/lib/python2.7/dist-packages/OpenGL/error.py", line 208, in glCheckError
    baseOperation = baseOperation,
GLError: GLError(
        err = 1282,
        description = 'invalid operation',
        baseOperation = glBindFramebuffer,
        cArguments = (GL_FRAMEBUFFER, c_uint(1L))

and more...



Fri, 13 Jun 2014 17:43:52 GMT - Antoine Martin: owner, status changed

Ouch, that was caused by the fix for older versions of pyopengl (r6767). The fix was tested on older versions, newer versions, but not Ubuntu versions..

A temporary workaround you can use is to disable opengl, either via the tray or via --opengl=no.


Fri, 13 Jun 2014 18:06:18 GMT - callegar:

Right, I forgot to report it, but disabling opengl was enough to be operative, if not at full performance


Fri, 13 Jun 2014 18:16:33 GMT - Antoine Martin: owner, status changed

Here's the fix: r6787, and the backport to v0.13.x in r6788.

Which broke centos again... re-fixed in r6791, backport in r6792.

I'm rebuilding all the Linux packages with this change as version 0.13.5-3, rather than trying to figure out which versions work and which ones don't.

The trusty packages are done, does this fix the problem for you?


Sat, 14 Jun 2014 03:55:53 GMT - onlyjob:

Due to this bug I couldn't connect to my session using 0.13.5 but r6788 fixed it.


Sat, 14 Jun 2014 05:25:42 GMT - Antoine Martin: status changed; resolution set


Sat, 23 Jan 2021 05:00:29 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/599