iMX6Q CPU, please help with overlay understanding

cancel
Showing results for 
Search instead for 
Did you mean: 

iMX6Q CPU, please help with overlay understanding

Jump to solution
835 Views
olkaz
Contributor I

Hello,

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.

Labels (1)
0 Kudos
1 Solution
102 Views
olkaz
Contributor I

I would like to share the latest result from investigation.

I found the way to fulfill all ours use cases using Windows CE 7.0.

I am using overlay surfaces that are accessible through DirectDraw and I can connect openGLES2 to dedicated overlay.

Using three overlays in h/w (the top is full screen ARGB32 layer, the middle is UYVY resizable video layer and the bottom is full screen RGB32 layer) shows very good performance.

So my quiestion is closed.

View solution in original post

0 Kudos
1 Reply
103 Views
olkaz
Contributor I

I would like to share the latest result from investigation.

I found the way to fulfill all ours use cases using Windows CE 7.0.

I am using overlay surfaces that are accessible through DirectDraw and I can connect openGLES2 to dedicated overlay.

Using three overlays in h/w (the top is full screen ARGB32 layer, the middle is UYVY resizable video layer and the bottom is full screen RGB32 layer) shows very good performance.

So my quiestion is closed.

View solution in original post

0 Kudos