Vulkan CTS 1.3.8.0

New Tests:
 * Add test cases for KHR_shader_expect_assume
 * Add tests for VK_KHR_shader_float_controls2
 * Test frag shader invocations with non-flat colors
 * Test fragmentShadingRateClampCombinerInputs
 * Add vkMergePipelineCaches tests
 * Add tests for VK_EXT_nested_command_buffer
 * Switch vertex input binding stride without binding new buffers
 * Add host image copy tests for identical memory layout
 * Test BLOCK_TEXEL_VIEW_COMPATIBLE_BIT for multiple layers
 * Add tests for VK_EXT_frame_boundary
 * Tests for null index buffer binding
 * Add *2 versions of descriptor binding commands
 * Add coverage of compute workgroup sizing
 * Add MSRTSS tests where input attachment is not rendered to
 * Add additional vksc descriptor pool tests
 * Test frag shader library with varying sample counts
 * VulkanSC Descriptor Set Binding Limit
 * Add texture gather offsets tests using implementation limits
 * Test many indirect draws and dispatches in sec. cmd. buffers
 * Add host image copy tests for R8_UNORM and R32G32_SFLOAT
 * Tests for VK_KHR_load_store_op_none
 * VK_KHR_maintenance6: Add coverage for per-bind errors
 * VK_KHR_maintenance6 coverage for maxCombinedImageSamplerDescriptorCount
 * Test compute invocation stats on compute queues
 * Add additional coverage for transfer-only copies and blits
 * Simplifying changes to spirv_assembly test structure
 * Remove many ESO and GPL variants without significant coverage loss
 * Change DestroyedSampler to be created for each test
 * Tests for depth stencil buffer resolve
 * Add coverage for gl_Layer read in frag shader with no previous write.
 * Add tests for VK_KHR_vertex_attribute_divisor
 * Remove exceptions from vkGetDeviceProcAddr test
 * Add host image copy tests with non zero bind image offset
 * Add tests to force draw support for all AHB formats
 * Add test coverage for VK_KHR_index_type_uint8
 * Tests for sparse resources on transfer queue
 * Render tests for VK_ANDROID_external_format_resolve
 * Test Z Export without MS info in frag shader library
 * Add invalidate after copy to wsi tests
 * Test null multisample state with alphaToOne disabled
 * Add tests for alpha to coverage along with depth+stencil writes.
 * Add coverage for fully dynamic blend state with 0 attachment count.
 * Add more XFB simple test variants using PointSize
 * Test feedback loop attachment followed by draw with 0 attachments
 * Test redundant binds with dynamic and static state
 * Add tests for verifying VK_FORMAT_UNDEFINED as input format.
 * Remove duplicate pipeline protected access tests
 * Add tests for inherithed framebuffers with VK_EXT_depth_bias_control.
 * Simplify construction of float controls tests
 * Remove redundant ESO and feedback loop layout tests
 * Perform compute-only tests
 * Add coverage for VK_KHR_line_rasterization
 * Add test for gl_PointSize clamping on max point size.
 * VK_KHR_cooperative_matrix - multicomponent
 * Add TESS/GEOM shaders in combination with the barycentric FS
 * More VK_EXT_host_image_copy tests with depth/stencil buffers
 * Add u/int to fp spirv conversion rounding tests
 * Simplify BorderSwizzle TestNode
 * Test support for VK_KHR_calibrated_timestamps
 * Test mismatch in pipeline and render info att. count
 * Improve and expand performance query tests
 * Exercise narrowing float conversions with RTE, RTZ
 * Add tests using intermediate stores in helper invocations
 * Test multiple geometry query stats simultaneously
 * Cover of instance and device extension duplicates tests.
 * Test high number of XFB outputs
 * Test GPL with XFB
 * Make extra padding draws in the indirect draws tests produce incorrect output.
 * Modify texture offset tests for smaller textures than offsets
 * Add descriptor buffer ycbcr sampler and mutable descriptor tests
 * Add new multi draw tests that do not depend on DrawIndex
 * Test static stencil write mask zero with discarded fragments
 * Ray Query stress tests cases: dEQP-VK.ray_query.stress.*
 * Ray Query multiple queries tests cases: dEQP-VK.ray_query.multiple_ray_queries.*
 * Test multiple entry points for the same shader
 * Add tests for unused push constants.
 * Add transform feedback with conditional rendering tests
 * Additional host image copy tests
 * Add tests using VkImageFormatListCreateInfo

