Adding mesa-dev in CC.
On Wed, Jun 11, 2014 at 10:39 AM, Courtney Goeltzenleuchter < court...@lunarg.com> wrote: > > > > On Fri, Jun 6, 2014 at 5:57 PM, Anuj Phogat <anuj.pho...@gmail.com> wrote: > >> Fixes many failures in gles3 Khronos CTS test: packed_pixels >> >> Khronos bug# 9807 >> Cc: <mesa-sta...@lists.freedesktop.org> >> Signed-off-by: Anuj Phogat <anuj.pho...@gmail.com> >> >> Signed-off-by: Anuj Phogat <anuj.pho...@gmail.com> >> --- >> src/mesa/main/teximage.c | 45 >> ++++++++++++++++++++++++++++----------------- >> 1 file changed, 28 insertions(+), 17 deletions(-) >> >> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c >> index c926a2f..11b8439 100644 >> --- a/src/mesa/main/teximage.c >> +++ b/src/mesa/main/teximage.c >> @@ -3647,24 +3647,35 @@ copyteximage(struct gl_context *ctx, GLuint dims, >> >> rb = _mesa_get_read_renderbuffer_for_format(ctx, internalFormat); >> >> - /* From Page 139 of OpenGL ES 3.0 spec: >> - * "If internalformat is sized, the internal format of the new >> texel >> - * array is internalformat, and this is also the new texel array’s >> - * effective internal format. If the component sizes of >> internalformat >> - * do not exactly match the corresponding component sizes of the >> source >> - * buffer’s effective internal format, described below, an >> - * INVALID_OPERATION error is generated. If internalformat is >> unsized, >> - * the internal format of the new texel array is the effective >> internal >> - * format of the source buffer, and this is also the new texel >> array’s >> - * effective internal format. >> + /* Conversion from GL_RGB10_A2 source buffer format is not allowed in >> + * OpenGL ES 3.0. Khronos bug# 9807. >> */ >> - if (_mesa_is_gles3(ctx) >> - && !_mesa_is_enum_format_unsized(internalFormat) >> - && formats_differ_in_component_sizes (texFormat, rb->Format)) { >> - _mesa_error(ctx, GL_INVALID_OPERATION, >> - "glCopyTexImage%uD(componenet size changed in" >> - " internal format)", dims); >> - return; >> + if (_mesa_is_gles3(ctx)) { >> + if (_mesa_is_enum_format_unsized(internalFormat)) { >> > > Should this helper function include gles in it's name since it's only > checking for valid GLES internal formats? > Validity of internal format for gles and desktop is anyway checked separately. So, I think we can safely use _mesa_is_enum_format_unsized() as a common function for both gles and desktop. > + if (rb->InternalFormat == GL_RGB10_A2) { >> + _mesa_error(ctx, GL_INVALID_OPERATION, >> + "glCopyTexImage%uD(Reading from GL_RGB10_A2 >> buffer and" >> + " writing to unsized internal format)", dims); >> + return; >> + } >> + } >> + /* From Page 139 of OpenGL ES 3.0 spec: >> + * "If internalformat is sized, the internal format of the new >> texel >> + * array is internalformat, and this is also the new texel >> array’s >> + * effective internal format. If the component sizes of >> internalformat >> + * do not exactly match the corresponding component sizes of >> the source >> + * buffer’s effective internal format, described below, an >> + * INVALID_OPERATION error is generated. If internalformat is >> unsized, >> + * the internal format of the new texel array is the effective >> internal >> + * format of the source buffer, and this is also the new texel >> array’s >> + * effective internal format. >> + */ >> + else if (formats_differ_in_component_sizes (texFormat, >> rb->Format)) { >> + _mesa_error(ctx, GL_INVALID_OPERATION, >> + "glCopyTexImage%uD(componenet size changed in" >> + " internal format)", dims); >> + return; >> + } >> } >> >> assert(texFormat != MESA_FORMAT_NONE); >> -- >> 1.8.3.1 >> >> _______________________________________________ >> mesa-stable mailing list >> mesa-sta...@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-stable >> > > > > -- > Courtney Goeltzenleuchter > LunarG > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev