[Mesa-dev] [PATCH] mesa/main: TexImage2DMultisample needs to pass OpenGL3.3 conformance test.
Tapani Pälli
tapani.palli at intel.com
Wed Nov 25 07:13:09 PST 2015
On 11/25/2015 04:00 PM, Predut, Marius wrote:
>> -----Original Message-----
>> From: mesa-dev [mailto:mesa-dev-bounces at lists.freedesktop.org] On Behalf Of
>> Timothy Arceri
>> Sent: Wednesday, November 25, 2015 1:12 PM
>> To: Palli, Tapani; Predut, Marius; mesa-dev at lists.freedesktop.org
>> Subject: Re: [Mesa-dev] [PATCH] mesa/main: TexImage2DMultisample needs to pass
>> OpenGL3.3 conformance test.
>>
>> On Wed, 2015-11-25 at 12:47 +0200, Tapani Pälli wrote:
>>> Hi;
>>>
>>> On 11/25/2015 01:15 PM, Marius Predut wrote:
>>>> Open GL 3.3 reference document says:
>>>> samples must be in the range zero to GL_MAX_TEXTURE_SIZE - 1.
>>>> Open GL.4 clearly states:
>>>> An INVALID_VALUE error is generated if samples is zero.
>> See my comment in bugzilla [1] I believe this is just a bug in the
>> reference pages, we implement things in Mesa going by what the spec
>> says and the spec says nothing about samples being 0 in the 3.2 spec in
>> fact it doen't even say anything in the 4.0 spec which you have changed
>> the check to.
>>
>> Also the 4.5 reference pages also conflict with the spec so this is
>> even more reason I think this change is wrong.
>>
>> [1] https://bugs.freedesktop.org/show_bug.cgi?id=91670
>>
> I don't think it is a bug in specs because in this case also the CTS and the piglit test is wrong:
>
> With this patch 2 things are fixed:
> 1.Khronos CTS conformance tests for OpenGL 3.3
> 2. The piglit test https://bugs.freedesktop.org/show_bug.cgi?id=93100 (Or https://bugs.freedesktop.org/show_bug.cgi?id=91670)
>
> The patch is based on this spec:
> https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3DMultisample.xml
>
> We can't believe or "suppose" something here, the specs need to be as an axioma.
> Can someone confirm that this reference includes the wrong specs?
That's not a specification but a manual page. Timothy is pointing to
OpenGL specifications (available at www.opengl.org/registry). It is true
that for example 3.3 Core does not mention this error case which means
using 0 was allowed there. IMO either we should allow to use 0 (and bump
it to 1?) when running on 3.x context since it's not forbidden or maybe
just locally patch this whenever running 3.x conformance.
(It seems OpenGL 4.2 is the first spec to state the INVALID_VALUE error
case for 0.)
>
>>> OpenGL ES 3.1 spec also says "An INVALID_VALUE error is generated if
>>> samples is zero.". You'll need to change you check below to include
>>> also
>>> ES 3.1.
>>>
>>>> Fixing the piglit test case gl-3.2-layered-rendering
>>>> -framebuffertexture.
>>>>
>>>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93100
>>>>
>>>> Signed-off-by: Marius Predut <marius.predut at intel.com>
>>>> ---
>>>> src/mesa/main/teximage.c | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
>>>> index d9453e3..69634ff 100644
>>>> --- a/src/mesa/main/teximage.c
>>>> +++ b/src/mesa/main/teximage.c
>>>> @@ -5211,7 +5211,7 @@ texture_image_multisample(struct gl_context
>>>> *ctx, GLuint dims,
>>>> return;
>>>> }
>>>>
>>>> - if (samples < 1) {
>>>> + if (samples < 1 && ctx->API == API_OPENGL_CORE && ctx->Version
>>>>> = 40) {
>>>> _mesa_error(ctx, GL_INVALID_VALUE, "%s(samples < 1)",
>>>> func);
>>>> return;
>>>> }
>>> _______________________________________________
>>> mesa-dev mailing list
>>> mesa-dev at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list