I am using Mali-400 GPU on Linux platform.
In My OpenGLES application, I created an EGL Image using eglCreateImageKHR in RGBA8888 format. I am sending data buffer of RGBA8888 format to the GPU.
The image is displayed properly.
When I check with "fbdev" command, I can see that my frame buffer resolution is 1920x1080 16 bpp.
Where is the conversion from RGBA8888 to RGB565 happening?
In terms of ideal performance (ignoring cache misses, bandwidth, etc) then no - the format conversion is "free".
However if you know the output is going to be 16-bit then you are wasting bandwidth and texture cache uploading a 32-bit texture and then throwing away half of the information it contains, so yes it should help a bit in practice because you will have memory memory access to make and less data to store in the texture cache.