Hi I am experiencing a graphics corruption issue.
Hardware: Intel CE4100, hyperthreading enabled Distro: Meego 1.2 Mutter: mutter-2.31.5_1.1-7.1 Clutter: clutter-1.8.2-6.1 Cogl: cogl-1.8.2-2.1 I compiled cogl with the following spec: %configure --disable-static \ --enable-gtk-doc \ --enable-gl \ --disable-gles1 \ --disable-gles2 \ --enable-glx I subsequently compiled clutter with the following spec: %configure --disable-static \ --disable-maintainer-flags \ --enable-gtk-doc \ --enable-xinput \ --with-flavour=glx The nature of the graphics corruption is that the graphics image displays, but there is a coarse, regular pattern superimposed that is shaped like a "grid" and looks as though it is filled with "white noise" (similar to analogue tv reception, ie 5% big bang theory). In our actual GUI code, we see the corruption for a period dependant on the nice value we launch the python code with. It disappears, or is hidden, if we re-nice our code to an uber high value eg nice -n -15 python test.py . If we re-nice to a lower priority, the corruption remains on the screen for a longer duration, until it remains indefinitely at say a nice value of +10. Eg. nice -n -10 python gui-code.py Possibly this suggests there is a thread synchronisation issue in Clutter/Cogl. The graphics application is written in python. Below is a a simple test python script, that reproduce the corruption issue " import gobject import transparency # this module is written in c, see pertinent functions below which sets the alpha rgb via clutter_x11_set_use_argb_visual(TRUE); and mutter hints transparency.set_clutter_x11_argb() # must be called before importing clutter ! import clutter import clutter.x11 stage = clutter.Stage() def go_fullscreen(): global stage print 'canvas.py> stage.show()' stage.show() print 'canvas.py> stage.set_fullscreen(True)' stage.set_fullscreen(True) print 'canvas.py> stage_x11_window = clutter.x11.get_stage_window(stage)' stage_x11_window = clutter.x11.get_stage_window(stage) print 'canvas.py> transparency.set_transparency(stage_x11_window)' transparency.set_transparency(stage_x11_window) red = clutter.Color(255, 0, 0, 128) rect = clutter.Rectangle(red) rect.set_size(200, 500) rect.set_position(600, 300) stage.add(rect) stage.set_size(1280,720) stage.set_color(clutter.Color(0,0,0,0)) stage.set_use_alpha(True) stage.show_all() #gobject.timeout_add(10, go_fullscreen) go_fullscreen() clutter.main() " WHERE the transparency module has functions/methods below " static PyObject *set_clutter_x11_argb(PyObject *self, PyObject *args) { printf("transparency.c> clutter_x11_set_use_argb_visual(TRUE);\n"); clutter_x11_set_use_argb_visual(TRUE); Py_INCREF(Py_None); return Py_None; } static PyObject *set_transparency(PyObject *self, PyObject *args) { const unsigned int win_id; int sts; if (!PyArg_ParseTuple(args, "i", &win_id)) { return NULL; } sts = set_mutter_hints(win_id); if (sts < 0) { PyErr_SetString(TransparencyError, "set_mutter_hints() failed"); return NULL; } return PyLong_FromLong(sts); } int set_mutter_hints(unsigned int win) { Display *display; Window root; Atom property; char *data; display = XOpenDisplay(NULL); root = RootWindow(display, DefaultScreen(display)); property = XInternAtom (display, "_MUTTER_HINTS", 0); data = "meego-tv-half-trans=1:meego-tv-full-window=1"; XChangeProperty(display, win, property, XA_STRING, 8, PropModeReplace, (unsigned char *)data, strlen(data)); XFlush(display); return 0; } " I execute the test script as follows [root]# export DISPLAY=:0.0 [root]# export XAUTHORITY=/home/meego/.Xauthority [root]# python test_transparency.py The Corruption further does not appear at all if i do not , via the imported transparency module, initiate clutter_x11_set_use_argb_visual(TRUE); We need the transparency to cut a a whole in graphics plane (plane C) to enable transparency and make the video plane (plane A), so this is not an option for us. ilanga lethu Timothy Reinhardt R&D Altech Multimedia UEC,Cape Town Office, 8th Floor, 1 Thibault Square, Foreshore,8001 Cape Town South Africa +27 (0) 21-425 5700 +27 (0) 21-425 5688 (fax) mailto:timothy.reinha...@uec.co.za www.uec.co.za<http://www.uec.co.za/> ________________________________ E-Mail Disclaimer : http://www.altron.co.za/email.asp Should you have any questions regarding this e-mail legal notice please contact us on 1. Telephone number : +27315082800 2. Fax number : +2731539 3370 3. E-mail address : i...@altech-multimedia.com
_______________________________________________ clutter-app-devel-list mailing list clutter-app-devel-list@clutter-project.org http://lists.clutter-project.org/listinfo/clutter-app-devel-list