Vulkan CTS 1.3.10.0

New Tests:
 * Tests for VK_EXT_device_generated_commands
 * Tests for VK_KHR_compute_shader_derivatives
 * Add tests for VK_EXT_legacy_dithering revision 2
 * Tests for VK_EXT_legacy_vertex_attributes
 * SPV_EXT_replicated_composites
 * Added tests for VK_EXT_depth_clamp_control
 * Test preemption with VK_KHR_global_priority
 * Test new pipeline binary functionality
 * Capture replay tests for VK_EXT_descriptor_buffer
 * Run pipeline cache tests for pipeline binaries
 * Initial implementation Ray Tracing support in Amber
 * Add test cases for maxPushConstantsSize queried from device
 * Add coverage for waiting on multiple events
 * Add test cases for 256 bytes PushConstantsSize
 * Tests for dedicated device memory overallocation.
 * Test VIEW_INDEX_FROM_DEVICE_INDEX_BIT with GPL
 * Test DRLR remapping while using shader object
 * Expand dual_blend tests for secondary fragment outputs
 * Add pipeline binaries case for ray tracing
 * Add coverage for depth bound test without depth attachment
 * Removed ESO compute tests using Amber
 * Rename video decode tests to extract codec name as new group
 * hevc decode: add scaling list tests
 * Test image usage with format features
 * Enable tests for storage texel buffer atomic
 * Test feedback loop with dynamic rendering local read
 * Remove extended_usage_bit_compatibility with image_format_list tests
 * Test drawing with stencil test and without vkCmdSetFrontFace
 * Remove redundant pipelines from Image Atomic tests
 * Add tests for draw count clamping with null index buffer
 * Add option to enable/disable duplicate case name check
 * Add tests for subgroup uniform descriptor indexing
 * Add shader object tests using all stages with nextStage 0
 * Reuse scratch buffer creating acceleration structures back-to-back
 * Test line rasterization parameters do not affect non-lines
 * Two additional tests for local read
 * Add R8 and R16 large image tests in host image copy test group
 * MSAA Images in 64 bit Atomic + Shader Storage Images
 * Test binaryCount of 0 in VkPipelineBinaryInfoKHR structure
 * Run creation_feedback tests for pipeline binaries
 * Update to new VkPipelineBinaryKeyKHR definition
 * Avoid spamming logs on infra errors
 * Add more tests for fmin/fmax with +/-0
 * Add a test for modf with whole numbers < 0
 * Check if pipeline binary key count is greater than 0
 * Add coverage for multiple queue submits
 * Remove some of FDM + DRLR tests
 * Remove isSkippedPixel from derivative tests
 * Additional VIEW_INDEX_FROM_DEVICE_INDEX_BIT tests
 * Rename video encode tests to extract codec name as new group
 * Modify pipeline state tests to only set necessary states
 * Add tests vkCmdDrawIndexedIndirectCount draw count clamping
 * Test pipeline without render pass or VkPipelineRenderingCreateInfo
 * Suballocated DRM images
 * Support for raytracing pipeline libraries in Amber
 * Update Vulkan spec to 1.3.296

Fixes:
 * Fix pipeline binary graphics tests
 * Test local read without mapping
 * Fix errors in unavailable_entry_points test
 * Test binding VK_NULL_HANDLE to unsupported mesh shader stages
 * Fix setting scissor in shader object scissor tests
 * Check limits before running mapping_to_large_index DRLR test
 * Test mismatched dimensionality
 * Fix spirv error in fp16 tests
 * Allow starting helper invocations in maximal reconvergence tests
 * Test pipeline using compatible render pass without resolve attachment
 * Fix enabling sync2 in video synchronization tests
 * Fix transform feedback simple tests cleanup
 * Fix sync issues in copy and blit tests
 * Check fillModeNonSolid before using non-solid fill modes
 * Add missing dependencies for decode h265 + maintenance1 tests
 * Fix pNext chain loop in FSR tests
 * Fix mixed usage of custom creations and defaults from context
 * Fix size in vkGetDescriptorEXT in descriptor buffer tests
 * Don't access out-of-bounds per-vertex attributes
 * Add missing linked shader object test case
 * Fix missing memory barriers in a deqp-vk test.
 * Fix crash in local read max input attachments test
 * Build fixes for Visual Studio (2022)
 * Add void extent ASTC tests
 * Test setting pColorAttachmentInputIndices to NULL
 * video: remove obsolete define ES_STATIC_COMPILATION
 * Revert "Test mismatched dimensionality"
 * Fix multiple pipeline stat query tests
 * Add precise occlusion query feature check
 * Remove invalid dynamic rendering local read tests
 * Fix gen_framework.py warnings about invalid escape sequences
 * Use VK_NULL_HANDLE instead of DE_NULL for non-dispatch handles
 * Remove DE_NULL from generated files
 * s/DE_NULL/0 in makeStridedDeviceAddressRegionKHR
 * Fix 'unused shader' message
 * Fix waiver mechanism for Vulkan SC testing
 * Use VulkanSC Loader by default in deqp-vksc
 * Change virtual ... = DE_NULL; to virtual ... = 0;
 * Make VK_NULL_HANDLE strongly typed
 * Fix EXT-DGC conditional rendering preprocess tests
 * Fix custom device used in nonsequential tests
 * Enable vertexPipelineStoresAndAtomic in pipeline state tests
 * Add R64 data format qualifier check in robustness tests
 * Fix using wrong device in bind_buffers_2 tests
 * Fix enabling sync2 in video synchronization tests
 * Fix VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT tests
 * Fix pipeline_robustness out_of_bounds_stride test
 * Fix memory leak in pipeline logic op tests
 * Add feature checks to conditional rendering tests
 * Fixing the VkRayTracingShaderGroupTypeKHR in ray query tests
 * Fix NV-DGC conditional rendering preprocess tests

