[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