[meta-freescale] X11 is not working on IMX.6

Sébastien Taylor me at staylor.ca
Fri Nov 29 09:52:46 PST 2013


There’s quite a few issues which I’ve brought up with Freescale support but haven’t received any ETA or updates just that “Vivante’s working on it”.  If you have some time available I can put aside some time as well to get my examples updated and published on github so that we can work through them as this has been a major roadblock for us (we ended up using GLES 2.0 Shaders instead, though they’re also loaded with various Vivante issues).

One major issue is the lack of support for cl_khr_gl_sharing which would allow us to use the textures loaded with glTexDirectVIVMap_t within an OpenCL kernel.  Alternatively would be for OpenCL to be able to correctly use host memory, for example a buffer created by the IPU, without requiring a copy (since everything is in the same RAM and we can ensure specific pixel formats).

Another issue is just one of performance, simple image convolutions take much longer than expected to complete.  This seems to be an issue with the way the Vivante driver handles it’s memory and is also seen in GLES 2.0.  In one example I submitted to Freescale we were seeing 32ms to process a simple convolution on a 720p image, something we’d expect to take no more than 10% of that time given the GPU and bus speed of the system.  At the time we were told it was a known issue with glTexDirectVIVMap_t, though I’m not really sold on that as we can demonstrate the same issue using glTexImage2D.  In the case of GLES we can see that a glFlush takes (my numbers might be slightly off going from memory here) approximately 5ms but does not completely flush the image, a glFinish does completely flush the image but takes 20ms.


On Nov 29, 2013, at 10:32 AM, Andre Silva <Andre.Silva at freescale.com> wrote:

