[Piglit] [PATCH 0/8] Vulkan testing with VkRunner

Neil Roberts nroberts at igalia.com
Wed Apr 4 22:56:47 UTC 2018


This series sets up a framework for testing Vulkan in Piglit. The main
thing is to import a tool like shader_runner called VkRunner. There
are also 5 actual tests which mainly serve as examples.

The code for VkRunner was developed as a standalone project here:

https://github.com/igalia/vkrunner

If this branch gets merged it would probably make sense to abandon
that repo and have Piglit as the canonical source for the code.

Eventually we could probably get a lot of testing fairly cheaply by
modifying some of the generated_tests scripts to also generate Vulkan
tests. It might even be worth semi-automatically converting existing
GL shader tests using something similar to the script on the
GL_ARB_gl_spirv branch.

For a general overview of VkRunner you might like to take a look at
this blog post:

https://blogs.igalia.com/nroberts/2018/04/03/vkrunner-a-shader-test-tool-for-vulkan/

Neil Roberts (8):
  util: Add a PIGLIT_STRINGIFY macro
  util: Add a piglit_fatal utility
  util: Add a libutil_vulkan library
  util: Move the half float functions from util-gl to util
  framework: Add a Vulkan platform
  Import VkRunner
  framework: Add a vulkan tests profile
  vulkan: Add some tests for glsl450 builtin functions using doubles

 CMakeLists.txt                                     |    7 +
 cmake/piglit_util.cmake                            |    2 +-
 cmake/target_api/CMakeLists.txt                    |    4 +
 cmake/target_api/vulkan/CMakeLists.txt             |   10 +
 framework/test/vk_shader_test.py                   |   39 +
 tests/CMakeLists.txt                               |    4 +
 tests/util/CMakeLists.vulkan.txt                   |   15 +
 tests/util/piglit-util-gl.c                        |   90 --
 tests/util/piglit-util-gl.h                        |   29 -
 tests/util/piglit-util-vulkan.c                    |    1 +
 tests/util/piglit-util.c                           |  105 ++
 tests/util/piglit-util.h                           |   32 +
 tests/vulkan.py                                    |   30 +
 tests/vulkan/CMakeLists.txt                        |    1 +
 .../glsl450/face-forward-double.vk_shader_test     |   88 ++
 tests/vulkan/glsl450/frexp-double.vk_shader_test   |   61 +
 tests/vulkan/glsl450/isinf-double.vk_shader_test   |   81 +
 tests/vulkan/glsl450/reflect-double.vk_shader_test |   55 +
 tests/vulkan/glsl450/refract-double.vk_shader_test |   88 ++
 tests/vulkan/vkrunner/CMakeLists.txt               |    1 +
 tests/vulkan/vkrunner/CMakeLists.vulkan.txt        |   46 +
 tests/vulkan/vkrunner/README.md                    |  125 ++
 tests/vulkan/vkrunner/main.c                       |  160 ++
 tests/vulkan/vkrunner/make-formats.py              |   93 ++
 tests/vulkan/vkrunner/vr-allocate-store.c          |  181 +++
 tests/vulkan/vkrunner/vr-allocate-store.h          |   48 +
 tests/vulkan/vkrunner/vr-buffer.c                  |   87 ++
 tests/vulkan/vkrunner/vr-buffer.h                  |   73 +
 tests/vulkan/vkrunner/vr-config.c                  |  117 ++
 tests/vulkan/vkrunner/vr-config.h                  |   49 +
 tests/vulkan/vkrunner/vr-error-message.c           |   41 +
 tests/vulkan/vkrunner/vr-error-message.h           |   35 +
 tests/vulkan/vkrunner/vr-feature-offsets.c         |   92 ++
 tests/vulkan/vkrunner/vr-feature-offsets.h         |   39 +
 tests/vulkan/vkrunner/vr-flush-memory.c            |   52 +
 tests/vulkan/vkrunner/vr-flush-memory.h            |   37 +
 tests/vulkan/vkrunner/vr-format-table.h            | 1580 ++++++++++++++++++++
 tests/vulkan/vkrunner/vr-format.c                  |  289 ++++
 tests/vulkan/vkrunner/vr-format.h                  |   86 ++
 tests/vulkan/vkrunner/vr-list.c                    |   89 ++
 tests/vulkan/vkrunner/vr-list.h                    |  122 ++
 tests/vulkan/vkrunner/vr-pipeline.c                |  668 +++++++++
 tests/vulkan/vkrunner/vr-pipeline.h                |   54 +
 tests/vulkan/vkrunner/vr-script.c                  |  948 ++++++++++++
 tests/vulkan/vkrunner/vr-script.h                  |  146 ++
 tests/vulkan/vkrunner/vr-subprocess.c              |   61 +
 tests/vulkan/vkrunner/vr-subprocess.h              |   34 +
 tests/vulkan/vkrunner/vr-test.c                    |  569 +++++++
 tests/vulkan/vkrunner/vr-test.h                    |   40 +
 tests/vulkan/vkrunner/vr-vbo.c                     |  637 ++++++++
 tests/vulkan/vkrunner/vr-vbo.h                     |   77 +
 tests/vulkan/vkrunner/vr-vk-core-funcs.h           |    1 +
 tests/vulkan/vkrunner/vr-vk-device-funcs.h         |   56 +
 tests/vulkan/vkrunner/vr-vk-instance-funcs.h       |    9 +
 tests/vulkan/vkrunner/vr-vk.c                      |  148 ++
 tests/vulkan/vkrunner/vr-vk.h                      |   56 +
 tests/vulkan/vkrunner/vr-window.c                  |  678 +++++++++
 tests/vulkan/vkrunner/vr-window.h                  |   73 +
 58 files changed, 8319 insertions(+), 120 deletions(-)
 create mode 100644 cmake/target_api/vulkan/CMakeLists.txt
 create mode 100644 framework/test/vk_shader_test.py
 create mode 100644 tests/util/CMakeLists.vulkan.txt
 create mode 100644 tests/util/piglit-util-vulkan.c
 create mode 100644 tests/vulkan.py
 create mode 100644 tests/vulkan/CMakeLists.txt
 create mode 100644 tests/vulkan/glsl450/face-forward-double.vk_shader_test
 create mode 100644 tests/vulkan/glsl450/frexp-double.vk_shader_test
 create mode 100644 tests/vulkan/glsl450/isinf-double.vk_shader_test
 create mode 100644 tests/vulkan/glsl450/reflect-double.vk_shader_test
 create mode 100644 tests/vulkan/glsl450/refract-double.vk_shader_test
 create mode 100644 tests/vulkan/vkrunner/CMakeLists.txt
 create mode 100644 tests/vulkan/vkrunner/CMakeLists.vulkan.txt
 create mode 100644 tests/vulkan/vkrunner/README.md
 create mode 100644 tests/vulkan/vkrunner/main.c
 create mode 100755 tests/vulkan/vkrunner/make-formats.py
 create mode 100644 tests/vulkan/vkrunner/vr-allocate-store.c
 create mode 100644 tests/vulkan/vkrunner/vr-allocate-store.h
 create mode 100644 tests/vulkan/vkrunner/vr-buffer.c
 create mode 100644 tests/vulkan/vkrunner/vr-buffer.h
 create mode 100644 tests/vulkan/vkrunner/vr-config.c
 create mode 100644 tests/vulkan/vkrunner/vr-config.h
 create mode 100644 tests/vulkan/vkrunner/vr-error-message.c
 create mode 100644 tests/vulkan/vkrunner/vr-error-message.h
 create mode 100644 tests/vulkan/vkrunner/vr-feature-offsets.c
 create mode 100644 tests/vulkan/vkrunner/vr-feature-offsets.h
 create mode 100644 tests/vulkan/vkrunner/vr-flush-memory.c
 create mode 100644 tests/vulkan/vkrunner/vr-flush-memory.h
 create mode 100644 tests/vulkan/vkrunner/vr-format-table.h
 create mode 100644 tests/vulkan/vkrunner/vr-format.c
 create mode 100644 tests/vulkan/vkrunner/vr-format.h
 create mode 100644 tests/vulkan/vkrunner/vr-list.c
 create mode 100644 tests/vulkan/vkrunner/vr-list.h
 create mode 100644 tests/vulkan/vkrunner/vr-pipeline.c
 create mode 100644 tests/vulkan/vkrunner/vr-pipeline.h
 create mode 100644 tests/vulkan/vkrunner/vr-script.c
 create mode 100644 tests/vulkan/vkrunner/vr-script.h
 create mode 100644 tests/vulkan/vkrunner/vr-subprocess.c
 create mode 100644 tests/vulkan/vkrunner/vr-subprocess.h
 create mode 100644 tests/vulkan/vkrunner/vr-test.c
 create mode 100644 tests/vulkan/vkrunner/vr-test.h
 create mode 100644 tests/vulkan/vkrunner/vr-vbo.c
 create mode 100644 tests/vulkan/vkrunner/vr-vbo.h
 create mode 100644 tests/vulkan/vkrunner/vr-vk-core-funcs.h
 create mode 100644 tests/vulkan/vkrunner/vr-vk-device-funcs.h
 create mode 100644 tests/vulkan/vkrunner/vr-vk-instance-funcs.h
 create mode 100644 tests/vulkan/vkrunner/vr-vk.c
 create mode 100644 tests/vulkan/vkrunner/vr-vk.h
 create mode 100644 tests/vulkan/vkrunner/vr-window.c
 create mode 100644 tests/vulkan/vkrunner/vr-window.h

-- 
2.14.3



More information about the Piglit mailing list