OpenGL CTS 4.6.4.0

New Tests:
 * Implement Sync Tests between CPU and GPU
 * Consider GL_QCOM_render_sRGB_R8_RG8 in FBO completeness
 * Add tests for EXT_gl_colorspace_bt2020
 * Add tests for recently added HLG format
 * Add EGL_ANDROID_RECORDABLE to config testing
 * Support FP16 CPU Rendering for GLES2

Fixes:
 * Fix error handling in negative shader API tests for SPIRV
 * Fix incorrect query result of array size
 * Avoid ambiguous roundings in ModifyRenderbufferClearColor
 * Fix atomic swapcomp return value tests
 * Remove Context ES 3.1 requirement for GL_EXT_render_snorm
 * Remove deFloatCmp functions
 * Tweak grid size in vertex shader render test
 * surfaceless: Fix shared contexts and implement makeCurrent
 * Skip AHB formats on GLES2 compressed_texture tests
 * Fix problems when buffer_storage not supported
 * Test alpha-less 10bit formats correctly in wide_color tests
 * Add extra warm up render loop to allow performance to stabilize
 * Fix division by 0 in framebuffer fetch tests
 * Fix texture setup in subgroupmemorybarrierimage tests
 * Don't attempt to test linear-filtered depth border clamping on ES.
 * TransformFeedback API errors in compatibility profiles
 * es31cDrawIndirectTests: handle the RGB10 case
 * Fix nearest_edge cases for RGB10 surfaces
 * fix GL shader ballot test image type
 * Fix integer overflow in GLES2 tests' seed computation
 * Fix for texture_border_clamp to check if texture format is filterable
 * Check geometry shaders are supported
 * Add highp precision for int type in KHR-GLES3.number_parsing* tests
 * Detect fallback texture failures in GL linear border_color tests
 * Check texture cube maps arrays are supported
 * Fix of egl surface creating failure in RenderCase
 * Avoid type overflow in glGetInteger64v/glGetFloatv for compute checks
 * Do not use GLSL ES extensions in GLSL in subgroup tessellation tests.
 * Fix missing memory barrier with GL4 shader image
 * Fix valid ReadPixel format and type for signed normalized surface
 * Fix EGL config selection in wide_color tests
 * Fix a couple egl failures for R10G10B10A2 format.
 * Don't test ASTC textures in GL45 context
 * Fix BufferView access tests for scaled types
 * removed GLES31.functional.stencil_texturing.misc.c
ompare_mode_effect due to spec collision
 * Fix framebuffer incomplete in multisample
 * Check for GL_OES_texture_float_linear in texture border clamp tests
 * Fix EGL render tests for rgb10a2 and rgb10a0
 * State leak in NegativeShaderApiTests
 * Add clamp in texture shadow tests
 * Synchronization issue related to image_load_store.buffer.atomic.comp_swap_
 * gl cts: fix state_query.* tests
 * Fix calculation of subgroup mask when subgroup size is 128
 * Log the image in GL texture border tests
 * Ensure GL functions are initialized before choosing EGL configuration
 * Fix arrays_of_arrays tests not freeing and hitting assert
 * EGL: Add missing EGL_EXT_create_context_robustness extension check in dEQP-EGL.functional.create_context_ext.robust_gl_*

Improvements:
 * Fix for deqp-runmode=stdout-caselist
 * Prepare for cleanup/reformat
 * Add option to skip build post checks
 * Update Angle excluded cases
 * Add verbose option to print more debug information in fetch_sources.py
 * Fix unistd.h compilation error under Windows
 * Fix some of the warnings on windows
 * Build fix for MSVC C++
 * Updating the Android Test Runner
 * Update zlib source path
 * Update METADATA and OWNERS
 * Advance glslang to fix link error for ndk26
 * Fix CMakeLists for shader executor
 * Fix check_build_sanity.py error
 * Updating Test lists to match Google's records
 * Update external dependencies to the latest version
Generate vkKnownConformanceVersions.inl for Vulkan and Vulkan SC as two different files

Change-Id: Ic1b2fc4a190ff12cb851cb899182182311254b05
5 files changed
tree: cb8ac8ad76829ac20f452b639734317ffb66ba8e
  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/