Vulkan CTS

New tests:
 * Add sample decorator to interpolation tests
 * Add VK_EXT_device_drm_properties tests
 * Add VK_EXT_multi_draw tests
 * Improve existing cull distance tests
 * Add tests checking Input and Resolve attachments can be the same attachment in a subpass
 * Add a batch of GraphicsFuzz coverage tests
 * Add timestamp query test variants with availability bit
 * Subgroup and workgroup reconvergence tests.
 * Tests for VK_KHR_shader_subgroup_uniform_control_flow
 * Shared memory layout tests
 * Add VK_FORMAT_B10G11R11_UFLOAT_PACK32 vertex input tests
 * Test null fragment shading rate attachment pointers
 * Add depth execution mode tests
 * Test instance matrix update after command recording
 * Test null miss shader group handles work
 * Test tracing rays from inside AABBs
 * Add a test for VK_EXT_global_priority_query
 * Add depth-stencil tests that do vkCmdCopyImage() with both image aspects
 * Test for fragment shading rate in
 * Add tests for vkCmdCopyQueryPoolResults and pipeline statistics
 * Add writing to invalid multisample indices tests
 * Add multiple statistics query tests
 * Add tests to exercise 'readonly' SSBOs
 * Tests for VK_EXT_color_write_enable
 * Tests for VK_EXT_vertex_input_dynamic_state
 * Add VK_NV_inherited_viewport_scissor tests
 * Add XFB tests for VK_EXT_provoking_vertex
 * Add tests for VK_EXT_provoking_vertex
 * Add missing vertex pipeline stores check with ray queries
 * Add vkCmdCopyQueryPoolResults() tests with dstOffset != 0
 * VK_VALVE_mutable_descriptor_type tests
 * Add new multi-planar format tests
 * New SSBO corner case test
 * Add more spir-v tests with empty structs
 * Cover array input to interpolateAtCentroid
 * Tests for image OpImageWrite on mismatched signedness and type
 * Test non-uniform args in ray tracing operations
 * Add new tests for (u)int->float conversion
 * Test buffer copies with varying offsets and sizes
 * Vulkan CTS coverage for VK_EXT_ycbcr_2plane_444_formats
 * Add primitive topologies for XFB query tests
 * Add OpImageQuerySamples with Storage Image test
 * Add early fragment tests
 * Add tests for multisample resolve to level != 0
 * Add coverage for 1D, 1D array and Cube array shadow images
 * Add subgroup testing for ray tracing pipelines
 * Test interaction between Workgroup explicit layout and zero initialization
 * Added tests for most-negative snorm values in images
 * Handle vkGetDeviceAccelerationStructureCompabilityKHR function.

 * Fix compilation issue in float_controls
 * Update extension dependencies
 * Fix 64-bit atomics mandatory feature checks
 * Fix tessellation SPIR-V tests use of Restrict
 * Fix buffer copy extents in blit tests
 * Allocate memory for reference buffer
 * Fix YCbCr linear filtering support check
 * Don't run _concurrent sync tests on 1 queue devices
 * Fix stage flags for INPUT_ATTACHMENT descriptors
 * Remove spurious feature dependencies in 1.2 tests
 * Fix feature dependency in vulkan1.2 test
 * Fix image aspect handling in fragdepth tests
 * Fix output components limit in fragment input tests
 * Check shader image atomic mandatory features
 * Properly enable Sample Shading in Fragment Shading Rate tests
 * Fix not working
 * SPIR-V 1.4 test fixes
 * Skip unsupported allocations in invariance test
 * Do not exceed heap size when allocating memory
 * Optimize the AS build tests to not use host uncached memory
 * Add missing cull flags when counting intersections of rays with triangle-based cubes
 * Check resource limits properly
 * Capture early errors on instance creation
 * Fix wait semaphore count value
 * Fix internal error for fragment stage in RT tests
 * Fix validation errors in ASTC decode mode tests
 * Invalid VkPipelineRasterizationLineStateCreateInfoEXT chained
 * Fix vertex count calculation in XFB query tests
 * Set the recursion depth for chit and miss cases
 * Check return code for vkGetAndroidHardwareBufferPropertiesANDROID
 * Check supportedAlpha is never zero
 * Do not clamp ambiguous snorms values on vkCmdCopy*() functions
 * Use arrays of pointers with non-identity matrices
 * Portability: handle vertex input stride
 * Portability: use triangle strips in amber tests
 * Portability: handle mutableComparisonSamplers
 * Require geometry shaders for adjacency topologies
 * Static code analysis fixes
 * Fix use of binary semaphore in signaled state
 * Fix condition for checking support of XFB streams other than 0
 * Make sure minImportedHostPointerAlignment in a power of 2
 * Rename all OperationId enum values
 * Fix validation error 'InputNotProduced' in Amber tests
 * Decrease 3D image size in image atomic op tests
 * Fix interfaceTypeMismatch validation errors in Amber tests
 * Augment binding tests to test acceleration structure descriptors
 * Choose linear tiling when dmabuf is used in synchronization tests.
 * Update a batch of graphicsfuzz tests to include SPIR-V TARGET_ENV
 * Fix 'implicit-fallthrough' build error on GCC 9.3.0
 * Fix RT misc tests (querying shaderfloat64)
 * Add missing rasterizationStream in pipeline creation
 * Drop unnecessary barrier
 * Portability: fix ycbcr query tests
 * Remove duplicate dataSafe function from deSTLUtil
 * Check for drawIndirectFirstInstance should only affect indirect draw calls
 * Fulfill OpControlBarrier requirement
 * Fix compilation issue in float_controls
 * Fix use of binary semaphore in signaled state
 * Fix semaphore leak in image atomic operations test
 * Revert initial layout for depth/stencil attachment in makeRenderPass
 * Check support for triangle fan primitive topology on rasterization tests
 * Accept per-sample shading in multiple interpolation tests
 * Single color buffer in multiple interpolation tests
 * Set point size in subgroup size control tests
 * Fix Protected context constructor initialization list order
 * Call computeFixedPointError only for fixed point case
 * Avoid overflowing arrays in GLSL atomic tests

 * Add an option to terminate after first failure, update READMEs
 * Add keys deqp-log-decompiled-spirv and deqp-log-empty-loginfo
Change initializer for array of structures to avoid GCC bug

Works around the following gcc 4.8.4 internal compiler error:

    vktReconvergenceTests.cpp:1169:35: internal compiler error: in gimplify_init_constructor, at gimplify.c:4271
       SubgroupState stateStack[10] = {};

Components: Vulkan
Affected tests: dEQP-VK.reconvergence.*
VK-GL-CTS issue: 3001

Change-Id: I42ec5aa978351f84ad41aae4af9f4977d3263461
1 file changed
tree: b5bde5e66fc932f46d5c86d0b3afe3f7c08145e7
  1. .editorconfig
  2. .gitattributes
  3. .github/
  4. .gitignore
  7. CMakeLists.txt
  11. NOTICE
  12. OWNERS
  14. android/
  15. data/
  16. doc/
  17. execserver/
  18. executor/
  19. external/
  20. framework/
  21. modules/
  22. scripts/
  23. targets/


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 scripts/qpa_image_viewer.html, by opening the file with a web browser and following its instructions, or using 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/