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

2018-04-26 Thread Neil Roberts
Neil Roberts  writes:

> 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 what it’s worth, I went ahead and made a start on making the
generated tests work with VkRunner. There is a branch for it here:

https://github.com/Igalia/piglit/tree/nroberts/vulkan-generated-tests

It adapts the builtin_function tests to generate SPIR-V directly. It
does all of the stages except compute shaders because I haven’t added
support for images or SSBOs yet so there’s no way to store the results.
With the branch there are now 2537 tests in the tests/vulkan profile.

- Neil


signature.asc
Description: PGP signature
___
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit


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

2018-04-05 Thread Neil Roberts
The sixth patch seems to have gotten stuck in the moderator queue for
being too big. In the meantime I’ve also pushed a branch here:

https://github.com/Igalia/piglit/commits/nroberts/vkrunner

- Neil

Neil Roberts  writes:

> 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 +
>  

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

2018-04-04 Thread Neil Roberts
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