Imagination PowerVR SDK Blog

GL_OES_EGL_image_external with X11 on linux?


#1

Hi,



I am using OMAP5 evm with linux running on it. I want to display video using OpenGL ES 2.0. However it is not efficient using XPutImage() or glTexImage2D().



After searching on web, everyone is suggesting an extension called GL_OES_EGL_image_external for fast uploading the textures.



Could you suggest me the way how can I use this extension to upload UYVY or any other YUV frame as a texture to OpenGL ES 2.0? I am using X11 windowing system.



There doesn’t seems to be any example program on web. Could you provide one if possible?



Thanks & Regards,

Viks


#2

Hi Viks,



You should contact TI for support. The behaviour of this extension tends to be platform specific. Even if the extension is available to your OpenGL ES 2.0 application, the hoops that have to be jumped through to allocate and manage the surface can vary.



Regards,

Joe


#3

Hi Joe,



Thanks for your quick reply.

Can’t I create a EGLImage with target EGL_NATIVE_PIXMAP_KHR from the native pixmap created using XCreatePixmap and use that EGLImage to texture target TEXTURE_EXTERNAL_OES using

this extension? What restricts here to use this extension if it is available?



Thanks & Regards,

Viks


#4

Hi,



I’ve not used the extension myself, but I believe that approach should work. As long as the extension is available & there is also a mechanism available to create EGLImage surfaces, you should be ok. TI will be able to confirm this for you.



It’s worth noting that the GPU will assume the EGLImage contains RGBA data. You will either have to convert your YUV data into RGBA before writing to the surface or you’ll use a fragment shader to perform the conversion.



Regards,

Joe


#5

Thanks for reply Joe. I used other platform specific extension.



Thanks,

Viks


#6

Glad to hear you’ve found a solution. Sorry I hadn’t replied sooner.



Regards,

Joe