Vulkan CTS

New tests:
 * Add tests for non strict lines
 * Test OpUndef with OpConstantComposite and OpSpecConstantComposite
 * Add depth and stencil formats to buffer copy tests
 * Add concurrent query pool tests
 * Test SampledImage as function argument
 * Added a batch of coverage tests found by GraphicsFuzz
 * Test additional atomic image SPIR-V operations
 * Validate samplerless descriptor writes
 * Test Centroid SPIR-V decoration on struct members
 * Test OpMemberDecorateString from SPIR-V 1.4
 * Test samplers with unnormalized coordinates
 * Test exact sampling cases
 * Improve vkGet*ProcAddr testing
 * Test shift ops in OpSpecConstantOp with more bit widths
 * Extend tests for VK_EXT_fragment_density_map
 * Add image clearing tests with multiple subresource ranges
 * Test OpImageWrite with the Sample image operand
 * Add geometry layered tests for 3D depth/stencil views
 * Add tests for VK_EXT_subgroup_size_control
 * Add tests for subgroup LOD
 * Test creation of overly large buffers
 * Run SPIR-V builtin precision tests on 64-bit floats
 * Test SpecConstantOp/CompositeInsert in arrays and structs
 * Add tests of VkSwapchain acquiring too many images
 * Extend multiview/occlusion queries tests
 * Added DMA buffer external memory cases to cross instance sharing tests
 * Add SPIR-V Invariant decoration tests

 * Require 16-bit storage in some 8-bit storage tests
 * Fix barrier code in dEQP-VK.api.buffer_marker.* tests
 * Fix dEQP-VK.subgroups.ballot.framebuffer.* to use core API
 * Verify results in ballot bitcount tests
 * Allow 1ULP of tolerance in ldexp precision tests
 * Fix 32-bit statistic query tests using 64 bits
 * Restore disabled texture function tests
 * Check if display is available for Vulkan.
 * Fix subgroups tests using basePipelineHandle with index != -1
 * Don't enable both buffer device address extensions
 * Don't remove 16-bit denorms from fp64 tests
 * Stricter codomain for atan tests
 * Use common code for SG arithmetic-like tests
 * Loosen basic subgroup elect test vertex checks
 * Stricter codomain in atan2 precision tests
 * Simplify the test code for ballot bit counts
 * Use float16 precision for testing mediump
 * Remove duplicated code that handles Android hardware buffer
 * Fix image checking for sparse image binding tests
 * ldexp tests do not test corner cases correctly
 * Fix texture shadow test using image views with zero aspect
 * Fixes 16bit storage check in spirv_assembly tests
 * More vertex-invocation fixes for synchronisation tests
Merge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2

Change-Id: I4e83df12355f93f835da9812a28665f434459a5d
tree: 2a693ff9a9f28c3bfc8ff9174b77d43adb871df5
  1. .github/
  2. android/
  3. data/
  4. doc/
  5. execserver/
  6. executor/
  7. external/
  8. framework/
  9. modules/
  10. scripts/
  11. targets/
  12. .editorconfig
  13. .gitignore
  14. .travis.yml
  17. CMakeLists.txt
  21. NOTICE
  22. OWNERS


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.


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

The .qpa logs generated by the conformance tests may contain embedded png images of the results. These can be viewed with the Cherry tool.

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.

ANGLE for Android

ANGLE can be built for Android by following the instructions here.

The resulting ANGLE shared object libraries can be linked against and embedded into dEQP.apk with the --angle-path option. This will cause dEQP.apk to use the ANGLE libraries for OpenGL ES calls, rather than the native drivers.

An ABI must be specified and the directory structure containing the ANGLE shared objects must match it so the build system can find the correct *.so files.

Assuming ANGLE shared objects are generated into ~/chromium/src/out/Release/ and dEQP.apk will be generated with --abis arm64-v8a, issue the following commands:

cd ~/chromium/src/out/Release/
mkdir arm64-v8a && cd arm64-v8a
cp ../lib* .

The --angle-path ~/chromium/src/out/Release/ option can then be used to link against and embed the ANGLE shared object files. The full command would be:

python scripts/android/ --sdk <path to Android SDK> --ndk <path to Android NDK> --abis arm64-v8a --angle-path ~/chromium/src/out/Release/