Add support for metamorphic testing

Add a new test case which compare the renderings of two different yet
semantically equivalent fragment shaders. A couple of shadersets are
also added as associated data, each contains one recipient fragment
shader which is the reference, and a few variants which are semantically
equivalent to the recipient. Each variant included here has proven to
trigger some issue on an Android device, see comment in the variant
source code.

Besides comparing the renderings of both recipient and variant shaders,
the test case also checks that each shader leads to a deterministic
rendering, by performing rendering twice and doing a pixel-per-pixel
comparison on the resulting image. When comparing the recipient and
variant renderings, a slight difference is tolerated to cope with
variations due to floating point arithmetics. Moreover, a sanity check
function may be used in order to verify that the recipient image is
relevant, and thus avoid a e.g. full black image rendering to pass the
test.

Change-Id: Id6cbbe7459864c6fb3acf72faa393ee0f4d8315d
18 files changed
tree: bc4abcea4cac424fbc8f9268a7a46b0c25218b15
  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. AndroidGen.mk
  15. CMakeLists.txt
  16. LICENSE
  17. MODULE_LICENSE_APACHE2
  18. NOTICE
  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.

Khronos OpenGL / OpenGL ES Conformance Tests

This repository includes Khronos OpenGL / OpenGL ES CTS under external/openglcts directory. For more information see OpenGL / OpenGL ES CTS README.