Vulkan CTS

New tests:
 * Test image load/store with packed formats
 * Add tests for OpPtrAccessChain on Workgroup storage
 * Enable OpFMod testing for 16-bit
 * Check every available device and host time domains
 * Add more image dimensions to image clearing tests
 * Add test for concurrent draw and compute
 * Add VK_EXT_shader_subgroup_vote extension tests
 * Test vkCmdClearAttachments with unused attachments
 * Add tests without color buffer and with vertex only pipe
 * Add VK_EXT_depth_range_unrestricted tests
 * Add smoke test with unknown extension structure
 * Add VK_EXT_host_query_reset tests for transform feedback stream queries
 * Extend image store/load tests
 * Add test for mandatory device features ( chapter 35.1 )
 * Add more tests for YCbCr samplers
 * Add tests for EXT_separate_stencil_usage
 * Add tests for VK_EXT_external_memory_dma_buf
 * Add alpha to coverage test with unused attachment
 * Add tests for VK_EXT_calibrated_timestamps
 * Add SPIR-V unused variable tests
 * Add tests for VK_EXT_descriptor_indexing
 * Add tests for VK_EXT_pipeline_creation_feedback extension
 * Add multiview tests iterating with VK_EXT_vertex_attribute_divisor
 * Check vkCmdFillBuffer with sizes not multiple of 4
 * Test separate channels as input and output
 * Add tests for EXT_discard_rectangles
 * Add tests for UPDATE_AFTER_BIND bindings
 * VK_EXT_memory_budget and VK_EXT_memory_priority
 * Add Transform Feedback tests triangle-strip-with-adjacency
 * Add Transform Feedback tests for builtin variables
 * Add Transform Feedback tests
 * Add VK_EXT_pci_bus_info tests
 * Add tests for provoking vertex
 * Test multiple interpolations in a shader stage
 * Use nonsymmetric dimensions for attachment clear tests
 * Add tests for VK_KHR_imageless_framebuffer

 * Split shared_presentable_image tests into more dimensions to avoid timeout
 * Speed up hierarchy traversal, part 1
 * Reformat and share the subgroup vote shader source
 * Merge common util functions, part 2
 * Only test precision in compute stages
 * Early support check for tests (part 1)
 * Support validation layers in push descriptor tests
 * Autogenerate check(Device|Instance)Extensions
 * Unify getShaderStageName helper
 * Generate all DeviceFeatures related code
 * Require Python 3
 * Raise CMake required version to 3.0
 * Move to a single Vulkan mustpass
 * Allow C99, C++11
 * Auto-generate DeviceFeatures class
 * Add support for building with Visual Studio 2019

 * SPIR-V assembly tests require Invocations in Geometry shaders
 * Allows initialisation of float16 values for comparison tests by casting.
 * Fix more 16bit denorms in precision tests
 * Cast invocation ID correctly in allequal tests
 * Fix Android WSI shared presentable image test OOM
 * Fix Android WSI shared presentable image tests
 * Fix feature requirements of sample mask tests
 * Fix derivate dynamic tests to check shader stage support
 * Fix rounding when casting to integer
 * Fix template usage in precision tests
 * Fix memory commitment tests for devices with no lazily allocated memory
 * Fix vertex binding stride in rasterization.primitive_size.points
 * Fix Clang 8 and GCC 9 warnings
 * Remove unneeded casts from EXT subgroup vote tests
 * Remove unary plus operator tests
 * Fix build for concurrent draw tests
 * Remove duplicate floating-point precision testing
 * Check consistency of GetPhysicalDeviceSparseImageFormatProperties
 * Fix denorm code for fp16-as-32 tests
 * Add flags to check whether tests are supported
 * Fix depth stencil multisample image usage validation error
 * Fix protected memory swapchain tests
 * Fix typo in precision tests
 * Fix wrong image usage flags in api feature info tests
 * Remove unessential non-ascii symbols from source
 * Remove duplicate code from vktRenderPassTests.cpp
 * Fix synchronization issues in descriptor_indexing tests
 * Fixes DeviceFeatures long execution time
 * Fix sample read tests to use sample rate shading
 * Pull in TOT Vulkan headers
 * Fix validation errors in YCbCr array layer tests
 * Fix validation errors in buffer_device_address tests
 * Make depth less predictable in renderpass tests
 * Remove subpass clear colors initialization
 * Simplify precisions in GLSL precision tests
 * Fix random number generation in GLSL precision tests
 * Fix image_extent test to handle OOM errors
 * Improve VK_KHR_swapchain coverage
 * Compile only necessary shaders in texture tests
 * Fix build for GCC/Clang
 * Fix vkGetPhysicalDevicePresentRectanglesKHR() call
 * Require independentBlend in write mask tests
 * Use square dimensions for CUBE_COMPATIBLE 2D images
 * Add barriers to read query data after copy
 * Use separate filtering precision for each channel
 * Remove frexp tests from the list of test issues
 * Check sampleRateShading on sample shading tests
 * Add feature checks to shader builtin tests
 * Add GeometryPointSize feature check
 * Make validation function more robust
 * Check for largePoints feature and add 1px test variant
 * Check queries unavailable with reset and copy
 * Fix spelling of "preserve" in float controls tests
 * Don't pass YcbcrConversion objects when not used
 * Vary vertex buffer stride in pipeline barrier tests
 * Change spir-v optimizer recipes
 * Fix API usage errors in subgroups.* tests
 * Add *_MAX_ENUM to enum definitions
 * Fix shader common function tests
 * Fix run command for Windows
 * Update generate scripts for python3
 * Make random number usage platform independent
 * Factor out copies of makeBufferCreateInfo
 * Simplify support checking and fix typos in messages
 * Merge common util functions, part 1
 * vulkancts/README: Recommend -msse2 -mfpmath=sse for 32-bit x86 builds
 * Reduce expected precision of RGB10A2 filtering
 * Add feature checks to spirv assembly tests
 * Add float 16 calculation into FMA tests
 * Create YCbCr with PREDEFINED layout
 * Add hasDisplay check after createWsiDisplay throws
 * Missing format checks for vertex attribute and color attachments in input_ouput tests
 * Fix malformed assets, use DE_FATAL
 * Add helper function for creating Amber test cases
 * Fix buffer RAW hazards in MultiQueue synchronization tests
 * vktAmberTestCase::parse second argument is a string
 * Fix damage binary length field in shadercacheSave
 * Remove conformance version test from Android
 * Fix Android WSI incremental present image tests
 * Exclude dEQP-VK.ssbo.layout.random.scalar.75
 * Add compatible memory type check for given handle
 * Fix image layouts in descriptor indexing tests
 * Fix command line parameters processing of TestLog
Fix command line parameters processing of TestLog

Change 7b7791a40f for issue 1666 has added functionality
to TestLog by adding extra parameters to the constructor.
The change, however, has patchied only one of the uses of the
class, breaking the other 3 uses of it. This has caused the
log flags to be wrong, and the new functionality introduced
by 7b7791a40f to not work, as expected.

This change fixes the rest of the locations and is adding one
more constructor for the TestLog class targeted for use by Android.

Components: Framework

VK-GL-CTS issue: 1887

Change-Id: I8d52d40ee5dffb120b8a4945b0f865c8f3e7b7dd
6 files changed
tree: f39c44f8a48bb92d36c16a460bd949f33420626d
  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/