Imagination PowerVR SDK Blog

Texture streaming on Omap4


#1

Hello,

 

 I need to implement an application with real time video using the Omap4's SGX540 to perform various image processing. I would like to know if a module such as bc-cat is available on Omap4 allowing texture streaming.

 

If yes, how is it possible to use functions like myglTexBindStreamIMG() ? Do I need to get access to a special DDK library ?

 

Any advice to get that functionality would be appreciated.

 

Thank you!

 

Francois

#2

Hi Francois,

You can use the glGetString(GL_EXTENSIONS) function to query if the drivers on your target platform support the texture streaming extension.

If texture streaming is exposed on your platform, the interface and implementation of it for creating texture stream buffers and writing to them would have been done entirely by TI, or by the OEM for your device. Because this interface can vary between platforms, I can’t suggest a generic way of accessing these buffers. You should contact TI for assistance with this.

Joe




#3

Hello Joe,

 

Thank you for your feedback. I have checked the OpenGL extensions on TI's evaluation tablet (called Blaze) and the extension GL_IMG_texture_streaming_2 is present. They even have a test application called GLES2TextureStream but which does not work on the tablet.

 

I am contacting TI to know more about their support of texture streaming. If they tell me that it is the case, will I need the DDK from Imagination to perform such streaming ? In the TI's Gingerbread distributions I see the following libraries:

file /system/vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so.1.1.17.4403


file /system/vendor/lib/libusc.so.1.1.17.4403


file /system/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so.1.1.17.4403


file /system/vendor/lib/libglslcompiler.so.1.1.17.4403


file /system/vendor/lib/libIMGegl.so.1.1.17.4403


file /system/vendor/lib/egl/libEGL_POWERVR_SGX540_120.so.1.1.17.4403


file /system/vendor/lib/libpvr2d.so.1.1.17.4403


file /system/vendor/lib/libsrv_um.so.1.1.17.4403


file /system/vendor/lib/libsrv_init.so.1.1.17.4403


file /system/vendor/lib/libPVRScopeServices.so.1.1.17.4403


file /system/vendor/lib/libpvrANDROID_WSEGL.so.1.1.17.4403



Do you believe I have all required libraries from Imagination ? As you mentioned, I understand that I would need from TI an implementation equivalent to the bc-cat module they developed for Omap3.

 

Any other advice would be appreciated.

 

Francois

#4

Hi Francois,

Depending on what you are trying to achieve, our DDK may help you. You can get the DDK by licensing it directly from us (which is priced for our chip manufacturing customers to take, so may be too expensive for use in a single application) or (possibly) sub license the DDK from TI. As texture streaming is very platform dependent, it would be best asking TI if it is supported and if they can help you before considering licensing the DDK.

I think your list is missing a texture streaming specific library . You would have to ask TI about this though.

Thanks,
Joe




#5

Hello Joe,

 

Do you have an idea about the possible name of such a library ? Another name, for instance the one used on Omap3 with the SGX530 would be helpful.

 

Thank you!

 

Francois

#6

On Android - it is better to use eglimage with YUV streaming, rather than bufferclass (/ bc-cat) approach for various reasons. Check with the TI support team


#7

Hello Prabindh and Joe,

 

Thank you for the new hint. On Android, there is a SurfaceTexture object that does Texture Streaming job. According to the GL_OES_EGL_image_external extension specification by Khronos, Android seems to use EGLimage to support Texture Streaming.

 

Since YUV to RGB conversion is done in that texture streaming operation, do you know which processor does the conversion, the CPU or the PowerVR GPU ?

 

Thank you!

 

fanchb

#8

I believe that the GPU does the conversion when this extension is available. You should contact TI to confirm this though.

Thanks,
Joe