Hi,
I have a use-case where NV12 video frames are imported as GL texture (using EXT_image_dma_buf_import, dma_buf) and would like to down-scale the said texture into also a destination NV12 buffer (render target). The destination NV12 buffer will hold 2x2 scaled-down video frames (a mosaic).
Is this doable on Mali400? If so, is it possible to explain the necessary setup + fragment shader to use?
(E.g. the quite new EXT_YUV_target extension for gles3.0 would help achieve that?)
Best regards,
Ilyes Gouta
Hi ilyesgouta,
The Mali-400 GPU only supports up to OpenGL ES 2.0. As such the extension you mentioned for GLES3.0 will not work on the Mali-400.
If you are interested in using that extension, or any aspect of OpenGL ES 3.0 functionality and above, then you will need to look at using our 'Midgard' Family of GPU's. These have the letter T in their name, e.g. Mali-T760, Mali-T628, Mali-T880.
Regarding Mali-400 and NV12 support:
if using GL_OES_EGL_image_external, you can read in YUV NV12 textures to the GPU as of driver version r4p1-01rel0.
For outputting YUV NV12, then you can either use the' EGL recordable, Render to frame buffer' option as of driver version r5p1-01rel0, or use 'Render to texture, FBO' option as of driver version r7p0.
Kind Regards,
Michael McGeagh
Hi Michael,
Thank you for the explanations.
For the 'Render to texture, FBO' option, are r6p0 drivers sufficient or is only doable using r7p0?
As stated above, to render to texture, FBO... this is only supported from r7p0 driver onwards. This support is not included in drivers prior to this.
Thanks Michael.