1e5c31af7Sopenharmony_ciOpenGL and OpenGL ES 2.0/3.X Conformance Test Instructions 2e5c31af7Sopenharmony_ci================= 3e5c31af7Sopenharmony_ci 4e5c31af7Sopenharmony_ciThis document describes how to build, port, and run the OpenGL and OpenGL ES 5e5c31af7Sopenharmony_ci2.0/3.X conformance tests, and how to verify and submit test results. 6e5c31af7Sopenharmony_ci 7e5c31af7Sopenharmony_ciThe Conformance Tests are built on the dEQP framework. 8e5c31af7Sopenharmony_ciUp-to-date documentation for dEQP is available at: 9e5c31af7Sopenharmony_ci 10e5c31af7Sopenharmony_ci* [The VK-GL-CTS wiki for Khronos members](https://gitlab.khronos.org/Tracker/vk-gl-cts/wikis/home) 11e5c31af7Sopenharmony_ci* [The VK-GL-CTS wiki for non-Khronos members](https://github.com/KhronosGroup/VK-GL-CTS/wiki) 12e5c31af7Sopenharmony_ci 13e5c31af7Sopenharmony_ci 14e5c31af7Sopenharmony_ciContents 15e5c31af7Sopenharmony_ci------------------------ 16e5c31af7Sopenharmony_ci- [OpenGL and OpenGL ES 2.0/3.X Conformance Test Instructions](#opengl-and-opengl-es-203x-conformance-test-instructions) 17e5c31af7Sopenharmony_ci - [Contents](#contents) 18e5c31af7Sopenharmony_ci - [Test History](#test-history) 19e5c31af7Sopenharmony_ci - [Introduction](#introduction) 20e5c31af7Sopenharmony_ci - [Test Environment Requirements](#test-environment-requirements) 21e5c31af7Sopenharmony_ci - [Configuring and Building the Tests](#configuring-and-building-the-tests) 22e5c31af7Sopenharmony_ci - [Configuration](#configuration) 23e5c31af7Sopenharmony_ci - [Building the Tests](#building-the-tests) 24e5c31af7Sopenharmony_ci - [Windows](#windows) 25e5c31af7Sopenharmony_ci - [Linux](#linux) 26e5c31af7Sopenharmony_ci - [Android](#android) 27e5c31af7Sopenharmony_ci - [Porting](#porting) 28e5c31af7Sopenharmony_ci - [Common Porting Changes](#common-porting-changes) 29e5c31af7Sopenharmony_ci - [Other Allowable Changes](#other-allowable-changes) 30e5c31af7Sopenharmony_ci - [Running the Tests](#running-the-tests) 31e5c31af7Sopenharmony_ci - [Conformance runs](#conformance-runs) 32e5c31af7Sopenharmony_ci - [Linux and Windows](#linux-and-windows) 33e5c31af7Sopenharmony_ci - [Android](#android-1) 34e5c31af7Sopenharmony_ci - [Running Subsets](#running-subsets) 35e5c31af7Sopenharmony_ci - [Command line options](#command-line-options) 36e5c31af7Sopenharmony_ci - [Understanding the Results](#understanding-the-results) 37e5c31af7Sopenharmony_ci - [Test Logs](#test-logs) 38e5c31af7Sopenharmony_ci - [Debugging Test Failures](#debugging-test-failures) 39e5c31af7Sopenharmony_ci - [Waivers](#waivers) 40e5c31af7Sopenharmony_ci - [Creating a Submission Package](#creating-a-submission-package) 41e5c31af7Sopenharmony_ci - [Submission Update Package](#submission-update-package) 42e5c31af7Sopenharmony_ci - [Passing Criteria](#passing-criteria) 43e5c31af7Sopenharmony_ci - [Troubleshooting](#troubleshooting) 44e5c31af7Sopenharmony_ci - [Crashes early on in the run](#crashes-early-on-in-the-run) 45e5c31af7Sopenharmony_ci - [Build fails](#build-fails) 46e5c31af7Sopenharmony_ci - [Adding new tests](#adding-new-tests) 47e5c31af7Sopenharmony_ci - [Acknowledgments](#acknowledgments) 48e5c31af7Sopenharmony_ci - [Revision History](#revision-history) 49e5c31af7Sopenharmony_ci 50e5c31af7Sopenharmony_ciTest History 51e5c31af7Sopenharmony_ci------------------------ 52e5c31af7Sopenharmony_ciThe OpenGL and OpenGL ES Conformance Tests are expanded versions of the 53e5c31af7Sopenharmony_ciOpenGL ES 2.x Conformance Test. Much of the development was done by Symbio, Inc. 54e5c31af7Sopenharmony_ciunder a contract with The Khronos Group. drawElements donated a considerable 55e5c31af7Sopenharmony_cinumber of new tests and a new execution framework for version 1.1. 56e5c31af7Sopenharmony_ciThe tests are built from the same source code base, although some individual 57e5c31af7Sopenharmony_cifeature tests are specific to OpenGL or OpenGL ES and their specification 58e5c31af7Sopenharmony_civersions, and compilation options differing between OpenGL and OpenGL ES affect 59e5c31af7Sopenharmony_cihow the tests are compiled and executed in some cases. 60e5c31af7Sopenharmony_ci 61e5c31af7Sopenharmony_ciIntroduction 62e5c31af7Sopenharmony_ci------------------------ 63e5c31af7Sopenharmony_ci 64e5c31af7Sopenharmony_ciThis document contains instructions for certifying conformance of implementations 65e5c31af7Sopenharmony_ciof the OpenGL and OpenGL ES APIs. The steps of the process are as follows: 66e5c31af7Sopenharmony_ci 67e5c31af7Sopenharmony_ci1. Configure the conformance tests and port them to your platform. 68e5c31af7Sopenharmony_ci2. Build a test executable and run it against your implementation to produce 69e5c31af7Sopenharmony_ciresult logs. 70e5c31af7Sopenharmony_ci3. Debug any test failures and modify your implementation as needed until it 71e5c31af7Sopenharmony_cipasses the test. 72e5c31af7Sopenharmony_ci4. Create a Submission Package containing your final result logs and other 73e5c31af7Sopenharmony_cidocuments describing the tested platform. 74e5c31af7Sopenharmony_ci5. Submit the results to the appropriate Review Committee via the 75e5c31af7Sopenharmony_ciKhronos Adopters web page. The Committee will examine your submission and will 76e5c31af7Sopenharmony_cinotify you within thirty days if they find any issues requiring action on your part. 77e5c31af7Sopenharmony_ci 78e5c31af7Sopenharmony_ciThis document describes each of these steps in detail. It also provides advice 79e5c31af7Sopenharmony_cion reproducing, understanding, and debugging test failures, and discusses how 80e5c31af7Sopenharmony_cito extend or modify the tests and the test framework. 81e5c31af7Sopenharmony_ci 82e5c31af7Sopenharmony_ciThe reader is assumed to be a fluent programmer experienced with command line 83e5c31af7Sopenharmony_ciutilities and build tools, such as CMake or Make. 84e5c31af7Sopenharmony_ci 85e5c31af7Sopenharmony_ciTest Environment Requirements 86e5c31af7Sopenharmony_ci------------------------ 87e5c31af7Sopenharmony_ci 88e5c31af7Sopenharmony_ciThe conformance tests require a file system. The file system requires support 89e5c31af7Sopenharmony_cifor long file names (i.e. > 8.3 name format). Source files in the conformance 90e5c31af7Sopenharmony_citests use mixed case file names. When the `--verbose` option is used, rendered 91e5c31af7Sopenharmony_ciimages and test case shaders are copied to the log files. This can lead to quite 92e5c31af7Sopenharmony_cilarge log files, up to hundreds of megabytes on disk. 93e5c31af7Sopenharmony_ci 94e5c31af7Sopenharmony_ciEach execution of the conformance test writes a text-format results log to a disk. 95e5c31af7Sopenharmony_ciYou will need to include this log as part of your conformance submission package. 96e5c31af7Sopenharmony_ci 97e5c31af7Sopenharmony_ciThe conformance test executable can be large. Compiler options and CPU instruction 98e5c31af7Sopenharmony_cisets can cause substantial variation. The disk space required for the build 99e5c31af7Sopenharmony_ciincluding all the temporary files can be up to 400MB. 100e5c31af7Sopenharmony_ci 101e5c31af7Sopenharmony_ciThe build environment is expected to support C++ with exceptions and 102e5c31af7Sopenharmony_cithe Standard Template Library (STL). 103e5c31af7Sopenharmony_ci 104e5c31af7Sopenharmony_ciConfiguring and Building the Tests 105e5c31af7Sopenharmony_ci------------------------ 106e5c31af7Sopenharmony_ciThe CTS is built via CMake build system. The requirements for the build are as follows: 107e5c31af7Sopenharmony_ci- CMake 3.20.0 or newer 108e5c31af7Sopenharmony_ci- C++ compiler with STL and exceptions support 109e5c31af7Sopenharmony_ci- Unix: Make + GCC / Clang 110e5c31af7Sopenharmony_ci- Windows: Visual Studio or Windows SDK (available free-of-charge) 111e5c31af7Sopenharmony_ci- Android: Android SDK and NDK for host platform 112e5c31af7Sopenharmony_ci 113e5c31af7Sopenharmony_ciThe build is controlled by the file CMakeLists.txt found at the root of 114e5c31af7Sopenharmony_cithe CTS source. 115e5c31af7Sopenharmony_ci 116e5c31af7Sopenharmony_ciIf the platform and compiler tools you use are not supported, you may be able to 117e5c31af7Sopenharmony_ciadd support for that platform and tools to the build system. If you do this, 118e5c31af7Sopenharmony_ciplease submit your changes back to Khronos for inclusion in the official tests 119e5c31af7Sopenharmony_cigoing forward. 120e5c31af7Sopenharmony_ci 121e5c31af7Sopenharmony_ciOtherwise, if you choose not to use the supplied Makefiles, you must construct 122e5c31af7Sopenharmony_cian equivalent build system for the chosen development environment(s). 123e5c31af7Sopenharmony_ci 124e5c31af7Sopenharmony_ci### Configuration 125e5c31af7Sopenharmony_ci 126e5c31af7Sopenharmony_ciThe build is configured by using `CMakeLists.txt` files in the build target 127e5c31af7Sopenharmony_cidirectory (`targets/`). They specify platform-specific configuration, including 128e5c31af7Sopenharmony_ciinclude paths and link libraries. 129e5c31af7Sopenharmony_ci 130e5c31af7Sopenharmony_ciThe main `CMakeLists.txt` includes the target file based on the `DEQP_TARGET` 131e5c31af7Sopenharmony_civariable. For example `-DDEQP_TARGET=my_target` will use the target description 132e5c31af7Sopenharmony_cifile `targets/my_target/my_target.cmake`. 133e5c31af7Sopenharmony_ci 134e5c31af7Sopenharmony_ciSee the main `CMakeLists.txt` file for the description of the variables that 135e5c31af7Sopenharmony_cithe target file can set. 136e5c31af7Sopenharmony_ci 137e5c31af7Sopenharmony_ciPorting to a new platform includes either creating a new target file, or 138e5c31af7Sopenharmony_cimodifying an existing target description. 139e5c31af7Sopenharmony_ci 140e5c31af7Sopenharmony_ci**NOTE**: All paths, except `TCUTIL_PLATFORM_SRCS` are relative to root source 141e5c31af7Sopenharmony_cidirectory. `TCUTIL_PLATFORM_SRCS` is relative to `framework/platform` directory. 142e5c31af7Sopenharmony_ci 143e5c31af7Sopenharmony_ciFollowing target files are provided with the package: 144e5c31af7Sopenharmony_ci 145e5c31af7Sopenharmony_ci| Name | Description | 146e5c31af7Sopenharmony_ci|:---------|-----------------| 147e5c31af7Sopenharmony_ci|android | Used in Android build. Requires use of suitable toolchain file (see `cmake/` directory) | 148e5c31af7Sopenharmony_ci|default| Checks for presence of GL, ES2, ES3, and EGL libraries and headers in default search paths and configures build accordingly| 149e5c31af7Sopenharmony_ci|null | Null build target | 150e5c31af7Sopenharmony_ci|nullws | NullWS build target | 151e5c31af7Sopenharmony_ci|x11_egl| X11 build for platforms with native EGL support| 152e5c31af7Sopenharmony_ci|x11_glx| X11 build for platforms with native GLX support| 153e5c31af7Sopenharmony_ci|x11_egl_glx| X11 build for platforms with native EGL/GLX support| 154e5c31af7Sopenharmony_ci 155e5c31af7Sopenharmony_ci**Example target file (targets/null/null.cmake):** 156e5c31af7Sopenharmony_ci``` 157e5c31af7Sopenharmony_cimessage("*** Using null context target") 158e5c31af7Sopenharmony_ci 159e5c31af7Sopenharmony_ciset(DEQP_TARGET_NAME "Null") 160e5c31af7Sopenharmony_ci 161e5c31af7Sopenharmony_ciset(TCUTIL_PLATFORM_SRCS 162e5c31af7Sopenharmony_ci null/tcuNullPlatform.cpp 163e5c31af7Sopenharmony_ci null/tcuNullPlatform.hpp 164e5c31af7Sopenharmony_ci null/tcuNullRenderContext.cpp 165e5c31af7Sopenharmony_ci null/tcuNullRenderContext.hpp 166e5c31af7Sopenharmony_ci null/tcuNullContextFactory.cpp 167e5c31af7Sopenharmony_ci null/tcuNullContextFactory.hpp 168e5c31af7Sopenharmony_ci ) 169e5c31af7Sopenharmony_ci``` 170e5c31af7Sopenharmony_ci 171e5c31af7Sopenharmony_ci**Common configuration variables and their default values in CMake syntax:** 172e5c31af7Sopenharmony_ci 173e5c31af7Sopenharmony_ci- Target name 174e5c31af7Sopenharmony_ci``` 175e5c31af7Sopenharmony_ciset(DEQP_TARGET_NAME "UNKNOWN") 176e5c31af7Sopenharmony_ci``` 177e5c31af7Sopenharmony_ci 178e5c31af7Sopenharmony_ci- List of link libraries per API. If no libraries are specified, entry points 179e5c31af7Sopenharmony_ciare loaded at run-time by default for OpenGL ES APIs. EGL always requires link 180e5c31af7Sopenharmony_cilibraries. OpenGL always uses run-time loading. 181e5c31af7Sopenharmony_ci``` 182e5c31af7Sopenharmony_ciset(DEQP_GLES2_LIBRARIES ) 183e5c31af7Sopenharmony_ciset(DEQP_GLES3_LIBRARIES ) 184e5c31af7Sopenharmony_ciset(DEQP_GLES31_LIBRARIES ) 185e5c31af7Sopenharmony_ciset(DEQP_GLES32_LIBRARIES ) 186e5c31af7Sopenharmony_ciset(DEQP_EGL_LIBRARIES ) 187e5c31af7Sopenharmony_ciset(DEQP_OPENGL_LIBRARIES ) 188e5c31af7Sopenharmony_ci``` 189e5c31af7Sopenharmony_ci 190e5c31af7Sopenharmony_ci- Generic platform libraries required to link a working OpenGL (ES) Application 191e5c31af7Sopenharmony_ci(e.g. X11 libraries on Unix/X11) 192e5c31af7Sopenharmony_ci``` 193e5c31af7Sopenharmony_ciset(DEQP_PLATFORM_LIBRARIES ) 194e5c31af7Sopenharmony_ci``` 195e5c31af7Sopenharmony_ci 196e5c31af7Sopenharmony_ci- Libraries / binaries that need to be copied to the build target dir 197e5c31af7Sopenharmony_ci``` 198e5c31af7Sopenharmony_ciset(DEQP_PLATFORM_COPY_LIBRARIES ) 199e5c31af7Sopenharmony_ci``` 200e5c31af7Sopenharmony_ci 201e5c31af7Sopenharmony_ci- If running on Linux using X11 for creating windows etc., enable this. 202e5c31af7Sopenharmony_ci``` 203e5c31af7Sopenharmony_ciset(DEQP_USE_X11 OFF) 204e5c31af7Sopenharmony_ci``` 205e5c31af7Sopenharmony_ci 206e5c31af7Sopenharmony_ci- Embed the test files in the test Before building with this set (if GTF module is present), run these commands: 207e5c31af7Sopenharmony_ci``` 208e5c31af7Sopenharmony_cicd external/kc-cts/src/GTF_ES/glsl/GTF 209e5c31af7Sopenharmony_ciperl mergeTestFilesToCSource.pl 210e5c31af7Sopenharmony_ci``` 211e5c31af7Sopenharmony_ci 212e5c31af7Sopenharmony_ci In your target `.cmake` file add 213e5c31af7Sopenharmony_ci``` 214e5c31af7Sopenharmony_ciset(DEQP_EMBED_TESTS ON) 215e5c31af7Sopenharmony_ciadd_definitions(-DHKEMBEDDEDFILESYSTEM) 216e5c31af7Sopenharmony_ci``` 217e5c31af7Sopenharmony_ci 218e5c31af7Sopenharmony_ci### Building the Tests 219e5c31af7Sopenharmony_ci 220e5c31af7Sopenharmony_ciTo build the framework, you need first to download sources for zlib, libpng, glslang, 221e5c31af7Sopenharmony_cispirv-headers, and spirv-tools. 222e5c31af7Sopenharmony_ci 223e5c31af7Sopenharmony_ciTo download sources, run: 224e5c31af7Sopenharmony_ci 225e5c31af7Sopenharmony_ci python external/fetch_sources.py 226e5c31af7Sopenharmony_ci 227e5c31af7Sopenharmony_ciFor OpenGL CTS releases, and OpenGL ES CTS releases prior to opengl-es-cts-3.2.4.0 228e5c31af7Sopenharmony_cidownload Khronos Confidential Conformance Test Suite: 229e5c31af7Sopenharmony_ci 230e5c31af7Sopenharmony_ci python external/fetch_kc_cts.py 231e5c31af7Sopenharmony_ci 232e5c31af7Sopenharmony_ciFor OpenGL CTS releases, and OpenGL ES CTS releases prior to opengl-es-cts-3.2.4.0 233e5c31af7Sopenharmony_cithe results for the tests included in this suite must be included in a 234e5c31af7Sopenharmony_ciconformance submission. 235e5c31af7Sopenharmony_ci 236e5c31af7Sopenharmony_ci**NOTE**: You need to be a Khronos Adopter and have an active account 237e5c31af7Sopenharmony_ciat [Khronos Gitlab](https://gitlab.khronos.org/) to be able to download 238e5c31af7Sopenharmony_ciKhronos Confidential CTS. 239e5c31af7Sopenharmony_ciIt is possible to run and build the CTS without the Khronos Confidential CTS. 240e5c31af7Sopenharmony_ciFor OpenGL CTS releases, and OpenGL ES CTS releases prior to opengl-es-cts-3.2.4.0 241e5c31af7Sopenharmony_ciKhronos Confidential CTS is mandatory if you plan to make a 242e5c31af7Sopenharmony_ciconformance submission (see [Creating a Submission Package](#creating-a-submission-package)). 243e5c31af7Sopenharmony_ciFor opengl-es-cts-3.2.4.0 and later OpenGL ES CTS releases Khronos Confidential CTS 244e5c31af7Sopenharmony_ciresults must not be included in a submission package. 245e5c31af7Sopenharmony_ci 246e5c31af7Sopenharmony_ci 247e5c31af7Sopenharmony_ciWith CMake out-of-source builds are always recommended. Create a build directory 248e5c31af7Sopenharmony_ciof your choosing, and in that directory generate Makefiles or IDE project 249e5c31af7Sopenharmony_ciusing Cmake. 250e5c31af7Sopenharmony_ci 251e5c31af7Sopenharmony_ci#### Windows 252e5c31af7Sopenharmony_ci 253e5c31af7Sopenharmony_ciRequirements: 254e5c31af7Sopenharmony_ci- Visual Studio (2015 or newer recommended) or Windows SDK 255e5c31af7Sopenharmony_ci- For GL/ES2/ES3.x tests: OpengGL, OpenGL ES 2 or ES 3.x libraries and headers 256e5c31af7Sopenharmony_ci 257e5c31af7Sopenharmony_ciTo choose the backend build system for CMake, choose one of the following Generator Names for the 258e5c31af7Sopenharmony_cicommand line examples in the next steps: 259e5c31af7Sopenharmony_ci- VS2015: "Visual Studio 14" 260e5c31af7Sopenharmony_ci- NMake (must be run in VS or SDK command prompt): "NMake Makefiles" 261e5c31af7Sopenharmony_ci 262e5c31af7Sopenharmony_ciBuilding GL, ES2, or ES3.x conformance tests: 263e5c31af7Sopenharmony_ci 264e5c31af7Sopenharmony_ci cmake <path to VK-GL-CTS> -DDEQP_TARGET=default -G"<Generator Name>" 265e5c31af7Sopenharmony_ci cmake --build external/openglcts 266e5c31af7Sopenharmony_ci 267e5c31af7Sopenharmony_ciKhronos Confidential CTS doesn't support run-time selection of API context. 268e5c31af7Sopenharmony_ciIf you intend to run it you need to additionally supply `GLCTS_GTF_TARGET` 269e5c31af7Sopenharmony_cioption to you cmake command, e.g.: 270e5c31af7Sopenharmony_ci 271e5c31af7Sopenharmony_ci cmake <path to VK-GL-CTS> -DDEQP_TARGET=default -DGLCTS_GTF_TARGET=<target> -G"<Generator Name>" 272e5c31af7Sopenharmony_ci 273e5c31af7Sopenharmony_ciAvailable `<target>`s are `gles2`, `gles3`, `gles31`, `gles32`, and `gl`. 274e5c31af7Sopenharmony_ciThe default `<target>` is `gles32`. 275e5c31af7Sopenharmony_ci 276e5c31af7Sopenharmony_ciIt's also possible to build `GL-CTS.sln` in Visual Studio instead of running 277e5c31af7Sopenharmony_cithe `cmake --build external/openglcts` command. 278e5c31af7Sopenharmony_ci 279e5c31af7Sopenharmony_ci**NOTE**: Do not create the build directory under the source directory 280e5c31af7Sopenharmony_ci(i.e anywhere under `<path to VK-GL-CTS>`) on Windows, since it causes 281e5c31af7Sopenharmony_cirandom build failures when copying data files around. 282e5c31af7Sopenharmony_ci 283e5c31af7Sopenharmony_ci**NOTE**: You can use the CMake for Windows GUI to do configuration and project 284e5c31af7Sopenharmony_cifile generation. 285e5c31af7Sopenharmony_ci 286e5c31af7Sopenharmony_ci**NOTE**: If using cygwin, you must install and ensure you use the Windows 287e5c31af7Sopenharmony_civersion of cmake. The cygwin vesion does not contain the Visual Studio 288e5c31af7Sopenharmony_cigenerators. Here is a shell function you can put in your cygwin `.bash_profile` 289e5c31af7Sopenharmony_cito use it easily. With this you can simply type `wcmake` to run the Windows version. 290e5c31af7Sopenharmony_ci 291e5c31af7Sopenharmony_ci``` 292e5c31af7Sopenharmony_cifunction wcmake () { 293e5c31af7Sopenharmony_ci (TMP=$tmp TEMP=$temp; unset tmp; unset temp; "C:/Program Files (x86)/CMake 2.8/bin/cmake" "$@") 294e5c31af7Sopenharmony_ci} 295e5c31af7Sopenharmony_ci``` 296e5c31af7Sopenharmony_ci 297e5c31af7Sopenharmony_ci#### Linux 298e5c31af7Sopenharmony_ci 299e5c31af7Sopenharmony_ciRequired tools: 300e5c31af7Sopenharmony_ci- Standard build utilities (make, gcc, etc.) 301e5c31af7Sopenharmony_ci- Necessary API libraries (OpenGL, GLES, EGL depending on configuration) 302e5c31af7Sopenharmony_ci 303e5c31af7Sopenharmony_ciBuilding ES2 or ES3.x conformance tests: 304e5c31af7Sopenharmony_ci 305e5c31af7Sopenharmony_ci cmake <path to VK-GL-CTS> -DDEQP_TARGET=null -DGLCTS_GTF_TARGET=gles32 306e5c31af7Sopenharmony_ci cmake --build external/openglcts 307e5c31af7Sopenharmony_ci 308e5c31af7Sopenharmony_ciBuilding OpenGL conformance tests: 309e5c31af7Sopenharmony_ci 310e5c31af7Sopenharmony_ci cmake <path to VK-GL-CTS> -DDEQP_TARGET=null -DGLCTS_GTF_TARGET=gl 311e5c31af7Sopenharmony_ci cmake --build external/openglcts 312e5c31af7Sopenharmony_ci 313e5c31af7Sopenharmony_ciKhronos Confidential CTS doesn't support run-time selection of API context. 314e5c31af7Sopenharmony_ciIf you intend to run it then the `GLCTS_GTF_TARGET` option is necessary. 315e5c31af7Sopenharmony_ci 316e5c31af7Sopenharmony_ciAvailable values for `GLCTS_GTF_TARGET` are `gles2`, `gles3`, `gles31`, `gles32`, and `gl`. 317e5c31af7Sopenharmony_ciThe default value is `gles32`. 318e5c31af7Sopenharmony_ci 319e5c31af7Sopenharmony_ciCMake chooses to generate Makefiles by default. Other generators can be used 320e5c31af7Sopenharmony_cias well. See CMake help for more details. 321e5c31af7Sopenharmony_ci 322e5c31af7Sopenharmony_ci#### Android 323e5c31af7Sopenharmony_ci 324e5c31af7Sopenharmony_ciThe conformance tests come with native Android support. The following packages 325e5c31af7Sopenharmony_ciare needed in order to build an Android binary: 326e5c31af7Sopenharmony_ci- Python 3.x (for the build related scripts, some other scripts still use Python 2.7.x) 327e5c31af7Sopenharmony_ci- Android NDK r17c 328e5c31af7Sopenharmony_ci- Android SDK with API 28 packages and tools installed 329e5c31af7Sopenharmony_ci- Apache Ant 330e5c31af7Sopenharmony_ci 331e5c31af7Sopenharmony_ciAn Android binary (for ES 3.2) can be built using command: 332e5c31af7Sopenharmony_ci 333e5c31af7Sopenharmony_ci python scripts/android/build_apk.py --target=openglcts --sdk <path to Android SDK> --ndk <path to Android NDK> 334e5c31af7Sopenharmony_ci 335e5c31af7Sopenharmony_ciBy default the CTS package will be built for the Android API level 28. 336e5c31af7Sopenharmony_ciAnother API level may be supplied using --native-api command line option. 337e5c31af7Sopenharmony_ci 338e5c31af7Sopenharmony_ciIf Khronos Confidential CTS is present then the script will set `GLCTS_GTF_TARGET` 339e5c31af7Sopenharmony_cito `gles32` by default. 340e5c31af7Sopenharmony_ciIt is possible to specify a different `GLCTS_GTF_TARGET` target by invoking the script 341e5c31af7Sopenharmony_ciwith the `--kc-cts-target` option, e.g.: 342e5c31af7Sopenharmony_ci 343e5c31af7Sopenharmony_ci python scripts/android/build_apk.py --target=openglcts --kc-cts-target=gles31 --sdk <path to Android SDK> --ndk <path to Android NDK> 344e5c31af7Sopenharmony_ci 345e5c31af7Sopenharmony_ciAvailable values for `--kc-cts-target` are `gles32`, `gles31`, `gles3`, `gles2` and `gl`. 346e5c31af7Sopenharmony_ci 347e5c31af7Sopenharmony_ciThe package can be installed by either running: 348e5c31af7Sopenharmony_ci 349e5c31af7Sopenharmony_ci python scripts/android/install_apk.py --target=openglcts 350e5c31af7Sopenharmony_ci 351e5c31af7Sopenharmony_ciBy default the CTS package will contain libdeqp.so built for `armeabi-v7a`, `arm64-v8a`, 352e5c31af7Sopenharmony_ci`x86`, and `x86_64` ABIs, but that can be changed with `--abis` command line option. 353e5c31af7Sopenharmony_ci 354e5c31af7Sopenharmony_ciTo pick which ABI to use at install time, following commands must be used 355e5c31af7Sopenharmony_ciinstead: 356e5c31af7Sopenharmony_ci 357e5c31af7Sopenharmony_ci adb install -g --abi <ABI name> <build root>/Khronos-CTS.apk /data/local/tmp/Khronos-CTS.apk 358e5c31af7Sopenharmony_ci 359e5c31af7Sopenharmony_ciPorting 360e5c31af7Sopenharmony_ci------------------------ 361e5c31af7Sopenharmony_ciThe Conformance Tests have been designed to be relatively platform-, OS-, and 362e5c31af7Sopenharmony_cicompiler-independent. Adopters are responsible for final changes needed to allow 363e5c31af7Sopenharmony_cithe Test to run on the platform they wish to 364e5c31af7Sopenharmony_cicertify as conformant. 365e5c31af7Sopenharmony_ci 366e5c31af7Sopenharmony_ci### Common Porting Changes 367e5c31af7Sopenharmony_ci 368e5c31af7Sopenharmony_ciPorting the dEQP framework requires implementation of either `glu::Platform` or, 369e5c31af7Sopenharmony_cion platforms supporting EGL, the `tcu::EglPlatform` interface. The porting layer 370e5c31af7Sopenharmony_ciAPI is described in detail in following files: 371e5c31af7Sopenharmony_ci 372e5c31af7Sopenharmony_ci framework/common/tcuPlatform.hpp 373e5c31af7Sopenharmony_ci framework/opengl/gluPlatform.hpp 374e5c31af7Sopenharmony_ci framework/egl/egluPlatform.hpp 375e5c31af7Sopenharmony_ci framework/platform/tcuMain.cpp 376e5c31af7Sopenharmony_ci 377e5c31af7Sopenharmony_ciThis version of the dEQP framework includes ports for Windows (both EGL and WGL), 378e5c31af7Sopenharmony_ciX11 (EGL and XGL), and Android. 379e5c31af7Sopenharmony_ci 380e5c31af7Sopenharmony_ciBase portability libraries in `framework/delibs` seldom need changes. However, 381e5c31af7Sopenharmony_ciintroducing support for a new compiler or a new processor family may require 382e5c31af7Sopenharmony_cisome changes to correctly detect and parameterize the environment. 383e5c31af7Sopenharmony_ci 384e5c31af7Sopenharmony_ciPorting typically involves three types of changes: 385e5c31af7Sopenharmony_ci1. Changes to the make system used to generate the test executable. 386e5c31af7Sopenharmony_ci2. Changes needed to adapt the test executable to the operating system used on the platform. 387e5c31af7Sopenharmony_ci3. Changes to the platform specific GL and EGL header files. 388e5c31af7Sopenharmony_ci 389e5c31af7Sopenharmony_ciChanges should normally be confined to build files (CMake or Python) or source 390e5c31af7Sopenharmony_cifiles (.c, .h, .cpp, and .h files) in the following directories or their 391e5c31af7Sopenharmony_cisubdirectories: 392e5c31af7Sopenharmony_ci- `framework/platform` 393e5c31af7Sopenharmony_ci- `targets` 394e5c31af7Sopenharmony_ci 395e5c31af7Sopenharmony_ciIf you find that you must change other source (.c, .cpp, .h, or .hpp) files, 396e5c31af7Sopenharmony_ciyou will need to file a waiver as described below. 397e5c31af7Sopenharmony_ci 398e5c31af7Sopenharmony_ciNote that the conformance tests assume that the implementation supports EGL. 399e5c31af7Sopenharmony_ciHowever EGL is not required for OpenGL or OpenGL ES conformance. 400e5c31af7Sopenharmony_ci 401e5c31af7Sopenharmony_ciMost of the tests require at least 256x256 pixels resolution in order to run properly 402e5c31af7Sopenharmony_ciand produce stable results. It is, therefore, important to ensure that a port to a 403e5c31af7Sopenharmony_cinew platform can support surfaces that fulfill width and height requirements. 404e5c31af7Sopenharmony_ci 405e5c31af7Sopenharmony_ci### Other Allowable Changes 406e5c31af7Sopenharmony_ci 407e5c31af7Sopenharmony_ciChanges to fix bugs in the conformance test are allowed. A bug in the conformance 408e5c31af7Sopenharmony_citest is a behavior which causes clearly incorrect execution (e.g., hanging, crashing, 409e5c31af7Sopenharmony_cior memory corruption), OR which requires behavior which contradicts or exceeds 410e5c31af7Sopenharmony_cithe requirements of the relevant OpenGL or OpenGL ES Specification. Before 411e5c31af7Sopenharmony_cibeing used for a submission, bugfixes must be accepted and merged into 412e5c31af7Sopenharmony_cithe CTS repository. `git cherry-pick` is strongly recommended as a method of 413e5c31af7Sopenharmony_ciapplying bug fixes. 414e5c31af7Sopenharmony_ci 415e5c31af7Sopenharmony_ciOther changes must be accompanied by a [waiver](#waivers). 416e5c31af7Sopenharmony_ci 417e5c31af7Sopenharmony_ciNOTE: When cherry-picking patches on top of release tag, please use `git cherry-pick -x` 418e5c31af7Sopenharmony_cito include original commit hash in the commit message. 419e5c31af7Sopenharmony_ci 420e5c31af7Sopenharmony_ciRunning the Tests 421e5c31af7Sopenharmony_ci------------------------ 422e5c31af7Sopenharmony_ciAll the following commands need to be run in the CTS build directory. If you 423e5c31af7Sopenharmony_cineed to move the binaries from the build directory, remember to copy the 424e5c31af7Sopenharmony_cidata directories named `gl_cts`, `gles2`, `gles3`, and `gles31` and its subdirectories 425e5c31af7Sopenharmony_cifrom the build directory to the test target in the same relative locations. 426e5c31af7Sopenharmony_ci 427e5c31af7Sopenharmony_ciIf the build instructions have been followed as-is, the correct path is: 428e5c31af7Sopenharmony_ci 429e5c31af7Sopenharmony_ci cd <builddir>/external/openglcts/modules 430e5c31af7Sopenharmony_ci 431e5c31af7Sopenharmony_ci### Conformance runs 432e5c31af7Sopenharmony_ciA conformance run can be launched either by running the `cts-runner` binary with 433e5c31af7Sopenharmony_ciappropriate options on Linux/Windows or by running an Android application. 434e5c31af7Sopenharmony_ci 435e5c31af7Sopenharmony_ci### Linux and Windows 436e5c31af7Sopenharmony_ciConformance run for OpenGL ES 3.2 on Windows: 437e5c31af7Sopenharmony_ci 438e5c31af7Sopenharmony_ci Debug/cts-runner.exe --type=es32 439e5c31af7Sopenharmony_ci [For ES 3.1 use --type=es31; ES 3.0 use --type=es3; for ES 2.0, use --type=es2] 440e5c31af7Sopenharmony_ci 441e5c31af7Sopenharmony_ciConformance run for OpenGL 3.0 - 4.6 on Windows: 442e5c31af7Sopenharmony_ci 443e5c31af7Sopenharmony_ci Debug/cts-runner.exe --type=glxy 444e5c31af7Sopenharmony_ci [x and y are the major and minor specifiction versions] 445e5c31af7Sopenharmony_ci 446e5c31af7Sopenharmony_ciFull list of parameters for the `cts-runner` binary: 447e5c31af7Sopenharmony_ci``` 448e5c31af7Sopenharmony_ci--type=[esN[M]|glNM] Conformance test run type. Choose from 449e5c31af7Sopenharmony_ci ES: es2, es3, es31, es32 450e5c31af7Sopenharmony_ci GL: gl30, gl31, gl32, gl33, gl40, gl41, gl42, gl43, gl44, gl45, gl46 451e5c31af7Sopenharmony_ci--waivers=[path] Path to xml file containing waived tests 452e5c31af7Sopenharmony_ci--logdir=[path] Destination directory for log files 453e5c31af7Sopenharmony_ci--summary Print summary without running the tests 454e5c31af7Sopenharmony_ci--verbose Print out and log more information 455e5c31af7Sopenharmony_ci``` 456e5c31af7Sopenharmony_ci 457e5c31af7Sopenharmony_ciThe conformance run will create one or more `.qpa` files per tested config, a 458e5c31af7Sopenharmony_cisummary `.qpa` file containing run results and a summary `.xml` file containing 459e5c31af7Sopenharmony_cicommand line options for each run, all of which should be included in your 460e5c31af7Sopenharmony_ciconformance submission package. The final verdict will be printed out at 461e5c31af7Sopenharmony_cithe end of run. 462e5c31af7Sopenharmony_ci 463e5c31af7Sopenharmony_ciSometimes it is useful to know the command line options used for the conformance 464e5c31af7Sopenharmony_cibefore the run completed. Full conformance run configuration is written 465e5c31af7Sopenharmony_cito `cts-run-summary.xml` and this file can be generated by adding `--summary` 466e5c31af7Sopenharmony_ciparameter. 467e5c31af7Sopenharmony_ci 468e5c31af7Sopenharmony_ciBy default the `cts-runner` does not include result images or shaders used in 469e5c31af7Sopenharmony_cithe logs. Adding parameter `--verbose` will cause them to be included in 470e5c31af7Sopenharmony_cithe logs. Images will be embedded as PNG data into the`.qpa` log files. 471e5c31af7Sopenharmony_ciSee Section [Test Logs](#test-logs) for instructions on how to view the images. 472e5c31af7Sopenharmony_ci 473e5c31af7Sopenharmony_ciTo direct logs to a directory, add `--logdir=[path]` parameter. 474e5c31af7Sopenharmony_ci 475e5c31af7Sopenharmony_ciTo specify waived tests, add `--waivers=[path]` parameter. 476e5c31af7Sopenharmony_ci 477e5c31af7Sopenharmony_ci**NOTE**: Due to the lack of support for run-time selection of API context in the 478e5c31af7Sopenharmony_ciKhronos Confidential CTS, a conformance run may fail if it is executed for an API 479e5c31af7Sopenharmony_civersion that doesn't match the `GLCTS_GTF_TARGET` value used during the build step. 480e5c31af7Sopenharmony_ci 481e5c31af7Sopenharmony_ci#### Android 482e5c31af7Sopenharmony_ci 483e5c31af7Sopenharmony_ciOnce the CTS binary is built and installed on the device, a new application 484e5c31af7Sopenharmony_cicalled `ES3.2 CTS`, `ES3.1 CTS`, `ES3 CTS`, `ES2 CTS`, `GL4.5 CTS`, or `GL4.6 CTS` 485e5c31af7Sopenharmony_ci(depending on the test version you built) should appear in the launcher. 486e5c31af7Sopenharmony_ciConformance test runs can be done by launching the applications. 487e5c31af7Sopenharmony_ci 488e5c31af7Sopenharmony_ciAlternatively it is possible to start a conformance run from the command line, 489e5c31af7Sopenharmony_cifor example to launch a GLES 3.2 conformance run use: 490e5c31af7Sopenharmony_ci 491e5c31af7Sopenharmony_ci am start -n org.khronos.gl_cts/org.khronos.cts.ES32Activity -e logdir "/sdcard/logs" 492e5c31af7Sopenharmony_ci 493e5c31af7Sopenharmony_ciFor GLES 2.0, GLES 3.0, GLES 3.1, GL 4.5, or GL 4.6 conformance runs, substitute 494e5c31af7Sopenharmony_cithe following activity name (respectively) ES2Activity, ES3Activity, ES31Activity, 495e5c31af7Sopenharmony_ciGL45Activity, or GL46Activity. 496e5c31af7Sopenharmony_ci 497e5c31af7Sopenharmony_ciTest logs will be written to `/sdcard` by default. The log path can be 498e5c31af7Sopenharmony_cicustomized by supplying a `logdir` string extra in launch intent. Verbose mode 499e5c31af7Sopenharmony_cican be enabled by supplying a `verbose` = `"true"` string extra. See 500e5c31af7Sopenharmony_cithe following example: 501e5c31af7Sopenharmony_ci 502e5c31af7Sopenharmony_ci am start -n org.khronos.gl_cts/org.khronos.cts.ES32Activity -e logdir "/sdcard/logs" -e verbose "true" 503e5c31af7Sopenharmony_ci 504e5c31af7Sopenharmony_ciConformance run configuration can be generated by supplying a `summary` = `"true"` 505e5c31af7Sopenharmony_cistring extra. See the following example: 506e5c31af7Sopenharmony_ci 507e5c31af7Sopenharmony_ci am start -n org.khronos.gl_cts/org.khronos.cts.ES32Activity -e logdir "/sdcard/logs" -e summary "true" 508e5c31af7Sopenharmony_ci 509e5c31af7Sopenharmony_ciWaivers can be specified by supplying a `waivers` string extra. See the following example: 510e5c31af7Sopenharmony_ci 511e5c31af7Sopenharmony_ci am start -n org.khronos.gl_cts/org.khronos.cts.ES32Activity -e logdir "/sdcard/logs" -e waivers "/sdcard/waivers.xml" 512e5c31af7Sopenharmony_ci 513e5c31af7Sopenharmony_ci**NOTE**: Supplying a `summary` = `"true"` string extra will result in the `cts-run-summary.xml` file 514e5c31af7Sopenharmony_cibeing written out but no tests will be executed. 515e5c31af7Sopenharmony_ci 516e5c31af7Sopenharmony_ciIndividual tests can be launched as well by targeting 517e5c31af7Sopenharmony_ci`org.khronos.gl_cts/android.app.NativeActivity` activity. Command line 518e5c31af7Sopenharmony_ciarguments must be supplied in a `cmdLine` string extra. See following example: 519e5c31af7Sopenharmony_ci 520e5c31af7Sopenharmony_ci am start -n org.khronos.gl_cts/android.app.NativeActivity -e cmdLine "cts --deqp-case=KHR-GLES32.info.version --deqp-gl-config-id=1 --deqp-log-filename=/sdcard/ES32-egl-config-1.qpa --deqp-surface-width=128 --deqp-surface-height=128" 521e5c31af7Sopenharmony_ci 522e5c31af7Sopenharmony_ciIn addition to the detailed `*.qpa` output files, the Android port of the CTS 523e5c31af7Sopenharmony_cilogs a summary of the test run, including the pass/fail status of each test. 524e5c31af7Sopenharmony_ciThis summary can be viewed using the Android *logcat* utility. 525e5c31af7Sopenharmony_ci 526e5c31af7Sopenharmony_ciSee Section [Running Subsets](#running-subsets) below for details on command 527e5c31af7Sopenharmony_ciline parameters. 528e5c31af7Sopenharmony_ci 529e5c31af7Sopenharmony_ci### Running Subsets 530e5c31af7Sopenharmony_ci 531e5c31af7Sopenharmony_ciRun shader compiler loop test cases from the OpenGL ES 3.0 CTS using EGL config with ID 3: 532e5c31af7Sopenharmony_ci 533e5c31af7Sopenharmony_ci Debug/glcts.exe --deqp-case=KHR-GLES3.shaders.loops.* --deqp-gl-config-id=3 534e5c31af7Sopenharmony_ci 535e5c31af7Sopenharmony_ciNote that the GL context version is determined by the case name. `KHR-GLES3` in 536e5c31af7Sopenharmony_cithe example above selects OpenGL ES 3.0. The command to run the same test 537e5c31af7Sopenharmony_ciagainst OpenGL version 4.1 is: 538e5c31af7Sopenharmony_ci 539e5c31af7Sopenharmony_ci Debug/glcts.exe --deqp-case=GL41-CTS.shaders.loops.* --deqp-gl-config-id=3 540e5c31af7Sopenharmony_ci 541e5c31af7Sopenharmony_ciTo list available test cases (writes out `*-cases.txt` files per module), run: 542e5c31af7Sopenharmony_ci 543e5c31af7Sopenharmony_ci Debug/glcts.exe --deqp-runmode=txt-caselist 544e5c31af7Sopenharmony_ci 545e5c31af7Sopenharmony_ciThe type of the run for cts-runner chooses a specific list of test cases to 546e5c31af7Sopenharmony_cibe run. The selected tests can be checked from the summary logs. To run 547e5c31af7Sopenharmony_cithe same tests, just give equivalent test selection parameters to the `glcts`. 548e5c31af7Sopenharmony_ci 549e5c31af7Sopenharmony_ci#### Command line options 550e5c31af7Sopenharmony_ci 551e5c31af7Sopenharmony_ciFull list of parameters for the `glcts` binary: 552e5c31af7Sopenharmony_ci``` 553e5c31af7Sopenharmony_ci -h, --help 554e5c31af7Sopenharmony_ci Show this help 555e5c31af7Sopenharmony_ci 556e5c31af7Sopenharmony_ci -n, --deqp-case=<value> 557e5c31af7Sopenharmony_ci Test case(s) to run, supports wildcards (e.g. dEQP-GLES2.info.*) 558e5c31af7Sopenharmony_ci 559e5c31af7Sopenharmony_ci --deqp-caselist=<value> 560e5c31af7Sopenharmony_ci Case list to run in trie format (e.g. {dEQP-GLES2{info{version,renderer}}}) 561e5c31af7Sopenharmony_ci 562e5c31af7Sopenharmony_ci --deqp-caselist-file=<value> 563e5c31af7Sopenharmony_ci Read case list (in trie format) from given file 564e5c31af7Sopenharmony_ci 565e5c31af7Sopenharmony_ci --deqp-caselist-resource=<value> 566e5c31af7Sopenharmony_ci Read case list (in trie format) from given file located application's assets 567e5c31af7Sopenharmony_ci 568e5c31af7Sopenharmony_ci --deqp-stdin-caselist 569e5c31af7Sopenharmony_ci Read case list (in trie format) from stdin 570e5c31af7Sopenharmony_ci 571e5c31af7Sopenharmony_ci --deqp-log-filename=<value> 572e5c31af7Sopenharmony_ci Write test results to given file 573e5c31af7Sopenharmony_ci default: 'TestResults.qpa' 574e5c31af7Sopenharmony_ci 575e5c31af7Sopenharmony_ci --deqp-runmode=[execute|xml-caselist|txt-caselist|stdout-caselist] 576e5c31af7Sopenharmony_ci Execute tests, or write list of test cases into a file 577e5c31af7Sopenharmony_ci default: 'execute' 578e5c31af7Sopenharmony_ci 579e5c31af7Sopenharmony_ci --deqp-caselist-export-file=<value> 580e5c31af7Sopenharmony_ci Set the target file name pattern for caselist export 581e5c31af7Sopenharmony_ci default: '${packageName}-cases.${typeExtension}' 582e5c31af7Sopenharmony_ci 583e5c31af7Sopenharmony_ci --deqp-watchdog=[enable|disable] 584e5c31af7Sopenharmony_ci Enable test watchdog 585e5c31af7Sopenharmony_ci default: 'disable' 586e5c31af7Sopenharmony_ci 587e5c31af7Sopenharmony_ci --deqp-crashhandler=[enable|disable] 588e5c31af7Sopenharmony_ci Enable crash handling 589e5c31af7Sopenharmony_ci default: 'disable' 590e5c31af7Sopenharmony_ci 591e5c31af7Sopenharmony_ci --deqp-base-seed=<value> 592e5c31af7Sopenharmony_ci Base seed for test cases that use randomization 593e5c31af7Sopenharmony_ci default: '0' 594e5c31af7Sopenharmony_ci 595e5c31af7Sopenharmony_ci --deqp-test-iteration-count=<value> 596e5c31af7Sopenharmony_ci Iteration count for cases that support variable number of iterations 597e5c31af7Sopenharmony_ci default: '0' 598e5c31af7Sopenharmony_ci 599e5c31af7Sopenharmony_ci --deqp-visibility=[windowed|fullscreen|hidden] 600e5c31af7Sopenharmony_ci Default test window visibility 601e5c31af7Sopenharmony_ci default: 'windowed' 602e5c31af7Sopenharmony_ci 603e5c31af7Sopenharmony_ci --deqp-surface-width=<value> 604e5c31af7Sopenharmony_ci Use given surface width if possible 605e5c31af7Sopenharmony_ci default: '-1' 606e5c31af7Sopenharmony_ci 607e5c31af7Sopenharmony_ci --deqp-surface-height=<value> 608e5c31af7Sopenharmony_ci Use given surface height if possible 609e5c31af7Sopenharmony_ci default: '-1' 610e5c31af7Sopenharmony_ci 611e5c31af7Sopenharmony_ci --deqp-surface-type=[window|pixmap|pbuffer|fbo] 612e5c31af7Sopenharmony_ci Use given surface type 613e5c31af7Sopenharmony_ci default: 'window' 614e5c31af7Sopenharmony_ci 615e5c31af7Sopenharmony_ci --deqp-screen-rotation=[unspecified|0|90|180|270] 616e5c31af7Sopenharmony_ci Screen rotation for platforms that support it 617e5c31af7Sopenharmony_ci default: '0' 618e5c31af7Sopenharmony_ci 619e5c31af7Sopenharmony_ci --deqp-gl-context-type=<value> 620e5c31af7Sopenharmony_ci OpenGL context type for platforms that support multiple 621e5c31af7Sopenharmony_ci 622e5c31af7Sopenharmony_ci --deqp-gl-config-id=<value> 623e5c31af7Sopenharmony_ci OpenGL (ES) render config ID (EGL config id on EGL platforms) 624e5c31af7Sopenharmony_ci default: '-1' 625e5c31af7Sopenharmony_ci 626e5c31af7Sopenharmony_ci --deqp-gl-config-name=<value> 627e5c31af7Sopenharmony_ci Symbolic OpenGL (ES) render config name 628e5c31af7Sopenharmony_ci 629e5c31af7Sopenharmony_ci --deqp-gl-context-flags=<value> 630e5c31af7Sopenharmony_ci OpenGL context flags (comma-separated, supports debug and robust) 631e5c31af7Sopenharmony_ci 632e5c31af7Sopenharmony_ci --deqp-cl-platform-id=<value> 633e5c31af7Sopenharmony_ci Execute tests on given OpenCL platform (IDs start from 1) 634e5c31af7Sopenharmony_ci default: '1' 635e5c31af7Sopenharmony_ci 636e5c31af7Sopenharmony_ci --deqp-cl-device-ids=<value> 637e5c31af7Sopenharmony_ci Execute tests on given CL devices (comma-separated, IDs start from 1) 638e5c31af7Sopenharmony_ci default: '' 639e5c31af7Sopenharmony_ci 640e5c31af7Sopenharmony_ci --deqp-cl-build-options=<value> 641e5c31af7Sopenharmony_ci Extra build options for OpenCL compiler 642e5c31af7Sopenharmony_ci 643e5c31af7Sopenharmony_ci --deqp-egl-display-type=<value> 644e5c31af7Sopenharmony_ci EGL native display type 645e5c31af7Sopenharmony_ci 646e5c31af7Sopenharmony_ci --deqp-egl-window-type=<value> 647e5c31af7Sopenharmony_ci EGL native window type 648e5c31af7Sopenharmony_ci 649e5c31af7Sopenharmony_ci --deqp-egl-pixmap-type=<value> 650e5c31af7Sopenharmony_ci EGL native pixmap type 651e5c31af7Sopenharmony_ci 652e5c31af7Sopenharmony_ci --deqp-log-images=[enable|disable] 653e5c31af7Sopenharmony_ci Enable or disable logging of result images 654e5c31af7Sopenharmony_ci default: 'enable' 655e5c31af7Sopenharmony_ci 656e5c31af7Sopenharmony_ci --deqp-log-shader-sources=[enable|disable] 657e5c31af7Sopenharmony_ci Enable or disable logging of shader sources 658e5c31af7Sopenharmony_ci default: 'enable' 659e5c31af7Sopenharmony_ci 660e5c31af7Sopenharmony_ci --deqp-test-oom=[enable|disable] 661e5c31af7Sopenharmony_ci Run tests that exhaust memory on purpose 662e5c31af7Sopenharmony_ci default: 'enable' 663e5c31af7Sopenharmony_ci 664e5c31af7Sopenharmony_ci --deqp-archive-dir=<value> 665e5c31af7Sopenharmony_ci Path to test resource files 666e5c31af7Sopenharmony_ci default: '.' 667e5c31af7Sopenharmony_ci 668e5c31af7Sopenharmony_ci --deqp-log-flush=[enable|disable] 669e5c31af7Sopenharmony_ci Enable or disable log file fflush 670e5c31af7Sopenharmony_ci default: 'enable' 671e5c31af7Sopenharmony_ci 672e5c31af7Sopenharmony_ci --deqp-log-compact=[enable|disable] 673e5c31af7Sopenharmony_ci Enable or disable the compact version of the log 674e5c31af7Sopenharmony_ci default: 'disable' 675e5c31af7Sopenharmony_ci 676e5c31af7Sopenharmony_ci --deqp-renderdoc=[enable|disable] 677e5c31af7Sopenharmony_ci Enable RenderDoc frame markers 678e5c31af7Sopenharmony_ci default: 'disable' 679e5c31af7Sopenharmony_ci 680e5c31af7Sopenharmony_ci --deqp-fraction=<value> 681e5c31af7Sopenharmony_ci Run a fraction of the test cases (e.g. N,M means run group%M==N) 682e5c31af7Sopenharmony_ci default: '' 683e5c31af7Sopenharmony_ci 684e5c31af7Sopenharmony_ci --deqp-fraction-mandatory-caselist-file=<value> 685e5c31af7Sopenharmony_ci Case list file that must be run for each fraction 686e5c31af7Sopenharmony_ci default: '' 687e5c31af7Sopenharmony_ci 688e5c31af7Sopenharmony_ci --deqp-waiver-file=<value> 689e5c31af7Sopenharmony_ci Read waived tests from given file 690e5c31af7Sopenharmony_ci default: '' 691e5c31af7Sopenharmony_ci 692e5c31af7Sopenharmony_ci --deqp-runner-type=[any|none|amber] 693e5c31af7Sopenharmony_ci Filter test cases based on runner 694e5c31af7Sopenharmony_ci default: 'any' 695e5c31af7Sopenharmony_ci 696e5c31af7Sopenharmony_ci --deqp-terminate-on-fail=[enable|disable] 697e5c31af7Sopenharmony_ci Terminate the run on first failure 698e5c31af7Sopenharmony_ci default: 'disable' 699e5c31af7Sopenharmony_ci 700e5c31af7Sopenharmony_ci --deqp-egl-config-id=<value> 701e5c31af7Sopenharmony_ci Legacy name for --deqp-gl-config-id 702e5c31af7Sopenharmony_ci default: '-1' 703e5c31af7Sopenharmony_ci 704e5c31af7Sopenharmony_ci --deqp-egl-config-name=<value> 705e5c31af7Sopenharmony_ci Legacy name for --deqp-gl-config-name 706e5c31af7Sopenharmony_ci 707e5c31af7Sopenharmony_ci --deqp-waiver-file=<value> 708e5c31af7Sopenharmony_ci Path to xml file containing waived tests 709e5c31af7Sopenharmony_ci``` 710e5c31af7Sopenharmony_ci 711e5c31af7Sopenharmony_ci### Understanding the Results 712e5c31af7Sopenharmony_ci 713e5c31af7Sopenharmony_ciAt the end of a completed test run, a file called `cts-run-summary.xml` is 714e5c31af7Sopenharmony_cigenerated. It will contain summaries per configuration and the full command 715e5c31af7Sopenharmony_cilines for the `glcts` application 716e5c31af7Sopenharmony_ci(See Section [Running Subsets](#running-subsets)) for debugging purposes. 717e5c31af7Sopenharmony_ciAdditionally, a summary string similar to one below is printed: 718e5c31af7Sopenharmony_ci``` 719e5c31af7Sopenharmony_ci4/4 sessions passed, conformance test PASSED 720e5c31af7Sopenharmony_ci``` 721e5c31af7Sopenharmony_ci 722e5c31af7Sopenharmony_ciIf the run fails, the message will say `FAILED` instead of `PASSED`. Under 723e5c31af7Sopenharmony_ciLinux or Windows, this string is printed to stdout if available. Under Android, 724e5c31af7Sopenharmony_ciit is emitted to the Android logging system for access via *logcat*. 725e5c31af7Sopenharmony_ci 726e5c31af7Sopenharmony_ciEach test case will be logged into the `.qpa` files in XML. Below is a minimal 727e5c31af7Sopenharmony_ciexample of a test case log. The Result element contains the final verdict in 728e5c31af7Sopenharmony_cithe `StatusCode` attribute. Passing cases will have `Pass` and failing cases 729e5c31af7Sopenharmony_ci`Fail`. Other results such as `QualityWarning`, `CompatibilityWarning`, 730e5c31af7Sopenharmony_ci`NotSupported` or `ResourceError` are possible. Only `Fail` status will count 731e5c31af7Sopenharmony_cias failure for conformance purposes. 732e5c31af7Sopenharmony_ci``` 733e5c31af7Sopenharmony_ci<TestCaseResult Version="0.3.2" CasePath="ES2-CTS.info.vendor" CaseType="SelfValidate"> 734e5c31af7Sopenharmony_ci <Text>Vendor A</Text> 735e5c31af7Sopenharmony_ci <Result StatusCode="Pass">Pass</Result> 736e5c31af7Sopenharmony_ci</TestCaseResult> 737e5c31af7Sopenharmony_ci``` 738e5c31af7Sopenharmony_ci 739e5c31af7Sopenharmony_ciIf the failure count is zero for all config sequences, the implementation 740e5c31af7Sopenharmony_cipasses the test. Note that in addition to a successful test result, 741e5c31af7Sopenharmony_cia Submission Package must satisfy the conditions specified below under 742e5c31af7Sopenharmony_ci[Passing Criteria](#passing-criteria) in order to achieve conformance certification. 743e5c31af7Sopenharmony_ci 744e5c31af7Sopenharmony_ci### Test Logs 745e5c31af7Sopenharmony_ci 746e5c31af7Sopenharmony_ciThe CTS writes test logs in XML encapsulated in a simple plain-text container 747e5c31af7Sopenharmony_ciformat. Each tested configuration listed in `cts-run-summary.xml` 748e5c31af7Sopenharmony_ci 749e5c31af7Sopenharmony_ciTo analyse and process the log files, run the following scripts 750e5c31af7Sopenharmony_ci- `verify_submission.py` located in [VK-GL-CTS-Tools](https://github.com/KhronosGroup/VK-GL-CTS-Tools): Script that verifies logs based on `cts-run-summary.xml` file. 751e5c31af7Sopenharmony_ci- `scripts/log/log_to_csv.py`: This utility converts `.qpa` log into CSV format. This is 752e5c31af7Sopenharmony_ciuseful for importing results into other systems. 753e5c31af7Sopenharmony_ci- `scripts/log/log_to_xml.py`: Converts `.qpa` into well-formed XML document. The document 754e5c31af7Sopenharmony_cican be then viewed in browser using the testlog.{xsl,css} files. 755e5c31af7Sopenharmony_ci 756e5c31af7Sopenharmony_ciSome browsers, like Chrome, limit local file access. In such case, the files 757e5c31af7Sopenharmony_cimust be accessed over HTTP. Python comes with a simple HTTP server suitable 758e5c31af7Sopenharmony_cifor the purpose. Run `python -m SimpleHTTPServer` in the directory containing 759e5c31af7Sopenharmony_cithe generated XML files and point the browser to `127.0.0.1:8000`. 760e5c31af7Sopenharmony_ci 761e5c31af7Sopenharmony_ciParser for the `.qpa` log file format in python is provided in 762e5c31af7Sopenharmony_ci`scripts/log/log_parser.py`. 763e5c31af7Sopenharmony_ci 764e5c31af7Sopenharmony_ciPython scripts require python 2.7 or newer in 2.x series. They are not 765e5c31af7Sopenharmony_cicompatible with python 3.x. 766e5c31af7Sopenharmony_ci 767e5c31af7Sopenharmony_ciDebugging Test Failures 768e5c31af7Sopenharmony_ci------------------------ 769e5c31af7Sopenharmony_ciThe best first step is to run the failing test cases via `glcts` executable to 770e5c31af7Sopenharmony_ciget the more verbose logs. Use, for example, the `log_to_xml.py` script 771e5c31af7Sopenharmony_cidetailed in Section [Test Logs](#test-logs), to view the generated logs. 772e5c31af7Sopenharmony_ciIf the visual inspection of the logs does not give sufficient hints on the 773e5c31af7Sopenharmony_cinature of the issue, inspecting the test code and stepping through it in 774e5c31af7Sopenharmony_cidebugger should help. 775e5c31af7Sopenharmony_ci 776e5c31af7Sopenharmony_ciWaivers 777e5c31af7Sopenharmony_ci------------------------ 778e5c31af7Sopenharmony_ciThe procedure for requesting a waiver is to report the issue by filing a bug 779e5c31af7Sopenharmony_cireport in the Gitlab VK GL CTS project 780e5c31af7Sopenharmony_ci(https://gitlab.khronos.org/Tracker/vk-gl-cts). When you create your submission 781e5c31af7Sopenharmony_cipackage, include references to the waivers as described in the adopters' agreement. 782e5c31af7Sopenharmony_ci[Fully-qualified links](https://en.wikipedia.org/wiki/Fully_qualified_domain_name) 783e5c31af7Sopenharmony_cito bug reports are highly recommended. 784e5c31af7Sopenharmony_ciIncluding as much information as possible in your bug report will ensure the issue 785e5c31af7Sopenharmony_cican be progressed as speedily as possible. Such bug report must 786e5c31af7Sopenharmony_ciinclude a link to suggested file changes. Issues must be labeled `Waiver` and `OpenGL-ES` 787e5c31af7Sopenharmony_ci(for OpenGL ES submissions) or `Waiver` and `OpenGL` (for OpenGL submissions) and 788e5c31af7Sopenharmony_ciidentify the CTS release tag and affected tests. 789e5c31af7Sopenharmony_ci 790e5c31af7Sopenharmony_ciCreating a Submission Package 791e5c31af7Sopenharmony_ci------------------------ 792e5c31af7Sopenharmony_ciPlease see the [Creating a Submission Package page](https://github.com/KhronosGroup/VK-GL-CTS/wiki/Creating-a-OpenGL-and-OpenGL-ES-Submission-Package). 793e5c31af7Sopenharmony_ci 794e5c31af7Sopenharmony_ciSubmission Update Package 795e5c31af7Sopenharmony_ci------------------------ 796e5c31af7Sopenharmony_ciPlease see the [Submission Update Package page](https://github.com/KhronosGroup/VK-GL-CTS/wiki/Submission-Update-Package). 797e5c31af7Sopenharmony_ci 798e5c31af7Sopenharmony_ciPassing Criteria 799e5c31af7Sopenharmony_ci------------------------ 800e5c31af7Sopenharmony_ciPlease see the [Conformance Submission Passing Criteria page](https://github.com/KhronosGroup/VK-GL-CTS/wiki/OpenGL-and-OpenGL-ES-Conformance-Submission-Passing-Criteria). 801e5c31af7Sopenharmony_ci 802e5c31af7Sopenharmony_ciTroubleshooting 803e5c31af7Sopenharmony_ci------------------------ 804e5c31af7Sopenharmony_ci### Crashes early on in the run 805e5c31af7Sopenharmony_ciIf using run-time entry point loading, it is possible that not all required 806e5c31af7Sopenharmony_cientry points are available. This will result in `NULL` pointer dereferencing. 807e5c31af7Sopenharmony_ci 808e5c31af7Sopenharmony_ci### Build fails 809e5c31af7Sopenharmony_ciFirst try re-running the build. If that does not help and you have used the 810e5c31af7Sopenharmony_cisame build directory with different version of the CTS, remove the build 811e5c31af7Sopenharmony_cidirectory and run the CMake again. 812e5c31af7Sopenharmony_ci 813e5c31af7Sopenharmony_ciAdding new tests 814e5c31af7Sopenharmony_ci------------------------ 815e5c31af7Sopenharmony_ci 816e5c31af7Sopenharmony_ciSee the [Contribution Guide](CONTRIBUTING.md) 817e5c31af7Sopenharmony_ci 818e5c31af7Sopenharmony_ciAcknowledgments 819e5c31af7Sopenharmony_ci------------------------ 820e5c31af7Sopenharmony_ciThe Khronos Group gratefully acknowledges the support of drawElements Oy, 821e5c31af7Sopenharmony_ciwho donated a large number of GLSL tests and a new test framework and build system. 822e5c31af7Sopenharmony_ci 823e5c31af7Sopenharmony_ciThe Khronos Group also gratefully acknowledges the support of 3DLabs Inc., 824e5c31af7Sopenharmony_ciwho gave permission to use the 3DLabs Graphics Test Framework (GTF). 825e5c31af7Sopenharmony_ci 826e5c31af7Sopenharmony_ciThe first internal version of the test was created by Bruno Schwander of 827e5c31af7Sopenharmony_ciHooked Wireless, under a development contract with the Khronos Group. 828e5c31af7Sopenharmony_ci 829e5c31af7Sopenharmony_ciSymbio added tests specific to OpenGL and OpenGL ES 3.0. 830e5c31af7Sopenharmony_ci 831e5c31af7Sopenharmony_cidrawElements added their donated language tests and build system. 832e5c31af7Sopenharmony_ci 833e5c31af7Sopenharmony_ciThe CTS results from these efforts, together with additional hard work by 834e5c31af7Sopenharmony_civolunteers from the OpenGL ES Working Group, the OpenGL ARB Working Group, 835e5c31af7Sopenharmony_ciand their member companies, including: 836e5c31af7Sopenharmony_ci 837e5c31af7Sopenharmony_ci- Sumit Agarwal, Imagination Technologies 838e5c31af7Sopenharmony_ci- Eric Anholt, Intel 839e5c31af7Sopenharmony_ci- Oleksiy Avramchenko, Sony 840e5c31af7Sopenharmony_ci- Anthony Berent, ARM 841e5c31af7Sopenharmony_ci- Joseph Blankenship, AMD 842e5c31af7Sopenharmony_ci- Jeff Bolz, NVIDIA 843e5c31af7Sopenharmony_ci- Pierre Boudier, AMD 844e5c31af7Sopenharmony_ci- Benji Bowman, Imagination Technologies 845e5c31af7Sopenharmony_ci- Pat Brown, NVIDIA 846e5c31af7Sopenharmony_ci- David Cairns, Apple 847e5c31af7Sopenharmony_ci- Mark Callow, ArtSpark 848e5c31af7Sopenharmony_ci- Antoine Chauveau, NVIDIA 849e5c31af7Sopenharmony_ci- Aske Simon Christensen, ARM 850e5c31af7Sopenharmony_ci- Lin Chen, Qualcomm 851e5c31af7Sopenharmony_ci- Mathieu Comeau, QNX 852e5c31af7Sopenharmony_ci- Graham Connor, Imagination Technologies 853e5c31af7Sopenharmony_ci- Slawomir Cygan, Intel 854e5c31af7Sopenharmony_ci- Piotr Czubak, Intel 855e5c31af7Sopenharmony_ci- Piers Daniell, NVIDIA 856e5c31af7Sopenharmony_ci- Matthias Dejaegher, ZiiLabs 857e5c31af7Sopenharmony_ci- Chris Dodd, NVIDIA 858e5c31af7Sopenharmony_ci- David Donohoe, Movidius 859e5c31af7Sopenharmony_ci- Alex Eddy, Apple 860e5c31af7Sopenharmony_ci- Sean Ellis, ARM 861e5c31af7Sopenharmony_ci- Bryan Eyler, NVIDIA 862e5c31af7Sopenharmony_ci- Erik Faye-Lund, ARM 863e5c31af7Sopenharmony_ci- Nicholas FitzRoy-Dale, Broadcom 864e5c31af7Sopenharmony_ci- Michael Frydrych, NVIDIA 865e5c31af7Sopenharmony_ci- Toshiki Fujimori, Takumi 866e5c31af7Sopenharmony_ci- David Garcia, Qualcomm 867e5c31af7Sopenharmony_ci- Frido Garritsen, Vivante 868e5c31af7Sopenharmony_ci- Klaus Gerlicher, NVIDIA 869e5c31af7Sopenharmony_ci- Slawomir Grajewski, Intel 870e5c31af7Sopenharmony_ci- Jonas Gustavsson, Sony 871e5c31af7Sopenharmony_ci- Nick Haemel, NVIDIA 872e5c31af7Sopenharmony_ci- Matthew Harrison, Imagination Technologies 873e5c31af7Sopenharmony_ci- Pyry Haulos, drawElements 874e5c31af7Sopenharmony_ci- Jim Hauxwell, Broadcom 875e5c31af7Sopenharmony_ci- Valtteri Heikkil, Symbio 876e5c31af7Sopenharmony_ci- Tsachi Herman, AMD 877e5c31af7Sopenharmony_ci- Mathias Heyer, NVIDIA 878e5c31af7Sopenharmony_ci- Atsuko Hirose, Fujitsu 879e5c31af7Sopenharmony_ci- Ari Hirvonen, NVIDIA 880e5c31af7Sopenharmony_ci- Rune Holm, ARM 881e5c31af7Sopenharmony_ci- Jaakko Huovinen, Nokia 882e5c31af7Sopenharmony_ci- James Jones, Imagination Technologies 883e5c31af7Sopenharmony_ci- Norbert Juffa, NVIDIA 884e5c31af7Sopenharmony_ci- Jordan Justen, Intel 885e5c31af7Sopenharmony_ci- Sandeep Kakarlapudi, ARM 886e5c31af7Sopenharmony_ci- Anssi Kalliolahti, NVIDIA 887e5c31af7Sopenharmony_ci- Philip Kamenarsky, NVIDIA 888e5c31af7Sopenharmony_ci- Krzysztof Kaminski, Intel 889e5c31af7Sopenharmony_ci- Daniel Kartch, NVIDIA 890e5c31af7Sopenharmony_ci- Maxim Kazakov, DMP 891e5c31af7Sopenharmony_ci- Jon Kennedy, 3DLabs 892e5c31af7Sopenharmony_ci- John Kessenich 893e5c31af7Sopenharmony_ci- Daniel Koch, NVIDIA 894e5c31af7Sopenharmony_ci- Benjamin Kohler-Crowe, NVIDIA 895e5c31af7Sopenharmony_ci- Georg Kolling, Imagination Technologies 896e5c31af7Sopenharmony_ci- Misa Komuro, DMP 897e5c31af7Sopenharmony_ci- Boguslaw Kowalik, Intel 898e5c31af7Sopenharmony_ci- Aleksandra Krstic, Qualcomm 899e5c31af7Sopenharmony_ci- Karol Kurach, NVIDIA 900e5c31af7Sopenharmony_ci- VP Kutti 901e5c31af7Sopenharmony_ci- Sami Kyostila, Google 902e5c31af7Sopenharmony_ci- Teemu Laakso, Symbio 903e5c31af7Sopenharmony_ci- Antoine Labour, Sony 904e5c31af7Sopenharmony_ci- Alexandre Laurent, Imagination Technologies 905e5c31af7Sopenharmony_ci- Jon Leech, Khronos 906e5c31af7Sopenharmony_ci- Graeme Leese, Broadcom 907e5c31af7Sopenharmony_ci- I-Gene Leong, Intel 908e5c31af7Sopenharmony_ci- Radoslava Leseva, Imagination Technologies 909e5c31af7Sopenharmony_ci- Jake Lever, NVIDIA 910e5c31af7Sopenharmony_ci- Fred Liao, MediaTek 911e5c31af7Sopenharmony_ci- Bill Licea-Kane, Qualcomm 912e5c31af7Sopenharmony_ci- Benj Lipchak, Apple 913e5c31af7Sopenharmony_ci- Wayne Lister, Imagination Technologies 914e5c31af7Sopenharmony_ci- Isaac Liu, NVIDIA 915e5c31af7Sopenharmony_ci- Weiwan Liu, NVIDIA 916e5c31af7Sopenharmony_ci- Zhifang Long, Marvell 917e5c31af7Sopenharmony_ci- Toni Lönnberg, AMD 918e5c31af7Sopenharmony_ci- Erik Lovlie 919e5c31af7Sopenharmony_ci- Christer Lunde, ARM 920e5c31af7Sopenharmony_ci- Zong-Hong Lyu, DMP 921e5c31af7Sopenharmony_ci- Daniel Mahashin, NVIDIA 922e5c31af7Sopenharmony_ci- Rob Matthesen, NVIDIA 923e5c31af7Sopenharmony_ci- Tom McReynolds, NVIDIA (CTS TSG Chair, ES 1.1) 924e5c31af7Sopenharmony_ci- Bruce Merry, ARM 925e5c31af7Sopenharmony_ci- Assif Mirza, Imagination Technologies 926e5c31af7Sopenharmony_ci- Zhenyao Mo, Google 927e5c31af7Sopenharmony_ci- Kazuhiro Mochizuki, Fujitsu 928e5c31af7Sopenharmony_ci- Affie Munshi, Apple 929e5c31af7Sopenharmony_ci- Yeshwant Muthusamy, Samsung 930e5c31af7Sopenharmony_ci- Mirela Nicolescu, Broadcom 931e5c31af7Sopenharmony_ci- Glenn Nissen, Broadcom 932e5c31af7Sopenharmony_ci- Michael O'Hara, AMD 933e5c31af7Sopenharmony_ci- Eisaku Ohbuchi, DMP 934e5c31af7Sopenharmony_ci- Tom Olson, ARM 935e5c31af7Sopenharmony_ci- Tapani Palli, Intel 936e5c31af7Sopenharmony_ci- Brian Paul, VMWare 937e5c31af7Sopenharmony_ci- Remi Pedersen, ARM 938e5c31af7Sopenharmony_ci- Adrian Peirson, ARM 939e5c31af7Sopenharmony_ci- Russell Pflughaupt, NVIDIA 940e5c31af7Sopenharmony_ci- Anuj Phogat, Intel 941e5c31af7Sopenharmony_ci- Tero Pihlajakoski, Nokia 942e5c31af7Sopenharmony_ci- Peter Pipkorn, NVIDIA 943e5c31af7Sopenharmony_ci- Acorn Pooley, NVIDIA 944e5c31af7Sopenharmony_ci- Guillaume Portier, ArtSpark 945e5c31af7Sopenharmony_ci- Greg Prisament, Lychee Software 946e5c31af7Sopenharmony_ci- Jonathan Putsman, Imagination Technologies 947e5c31af7Sopenharmony_ci- Mike Quinlan, AMD 948e5c31af7Sopenharmony_ci- Tarik Rahman, CodePlay 949e5c31af7Sopenharmony_ci- Kalle Raita, drawElements 950e5c31af7Sopenharmony_ci- Daniel Rakos, AMD 951e5c31af7Sopenharmony_ci- Manjunatha Ramachandra 952e5c31af7Sopenharmony_ci- John Recker, NVIDIA 953e5c31af7Sopenharmony_ci- Maurice Ribble, Qualcomm (CTS TSG Chair, ES 2.0) 954e5c31af7Sopenharmony_ci- James Riordon, Khronos 955e5c31af7Sopenharmony_ci- Lane Roberts, Samsung 956e5c31af7Sopenharmony_ci- Ian Romanick, Intel 957e5c31af7Sopenharmony_ci- Greg Roth, NVIDIA 958e5c31af7Sopenharmony_ci- Kenneth Russell, Google 959e5c31af7Sopenharmony_ci- Matteo Salardi, Imagination Technologies 960e5c31af7Sopenharmony_ci- Jeremy Sandmel, Apple 961e5c31af7Sopenharmony_ci- Shusaku Sawato, DMP 962e5c31af7Sopenharmony_ci- Chris Scholtes, Fujitsu 963e5c31af7Sopenharmony_ci- Mathias Schott, NVIDIA 964e5c31af7Sopenharmony_ci- Bruno Schwander, Hooked Wireless 965e5c31af7Sopenharmony_ci- Graham Sellers, AMD 966e5c31af7Sopenharmony_ci- Shereef Shehata, Texas Instruments 967e5c31af7Sopenharmony_ci- Benjamin Shen, Vivante 968e5c31af7Sopenharmony_ci- Robert Simpson, Qualcomm 969e5c31af7Sopenharmony_ci- Stuart Smith, Imagination Technologies 970e5c31af7Sopenharmony_ci- Janusz Sobczak, Mobica 971e5c31af7Sopenharmony_ci- Jacob Strom, Ericsson 972e5c31af7Sopenharmony_ci- Timo Suoranta, Broadcom 973e5c31af7Sopenharmony_ci- Jan Svarovsky, Ideaworks3D 974e5c31af7Sopenharmony_ci- Anthony Tai, Apple 975e5c31af7Sopenharmony_ci- Payal Talati, Imagination Technologies 976e5c31af7Sopenharmony_ci- Gregg Tavares, Google 977e5c31af7Sopenharmony_ci- Ross Thompson, NVIDIA 978e5c31af7Sopenharmony_ci- Jeremy Thorne, Broadcom 979e5c31af7Sopenharmony_ci- Jani Tikkanen, Symbio 980e5c31af7Sopenharmony_ci- Antti Tirronen, Qualcomm (CTS TSG Chair, ES 3.0/3.1) 981e5c31af7Sopenharmony_ci- Robert Tray, NVIDIA 982e5c31af7Sopenharmony_ci- Matt Turner, Intel 983e5c31af7Sopenharmony_ci- Eben Upton, Broadcom 984e5c31af7Sopenharmony_ci- Jani Vaarala, Nokia 985e5c31af7Sopenharmony_ci- Dmitriy Vasilev, NVIDIA 986e5c31af7Sopenharmony_ci- Chad Versace, Intel 987e5c31af7Sopenharmony_ci- Holger Waechtler, Broadcom 988e5c31af7Sopenharmony_ci- Joerg Wagner, ARM 989e5c31af7Sopenharmony_ci- Jun Wang, Imagination Technologies 990e5c31af7Sopenharmony_ci- Yuan Wang, Imagination Technologies 991e5c31af7Sopenharmony_ci- Hans-Martin Will 992e5c31af7Sopenharmony_ci- Ewa Wisniewska, Mobica 993e5c31af7Sopenharmony_ci- Dominik Witczak, Mobica 994e5c31af7Sopenharmony_ci- Oliver Wohlmuth, Fujitsu 995e5c31af7Sopenharmony_ci- Yanjun Zhang, Vivante 996e5c31af7Sopenharmony_ci- Lefan Zhong, Vivante 997e5c31af7Sopenharmony_ci- Jill Zhou 998e5c31af7Sopenharmony_ci- Marek Zylak, NVIDIA 999e5c31af7Sopenharmony_ci- Iliyan Dinev, Imagination Technologies 1000e5c31af7Sopenharmony_ci- James Glanville, Imagination Technologies 1001e5c31af7Sopenharmony_ci- Mark Adams, NVIDIA 1002e5c31af7Sopenharmony_ci- Alexander Galazin, ARM 1003e5c31af7Sopenharmony_ci- Riccardo Capra, ARM 1004e5c31af7Sopenharmony_ci- Lars-Ivar Simonsen, ARM 1005e5c31af7Sopenharmony_ci- Fei Yang, ARM 1006e5c31af7Sopenharmony_ci 1007e5c31af7Sopenharmony_ciRevision History 1008e5c31af7Sopenharmony_ci------------------------ 1009e5c31af7Sopenharmony_ci- 0.0 - Tom Olson 1010e5c31af7Sopenharmony_ci 1011e5c31af7Sopenharmony_ci Initial version cloned from `ES2_Readme`, plus feedback from Mark Callow. 1012e5c31af7Sopenharmony_ci 1013e5c31af7Sopenharmony_ci- 0.2 - Tom Olson 1014e5c31af7Sopenharmony_ci 1015e5c31af7Sopenharmony_ci Modified to incorporate feedback in bug 8534. 1016e5c31af7Sopenharmony_ci 1017e5c31af7Sopenharmony_ci- 0.3 - Jon Leech 1018e5c31af7Sopenharmony_ci 1019e5c31af7Sopenharmony_ci Added details for OpenGL Conformance. 1020e5c31af7Sopenharmony_ci 1021e5c31af7Sopenharmony_ci- 0.4 - Jon Leech 2012/10/31 1022e5c31af7Sopenharmony_ci 1023e5c31af7Sopenharmony_ci Add configuration & build section, and table of contents 1024e5c31af7Sopenharmony_ci 1025e5c31af7Sopenharmony_ci- 0.5 - Jon Leech 2012/10/31 1026e5c31af7Sopenharmony_ci 1027e5c31af7Sopenharmony_ci Fix typos noted by Mark Callow in bug 8534. 1028e5c31af7Sopenharmony_ci 1029e5c31af7Sopenharmony_ci- 0.6 - Jon Leech 2012/11/13 1030e5c31af7Sopenharmony_ci 1031e5c31af7Sopenharmony_ci Discuss automatic version selection and document support for OpenGL 3.3-4.3. 1032e5c31af7Sopenharmony_ci 1033e5c31af7Sopenharmony_ci- 0.7 - Jon Leech 2012/11/14 1034e5c31af7Sopenharmony_ci 1035e5c31af7Sopenharmony_ci Minor cleanup for GL version numbers per Bug 8534 comment #41. 1036e5c31af7Sopenharmony_ci 1037e5c31af7Sopenharmony_ci- 0.8 - Tom Olson 2013/1/25 1038e5c31af7Sopenharmony_ci 1039e5c31af7Sopenharmony_ci Updated GL status in preparation for ES 3.0 release, removed display 1040e5c31af7Sopenharmony_ci parameters from product description, and removed mention of sample submission. 1041e5c31af7Sopenharmony_ci 1042e5c31af7Sopenharmony_ci- 0.9 - Jon Leech 2013/07/17 1043e5c31af7Sopenharmony_ci 1044e5c31af7Sopenharmony_ci Restore GL-specific details in preparation for initial GL CTS release. 1045e5c31af7Sopenharmony_ci 1046e5c31af7Sopenharmony_ci- 1.0 - Jon Leech 2013/07/17 1047e5c31af7Sopenharmony_ci 1048e5c31af7Sopenharmony_ci Change references to Visual Studio 11 to Visual Studio 2012 per bug 9862. 1049e5c31af7Sopenharmony_ci Reset change tracking to reduce clutter. 1050e5c31af7Sopenharmony_ci 1051e5c31af7Sopenharmony_ci- 1.1 - Kalle Raita 2013/10/30 1052e5c31af7Sopenharmony_ci 1053e5c31af7Sopenharmony_ci Updated documentation after the integration of the drawElements framework and 1054e5c31af7Sopenharmony_ci language tests. 1055e5c31af7Sopenharmony_ci 1056e5c31af7Sopenharmony_ci- 1.2 - Kalle Raita 2013/12/03 1057e5c31af7Sopenharmony_ci 1058e5c31af7Sopenharmony_ci Removed TODOs, added some notes on further development, and notes on file 1059e5c31af7Sopenharmony_ci dependencies. Exact list of directory sub-trees that can be modified during porting. 1060e5c31af7Sopenharmony_ci 1061e5c31af7Sopenharmony_ci- 1.3 - Tom Olson 2014/05/27 1062e5c31af7Sopenharmony_ci 1063e5c31af7Sopenharmony_ci Updates for ES CTS 3.1.1.0 . Added Passing Criteria, updated examples to 1064e5c31af7Sopenharmony_ci include 3.1 versioning, and updated Acknowledgements. 1065e5c31af7Sopenharmony_ci 1066e5c31af7Sopenharmony_ci- 1.4 - Alexander Galazin 2016/05/12 1067e5c31af7Sopenharmony_ci 1068e5c31af7Sopenharmony_ci Updates for ES CTS 3.2.1.0. 1069e5c31af7Sopenharmony_ci 1070e5c31af7Sopenharmony_ci- 2.0 - Alexander Galazin 2016/09/23 1071e5c31af7Sopenharmony_ci 1072e5c31af7Sopenharmony_ci Moved the contents to README.md. 1073e5c31af7Sopenharmony_ci Updated to reflect new CTS structure and build instructions. 1074e5c31af7Sopenharmony_ci 1075e5c31af7Sopenharmony_ci- 2.1 - Alexander Galazin 2016/12/15 1076e5c31af7Sopenharmony_ci 1077e5c31af7Sopenharmony_ci Updates in preparation for the new release. 1078e5c31af7Sopenharmony_ci Document restructuring, more detailed process of creating a submission package. 1079e5c31af7Sopenharmony_ci Incorporated OpenGL/CTS issue 39 and 40 in the Passing Criteria. 1080