Update Vulkan CTS README
authorPyry Haulos <phaulos@google.com>
Fri, 15 Jan 2016 22:09:56 +0000 (14:09 -0800)
committerPyry Haulos <phaulos@google.com>
Fri, 15 Jan 2016 22:09:56 +0000 (14:09 -0800)
 * Build instructions for Windows, Linux, and Android
 * Command line options for official CTS runs
 * Other misc improvements

external/vulkancts/README.md

index 356faf0..5320213 100644 (file)
@@ -3,7 +3,7 @@ Vulkan CTS README
 
 This document describes how to build and run Vulkan Conformance Test suite.
 
-Vulkan CTS is built on dEQP framework. General dEQP documentation is available
+Vulkan CTS is built on dEQP framework. dEQP documentation is available
 at http://source.android.com/devices/graphics/testing.html
 
 
@@ -16,14 +16,24 @@ Common:
  * CMake 2.8 or newer
 
 Win32:
- * Visual Studio 2013 (glslang uses several C++11 features)
+ * Visual Studio 2013 or newer (glslang uses several C++11 features)
 
 Linux:
  * Standard toolchain (make, gcc/clang)
 
+Android:
+ * Android NDK r10e
+ * Android SDK with following packages:
+   + SDK Tools
+   + SDK Platform-tools
+   + SDK Build-tools
+   + API 22
+ * Apache Ant
+ * Windows: either NMake or JOM in PATH
+
 
-Building
---------
+Building CTS
+------------
 
 To build dEQP, you need first to download sources for zlib, libpng, glslang,
 and spirv-tools.
@@ -38,24 +48,95 @@ 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.
+
+
+Windows x86-32:
+
+       > cmake <path to vulkancts> -G"Visual Studio 12"
+       > start dEQP-Core-default.sln
+
+
+Windows x86-64:
+
+       > cmake <path to vulkancts> -G"Visual Studio 12 Win64"
+       > start dEQP-Core-default.sln
+
+
+Linux 32-bit Debug:
+
+       $ cmake <path to vulkancts> -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32
+       $ make -j
+
+Release build can be done by using -DCMAKE_BUILD_TYPE=Release
+
+
+Linux 64-bit Debug:
+
+       $ cmake <path to vulkancts> -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-m64 -DCMAKE_CXX_FLAGS=-m64
+       $ make -j
+
+
+Android:
+
+       $ python android/scripts/build.py
+       $ python android/scripts/install.py
+
+
+Building Mustpass
+-----------------
+
+Vulkan CTS mustpass can be built by running:
+
+       $ python <vulkancts>/external/vulkancts/build_mustpass.py
+
+
+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-log-images=disable
+
+In addition on multi-device systems the device for which conformance is claimed
+can be selected with:
+
+       --deqp-vk-device-id=<value>
+
+No other command line options are allowed.
 
-Running
--------
 
 Win32:
 
-> cd builddir/external/vulkancts/modules/vulkan
-> Debug/deqp-vk.exe
+       > cd <builddir>/external/vulkancts/modules/vulkan
+       > Debug/deqp-vk.exe --deqp-caselist-file=...
+
+Test log will be written into TestResults.qpa
+
 
 Linux:
 
-$ cd builddir/external/vulkancts/modules/vulkan
-$ ./deqp-vk
+       $ cd <builddir>/external/vulkancts/modules/vulkan
+       $ ./deqp-vk --deqp-vk-caselist-file=...
+
 
 Android:
 
-Using Cherry is recommended. Alternatively you can follow instructions at
-http://source.android.com/devices/graphics/run-tests.html
+       $ adb push <vulkancts>/external/vulkancts/mustpass/1.0.0/vk-default.txt /sdcard/vk-default.txt
+       $ adb shell
+
+In device shell:
+
+       $ am start -n com.drawelements.deqp/android.app.NativeActivity -es cmdLine "deqp --deqp-caselist-file=/sdcard/vk-default.txt --deqp-log-images=disable --deqp-log-filename=/sdcard/TestResults.qpa"
+
+Process can be followed by running:
+
+       $ adb logcat -s dEQP
+
+Test log will be written into /sdcard/TestResults.qpa
 
 
 Pre-compiling SPIR-V binaries
@@ -64,7 +145,7 @@ 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:
 
-$ python external/vulkancts/build_spirv_binaries.py
+       $ python external/vulkancts/build_spirv_binaries.py
 
 Binaries will be written to external/vulkancts/data/vulkan/prebuilt/.
 
@@ -106,11 +187,11 @@ test packages.
 In cherry/testrunner.go, add following line to testPackageDescriptors list
 (line 608 in NewTestRunner function):
 
-{"dEQP-VK", "deqp-vk", "../external/vulkancts/modules/vulkan", dataDir + "dEQP-VK-cases.xml"},
+       {"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:
 
-$ python scripts/build_caselists.py path/to/cherry/data
+       $ python scripts/build_caselists.py path/to/cherry/data
 
 Cherry must be restarted for the case list update to take effect.