[Piglit] [PATCH 00/25] ARB_gl_spirv: support for loading SPIR-V binaries, plus first set of tests

Alejandro Piñeiro apinheiro at igalia.com
Tue Apr 17 14:37:06 UTC 2018


Hi,

this is the first series of piglit testing for the ongoing support for
ARB_gl_spirv. This series adds shader_runner the support to load
SPIR-V binaries, so the same shader_test can be used in most cases for
GLSL or SPIR-V. The main focus of this series is providing testing for
uniforms, specifically for those cases enabled by the mesa series that
has been just sent to mesa-dev, although there are some extras. So
this series allow the testing of the following:

   * Basic cases: not uniforms, just some stages.

   * Uniforms: specifically "just uniforms". It includes the simple
     cases, plus arrays, arrays of arrays, structs, matrices, images
     and samplers. But it doesn't include testing for atomic counter
     uniforms, UBOs, SSBOs etc.

   * Shader specializations constants: this is a new feature coming
     from ARB_gl_spirv.

Note (specially to Nicolai) that the focus of this series is provide
specific barebone tests for ARB_gl_spirv, while original Nicolai's
series was more focused on re-using tests from other specs. We think
that using or not those borrowed tests, and how to use them, need some
discussion first (as mentioned on last FOSDEM). We will send a RFC
soon about that.

The tree for this series can be found on the following repository:

   * https://github.com/Igalia/piglit/tree/arb_gl_spirv-series1-uniforms-v1

And the mesa series mentioned:

   * https://github.com/Igalia/mesa/tree/arb_gl_spirv-series2-uniforms-v1


Alejandro Piñeiro (10):
  framework: add --glsl option
  shader_runner/spirv: add vertex shader passthrough support on SPIR-V
  shader_runner: debug prints if running on SPIR-V mode.
  arb_gl_spirv: add really simple execution test
  arb_gl_spirv: add basic test with two uniforms
  arb_gl_spirv: add a small test with an array of uniforms
  arb_gl_spirv: add execution test for multi-dimensional (aoa) uniform
  arb_gl_spirv: uniform sampler2D
  arb_gl_spirv: add two linking tests for uniform multisample images
  arb_gl_spirv: add cross-stage uniform checking tests

Neil Roberts (12):
  util: Add a utility to stream data through an external process
  shader_runner/spirv: Add support for SPIR-V specializations
  arb_gl_spirv: Add a test using specializations
  arb_gl_spirv: Add tests for sampler2D uniform binding initialisers
  arb_gl_spirv: Add a test for a sampler within a struct
  arb_gl_spirv: Add a test for nonconst array of sampler structs
  arb_gl_spirv: Add 4 tests for uniform initializers
  arb_gl_spirv: Add a test for non-sequential explicit uniform locations
  arb_gl_spirv: Add a test for a struct uniform
  arb_gl_spirv: Add a test for a uniform struct with struct members
  arb_gl_spirv: Add a test for an array of structs uniform
  arb_gl_spirv: Add a fiddly test for uniform index calculation

Nicolai Hähnle (3):
  shader_runner/spirv: support loading SPIR-V shaders
  arb_gl_spirv: basic uniform test with names still present
  arb_gl_spirv: add basic uniform test without names

 framework/options.py                               |   1 +
 framework/programs/run.py                          |   6 +
 framework/test/shader_test.py                      |   6 +-
 tests/shaders/shader_runner.c                      | 460 ++++++++++++++++++++-
 tests/shaders/shader_runner_vs_passthrough_spv.h   |  45 ++
 .../execution/uniform/array.shader_test            | 137 ++++++
 .../execution/uniform/arrays-of-arrays.shader_test |  77 ++++
 .../execution/uniform/embedded-structs.shader_test | 151 +++++++
 .../uniform/index-matches-location.shader_test     | 100 +++++
 .../uniform/initializer-complex.shader_test        | 180 ++++++++
 .../uniform/initializer-dvec4.shader_test          |  68 +++
 .../uniform/initializer-mat4x3.shader_test         |  83 ++++
 .../execution/uniform/initializer.shader_test      |  66 +++
 .../uniform/nonsequential-locations.shader_test    |  69 ++++
 .../uniform/sampler2d-binding-array.shader_test    |  85 ++++
 .../uniform/sampler2d-binding.shader_test          |  70 ++++
 .../sampler2d-nonconst-nested-array.shader_test    | 225 ++++++++++
 .../execution/uniform/sampler2d-struct.shader_test |  98 +++++
 .../execution/uniform/sampler2d.shader_test        |  70 ++++
 .../uniform/simple-without-names.shader_test       | 111 +++++
 .../execution/uniform/simple.shader_test           | 124 ++++++
 .../execution/uniform/struct-array.shader_test     | 140 +++++++
 .../execution/uniform/struct.shader_test           |  79 ++++
 .../execution/uniform/two-uniforms.shader_test     | 132 ++++++
 .../execution/vs-ps-simple.shader_test             | 119 ++++++
 .../execution/vs-ps-specializations.shader_test    | 181 ++++++++
 .../different-uniform-array-size.shader_test       | 130 ++++++
 .../uniform/different-uniform-type.shader_test     | 129 ++++++
 .../linker/uniform/multisampler-array.shader_test  |  68 +++
 .../linker/uniform/multisampler.shader_test        |  67 +++
 tests/util/CMakeLists.txt                          |   1 +
 tests/util/piglit-subprocess.c                     | 207 ++++++++++
 tests/util/piglit-subprocess.h                     |  44 ++
 33 files changed, 3518 insertions(+), 11 deletions(-)
 create mode 100644 tests/shaders/shader_runner_vs_passthrough_spv.h
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/array.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/arrays-of-arrays.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/embedded-structs.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/index-matches-location.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/initializer-complex.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/initializer-dvec4.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/initializer-mat4x3.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/initializer.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/nonsequential-locations.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/sampler2d-binding-array.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/sampler2d-binding.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/sampler2d-nonconst-nested-array.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/sampler2d-struct.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/sampler2d.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/simple-without-names.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/simple.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/struct-array.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/struct.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/uniform/two-uniforms.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/vs-ps-simple.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/execution/vs-ps-specializations.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/linker/uniform/different-uniform-array-size.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/linker/uniform/different-uniform-type.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/linker/uniform/multisampler-array.shader_test
 create mode 100644 tests/spec/arb_gl_spirv/linker/uniform/multisampler.shader_test
 create mode 100644 tests/util/piglit-subprocess.c
 create mode 100644 tests/util/piglit-subprocess.h

-- 
2.14.1



More information about the Piglit mailing list