[Piglit] [PATCH 1/6] arb_bindless_texture: test bound samplers/image with glUniform1i()
Samuel Pitoiset
samuel.pitoiset at gmail.com
Fri Apr 28 08:38:12 UTC 2017
On 04/28/2017 10:05 AM, Nicolai Hähnle wrote:
> 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.
To be honest, it was my first thought but after checking against the NV
blob they do accept UniformHandle* with implicit bound samplers. Well,
it's well known that NVIDIA is too permissive so we are probably right.
I will send an email to the spec authors.
>
> 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;
>>>>
>>>>
>>>
>>>
>
>
More information about the Piglit
mailing list