> Hi Sebastien,
>  
> Thanks for adding this information, I didn´t work with the OpenCV OCL module yet, as I only see CUDA in the OpenCV cmake config, I thought it only used CUDA.
>  
> What is the issues you mentioned in the Vivante OCL driver ? We do have some limitations like size of the kernel (limited number of instructions), but I am not aware of these various issues you mentioned.
>  
> Regards,
> Andre
>  
> From: Sébastien Taylor [mailto:sebastientaylor at gmail.com] On Behalf Of Sébastien Taylor
> Sent: Friday, November 29, 2013 3:29 PM
> To: Silva Andre-B22958
> Cc: Fikret Alim; meta-freescale at yoctoproject.org; Otavio Salvador
> Subject: Re: [meta-freescale] X11 is not working on IMX.6
>  
> Just to clarify, the OpenCV OCL module is OpenCL not CUDA though they also have a GPU module which is CUDA.  The issue with the OpenCL module on the i.MX6 is that it requires Full Profile.  Many of the algorithms could conceivably be ported to Embedded Profile, but the various issues with the Vivante OpenCL driver would first need to be fixed.
>  
> On Nov 29, 2013, at 10:01 AM, Andre Silva <Andre.Silva at freescale.com> wrote:
> 
> 
> Hi Friket,
>  
> You are right, the OCL module in OpenCV is CUDA based, it doesn´t work for us. Using OpenCL in this case, you can base on OpenCL embedded profile tutorials you can find in the web also, I created a simple OCL SDK, that provides you a quick start for opencl application, unfortunately it is not available outside Freescale yet, there are some samples there (IP filtering) that you could use, I just need to check if I can share right now.
>  
> Regards,
> Andre
>  
> From: Fikret Alim [mailto:fikret.alim at gmail.com] 
> Sent: Friday, November 29, 2013 1:14 PM
> To: Silva Andre-B22958
> Cc: Otavio Salvador; meta-freescale at yoctoproject.org
> Subject: Re: [meta-freescale] X11 is not working on IMX.6
>  
> Dear Andre,
>  
> When I run gesture demo, I get the following console output now;
>  
> root at imx6qsabrelite:~/gpu_samp/bin# ./gesture
>  
> Using: min: 15, max: 40, val: -1
>  
> Yellow: ./gesture 15 40 -1
> Skin: ./gesture 5 30 20
>  
> Loading netweights...OK
>  
> Insufficient buffer memory on /dev/video0 -- decreaseing buffers
> Insufficient buffer memory on /dev/video0 -- decreaseing buffers
> Insufficient buffer memory on /dev/video0 -- decreaseing buffers
> Insufficient buffer memory on /dev/video0 -- decreaseing buffers
> Initializing OpenCV...OK
> Initializing OGLES2...OK
> Creating the Stage...OK
> Creating the Theater...OK
> Creating the Status Panel...OKError: Resource not found.
> Error: Resource not found.
>  
> Control Disabled
>  
> Now, the application is running, but I can only see black screen on the monitor. There is an error message as seen above, but I didn't have time to check from the software. Do you have an idea about the error message?
>  
> I have one more question: Actually I am not interested in OpenGL, because we want to perform image processing. So, OpenCL will be more suitable for us, but I couldn't find any examples other than hello world for IMX.6. I searched if we can use OpenCV OCL module on IMX.6, but I learned that it is not possible. So, if you know a way to use GPU for image processing, please recommend a way to me (such as an example using both OpenCV and OpenCL)
>  
> Thanks&Best Regards,
> Fikret
>  
> 
> On Fri, Nov 29, 2013 at 2:49 PM, Andre Silva <Andre.Silva at freescale.com> wrote:
> Hi Friket,
>  
> I was about to ask you about the galcore module, as I always use it as built-in I thought you were using this way too. I´m glad it worked.
>  
> About the gesture recognition demo, what is going on ? what kind of errors are you getting ?
>  
> Regards,
> andre
>  
> From: Fikret Alim [mailto:fikret.alim at gmail.com] 
> Sent: Friday, November 29, 2013 10:19 AM
> To: Silva Andre-B22958
> Cc: Otavio Salvador; meta-freescale at yoctoproject.org
> 
> Subject: Re: [meta-freescale] X11 is not working on IMX.6
>  
> Hi again,
>  
> Thank you for your answers. I have solved the problems by starting the GPU module
>  
> $ modprobe galcore
>  
> and with the display setting
> $ export DISPLAY=:0.0
>  
> By this way I can run the X11 samples on Yocto, but I have still problems with Andre's gesture recognition example :)
>  
> I can not compile anything with softfp, because the compiler can not find stubs_soft.h. In Yocto, there is only stubs.h and stubs_hard.h
>  
> Best Regards,
> Fikret
> 
> On Thu, Nov 28, 2013 at 5:47 PM, Andre Silva <Andre.Silva at freescale.com> wrote:
> Hi Guys,
> 
> I will need to check that. One question: if you let it as softfp, does it work ?
> 
> Regards,
> Andre
> 
> -----Original Message-----
> From: otavio.salvador at gmail.com [mailto:otavio.salvador at gmail.com] On Behalf Of Otavio Salvador
> Sent: Thursday, November 28, 2013 12:02 PM
> To: Fikret Alim; Silva Andre-B22958
> Cc: meta-freescale at yoctoproject.org
> Subject: Re: [meta-freescale] X11 is not working on IMX.6
> 
> Hello Fikret,
> 
> On Wed, Nov 27, 2013 at 5:05 AM, Fikret Alim <fikret.alim at gmail.com> wrote:
> > I am trying to run X11 examples included in gpu_sdk_v1.00 package. I
> > am using Yocto fsl-gui-image. I have tried to run 06_Texturing example
> > under
> > GLES2.0 folder. I have only modified -mfloat-abi variable in the
> > Makefile from softfp to hard. Then I have compiled the code, but
> > unfortunately it is not running on IMX.6 board. I got the following
> > error message when I try to run ./06_Texturing;
> >
> > 06_Texturing: ../common/src/fsl_egl.c:51 fsl_getNativeDisplay:
> > Assertion 'eglNativeDisplayType != ((void *)0)' failed
> >
> > Aborted.
> >
> > What can be wrong? It seems that there is a problem at XOpenDisplay
> > function which is called by fsl_getNativeDisplay function. Is there
> > anything to be done to enable X11? I checked that the libraries are
> > loaded under /usr/libç What should I do?
> 
> Andre, do you have any clue?
> 
> --
> Otavio Salvador                             O.S. Systems
> http://www.ossystems.com.br        http://code.ossystems.com.br
> Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750
> 
>  
>  
> _______________________________________________
> meta-freescale mailing list
> meta-freescale at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-freescale
>  

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-freescale/attachments/20131129/672f22eb/attachment-0001.html>


More information about the meta-freescale mailing list