Basically I'm trying to get an existing desktop GL architecture working on ES devices. The way it is setup we have off screen color and depth-stencil surfaces that may or may not be multisampled, and we need to save and restore the contents of each in various places.
We have a path for ES 2.0 that supports copying color only (no depth) via textured quads. In the msaa case we use GL_IMG/EXT_multisampled_render_to_texture on Android when available and save to single sampled textures.
With ES 3.0 we were attempting to use the same path we do on the desktop, with BlitFramebuffer being available to able to copy depth-stencil surfaces. Since ES 3.0's BlitFramebuffer can't blit to a multisampled destination, we're saving to single sampled color and depth textures, and doing the restore with textured quads (writing gl_FragDepth in the depth case and ignoring the stencil contents).
I just did a test trying to use glFramebufferTexture2DMultisampleEXT with a depth texture and I get an INVALID_ENUM error. Looking at the spec for the extension:
http://www.khronos.org/registry/gles/extensions/EXT/EXT_multisampled_render_to_texture.txt
It seems to say that the attachment point must be GL_COLOR_ATTACHMENT0 so I'm not sure this will work to get multisampled depth textures.
If we can't get msaa depth surfaces working this way I think we're probably better off just limiting Mali ES 3.0 capable devices to either our ES 2.0 path, or ES 3.0 with no msaa. This is not really a serious problem for us right now, I just wanted to make sure you guys were aware of it so it can get fixed at some point.
Thanks,
Evan