[vulkan][gl] communicate pending readbacks, small vector opts

1. Communicate pending readbacks

It's common to read back shortly after writing a bunch; this
optimization makes it so we spin less in onGuestRecv in the case where a
bunch of data is written and we are just waiting for the host to run the
command.

With pending readbacks, it seems better to use them instead of
spinning in onGuestRecv.

2. Small vector opts

When we successfully push or pop data in the RenderChannel, free() gets
called in SmallVector's destructor. This can take a lot longer than
copying. We convert to using copy constructors over move constructors.

Test: glmark2 gles2 on ANGLE slightly faster, hit 710 once
Test: % time in pipe I/O relative to vcpu run decreased from 23% to 7%
in glmark2 gles2 on ANGLE

Change-Id: I0358ccef6fdc991d7110d09e31f9a81f8f07448f
2 files changed
tree: 8c2e35f804fe1fadc7504dfc87d1d8a66ba2fcba
  1. registry/