[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