OpenGL|ES over OpenVG ?

Has anyone experimented with trying to implement OpenGL|ES over OpenVG ?
This is quite the opposite from what is common nowdays: having OpenVG over OpenGL.

I don’t think this is possible for a whole host of reasons. For example:

  • not all blending modes from GLES can be implemented on OpenVG.
  • It may be difficult for VG to do some of the more advanced GLES lighting techniques.
  • VG has not way of doing Texture combiners.
  • VG is not required to support dithering.
  • VG has no mipmaping.
  • Perspective correction is not present on OpenVG for paths (which is what you’d use for rendering triangles presumably)

… and that’s just off the top of my head

Theoretically it may be possible to overcome some - maybe even all - of these issues with very clever uses of vguWarpQuadtoQuad, VGImages, alphamasks, pbuffers, image filters and who knows what else - but performance would be terrible. If it’s even possible, in the end you’d probably end up having to implement about 1/2 the GLES graphics pipeline in software. Furthermore, it would be a mountain of work to implement with little to show for it at the end.

The main problem is that you would need to do some pretty smart hidden surface removal to overcome the lack of a z-buffer.

However, it seems there will be a new breed of devices, (like Freescale iMX35) which will only have OpenVG HW and not OpenGL.
An OpenGL over OpenVG would allow these devices to display 3D Graphics.

A ES2.0 would almost be impossible… but a ES1.1 would require a lot of software but it could run a lot faster than a pure software implementation…