AVDVirglRenderer: Host-side 3D for cuttlefish

Initial implementation of libvirglrenderer for the cuttlefish AVD.

This replaces the host renderer part of the Virgil3D project. Control
messages are replaced with the goldfish-opengl protocol. QEMU needs to
be built with support for libvirglrenderer, then this library can either
replace the system copy of libvirglrenderer, or be LD_PRELOADed.

Code from the goldfish emulator has been extensively reused. The
protocol decoders are identical to those used by the external/qemu
emu-master-dev project. Additionally, the OpenGLESDispatch library
was taken and repurposed to allow an alternative EGL/GLES implementation
to be loaded and utilized by AVDVirglRenderer.

- OpenGL ES 1.1 and OpenGL ES 3.1 are supported.
- OpenGL ES 3.2 support is not planned.
- Vulkan support is not planned.

Bug: 77276633
Change-Id: I981102308113577bccb514d1d7c515a999e6b059
69 files changed
tree: 5666438485dc84c687540774159938b016dab540
  1. host/
  2. .gitignore