Hi,
I've just noticed that texture lookups using samplerExternalOES (as specified in the OES_EGL_image_external extension) seem to come with a performance impact on Mali-400, at least if the instruction counts reported by Mali Offline Compiler are correct.
While a texture2D sampler lookup takes 1 cycle, the Mali Offline compiler reports the following for a samplerExternalOES access:
Number of instruction words emitted: 5Number of cycles for shortest code path: 2Number of cycles for longest code path: 5
Could someone shed some light on why accessing a samplerExternalOES would be so expensive?
How can I ensure that the fast path is hit (2 cycles)?
Is there a - perhaps less flexible - alternative to OES_EGL_image_external, which would allow for zero-copy textures without this overhead?
Could the cycle counts just be misreported by the Mali Offline Compiler?
For Mali at least, the driver team have confirmed that we will always leave the data untouched so OES_EGL_image is safe. On other vendors you might get different behavior of course,
Cheers, Pete
Wow, perfect, that's a relief :-) Thanks for verifying & your excellent support!