[Piglit] [PATCH 2/6] arb_bindless_texture: add uniform-block-initializer.frag compiler tests

Samuel Pitoiset samuel.pitoiset at gmail.com
Thu Apr 27 07:14:43 UTC 2017



On 04/27/2017 02:20 AM, Timothy Arceri wrote:
> 
> On 27/04/17 08:52, Samuel Pitoiset wrote:
>> "Replace Section 4.1.7 (Samplers), p. 25"
>>
>>      "As uniforms in the default uniform block, samplers may be
>>       initialized only with the OpenGL API; they cannot be declared
>>       with an initializer in a shader."
>>
>> "Replace Section 4.1.X, (Images)"
>>
>>      "As uniforms in the default uniform block, images may be
>>       initialized only with the OpenGL API; they cannot be declared
>>       with an initializer in a shader."
> 
> 
> You are missing the bit to say where you are quoting this text from in 
> this commit message. I know it should be obvious but would be nice to 
> add for completeness.

Yeah, it looked obvious but I can add "The ARB_bindless_texture spec 
says:" for sure. :)

> 
>>
>> Just to be sure samplers/images are not too relaxed when bindless
>> texture is enabled.
>>
>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>> ---
>>   .../compiler/images/uniform-block-initializer.frag | 23 
>> ++++++++++++++++++++++
>>   .../samplers/uniform-block-initializer.frag        | 22 
>> +++++++++++++++++++++
>>   2 files changed, 45 insertions(+)
>>   create mode 100644 
>> tests/spec/arb_bindless_texture/compiler/images/uniform-block-initializer.frag 
>>
>>   create mode 100644 
>> tests/spec/arb_bindless_texture/compiler/samplers/uniform-block-initializer.frag 
>>
>>
>> diff --git 
>> a/tests/spec/arb_bindless_texture/compiler/images/uniform-block-initializer.frag 
>> b/tests/spec/arb_bindless_texture/compiler/images/uniform-block-initializer.frag 
>>
>> new file mode 100644
>> index 000000000..2148ea04a
>> --- /dev/null
>> +++ 
>> b/tests/spec/arb_bindless_texture/compiler/images/uniform-block-initializer.frag 
>>
>> @@ -0,0 +1,23 @@
>> +// [config]
>> +// expect_result: fail
>> +// glsl_version: 3.30
>> +// require_extensions: GL_ARB_bindless_texture 
>> GL_ARB_shader_image_load_store
>> +// [end config]
>> +
>> +#version 330
>> +#extension GL_ARB_bindless_texture: require
>> +#extension GL_ARB_shader_image_load_store: enable
>> +
>> +// The ARB_bindless_texture spec says:
>> +//
>> +//  "Replace Section 4.1.X, (Images)"
>> +//
>> +//  "As uniforms in the default uniform block, images may be initialized
>> +//   only with the OpenGL API; they cannot be declared with an 
>> initializer
>> +//   in a shader."
>> +
>> +writeonly uniform image2D img = 0 > +
>> +void main()
>> +{
>> +}
> 
> I don't really like tests like this. IMO when testing variable/uniforms 
> we should always make sure they are used. There is nothing in the spec 
> that says the uniform cannot be optimised away before validation is 
> done. I'm actually a little surprised that doesn't happen in this case, 
> my feeling is the test would fail on Nvidia where they are very 
> aggressive with optimisations. The spec also doesn't say if this is a 
> link or compile time error.

A compile-time error makes more sense to me.

I will update the test.

> 
> Either way I'd rather have the uniform used.
> 
> 
>> diff --git 
>> a/tests/spec/arb_bindless_texture/compiler/samplers/uniform-block-initializer.frag 
>> b/tests/spec/arb_bindless_texture/compiler/samplers/uniform-block-initializer.frag 
>>
>> new file mode 100644
>> index 000000000..d76ab8442
>> --- /dev/null
>> +++ 
>> b/tests/spec/arb_bindless_texture/compiler/samplers/uniform-block-initializer.frag 
>>
>> @@ -0,0 +1,22 @@
>> +// [config]
>> +// expect_result: fail
>> +// glsl_version: 3.30
>> +// require_extensions: GL_ARB_bindless_texture
>> +// [end config]
>> +
>> +#version 330
>> +#extension GL_ARB_bindless_texture: require
>> +
>> +// The ARB_bindless_texture spec says:
>> +//
>> +//  "Replace Section 4.1.7 (Samplers), p. 25"
>> +//
>> +//  "As uniforms in the default uniform block, samplers may be 
>> initialized
>> +//   only with the OpenGL API; they cannot be declared with an 
>> initializer
>> +//   in a shader."
>> +
>> +uniform sampler2D tex = 0;
>> +
>> +void main()
>> +{
>> +}
>>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list