Fixes:
 * Fix macOS build and add required extensions for dEQP-VK.api.object_management.single.device
 * Fix tess_eval shader in barycentric tests
 * Fix an issue with different NaN bit patterns
 * Add missing return in float_controls2 tests
 * Allow VK_KHR_load_store_op_none
 * Pass multisample state to fragment shader in fast-link barycentric tests
 * Fix pipeline create 2 flags in pipeline cache control test
 * Add portability extension for custom instance creation
 * Add required extension check to dEQP-VK.ycbcr.subresource_offset.*
 * Add required extension check for dEQP-VK.renderpass*.no_draws.*
 * Add setVisible for VulkanWindowDirectDrm
 * Fix offsets in float controls tests
 * Compare the results of the shader with an epsilon
 * Fix vertex attribute divisor EXT properties test
 * Correct pipeline stage flags in pipeline barriers
 * Reduced workload of ray query stress tests
 * Fix pipeline stage in timestamp tests with transfer only queue
 * Fix extension json for maintenance5
 * Fix support check for dynamic state tests
 * Do not rely on undefined behaviour in subgroup tests
 * Fix enabling features in extended dynamic state tests
 * Fix queries in rasterization discard tests
 * Fix several issues in dynamic rendering basic tests
 * Fix size of Hit SBT in ray tracing pipeline tests
 * Enable dynamic rendering in push descriptor with shader object tests
 * Add missing pipeline barriers in d/s buffer-to-image copies
 * Improve compile times of some generated glsl tests
 * Enable required features in nested_cmd_buffer tests
 * Check standard sample location support in varying sample count tests
 * Fix the feature check for dEQP-VK.robustness.buffer_access.through_pointers.*
 * Populate all members of StdVideoDecodeH265PictureInfoFlags
 * Fix image blit verification routine
 * Relax fragment shader invocations result verifications
 * VK.wsi.acquire_drm_display* should check whether VK_EXT_acquire_drm_display is supported
 * Fix pNext chain for device create info in api buffer tests
 * Exclude pipeline executable properties test for ESO
 * Fix identical_memory_layout host image copy tests
 * Descriptor_indexing tests: use nearest filtering
 * Fix usage flags in external memory maintenance5 test
 * Fix test failures on VK_ERROR_FORMAT_NOT_SUPPORTED cases.
 * Use consistent ray payload declarations
 * Re-bind state after executing secondary command buffers in dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.*
 * Add external_format_resolve to no_unknown_extensions
 * Remove data for tests that don't exist
 * Accept VK_SUBOPTIMAL_KHR as a valid result in incremental present tests
 * Use compute queue instead of transfer queue in compute queue support check
 * Filter-out extensions not supported for SC
 * Assert on null layout when linking graphics pipelines
 * Fix Uniform Storage capability checks in Spirv Assembly tests
 * Allow VK_KHR_vertex_attribute_divisor
 * Fix missing queue selection logic in several transfer_only tests
 * Fix switch vertex input binding stride without binding new buffers
 * Check for pipeline statistics query support
 * Fix ds formats in depth_stencil_resolve tests
 * Fix push constants in vertex attribute divisor tests
 * Move blockTexelViewCompatibleMultipleLayers to a property
 * Fix execinfo compilation against musl c library
 * Remove ESO tests which do not actually use ESO
 * Vulkan SC Query Pool Statistics Fixes
 * Filter out pipeline tests not supported for SC
 * Remove the custom device code in the copies and blitting tests
 * Remove many EDS stencil test combinations
 * Fix VulkanSC version check for promoted function pointers
 * Remove duplicate shader object protected image tests
 * Remove ESO variants of extended dynamic state null pointer tests
 * Disable KHR attrib_divisor tests for VulkanSC

Improvements:
 * Update Vulkan headers to public version 1.3.276
 * Reduce the amount of variations in VK_EXT_host_image_copy tests
 * Prepare the VKSC branch for cleanup/reformat
 * Test pipeline libraries do not use the creation render pass
 * Reduce copy-and-paste in localsize tests
 * Add device lost detection support and a --deqp-terminate-on-device-lost option.
 * Remove tcu::NodeType from vulkancts
 * Add verbose option for logging build information
 * Simplifications for float_controls tests
 * Update glslang version and enable c++17
 * Add --quiet option to suppress standard output messages
 * Fix threads library compilation against musl c library
 * Extend utilities for AHB
 * Check for entry points dependencies and validate all entry points from extensions
 * Remove unused code from integer function tests
 * Allow multiple recipies in the arguments of check_build_sanity.py
 * Update external dependencies to the latest version
 * Add VK_EXT_frame_boundary feature checks
 * Update zlib source path
 * Support dependencies with +, for extensions' <require> elements
 * Add verbose option to print more debug information in fetch_sources.py
 * Rename files/directories from master to main
 * Remove descriptions from all Vulkan test groups
 * Notice of withdrawal of Vulkan CTS 1.3.4.x
 * Update Angle excluded cases
 * Add pass/fail results for each session in cts-run-summary.xml
 * REMOVE excluded_deqp_cases.txt
 * Change zlib URL because the one from zlib.net requires a human-verification
Fix macOS build and add required extensions for dEQP-VK.api.object_management.single.device

Affects:
dEQP-VK.api.object_management.single.device

VK-GL-CTS issue: 4923
Components: Vulkan

Change-Id: Ia4c3034d5f320426ad5a6dccbcb50680e7c59c5c
5 files changed
tree: 0a9d0d3559cc62116eaf24bbaaa46bf769389360
  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. .gitattributes
  14. .gitignore
  15. AndroidGen.bp
  16. CMakeLists.txt
  17. CODE_OF_CONDUCT.md
  18. deqp_binary.lds
  19. LICENSE
  20. METADATA
  21. MODULE_LICENSE_APACHE2
  22. NOTICE
  23. OWNERS
  24. 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/