Xpra: Ticket #150: opengl client window rendering bugs

1) pyopengl glTexSubImage2D GL_TEXTURE_RECTANGLE_ARB error: 1281 invalid value

Got a bug when resizing paraview with x264 + opengl client window (see #147 and #107):

_process_window_resized resizing window <GLClientWindow object at 0x3593230 (xpra+client_window+ClientWindow at 0x34252e0)> (id=3) to (1339, 735)
do_configure_event(<gtk.gdk.Event at 0x3507c38: GDK_CONFIGURE x=2, y=23, width=1339, height=735>): new geometry=(2, 23, 1339, 735)
_process_window_resized resizing window <GLClientWindow object at 0x3593230 (xpra+client_window+ClientWindow at 0x34252e0)> (id=3) to (1340, 735)
do_configure_event(<gtk.gdk.Event at 0x3507c38: GDK_CONFIGURE x=2, y=23, width=1340, height=735>): new geometry=(2, 23, 1340, 735)
_process_window_resized resizing window <GLClientWindow object at 0x3593230 (xpra+client_window+ClientWindow at 0x34252e0)> (id=3) to (1422, 735)
do_configure_event(<gtk.gdk.Event at 0x3507c38: GDK_CONFIGURE x=2, y=23, width=1422, height=735>): new geometry=(2, 23, 1422, 735)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1340,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1340,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1340,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1340,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1340,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1340,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
_process_window_resized resizing window <GLClientWindow object at 0x3593230 (xpra+client_window+ClientWindow at 0x34252e0)> (id=3) to (1504, 735)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
_process_window_resized resizing window <GLClientWindow object at 0x3593230 (xpra+client_window+ClientWindow at 0x34252e0)> (id=3) to (1536, 735)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1422,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
do_configure_event(<gtk.gdk.Event at 0x3507c38: GDK_CONFIGURE x=2, y=23, width=1536, height=735>): new geometry=(2, 23, 1536, 735)
_process_window_resized resizing window <GLClientWindow object at 0x3593230 (xpra+client_window+ClientWindow at 0x34252e0)> (id=3) to (1538, 735)
_process_window_resized resizing window <GLClientWindow object at 0x3593230 (xpra+client_window+ClientWindow at 0x34252e0)> (id=3) to (1562, 735)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
do_configure_event(<gtk.gdk.Event at 0x3507c38: GDK_CONFIGURE x=430, y=195, width=1562, height=735>): new geometry=(430, 195, 1536, 735)
do_configure_event(<gtk.gdk.Event at 0x3507c38: GDK_CONFIGURE x=430, y=195, width=1536, height=735>): new geometry=(430, 195, 1536, 735)
do_configure_event(<gtk.gdk.Event at 0x3507c38: GDK_CONFIGURE x=430, y=195, width=1536, height=735>): new geometry=(430, 195, 1536, 735)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd3\xd3\xd3\xd3\xd4\xd4\xd4\xd4\xd4...,
	)
)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd5\xd5\xd5\xd5\xd4\xd4\xd4\xd5\xd5...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd5\xd5\xd5\xd5\xd4\xd4\xd4\xd5\xd5...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd5\xd5\xd5\xd5\xd4\xd4\xd4\xd5\xd5...,
	)
)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd5\xd5\xd5\xd5\xd4\xd4\xd4\xd5\xd5...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd5\xd5\xd5\xd5\xd4\xd4\xd4\xd5\xd5...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd5\xd5\xd5\xd5\xd4\xd4\xd4\xd5\xd5...,
	)
)
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 183, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 124, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 166, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 254, in update_texture_yuv420
    glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, x, y, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img_data[0])
  File "/usr/lib/python2.7/site-packages/OpenGL/latebind.py", line 41, in __call__
    return self._finalCall( *args, **named )
  File "/usr/lib/python2.7/site-packages/OpenGL/wrapper.py", line 791, in wrapperCall
    raise err
GLError: GLError(
	err = 1281,
	description = 'invalid value',
	baseOperation = glTexSubImage2D,
	pyArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd5\xd5\xd5\xd5\xd4\xd4\xd4\xd5\xd5...,
	),
	cArgs = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd5\xd5\xd5\xd5\xd4\xd4\xd4\xd5\xd5...,
	),
	cArguments = (
		GL_TEXTURE_RECTANGLE_ARB,
		0,
		0,
		0,
		1536,
		734,
		GL_LUMINANCE,
		GL_UNSIGNED_BYTE,
		'\xd5\xd5\xd5\xd5\xd4\xd4\xd4\xd5\xd5...,
	)
)

