[Piglit] [PATCH 1/6] arb_bindless_texture: test bound samplers/image with glUniform1i()

Nicolai Hähnle nhaehnle at gmail.com
Fri Apr 28 08:05:22 UTC 2017


On 27.04.2017 22:12, Samuel Pitoiset wrote:
>
>
> On 04/27/2017 10:02 PM, Nicolai Hähnle wrote:
>> On 27.04.2017 00:52, Samuel Pitoiset wrote:
>>> From section 2.14.16 of the ARB_bindless_texture spec:
>>>
>>>     "When used as uniforms in the default block, the value of sampler
>>>      variables may be specified with either Uniform1i{v} or
>>>      UniformHandleui64{v}ARB."
>>>
>>> From section 2.14.X of the ARB_bindless_texture spec:
>>>
>>>     "When used as uniforms in the default block, the value of image
>>>      variables may be specified with either Uniform1i{v} or
>>>      UniformHandleui64{v}ARB."
>>>
>>> This test just ensures that setting a uniform to bound samplers
>>> doesn't report any GL errors.
>>
>> Okay, I'm very confused again. The spec *also* says this:
>>
>>     "These modifiers control whether default-block uniforms of the
>>      corresponding types may have their values set via both
>>      UniformHandle* and Uniform1i (bindless_sampler and bindless_image)
>>      or only via Uniform1i (bound_sampler and bound_image)."
>>
>> Which would actually suggest that the current test is wrong *before*
>> this patch. What's going on here?
>
> Not wrong, but incomplete, yes.
>
> Basically, if my understanding of the spec is correct. The only GL call
> which should report an error is UniformHandle* when a sampler has the
> bound_sampler layout qualifier. That said, we can use UniformHandle* and
> Uniform1i when the bindless_sampler is set and when no layout qualifiers
> are present.

I'd like to get this clarified. My understanding was that, because of:

    "In the absence of these qualifiers, sampler and image uniforms are
     considered "bound"."

The behavior of an explicit bound_sampler uniform and a sampler uniform 
without any such qualifiers should be the same, i.e. UniformHandle* is 
forbidden in both cases.

Cheers,
Nicolai



>
>>
>>
>>>
>>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>>> ---
>>>  tests/spec/arb_bindless_texture/uniform.c | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/tests/spec/arb_bindless_texture/uniform.c
>>> b/tests/spec/arb_bindless_texture/uniform.c
>>> index c4c06df05..1524eb18c 100644
>>> --- a/tests/spec/arb_bindless_texture/uniform.c
>>> +++ b/tests/spec/arb_bindless_texture/uniform.c
>>> @@ -158,6 +158,7 @@
>>> check_UniformHandleui64_with_implicit_bound_sampler(void *data)
>>>       */
>>>      glUniformHandleui64ARB(loc, handle);
>>>      glProgramUniformHandleui64vARB(prog, loc, 1, &handle);
>>> +    glUniform1i(loc, 5);
>>>      if (!piglit_check_gl_error(GL_NO_ERROR))
>>>          return PIGLIT_FAIL;
>>>
>>> @@ -223,6 +224,7 @@
>>> check_UniformHandleui64_with_implicit_bound_image(void *data)
>>>       */
>>>      glUniformHandleui64ARB(loc, handle);
>>>      glProgramUniformHandleui64vARB(prog, loc, 1, &handle);
>>> +    glUniform1i(loc, 5);
>>>      if (!piglit_check_gl_error(GL_NO_ERROR))
>>>          return PIGLIT_FAIL;
>>>
>>>
>>
>>


-- 
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.


More information about the Piglit mailing list