On 03/29/2017 05:51 PM, Nicolai Hähnle wrote:
On 28.03.2017 00:05, Samuel Pitoiset wrote:
Hi,

This series introduces some tests for ARB_bindless_texture. The series
has been splitted into 4 different parts to try to help reviewers because
it's a bunch of new code.

Although this seems huge at first look, I don't cover 100% of the spec
but I think it's time to have some feedbacks. What I have in mind is to
add few more tests like one for seamless cubemap and at least one which
uses both bindless/bound samplers/images.

I tested the series with the NVIDIA blob (378-13-4 on ArchLinux), here's
the list of fails:

$ ./piglit-run.py -v -1 tests/all.py -t arb_bindless_texture
nvidia-bindless

fail:
spec/arb_bindless_texture/linker/global_bindless_sampler_and_implicit_bound_sampler

fail:
spec/arb_bindless_texture/linker/global_bindless_image_and_implicit_bound_image


I don't think those two tests are valid. At least the quoted spec
language doesn't support it.

It's not clear to me whether the global default of bindless should apply
to the uniform declared in the other compilation unit, but even if it
doesn't, the spec language only calls for an error if there are
conflicting *explicit* specifications.

It was unclear to me as well. I will remove those two tests.



fail:
spec/arb_bindless_texture/linker/global_bindless_image_and_bound_image
fail:
spec/arb_bindless_texture/linker/global_bindless_sampler_and_bound_sampler


Those fail with the NVIDIA blob, I think they are valid though. Any
ideas?

I agree they're valid.

Ok.

However, the NVIDIA blob reports a compile-time error if both bindless_sampler and bound_sampler are declared at global scope in the same shader. I tried a bunch of different things, I can't generate a link-time error with NVIDIA.



fail: spec/arb_bindless_texture/compiler/images/return.frag

No ideas why the NVIDIA blob doesn't allow this, it should be valid I
think.