2) this one when trying to run nexuiz (nothing on screen at all):

Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 491, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 764, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 182, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 686, in _process_draw
    window.draw_region(x, y, width, height, coding, data, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 131, in draw_region
    self.paint_with_video_decoder(DECODERS, Decoder, "x264", img_data, x, y, width, height, rowstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 173, in paint_with_video_decoder
    update_texture(data, x, y, width, height, outstride)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 211, in update_texture_yuv420
    assert self.textures is not None
AssertionError


Mon, 25 Jun 2012 17:47:11 GMT - Antoine Martin: description, summary changed


Tue, 03 Jul 2012 14:53:02 GMT - ahuillet:

The first problem should be OK with trunk as of this writing.

As for the second problem, please try the following:

diff --git a/src/xpra/gl_client_window.py b/src/xpra/gl_client_window.py
index 7dbd2d7..fa78bd0 100644
--- a/src/xpra/gl_client_window.py
+++ b/src/xpra/gl_client_window.py
@@ -75,6 +75,13 @@ class GLClientWindow(ClientWindow):
         self._on_close = []
         self.textures = None # OpenGL texture IDs
         self.current_mode = GLClientWindow.MODE_UNINITIALIZED
+        drawable = self.glarea.get_gl_drawable()
+        context = self.glarea.get_gl_context()
+        if not drawable.gl_begin(context):
+            raise Exception("** Cannot create OpenGL rendering context!")
+        if self.textures is None:
+            self.textures = glGenTextures(3)
+        drawable.gl_end()
     def do_configure_event(self, event):
         ClientWindow.do_configure_event(self, event)

Wed, 04 Jul 2012 08:57:44 GMT - Antoine Martin:

FYI: I still get errors during resizing:

Error while decoding frame
paint_with_video_decoder: ouch, decompression error 2
[h264 @ 0x2e54520] non-existing PPS 0 referenced
[h264 @ 0x2e54520] decode_slice_header error
[h264 @ 0x2e54520] no frame!

But these are not specific to gl rendering.


Wed, 04 Jul 2012 09:06:15 GMT - Antoine Martin:

Sorry, I was wrong:

found valid OpenGL: 2.1
GL Extension GL_ARB_fragment_program available
(xpra:28451): GtkGLExt-CRITICAL **: gtk_widget_get_gl_window: assertion `gtk_widget_get_realized (widget)' failed
(xpra:28451): GtkGLExt-CRITICAL **: gtk_widget_get_gl_context: assertion `gtk_widget_get_realized (widget)' failed
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/protocol.py", line 496, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 783, in process_packet
    XpraClientBase.process_packet(self, proto, packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client_base.py", line 191, in process_packet
    handler(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 676, in _process_new_window
    self._process_new_common(packet, False)
  File "/usr/lib64/python2.7/site-packages/xpra/client.py", line 670, in _process_new_common
    window = ClientWindowClass(self, wid, x, y, w, h, metadata, override_redirect)
  File "/usr/lib64/python2.7/site-packages/xpra/gl_client_window.py", line 80, in __init__
    if not drawable.gl_begin(context):
AttributeError: 'NoneType' object has no attribute 'gl_begin'

Maybe because the widget is not realized yet? (just make it so?)


Tue, 10 Jul 2012 17:59:32 GMT - Antoine Martin:

New one today:

Mesa 8.0.3 implementation error: Unexpected program target 0x0 in destroy_program_variants_cb()
Please report at bugs.freedesktop.org

Thu, 27 Sep 2012 15:21:04 GMT - Antoine Martin: owner, status, milestone changed


Wed, 31 Oct 2012 15:23:33 GMT - Antoine Martin: status changed; resolution set

All these bugs have now been dealt with - I think.

A number of those were not actually directly caused by GL rendering, maybe just made worse? ie: there were a number of races in the video decoder's setup/cleanup code (all fixed before 0.7 release)

The rest will be followed up in #149


Thu, 01 Nov 2012 14:19:42 GMT - Antoine Martin: status changed; resolution deleted

the bug in comment:5 is still present, and it happens for others too: upstream bug

We will need to run in gdb and "poke around".


Sat, 03 Nov 2012 06:21:36 GMT - Antoine Martin: owner, status changed

meh, I don't understand where I am supposed to find this destroy_program_variants_cb function loaded. I attached gdb to both xpra and Xorg, and neither of them has this function loaded... ideas?


Sat, 03 Nov 2012 08:06:12 GMT - Antoine Martin:

New one today (gedit right click? - caused by transient window?):

Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/gl_window_backing.py", line 148, in do_paint
    if self.update_texture_yuv(img_data, x, y, width, height, rowstrides, pixel_format):
  File "/usr/lib64/python2.7/site-packages/xpra/gl_window_backing.py", line 170, in update_texture_yuv
    assert self.textures is not None
AssertionError

Fri, 21 Dec 2012 09:00:37 GMT - Antoine Martin:

Now I can get destroy_program_variants_cb to break, here's what I found:

Breakpoint 1, 0x00007fc60766c940 in destroy_program_variants_cb () from /usr/lib64/dri/nouveau_dri.so
(gdb) bt
#0  0x00007fc60766c940 in destroy_program_variants_cb () from /usr/lib64/dri/nouveau_dri.so
#1  0x00007fc6075f9f00 in _mesa_HashWalk () from /usr/lib64/dri/nouveau_dri.so
#2  0x00007fc60766ddf1 in st_destroy_program_variants () from /usr/lib64/dri/nouveau_dri.so
#3  0x00007fc60766a4fa in st_destroy_context () from /usr/lib64/dri/nouveau_dri.so
#4  0x00007fc6074edd8a in dri_destroy_context () from /usr/lib64/dri/nouveau_dri.so
#5  0x00007fc6074e9f23 in driDestroyContext () from /usr/lib64/dri/nouveau_dri.so
#6  0x00007fc60ec4500c in dri2_destroy_context (context=0x29b8090) at dri2_glx.c:132
#7  0x00007fc60ec18021 in glXDestroyContext (ctx=0x29b8090, dpy=0x18fa540) at glxcmds.c:424
#8  glXDestroyContext (dpy=0x18fa540, ctx=0x29b8090) at glxcmds.c:405
#9  0x00007fc60c323464 in _gdk_gl_context_destroy () from /lib64/libgdkglext-x11-1.0.so.0
#10 0x00007fc60c323499 in gdk_gl_context_impl_x11_finalize () from /lib64/libgdkglext-x11-1.0.so.0
#11 0x0000003564e1486b in g_object_unref () from /lib64/libgobject-2.0.so.0
#12 0x00007fc60c546872 in gtk_gl_widget_unrealize () from /lib64/libgtkglext-x11-1.0.so.0
#13 0x0000003564e0f910 in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#14 0x0000003564e20d08 in signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0
#15 0x0000003564e28c8d in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#16 0x0000003564e28de2 in g_signal_emit () from /lib64/libgobject-2.0.so.0
#17 0x0000003091286b62 in gtk_widget_unrealize () from /lib64/libgtk-x11-2.0.so.0
#18 0x00000030912823dc in gtk_widget_real_unrealize () from /lib64/libgtk-x11-2.0.so.0
#19 0x0000003564e0fbd7 in _g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
#20 0x0000003564e283a8 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#21 0x0000003564e28de2 in g_signal_emit () from /lib64/libgobject-2.0.so.0
#22 0x0000003091286b62 in gtk_widget_unrealize () from /lib64/libgtk-x11-2.0.so.0
#23 0x0000003091289e18 in gtk_widget_dispose () from /lib64/libgtk-x11-2.0.so.0
#24 0x0000003564e15961 in g_object_run_dispose () from /lib64/libgobject-2.0.so.0
#25 0x00007fc6101a3f0d in _wrap_gtk_widget_destroy () from /usr/lib64/python2.7/site-packages/gtk-2.0/gtk/_gtk.so
#26 0x0000003561e49c0e in PyObject_Call (func=func@entry=<built-in method destroy of GLClientWindow object at remote 0x27ee5a0>, arg=arg@entry=(),
    kw=<optimized out>) at /usr/src/debug/Python-2.7.3/Objects/abstract.c:2529
#27 0x0000003561ed7367 in PyEval_CallObjectWithKeywords (func=func@entry=<built-in method destroy of GLClientWindow object at remote 0x27ee5a0>, arg=arg@entry=(),
    kw=kw@entry=0x0) at /usr/src/debug/Python-2.7.3/Python/ceval.c:3967
#28 0x0000003561e5e199 in methoddescr_call (descr=<optimized out>, args=(), kwds=0x0) at /usr/src/debug/Python-2.7.3/Objects/descrobject.c:247
#29 0x0000003561e49c0e in PyObject_Call (func=func@entry=<method_descriptor at remote 0x7fc60da449e0>, arg=arg@entry=
    (<GLClientWindow(_been_mapped=True, _refresh_min_pixels=-1, _client_properties={'workspace': 0}, group_leader=None, _refresh_timer=None, _pos=(2, 23), _metadata={'size-constraints': {}, 'window-type': ('_NET_WM_WINDOW_TYPE_NORMAL',), 'pid': -1, 'modal': False, 'title': 'glxgears'}, _override_redirect=False, _client=<XpraClient(_draw_thread=<Thread(_Thread__ident=140488475068160, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1d1e170>, acquire=<built-in method acquire of thread.lock object at remote 0x1d1e170>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1d1e170>) at remote 0x24b7450>, _Thread__name='draw_loop', _Thread__daemonic=True, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1a06cd0>, acquire=<built-in method acquire of thread.lock object at remote 0x1a06cd0>, _Condition__waiters=[], release=<built-...(truncated), kw=kw@entry=0x0) at /usr/src/debug/Python-2.7.3/Objects/abstract.c:2529
#30 0x0000003561ed9583 in do_call (nk=<optimized out>, na=1, pp_stack=0x7fff726796a8, func=<method_descriptor at remote 0x7fc60da449e0>)
    at /usr/src/debug/Python-2.7.3/Python/ceval.c:4316
#31 call_function (oparg=<optimized out>, pp_stack=0x7fff726796a8) at /usr/src/debug/Python-2.7.3/Python/ceval.c:4121
#32 PyEval_EvalFrameEx (f=<optimized out>, throwflag=throwflag@entry=0) at /usr/src/debug/Python-2.7.3/Python/ceval.c:2740
#33 0x0000003561edcef1 in fast_function (nk=<optimized out>, na=1, n=<optimized out>, pp_stack=0x7fff726798a8, func=<function at remote 0x1a0e0c8>)
    at /usr/src/debug/Python-2.7.3/Python/ceval.c:4184
#34 call_function (oparg=<optimized out>, pp_stack=0x7fff726798a8) at /usr/src/debug/Python-2.7.3/Python/ceval.c:4119
#35 PyEval_EvalFrameEx (f=f@entry=
    Frame 0x29c5610, for file /usr/lib64/python2.7/site-packages/xpra/client.py, line 1125, in _process_lost_window (self=<XpraClient(_draw_thread=<Thread(_Thread__ident=140488475068160, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1d1e170>, acquire=<built-in method acquire of thread.lock object at remote 0x1d1e170>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1d1e170>) at remote 0x24b7450>, _Thread__name='draw_loop', _Thread__daemonic=True, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1a06cd0>, acquire=<built-in method acquire of thread.lock object at remote 0x1a06cd0>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1a06cd0>) at remote 0x1a02b90>) at remote 0x19bd6d0>, _Thread__stderr=<file at remote 0x7fc61c19f270>, _Thread__target=<instancemethod at remote 0x...(truncated), throwflag=throwflag@entry=0) at /usr/src/debug/Python-2.7.3/Python/ceval.c:2740

I think we just need a cleanup method for the gl window that will take care of destroying the shader, as already done in _do_paint_rgb24:

            glDisable(GL_FRAGMENT_PROGRAM_ARB)
            glDeleteProgramsARB(1, self.yuv_shader)
            self.yuv_shader = None

Fri, 21 Dec 2012 09:12:11 GMT - Antoine Martin:

more fixes in:


Fri, 21 Dec 2012 09:30:17 GMT - Antoine Martin:

r2327 fixes the destroy_program_variants_cb warning (and more).


Fri, 08 Feb 2013 04:40:32 GMT - Antoine Martin: milestone changed

We need to pass small regions as YUV data (via swscale, preferably on the server) so the client can render them using the current GL video setup. Plain RGB won't work.


Mon, 25 Feb 2013 16:43:26 GMT - Antoine Martin: status changed; resolution set

Will follow up in #147


Sat, 23 Jan 2021 04:46:53 GMT - migration script:

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