Vulkan CTS

New tests:
 * Tests for VK_KHR_depth_stencil_resolve
 * Tests for VK_EXT_conditional_rendering
 * Tests for VK_EXT_vertex_attribute_divisor
 * Tests for different data types for workgroup memory
 * Tests to intentionally mismatch opImageType
 * Tests using VkRunner, precompiling the scripts
 * Add subpass external dependency to pushDescriptor tests
 * Add tests for varying naming
 * Added tests for OpCompositeInsert
 * Enable remaining OpFUnord tests
 * Add test veryifying if proper 'count' is written in wsi getters
 * Add barrier at start of each CB to order wrt previous CBs
 * Enable previously excluded acos test
 * Add tests for derivatives in dynamic but quad-uniform control flow
 * Add tests for booleans produced from different bit-sizes
 * Add tests for late fragment test dependencies
 * Extend push desriptors test to 128 compute dispatches
 * Extend transcoding tests to 1D/3D images
 * Test 2D texture swizzles with VkComponentMappings
 * Test depth/stencil resolve attachments
 * Added tests for out-of-order attribute locations
 * test layered resolves with a single region convering all layers.
 * Test storing protected data in workgroup memory
 * Added tests for non-linear attribute locations
 * Add corner case values for float32 to int16 conversion tests.
 * Add tests for subpass dependencies
 * Test clip/cull distance reading in fragment shader
 * New tests for descriptor dynamic offset
 * Add dependency checking to*.extensions
 * Added several abuses of OpName and OpMemberName
 * dEQP-VK: Add tests for blitting to/from linear images
 * Test OpPtrAccessChain with base alignment of < 16
 * Test render pass attachments not referenced by subpasses
 * Test cube image blits with VK_IMAGE_CREATE_CUBE_COMPATIBLE flag.
 * Simultaneous depth+stencil components blit test
 * Ensure there's no KHX extensions
 * Added test set for unnormalized coord samplers
 * Add secondary command buffers to pipeline barrier tests
 * Create Compute test for OpCompositeExtract
 * New test for copying 16bit input to two outputs.
 * Test push descriptors

 * Fixes multiview query tests
 * Fix dependency on unspecified rounding mode
 * Correct support conditions for float16s
 * Clear Core Validation Errors for Protected Memory
 * Fix dup tests to not free in-use semaphores/fences
 * Fix 0b prefix in conditional rendering tests
 * Fix image aspects in multiview tests
 * Fix memory requirements for draw_clear tests
 * Fix further aspect masks in renderpass2 tests
 * Simplify YCbCr result verification
 * Fix initial YCbCr image layout
 * Fix validation of occlusion query tests
 * Fix more memory flush/invalidation cases
 * Validation fixes for device_init tests
 * Be more careful about Block decorations on structs
 * Remove duplicate tests under dEQP-VK.renderpass*
 * Fix API usage errors in fragment operation tests
 * Fixed incorrect load/store ops for depth in multiview test
 * Reduce devices created in device_group tests
 * Remove duplicate identical make*MemoryBarrier
 * Allow SRGB conversion for store tests to generate reference image.
 * Fix subgroup shuffle tests to do testing
 * Remove duplication from subgroup shuffle tests
 * Set the correct "unused" attachment initialLayout
 * Validation: Use correct aspects in renderpass2
 * Fix leak in shaderCacheLoad()
 * Correct image mutable tests on null driver
 * Remove duplicate float16Int8Features
 * Remove StorageUniform16 from SPIR-V conversion tests
 * Fix anonymous namespace in UBO matrix padding test
 * Properly align and pad vec16x2 values in UBO array
 * Require VK_KHR_shader_float16_int8 in float16 opconstant tests
 * Fixes for Protected Memory
 * Further validation fixes for renderpass tests
 * Fix invalid color values in image.mutable tests
 * Use the correct type for image creation flags
 * Fixes AHB image tests feature check
 * Added framework function for image to buffer copy
 * Correct invalidate->flush after writing to host-mapped memory
 * Specify PointSize when drawing point lists
 * Utilize copyBufferToImage framework function where possible
 * Fixed unused attachment tests to properly use renderpass2
 * SubgroupBallot: Don't test 0 <= id
 * Rationalise the 'check*' functions in subgroups
 * Remove one copy of the clustered test sources
 * Further validation fixes for renderpass tests
 * Use GENERAL image layout for images used as STORAGE image
 * Properly align and pad vec16x2 values in UBO array
 * Fix for unnormalized coordinate test using mipmaps
 * Fix API usage errors in dEQP-VK.geometry.basic.*
 * Fix swapchain creation in dEQP-VK.wsi.*.swapchain.*
 * Require VK_KHR_shader_float16_int8 in float16 opconstant tests
 * Import dedicated allocs w/ importDedicatedMemory
 * Properly analyze edge0>=edge1 cases in smoothstep
 * Remove NaN from OpFOrd* and OpFUnord* tests
 * Validation fixes for device group tests
 * Fix validation in dynamic offset tests
 * Mark storage buffer as readonly
 * Fix validation in renderpass tests
 * Fix precision mismatches in GLSL tests
 * Place OpVariable at the beginning of the block
 * Fix barrier range in UpdateBuffer tests
 * Fix validation in memory tests
 * Fix memory flush alignments in binding model tests
 * Fix validation in command buffer tests
 * Fix validation in memory binding tests
 * Fix queue validation in synchronization tests
 * Fix non-valid barriers in dEQP-VK.tessellation.*
 * Check sparse support in memory requirements tests
 * Don't pass tess and geom flags when not needed
 * Fix testing of various device limits
 * Fix api.smoke.* tests for validation
 * Fix unused function warnings in the CTS code
 * Add missing invalidates in renderpass tests
 * Fix synchronisation in ycbcr tests
 * Use a valid final layout in renderpass tests
 * Fix valid usage for SampleLocations extension
 * Fix some pipeline and memory barriers
 * Fix DeviceFeatures infinite loop in pNext chain
 * Fix array stride in uniform buffer for VK_KHR_16bit_storage
 * Drop superfluous Clip/CullDistance capabilities
 * Remove invalid execution mode in smoke test
 * Fix array stride in uniform buffer for VK_KHR_16bit_storage
 * Fix asserts in image.mutable tests
 * Remove over-zealous sanity check for memory types
 * dEQP-VK: Stop requiring the destination format to support linear sampling for blit tests
 * Fix copy/paste errors in opundef assembly tests
 * Fixes geometry shader invocation dependency
 * Fix malformed assets, use DE_FATAL
 * Add Flat decorations to integer fragment shader inputs
 * Fix result checking in multisample resolve tests
 * Fix asserts and check for base image format support in image.mutable tests
 * Fix NaN handling in funord tests
 * Fix validation failure in float_controls
 * Fixes ycbcr image properties requirement
 * Fix image type in Uniform texel buffer tests
 * Protected Memory Fixes - Barrier Layouts & Flags
 * Update VK_KHR_vulkan_memory_model to spec version 3
 * Fixes depth load_op in multiview tests
 * Truncate random coordinates in late fragment tests
 * Touch watchdog more often for precision tests.
 * Added PointSize in shader used for drawing points
 * Add AHB to Android allowed extensions list
 * Fix logging of 8-bit integer values
 * Fix incorrect use of copyImageToBuffer in TextureRenderer::renderQuad()
 * Allow coarse derivatives to be calced by fine func
 * Added missing writes to gl_Position in vertex shaders
 * Depth attachment not stored in late_fragment_tests

 * Compile shaders for 1.0-compatible tests as SPIRV 1.0, not max supported
 * Handle gcc 7 warnings
 * Build prebuilts for HLSL shaders
 * Remove one method of specifying features in vktSpvAsm
 * Cause vkrunner tests to fail if scripts not found
 * Allow a tolerance for results of sqrt
 * Add framework function createInstanceWithExtensions
 * Add support for RenderDoc in Vulkan tests
 * Added script for generation
 * Use precompiled headers on MSVC
 * Remove test lib dependencies on deqp-vk-package.
 * Add a flushAlloc helper to fix valid usage
 * Add SPIR-V optimization options to vk-build-programs
 * Improve wsi.incremental_present.* for low memory
Added missing writes to gl_Position in vertex shaders

Some vertex shaders are not writing a value to gl_Position, which can cause
unintended run-time behavior (including termination or system instability).

Components: Vulkan
VK-GL-CTS issue: 1579


Change-Id: I3f2f21f23508bda3062a4480e9fac78748bab32b
2 files changed
tree: 4558446c803f6f6f35271824d2aa145669e38b9a
  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/