xpra icon
Bug tracker and wiki

Changes between Version 1 and Version 2 of Ticket #229, comment 9


Ignore:
Timestamp:
03/14/13 10:28:27 (7 years ago)
Author:
ahuillet
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #229, comment 9

    v1 v2  
    33{{{
    44diff --git a/src/xpra/gl/gl_window_backing.py b/src/xpra/gl/gl_window_backing.py
    5 index d209735..e03c3bf 100644
     5index d209735..d1a8ccb 100644
    66--- a/src/xpra/gl/gl_window_backing.py
    77+++ b/src/xpra/gl/gl_window_backing.py
     
    1414         w, h = self.size
    1515         debug("GL Pixmap backing size: %d x %d, drawable=%s", w, h, drawable)
    16 @@ -100,6 +101,7 @@ class GLPixmapBacking(PixmapBacking):
     16@@ -94,12 +95,14 @@ class GLPixmapBacking(PixmapBacking):
     17         return drawable
     18 
     19     def close(self):
     20+        return
     21         PixmapBacking.close(self)
     22         self.remove_shader()
     23         self.glarea = None
    1724         self.glconfig = None
    1825 
     
    2229             drawable = self.gl_init()
    2330             if drawable:
    24 @@ -124,6 +126,7 @@ class GLPixmapBacking(PixmapBacking):
     31@@ -111,6 +114,7 @@ class GLPixmapBacking(PixmapBacking):
     32             self.yuv_shader = None
     33 
     34     def gl_begin(self):
     35+        return
     36         if self.glarea is None:
     37             return None     #closed already
     38         drawable = self.glarea.get_gl_drawable()
     39@@ -124,6 +128,7 @@ class GLPixmapBacking(PixmapBacking):
    2540         return drawable
    2641 
     
    3045             drawable.swap_buffers()
    3146         else:
    32 @@ -253,6 +256,7 @@ class GLPixmapBacking(PixmapBacking):
     47@@ -131,6 +136,7 @@ class GLPixmapBacking(PixmapBacking):
     48         drawable.gl_end()
     49 
     50     def gl_expose_event(self, glarea, event):
     51+        return
     52         debug("gl_expose_event(%s, %s)", glarea, event)
     53         area = event.area
     54         x, y, w, h = area.x, area.y, area.width, area.height
     55@@ -143,11 +149,12 @@ class GLPixmapBacking(PixmapBacking):
     56                 self.gl_end(drawable)
     57 
     58     def _do_paint_rgb24(self, img_data, x, y, width, height, rowstride, options, callbacks):
     59+        return
     60         gc = self._backing.new_gc()
     61         self.glarea.window.draw_rgb_image(gc, x, y, width, height, gdk.RGB_DITHER_NONE, img_data, rowstride)
     62 
     63     def do_video_paint(self, coding, img_data, x, y, w, h, options, callbacks):
     64-        debug("do_video_paint: options=%s, decoder=%s", options, type(self._video_decoder))
     65+        log.error("do_video_paint: options=%s, decoder=%s", options, type(self._video_decoder))
     66         err, rowstrides, img_data = self._video_decoder.decompress_image_to_yuv(img_data, options)
     67         csc_pixel_format = options.get("csc_pixel_format", -1)
     68         #this needs to be done here so we still hold the video_decoder lock:
     69@@ -161,6 +168,7 @@ class GLPixmapBacking(PixmapBacking):
     70         gc = self._backing.new_gc()
     71         self.glarea.window.draw_rgb_image(gc, x, y, width, height, gdk.RGB_DITHER_NONE, img_data, rowstride)
     72 
     73     def do_video_paint(self, coding, img_data, x, y, w, h, options, callbacks):
     74-        debug("do_video_paint: options=%s, decoder=%s", options, type(self._video_decoder))
     75+        log.error("do_video_paint: options=%s, decoder=%s", options, type(self._video_decoder))
     76         err, rowstrides, img_data = self._video_decoder.decompress_image_to_yuv(img_data, options)
     77         csc_pixel_format = options.get("csc_pixel_format", -1)
     78         #this needs to be done here so we still hold the video_decoder lock:
     79@@ -161,6 +168,7 @@ class GLPixmapBacking(PixmapBacking):
     80         gobject.idle_add(self.do_gl_paint, x, y, w, h, img_data, rowstrides, pixel_format, callbacks)
     81 
     82     def do_gl_paint(self, x, y, w, h, img_data, rowstrides, pixel_format, callbacks):
     83+        return
     84         #this function runs in the UI thread, no video_decoder lock held
     85         drawable = self.gl_init()
     86         if not drawable:
     87@@ -192,6 +200,7 @@ class GLPixmapBacking(PixmapBacking):
     88         raise Exception("invalid pixel format: %s" % pixel_format)
     89 
     90     def update_texture_yuv(self, img_data, x, y, width, height, rowstrides, pixel_format):
     91+        return
     92         window_width, window_height = self.size
     93         assert self.textures is not None, "no OpenGL textures!"
     94 
     95@@ -253,6 +262,7 @@ class GLPixmapBacking(PixmapBacking):
    3396         glFlush()
    3497 
     
    40103}}}
    41104
    42 What is interesting is - we get the exact same crash!
     105What is interesting is - we get the exact same crash. It's harder to reproduce, I don't know why, but it crashes eventually. Note that everything is disabled but do_video_paint.