AnsweredAssumed Answered

iMX6Q CPU, please help with overlay understanding

Question asked by Oleg Kazakov on Mar 25, 2013
Latest reply on Mar 27, 2013 by Oleg Kazakov
Branched to a new discussion



We are Korean automotive company, our iMX6Q car infotainment project requires 3 auto combined synchronous overlays (at least on one display).

Studding the datasheet I've recognized that iMX6 IPU supports just 2 auto combined synchronous overlays by DP and all other overlays number extension is possible just by using IC or VDIC module off screen composition.


Here is some more info for our project overlay requirements: 2 planes are just full screen (no resizing, no pixel format conversion, no rotation) graphical layers for openGLES2 tasks, 1 plane is YUV video overlay for video/camera playback (needs resizing and pixel format conversion but no rotation). The video overlay must be located between other 2 graphical planes in combining order.


The reason why I'd like to use h/w IPU composition because I failed with implementation using a standard approach. In my case I used for composition openVG engine. OpenGLES2 composition shows even worse result. Here is my test result for full screen application using 1024 x 768 display using

openVG graphic:

     - I've got just about 20fps final output frame rate for combining 3 off screen 1024 x 768 surfaces (in my case it were 3 PBUFFER surfaces). The problem is in WinCE7 openVG cannot work concurrently with openGLES2 (it makes image crashes probably because of implementation bug) so making openVG and openGLES2 work interleaving I've got even less than 17fps. I failed to test it in Linux because it seems openGLES2 does not work in multi-threaded environmental (even it succeeds to initialize openGLES2 and make a context any drawing function returns error, it may be also driver implementation bug).

    - For video I've tested openGLES direct texture feature and found that just in single application rendering (not involving any other decoding or processing) direct draw texture takes about 20% of total CPU load with maximum frame rate about 36fps.

   - I cannot use DirectDraw for video rendering because of video overlay must be located between two graphical layers.


Finally I gave up to implement standard way composition using such graphic engine as openVG and openGLES.

Unfortunately it seems there is no way to use automatic 3 graphic layers combining and I'm worried off screen composition using IC module will result to very similar result as I have for openVG (because openVG also uses 2D h/w accelerator).

All these problems above makes our project to be impossible using this CPU or we will get only the similar performance that we already have in our current project based on single core Ti omap3 CPU.


I am not sure if my understanding is correct or not. We have a connection with Freescale representative but from the beginning I could not get any technical support from them (except a help to get BSP source code). Could somebody replay to make it clear whether 3 planes auto combining (without off screen composition) is possible or not? Any reference to Freescale docs or other material how overlays are working will be appreciated.