Improvements:
 * Add option to enable/disable spir-v validation
 * Allow running the CTS with unknown versions of Vulkan in the driver
 * Use proper Amber repo
 * Default --deqp-terminate-on-device-lost to enable
 * Support standalone executable builds on Android
 * Use VK_NULL_HANDLE instead of (VkSomething)0
 * Fix error in test logging in all CtsDeqpTestCases
 * Fix race condition in EGL multithreading tests
 * Allow fetch_sources.py to properly stop with Ctrl+C
 * Update KC CTS
 * Allow Vulkan CTS 1.3.10.0
 * Update external sources
 * Use latest egl.xml and regen files
 * Re-enable video tests on Android for CMake based builds
 * VK_DEFINE_PLATFORM_TYPE macro doesn't accept nullptr
 * Remove mandatory_features.txt
 * Set Amber back to google:main
 * Reformat JSON extension files automatically
 * Update SPIRV-Tools, SPIRV-Headers, glslang, Vulkan-Docs, Vulkan-ValidationLayers external sources
Fixing the VkRayTracingShaderGroupTypeKHR in ray query tests

VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR is needed instead of VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR when triangle geometry is used.

VK-GL-CTS issue: 5364

Affects:
dEQP-VK.ray_query.*

Components: Vulkan

Change-Id: Ibcd26c0eba16e62eb61684dad43c8e0adb7ae9e6
2 files changed
tree: e5851e139d0ed09fcdc9077d737654ede037653f
  1. .github/
  2. android/
  3. data/
  4. doc/
  5. execserver/
  6. executor/
  7. external/
  8. framework/
  9. modules/
  10. scripts/
  11. targets/
  12. .clang-format
  13. .editorconfig
  14. .gitattributes
  15. .gitignore
  16. AndroidGen.bp
  17. AndroidKhronosCTSGen.bp
  18. CMakeLists.txt
  19. CODE_OF_CONDUCT.md
  20. deqp_binary.lds
  21. format_all.sh
  22. LICENSE
  23. METADATA
  24. MODULE_LICENSE_APACHE2
  25. NOTICE
  26. OWNERS
  27. README.md
README.md

VK-GL-CTS README

This repository contains Khronos Conformance Testing Suite called VK-GL-CTS which originated from dEQP (drawElements Quality Program). VK-GL-CTS contains tests for several graphics APIs, including OpenGL, OpenGL ES, EGL, Vulkan, and Vulkan SC.

Documentation

Up-to-date documentation for VK-GL-CTS is available at:

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.

Selecting a subset of targets to build by default

When configuring the source code of VK-GL-CTS for running either Vulkan Conformance Tests or OpenGL(ES) Conformance Tests as described above, CMake will generate build files that, by default on desktop platforms, will build every possible project binary. This may be undesirable due the amount of time and disk space needed to perform the build.

One way of selecting only a subset of the targets to be built is using CMake's target selection mechanism. For example, the following command will only build deqp-vk, the main Vulkan Conformance Tests binary:

cmake --build BUILD_DIRECTORY --target deqp-vk

When building only a subset of targets is the preferred default behavior for a given working copy or build directory, there's a second target selection mechanism that can be used to avoid passing the --target option every time: the SELECTED_BUILD_TARGETS CMake option. If set to a non-empty value, only the targets listed in that configuration option, separated by spaces, will be built.

For example, passing -DSELECTED_BUILD_TARGETS="deqp-vk deqp-vksc" when configuring the project will make cmake --build BUILD_DIRECTORY act as if it had been passed --target deqp-vk --target deqp-vksc as additional arguments.

IMPORTANT: Target subset selection may not have been thoroughly tested in all enviroments and situations, and it does not replace the instructions given for the purposes of creating a conformance submission.

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*_angle.so .

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/build_apk.py --sdk <path to Android SDK> --ndk <path to Android NDK> --abis arm64-v8a --angle-path ~/chromium/src/out/Release/