Implement SwiftShader GL for Ozone.

Add working SwiftShader GL implementation for Ozone. There is no
platform specific FBO implementation for Ozone. However, SwiftShader can
still render into a pbuffer object.

Add a GLSurface implementation that is backed by a pbuffer and then use
glReadPixels() to copy pixels into memory. Add an X11 implementation
which copies the pixels into the XWindow. This provides a SwiftShader GL
implementation that works with Ozone X11 for the CrOS CQ trybots.

Bug: swiftshader:67
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I2ee72de28c506f30c728db8304dd371e2a5dd52e
Reviewed-on: https://chromium-review.googlesource.com/1087036
Commit-Queue: kylechar <kylechar@chromium.org>
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565240}
9 files changed