[i.MX6] Vivante: How-to readback PixmapSurface in EGL-FB?

cancel
Showing results for 
Search instead for 
Did you mean: 

[i.MX6] Vivante: How-to readback PixmapSurface in EGL-FB?

Jump to solution
2,854 Views
castel
Contributor III

Hi, GPU team:

     We're programming the PixmapSurface rendering in EGL FB, we've gotten the *Pixmap from eglCopyBuffers(), but we don't know how to extract the data buffer from it? (structure 'EGLNativePixmapType': identified as 'HBITMAP' type on WinCE so easy to be rendered in Win32 AP, but on Linux/FB an unknown '_FBPixmap' type is)

     we've checked the DOC "iMX6.2D.API _4.6.9p8.pdf" & some test codes from Vivante, but no help for it.

     is it possible to get how to access the Pixmap from eglCopyBuffers()? or is there other way we need to follow for the achievement?

    

thanks.

0 Kudos
1 Solution
613 Views
andre_silva
NXP Employee
NXP Employee

Hi Kang,

the  better way to do that is using virtual framebuffers, you can find a similar thread here that another customer was able to solve his problem using this approach?

https://community.freescale.com/message/340072#340072

the virtual framebuffer driver can be found here?

Freescale/linux-module-virtfb · GitHub

regards,

Andre

View solution in original post

0 Kudos
2 Replies
613 Views
castel
Contributor III

Dear GPU team,

     If we couldn't use the Pixmap, the off-screen redering by multi-pbuffer + glReadPixels only can be fined to ~50 fps, and ~250fps by  native window, it seems the impact of GPU<=>CPU sync(glReadPixels) is up to 80%.

     if we use the pixmap rendering(fbCreatePixmap()=>eglCreatePixmapSurface(), and then readback from eglCopyBuffer()), we can get  100~ fps! but we can't resolve the "EGLNativePixmapType" structure so that getting the pixels couldn't be done.

     Our work is to produce a GL render for APP(work on native framebuffer on Linux, no X11) in 60fps, so we must try the native pixmap rendering for better FPS.

thanks.

0 Kudos
614 Views
andre_silva
NXP Employee
NXP Employee

Hi Kang,

the  better way to do that is using virtual framebuffers, you can find a similar thread here that another customer was able to solve his problem using this approach?

https://community.freescale.com/message/340072#340072

the virtual framebuffer driver can be found here?

Freescale/linux-module-virtfb · GitHub

regards,

Andre

0 Kudos