[Mesa-dev] [PATCH] mesa: RGB9_E5 invalid for CopyTexSubImage* in GLES
Tapani Pälli
tapani.palli at intel.com
Fri Mar 16 11:13:20 UTC 2018
On 03/16/2018 01:01 PM, Juan A. Suarez Romero wrote:
> On Fri, 2018-03-16 at 08:02 +0200, Tapani Pälli wrote:
>> On 03/15/2018 02:04 PM, Juan A. Suarez Romero wrote:
>>> According to OpenGL ES 3.2, section 8.6, CopyTexSubImage* should return
>>> an INVALID_OPERATION if the internalformat of the texture is RGB9_E5.
>>>
>>> This fixes
>>> dEQP-GLES31.functional.debug.negative_coverage.*.copytexsubimage2d_texture_internalformat.
>>
>> These tests seem to be passing for me, I believe they fail in
>> texture_format_error_check_gles. What kind of configuration are you
>> running on?
>>
>
> Correct. The tests as they are pass, but turns out the tests are wrong, as they
> are not testing what it is supposed to test.
>
> There's a patch to fix them:
>
> https://android-review.googlesource.com/c/platform/external/deqp/+/630411
>
> With the patch applied, now the tests would be failing, and the patch I've sent
> should fix them.
>
Thanks, this makes sense;
Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
> J.A.
>
>
>>> ---
>>> src/mesa/main/teximage.c | 14 ++++++++++++++
>>> 1 file changed, 14 insertions(+)
>>>
>>> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
>>> index 928e50d472d..9c13e6d7cf6 100644
>>> --- a/src/mesa/main/teximage.c
>>> +++ b/src/mesa/main/teximage.c
>>> @@ -2623,6 +2623,20 @@ copytexsubimage_error_check(struct gl_context *ctx, GLuint dimensions,
>>> return GL_TRUE;
>>> }
>>>
>>> + /* From OpenGL ES 3.2 spec, section 8.6:
>>> + *
>>> + * "An INVALID_OPERATION error is generated by CopyTexSubImage3D,
>>> + * CopyTexImage2D, or CopyTexSubImage2D if the internalformat of the
>>> + * texture image being (re)specified is RGB9_E5"
>>> + */
>>> + if (texImage->InternalFormat == GL_RGB9_E5 &&
>>> + !_mesa_is_desktop_gl(ctx)) {
>>> + _mesa_error(ctx, GL_INVALID_OPERATION,
>>> + "%s(invalid internal format %s)", caller,
>>> + _mesa_enum_to_string(texImage->InternalFormat));
>>> + return GL_TRUE;
>>> + }
>>> +
>>> if (!_mesa_source_buffer_exists(ctx, texImage->_BaseFormat)) {
>>> _mesa_error(ctx, GL_INVALID_OPERATION,
>>> "%s(missing readbuffer, format=%s)", caller,
>>>
>>
>>
More information about the mesa-dev
mailing list