targets/surfaceless: Add support for Chrome OS surfaceless

Implement a new dEQP target, "surfaceless", that supports offscreen
rendering using Chrome OS's EGL null platform. This is based on
intel's work to add support for "drm" target, but extends it to work
on ARM as well.

dEQP could be ran with --deqp-surface-type=fbo because the native EGL
platform does not support EGLSurfaces. However, because of b:27656575,
it must be run with --deqp-surface-type=pbuffer at the moment.

Unlike all of dEQP's other EGL-derived platforms (x11::egl::Platform,
Android::Platform, rpi::Platform, etc), class surfaceless::Platform does
not inherit from eglu::Platform and it reuses very little of dEQP's
existing EGL code. I had to re-invent the wheel when implementing the DRM
platform because dEQP's existing EGL code relies heavily on EGLSurfaces,
which Chrome's EGL surfaceless does not support.

BUG=chromium:543372
TEST=run deqp on veyron_jaq
4 files changed
tree: 091fb695d572ffc655343781b3b9a6a88473b503
  1. android/
  2. data/
  3. doc/
  4. execserver/
  5. executor/
  6. external/
  7. framework/
  8. modules/
  9. scripts/
  10. targets/
  11. .editorconfig
  12. .gitignore
  13. Android.mk
  14. CMakeLists.txt
  15. LICENSE
  16. MODULE_LICENSE_APACHE2
  17. NOTICE
  18. OWNERS
  19. README.md
README.md

dEQP README

This repository contains a GPU testing suite called dEQP (drawElements Quality Program). dEQP contains tests for several graphics APIs, including OpenGL ES, EGL, and Vulkan.

Documentation

Up-to-date documentation for the dEQP is available at Android Open Source Project site.

Khronos Vulkan Conformance Tests

This repository includes Khronos Vulkan CTS under external/vulkancts directory. For more information see Vulkan CTS README.