Add CTS_ARB_sparse_texture_clamp test specification proposal
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / README.md
index 0cf90d3..88df950 100644 (file)
@@ -26,11 +26,15 @@ Requirements
 
 ### Android
 
- * Android NDK r10e
+ * Android NDK r11
  * Android SDK with: SDK Tools, SDK Platform-tools, SDK Build-tools, and API 22
+ * Java Development Kit (JDK)
  * Apache Ant
  * Windows: either NMake or JOM in PATH
 
+See `android/scripts/common.py` for a list locations where the build system
+expects to find these.
+
 
 Building CTS
 ------------
@@ -45,9 +49,6 @@ To download sources, run:
 You may need to re-run `fetch_sources.py` to update to the latest glslang and
 spirv-tools revisions occasionally.
 
-NOTE: glslang integration is not yet available on Android due to a toolchain
-bug, so pre-compiled SPIR-V binaries must be used. See instructions below.
-
 With CMake out-of-source builds are always recommended. Create a build directory
 of your choosing, and in that directory generate Makefiles or IDE project
 using cmake.
@@ -99,7 +100,7 @@ Building Mustpass
 
 Current mustpass is checked into repository and can be found at:
 
-       external/vulkancts/mustpass/1.0.0/vk-default.txt
+       external/vulkancts/mustpass/1.0.2/vk-default.txt
 
 Vulkan CTS mustpass can be re-generated by running:
 
@@ -110,9 +111,9 @@ Pre-compiling SPIR-V binaries
 -----------------------------
 
 For distribution, and platforms that don't support GLSL to SPIR-V compilation,
-SPIR-V binaries must be pre-built with following command:
+SPIR-V binaries can be pre-built with following command:
 
-       python external/vulkancts/build_spirv_binaries.py
+       python external/vulkancts/scripts/build_spirv_binaries.py
 
 Binaries will be written to `external/vulkancts/data/vulkan/prebuilt/`.
 
@@ -125,7 +126,7 @@ Running CTS
 
 Following command line options MUST be used when running CTS:
 
-       --deqp-caselist-file=<vulkancts>/external/vulkancts/mustpass/1.0.0/vk-default.txt
+       --deqp-caselist-file=<vulkancts>/external/vulkancts/mustpass/1.0.2/vk-default.txt
        --deqp-log-images=disable
        --deqp-log-shader-sources=disable
 
@@ -160,7 +161,7 @@ Test log will be written into TestResults.qpa
 
 ### Android
 
-       adb push <vulkancts>/external/vulkancts/mustpass/1.0.0/vk-default.txt /sdcard/vk-default.txt
+       adb push <vulkancts>/external/vulkancts/mustpass/1.0.2/vk-default.txt /sdcard/vk-default.txt
        adb shell
 
 In device shell:
@@ -223,7 +224,7 @@ if `vk::Platform::describePlatform()` is implemented.
 If the submission package covers multiple products, you can list them by appending
 additional `PRODUCT:` lines to the conformance statement. For example:
 
-       CONFORM_VERSION:         vulkan-cts-1.0.0.2
+       CONFORM_VERSION:         vulkan-cts-1.0.2.0
        PRODUCT:                 Product A
        PRODUCT:                 Product B
        ...
@@ -282,11 +283,11 @@ codes are allowed:
        QualityWarning
        CompatibilityWarning
 
-Submission package can be verified using `external/vulkancts/verify_submission.py`
+Submission package can be verified using `external/vulkancts/scripts/verify_submission.py`
 script. The script takes two arguments: path to extracted submission package
 and path to current mustpass list. For example:
 
-       python external/vulkancts/verify_submission.py VK_10_Khronos_1/ external/vulkancts/mustpass/1.0.0/vk-default.txt
+       python external/vulkancts/scripts/verify_submission.py VK_10_Khronos_1/ external/vulkancts/mustpass/1.0.2/vk-default.txt
 
 
 Vulkan platform port
@@ -299,6 +300,11 @@ See `framework/common/tcuPlatform.hpp` and examples in
 `framework/platform/win32/tcuWin32Platform.cpp` and
 `framework/platform/android/tcuAndroidPlatform.cpp`.
 
+If any WSI extensions are supported, platform port must also implement
+methods for creating native display (`vk::Platform::createWsiDisplay`)
+and window handles (`vk::wsi::Display::createWindow`). Otherwise tests
+under `dEQP-VK.wsi` will fail.
+
 
 Null (dummy) driver
 -------------------
@@ -309,6 +315,24 @@ vkNullDriver.cpp. To use that, implement `vk::Platform::createLibrary()` with
 `vk::createNullDriver()`.
 
 
+Validation Layers
+-----------------
+
+Vulkan CTS framework includes first-party support for validation layers, that
+can be turned on with `--deqp-validation=enable` command line option.
+
+When validation is turned on, default instance and device will be created with
+validation layers enabled and debug callback is registered to record any
+messages. Debug messages collected during test execution will be included at
+the end of the test case log.
+
+If any validation errors are found, test result will be set to `InternalError`.
+
+By default `VK_DEBUG_REPORT_INFORMATION_BIT_EXT` and `_DEBUG_BIT_EXT` messages
+are excluded from the log, but that can be customized by modifying
+`vkt::TestCaseExecutor::deinit()` in `vktTestPackage.cpp`.
+
+
 Cherry GUI
 ----------
 
@@ -317,14 +341,6 @@ analysis). Cherry is available at
 https://android.googlesource.com/platform/external/cherry. Please follow
 instructions in README to get started.
 
-To enable support for Vulkan tests, dEQP-VK module must be added to list of
-test packages.
-
-In `cherry/testrunner.go`, add following line to `testPackageDescriptors` list
-(line 645 in `NewTestRunner` function):
-
-       {"dEQP-VK", "deqp-vk", "../external/vulkancts/modules/vulkan", dataDir + "dEQP-VK-cases.xml"},
-
 Before first launch, and every time test hierarchy has been modified, test
 case list must be refreshed by running: