Vulkan CTS

New tests:
 * Tests for SPIR-V 1.4
 * Enable explicit_lod tests
 * Add pipeline derivatives to compute subgroup tests
 * Various GraphicsFuzz tests
 * Tests for integer cooperative matrix
 * Test blitting with 1D and 3D depth/stencil images
 * Add VK_NV_ray_tracing infrastructure and test
 * Add copy tests for wide and tall images
 * Add tests for VK_KHR_shader_subgroup_extended_types
 * Test minimum alignment for texel buffers.
 * VK_EXT_line_rasterization tests
 * Test SPIRV comparison operations with 64-bit types
 * Add tests checking max varyings per shader stage
 * Add OpFRem to SPIR-V precision tests
 * Test for loop with condition always false
 * Test cbuffer packing with scalar block layout
 * Test enum with settings for separate controls
 * Add touch tests for volatile atomics
 * Test input attachments in random descriptor sets test group
 * Test buffer and image properties with external host memory
 * Add VK_EXT_shader_subgroup_ballot gl_SubGroup*MaskARB tests
 * Testing for sampleShadingEnable
 * Increase mediump precision testing
 * Add depthBounds tests for VK_EXT_depth_range_unrestricted
 * convert{su}tof and convertfto{su} tests with float16 need Float16 capability
 * Test vkCmdClearAttachments with unused depth/stencil attachments
 * Test 64-bit results with transform feedback queries
 * Test 32-bit stat queries with vkGetQueryPoolResults
 * Add QueryIndexed tests when streamId is zero
 * Test DMA buffers as external image memory
 * Test 32-bit timestamp query results
 * Add tests for VK_EXT_shader_subgroup_ballot
 * Test vkCmdCopyQueryPoolResults with transform feedback queries

 * Skip test with no display plane is available
 * Fix subnormal floats in extended image usage tests
 * Fix relaxed precision and no perspective dEQP tests
 * Fixed flags used to select queue in dEQP-VK.synchronization.op.multi_queue
 * Fix semaphore creation in smoke tests
 * Split descriptor set indexing render pass workload
 * Add feature requirements to existing amber files
 * Add variable pointers requirement for vktSpvAsmPtrAccessChainTests
 * Fix buffer alignment in dynamic offset tests
 * Fix broadcastFirst tests
 * remove opconstantnull physical storage pointer tests
 * Fix basicMultiFenceWaitAllFalseCase test
 * Fix 64bit type promotions in subgroup tests
 * Generate 'false' sometimes for random bool data
 * Tidy up extension headers in ballot_broadcast tests
 * Remove unnecessary extension from float16 constant tests
 * Remove 16 storage from float16 logicals tests
 * Remove 16-bit storage requirement from float16 func tests
 * Remove 16-bit storage requirement from half arithmetic tests
 * Remove unnecessary 16-bit storage requirement
 * Accept saturated values for the 32bit buffer
 * Fix API usage errors in geometry tests
 * Texel view compatible: Image: proper check for image format supports
 * 1d_image: enforce height 1 in decompress stage as well
 * 1d_image: basic: compute: texel_view_compatible: set size.y to 1
 * external fence tests: account for sync fd -1 in multiple export case
 * Fix depth store flag in seperate_channels tests
 * Float controls: graphics: fix 16bit storage validation
 * Need Float16 capability for float16 tests
 * Fix Float16 validation for 16bt storage tests
 * Float controls: break out extra functions as separate from constants
 * Account for precision loss in unorm depth pipeline
 * Float controls: compute: fix for strict 16bit storage validation
 * Add missing invalidates in depth/stencil resolve tests
 * Remove superfluous shuffle code
 * Rename subgroup.partitioned tests
 * Use templates instead of copying code
 * Fix 16bit/8bit storage validation for workgroup memory tests
 * Need Float16 in some derivative tests
 * Check if the statistics query results are linear
 * Don't generate then squash subnormal numbers
 * Fix validation VK_KHR_16bit_storage in opphi test
 * Add input attachment restrictions to  makeCreateImageInfo()
 * Fix random generation for isinf/isnan tests
 * Remove float16 derivatives tests
 * Make texture aniso basic self tests less sensitive
 * Relaxes line rasterization tolerances
 * Generate a non-zero exit code on test failure
 * Use the correct imageType for image support checks.
 * Fix wrong wait stage mask
 * Fix in shadercacheLoad

 * Remove uses of strstr in vktSpvAsmFloatControlsTests.cpp
 * Limit the apiVersion of the instance within the CTS framework
 * Test all quad broadcasts in one test
 * Use a single test source for quad tests
 * Allow multiprocess execution for conformance submissions
 * Always require glslang and spirv-tools to be present
 * made independent from VK versions
 * Run SPIR-V assembly type tests in compute shaders
 * Improve verification in sampled image tests
 * Enable validation layers for custom devices and instances
 * Combine ARB and Core subgroupBroadcast code
 * Share instance/device across test case instances in dEQP-VK.synchronization.*
 * Use the default device in dEQP-VK.api.buffer.* tests
 * Cut down on repetition in the subgroup tests
 * Remove duplication from YCbCrUtils
 * Further tidy up the subgroup vote sources
 * Backport non-extension subgroup changes from next-dev
Remove NaNs from double compare tests

Affected tests:

Components: Vulkan
VK-GL-CTS issue: 2066

Change-Id: I8d735bbffe2db5d2c8cfac5a616efd6010057408
1 file changed
tree: e84bd7573596c591a315157e1b9912563fe85764
  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/