I also agree this should be valid. What's the error given by the blob?

 0:18(19): error: function `f' return type has qualifier

Actually, I think this one is wrong. The GLSL spec says :

"No qualifier is allowed on the return type of a function".

I removed it as well as samplers/return.frag.



fail: spec/arb_bindless_texture/compiler/images/explicit-conversions.vert

The NVIDIA blob looks buggy here.

Agreed.


fail: spec/arb_bindless_texture/compiler/images/output.frag
fail: spec/arb_bindless_texture/compiler/samplers/output.frag

Although it's dumb to declare shader outputs inside fragment shaders,
the NVIDIA blob allows this.

... and the spec forbids it, so I'd say the test is good.


fail: spec/arb_bindless_texture/compiler/images/input.frag
fail: spec/arb_bindless_texture/compiler/samplers/input.frag

The NVIDIA blob doesn't seem to require the 'flat' qualifier.

Test looks good.


fail: spec/arb_bindless_texture/errors
fail: spec/arb_bindless_texture/handles

The NVIDIA blob returns GL_INVALID_OPERATION instead of
GL_INVALID_VALUE when
the texture object doesn't exist.

Wouldn't be the first time for this kind of bug.

I didn't really look into the patches in any detail, just the conflicts
you mentioned above, but thanks for tackling this!

Thanks for your feedbacks!

Cheers,
Samuel.


Cheers,
Nicolai


Feedbacks are welcome,
Please review, Thanks!

Samuel Pitoiset (5):
  shader_runner: add support for ARB_bindless_texture
  add API-related tests for ARB_bindless_texture
  arb_bindless_texture: add compiler-related tests
  arb_bindless_texture: add linker-related tests
  arb_bindless_texture: add execution-related tests

 tests/all.py                                       |  14 +
 tests/shaders/shader_runner.c                      |  92 ++++
 tests/spec/CMakeLists.txt                          |   1 +
 tests/spec/arb_bindless_texture/CMakeLists.gl.txt  |  21 +
 tests/spec/arb_bindless_texture/CMakeLists.txt     |   1 +
 tests/spec/arb_bindless_texture/border-color.c     | 209 ++++++++
 .../compiler/images/arith-expr.vert                |  32 ++
 .../compiler/images/bindless-global.vert           |  25 +
 .../compiler/images/bindless-local.vert            |  25 +
 .../compiler/images/bindless-nonuniform.vert       |  23 +
 .../compiler/images/bound-global.vert              |  25 +
 .../compiler/images/bound-local.vert               |  25 +
 .../compiler/images/bound-nonuniform.vert          |  23 +
 .../compiler/images/explicit-conversions.vert      |  86 +++
 .../compiler/images/flat-input.frag                |  28 +
 .../compiler/images/implicit_conversions.vert      |  22 +
 .../compiler/images/indexing.vert                  |  30 ++
 .../compiler/images/inout-struct.frag              |  29 ++
 .../compiler/images/inout.frag                     |  24 +
 .../compiler/images/input.frag                     |  28 +
 .../compiler/images/input.vert                     |  25 +
 .../compiler/images/interface-block.vert           |  27 +
 .../compiler/images/out-struct.frag                |  29 ++
 .../arb_bindless_texture/compiler/images/out.frag  |  24 +
 .../compiler/images/output.frag                    |  22 +
 .../compiler/images/output.vert                    |  24 +
 .../compiler/images/return-struct.frag             |  32 ++
 .../compiler/images/return.frag                    |  26 +
 .../compiler/images/temporary.vert                 |  21 +
 .../compiler/samplers/arith-expr.vert              |  31 ++
 .../compiler/samplers/bindless-global.vert         |  24 +
 .../compiler/samplers/bindless-local.vert          |  24 +
 .../compiler/samplers/bindless-nonuniform.vert     |  22 +
 .../compiler/samplers/bound-global.vert            |  24 +
 .../compiler/samplers/bound-local.vert             |  24 +
 .../compiler/samplers/bound-nonuniform.vert        |  22 +
 .../compiler/samplers/explicit-conversions.vert    | 114 ++++
 .../compiler/samplers/flat-input.frag              |  27 +
 .../compiler/samplers/implicit-conversions.vert    |  21 +
 .../compiler/samplers/indexing.vert                |  29 ++
 .../compiler/samplers/inout-struct.frag            |  28 +
 .../compiler/samplers/inout.frag                   |  23 +
 .../compiler/samplers/input.frag                   |  27 +
 .../compiler/samplers/input.vert                   |  24 +
 .../compiler/samplers/interface-block.vert         |  26 +
 .../compiler/samplers/out-struct.frag              |  28 +
 .../compiler/samplers/out.frag                     |  23 +
 .../compiler/samplers/output.frag                  |  21 +
 .../compiler/samplers/output.vert                  |  23 +
 .../compiler/samplers/return-struct.frag           |  31 ++
 .../compiler/samplers/return.frag                  |  25 +
 .../compiler/samplers/temporary.vert               |  20 +
 tests/spec/arb_bindless_texture/conversions.c      | 280 ++++++++++
 tests/spec/arb_bindless_texture/errors.c           | 514
++++++++++++++++++
 .../execution/basic-image.shader_test              |  52 ++
 .../execution/basic-texture.shader_test            |  26 +
 .../execution/basic-vertex.shader_test             |  41 ++
 tests/spec/arb_bindless_texture/handles.c          | 576
+++++++++++++++++++++
 tests/spec/arb_bindless_texture/illegal.c          | 331 ++++++++++++
 tests/spec/arb_bindless_texture/legal.c            | 259 +++++++++
 tests/spec/arb_bindless_texture/limit.c            | 302 +++++++++++
 ...obal_bindless_image_and_bound_image.shader_test |  42 ++
 ...al_bindless_image_and_bound_sampler.shader_test |  32 ++
 ...less_image_and_implicit_bound_image.shader_test |  45 ++
 ...bindless_sampler_and_bindless_image.shader_test |  32 ++
 ...al_bindless_sampler_and_bound_image.shader_test |  32 ++
 ..._bindless_sampler_and_bound_sampler.shader_test |  39 ++
 ..._sampler_and_implicit_bound_sampler.shader_test |  42 ++
 ...lobal_bound_sampler_and_bound_image.shader_test |  32 ++
 tests/spec/arb_bindless_texture/uint64_attribs.c   |  96 ++++
 tests/spec/arb_bindless_texture/uniform.c          | 371 +++++++++++++
 71 files changed, 4798 insertions(+)
 create mode 100644 tests/spec/arb_bindless_texture/CMakeLists.gl.txt
 create mode 100644 tests/spec/arb_bindless_texture/CMakeLists.txt
 create mode 100644 tests/spec/arb_bindless_texture/border-color.c
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/arith-expr.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/bindless-global.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/bindless-local.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/bindless-nonuniform.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/bound-global.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/bound-local.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/bound-nonuniform.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/explicit-conversions.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/flat-input.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/implicit_conversions.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/indexing.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/inout-struct.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/inout.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/input.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/input.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/interface-block.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/out-struct.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/out.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/output.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/output.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/return-struct.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/return.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/images/temporary.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/arith-expr.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/bindless-global.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/bindless-local.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/bindless-nonuniform.vert

 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/bound-global.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/bound-local.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/bound-nonuniform.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/explicit-conversions.vert

 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/flat-input.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/implicit-conversions.vert

 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/indexing.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/inout-struct.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/inout.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/input.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/input.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/interface-block.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/out-struct.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/out.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/output.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/output.vert
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/return-struct.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/return.frag
 create mode 100644
tests/spec/arb_bindless_texture/compiler/samplers/temporary.vert
 create mode 100644 tests/spec/arb_bindless_texture/conversions.c
 create mode 100644 tests/spec/arb_bindless_texture/errors.c
 create mode 100644
tests/spec/arb_bindless_texture/execution/basic-image.shader_test
 create mode 100644
tests/spec/arb_bindless_texture/execution/basic-texture.shader_test
 create mode 100644
tests/spec/arb_bindless_texture/execution/basic-vertex.shader_test
 create mode 100644 tests/spec/arb_bindless_texture/handles.c
 create mode 100644 tests/spec/arb_bindless_texture/illegal.c
 create mode 100644 tests/spec/arb_bindless_texture/legal.c
 create mode 100644 tests/spec/arb_bindless_texture/limit.c
 create mode 100644
tests/spec/arb_bindless_texture/linker/global_bindless_image_and_bound_image.shader_test

 create mode 100644
tests/spec/arb_bindless_texture/linker/global_bindless_image_and_bound_sampler.shader_test

 create mode 100644
tests/spec/arb_bindless_texture/linker/global_bindless_image_and_implicit_bound_image.shader_test

 create mode 100644
tests/spec/arb_bindless_texture/linker/global_bindless_sampler_and_bindless_image.shader_test

 create mode 100644
tests/spec/arb_bindless_texture/linker/global_bindless_sampler_and_bound_image.shader_test

 create mode 100644
tests/spec/arb_bindless_texture/linker/global_bindless_sampler_and_bound_sampler.shader_test

 create mode 100644
tests/spec/arb_bindless_texture/linker/global_bindless_sampler_and_implicit_bound_sampler.shader_test

 create mode 100644
tests/spec/arb_bindless_texture/linker/global_bound_sampler_and_bound_image.shader_test

 create mode 100644 tests/spec/arb_bindless_texture/uint64_attribs.c
 create mode 100644 tests/spec/arb_bindless_texture/uniform.c



_______________________________________________
Piglit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to