[Piglit] [RFC PATCH 0/5] Add tests for ARB_bindless_texture
Samuel Pitoiset
samuel.pitoiset at gmail.com
Wed Mar 29 16:48:50 UTC 2017
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
>>
>
>
More information about the Piglit
mailing list