Jammy Zhou

Member of:

Contact Info



IRC Nick




Current Projects

Previous Projects

Useful Guides



Status Update

Previous Status

  • Week 2010-10-11
    • after copy the rootfs from NFS to local sd card, the system can boot now with ubuntu-netbook on imx51. (NFS related??)
    • mutter with unity plugin failed to start for une
  • Week 2010-10-4
    • system hang when reboot after install ubuntu-netbook (FSL 2.6.35 kernel + Linaro Headless rootfs)
    • there is still segfault when run "mutter --mutter-plugins=libunity-mutter" on imx51 with both mesa and fsl drivers
  • Week 2010-09-27
    • Fix invalid operation error for glDrawElements (in cogl-vertex-buffer.c) exposed after applying cogl_begin_gl/cogl_end_gl model
    • The ubuntu logos are surrounded with a black rectangle when run test-clutk-perf, seems again cogl/raw gles2 interleave issue. (After applying cogl_begin_gl/cogl_end_gl model, the raw gles2 rendering doesn't display on the screen)
    • xterm+mutter works with FSL driver
    • unity still no work with Segmentation fault
  • Week 2010-09-20
  • Week 2010-09-13
    • g_object_weak_unref crash can be solved by upstream patch of clutter
    • Use GL_TRIANGLE_FAN to implement original used GL_QUADS primitive
    • Fix render to cached texture problems
    • New crash found at the end of test-clutk, "Clutk-CRITICAL **: on_stage_destroyed: assertion `CTK_IS_EFFECT_CONTEXT (self)' failed", which should be an upstream problem.[Solved]

    • fix GL_INVALID_OPERATION error for glTexImage2D
    • fix crash for /Menu/MenuItem test suite
    • Segmentation fault when terminate test-clutk. [Introduced by "/Menu/MenuRadioMenuItem" test case, https://bugs.launchpad.net/clutk/+bug/647880]

  • Week 2010-09-06
    • check cogl APIs and programming
    • try MxToolkit on MX51 (http://git.clutter-project.org/mx/)

    • the vertex position issue can be solved by normalizing to [-1.0,1.0] range
    • cogl_flush brings gles2 into undefined state, so it shouldn't be called just before gles2 rendering with vertex/fragment shaders
    • existing problems to be solved
      • clutter_actor_paint affects raw gles2 rendering??[Workaround by not call cogl_flush after paint_func(actor) as well as not call ctk_effect_set_invalidate_effect_cache after render to cached texture]

      • "GLib-GObject-WARNING **: g_object_weak_unref: couldn't find weak ref 0x2ab52c7d(0xaad18)" when run test-clutk [Solved]

      • "Clutk-WARNING **: [CheckGLError] GL_INVALID_OPERATION error in File ./ctk-render-target.c at line: 567" when run "./test-clutk-perf 0 10 125 5 single animated blur 0.3.2 GMA950 2.1 1 10" (glBindFramebuffer in ctk_render_target_unbind). [The GL error is not set in glBindFramebuffer after debugging into the driver, it should be caused by previous GL calls] [Fixed, a patch for clutter has been prepared]

  • Week 2010-08-30
    • clutter tests from latest archive can now work with both mesa and FSL opengl es2.0 drivers
    • test-clutk can now run without errors, but the stage is totally gray
    • clutter-eglx-es20-1.0-tests package has conflicts with libclutter-1.0-dev package
    • It seems that our own vertex shader has some problem to connect with clutter/clutk for vertex attributes and matrix operations, maybe cogl APIs should be leveraged, and the shaders should be written according to cogl pipeline.
    • try to push code to bzr branch, it's ok.(https://code.launchpad.net/~jammy-zhou/clutk/gles2-shaders.hacky)

  • Week 2010-08-23
    • document ARM graphics stack related stuff in the link above
    • run gnome-terminal with mutter, get error message "mutter: symbol lookup error: mutter: undefined symbol: gdk_window_get_back_pixmap". After upgrade to the mutter package from asac:armel1 ppa, "Window manager warning: Log level 16: NOTE: Not using GLX TFP". After check with asac, maybe a mutter patch ("Patch to support GL if GLX is not found") is needed for maverick archive.
    • finished most coding for gles2 support of clutk based on lp:~unity-team/clutk/gles-support, and have rebased the patch to the new clutk branch for development (https://code.edge.launchpad.net/~asac/clutk/gles-support). begin to debug, many problems to be solved(i.e, the API differences between OpenGL and OpenGL ES2.0)

  • 8/16 need to check if eglx backend for clutter should be used to make test-clutk (and mutter) to work on mx51 board.
  • 8/17 clutk test applications can now work on MX51 board with following modifications
    • using eglx backend for clutter(./configure --with-flavour=eglx --with-gles=2.0 --with-imagebackend=gdk-pixbuf)
    • link libEGL and libGLESv2 to libclutk instead of libGL (some changes needed to use --enable-gles option for this)
  • 8/18 current ARB assembly shading support in clutk depends on GL_ARB_vertex_program and GL_ARB_fragment_program extensions, which are not supported in OpenGL ES2.0 drivers. so high level GLSL ES shading language should be used instead. ctk-gfx-private.c and ctk-gfx-private.h can be a good base. Following items need to be checked:
    • Current implementation of vertex transformation and texture coordinate generation is for fixed pipeline, vertex shader program should be used for OpenGL ES2.0 instead.
    • some cogl_xxx function calls in ctk_get_actor_screen_position seem also not proper for OpenGL ES2.
  • 8/19 clutter-eglx test applications (such as test-picking and test-text) can now run on MX51, but when run unity based on clutk 0.3.39 (with gles), "unity: symbol lookup error: /usr/lib/libunity-private.so.0: undefined symbol: ctk_effect_cache_new" happened. And after integarte ctk_effect_cache_new from clutk 0.3.46 to 0.3.39, segfault happens when run unity.It seems that unity has big dependency on clutk, so clutk porting to opengl es2.0 should go first
  • 8/20 analyze OpenGL APIs and extensions used in clutk, it seems that some implementations are obsolete, which can be updated for both x86 and ARM.
  • 8/9 review/document kernel graphics driver for x86
  • 8/10 tried unity on Lucid, cool ~~ 'bzr branch lp:~unity-team/clutk/gles-support' doesn't work in office for firewall blocking, download clutk-0.3.48 manually, and install clutter packages from asac/armel1, but build failure happen, it seems that the gles specific branch should be used for '--enable-gles' option
  • 8/11 bzr can work now, and clutk can be built successfully with gles, when run clutk tests, get same results as reported in https://bugs.lauchpad.net/clutk/+bug/614415

  • 8/11 review 2d acceleration options, EXA/Cairo/Skia/AGG/Pixman
  • 8/12 go through clutk code, and try to build and run on Freescale MX51 board in next step
  • 8/13 setup environment on MX51_BABBAGE board with 2.6.31 kernel and linaro-m-headless rootfs
  • 8/13 after some change in /usr/include/clutter-1.0/cogl/cogl-defines.h, clutk can be compiled successfully on MX51, but when run test-clutk, error happened "failed to create drawable /DND/Destination: Clutter-WARNING **: Unable to create a new stage: the glx backend does not support multiple stages. aborting... Trace/breakpoint trap"
  • 8/6 with the help of asac, add ppa:asac/armel1 to Lucid manually
  • 8/6 split "Review/document X graphics stack on ARM platforms" into small chunks

JammyZhou (last modified 2011-05-10 04:28:12)