Assuming you fix the bug I mentioned in patch 6, the series is
Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> On 01/18/2013 03:55 PM, Matt Turner wrote:
From: Jordan Justen <jordan.l.jus...@intel.com> Cc: Eric Anholt <e...@anholt.net> Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> --- src/mesa/main/teximage.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 5e451e2..2a406f3 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -2427,6 +2427,45 @@ copytexture_error_check( struct gl_context *ctx, GLuint dimensions, rb_internal_format = rb->InternalFormat; + if ((_mesa_is_desktop_gl(ctx) && + ctx->Extensions.ARB_framebuffer_object) || + _mesa_is_gles3(ctx)) { + bool rb_is_srgb = false; + bool dst_is_srgb = false; + + if (ctx->Extensions.EXT_framebuffer_sRGB && + _mesa_get_format_color_encoding(rb->Format) == GL_SRGB) { + rb_is_srgb = true; + } + + if (_mesa_get_linear_internalformat(internalFormat) != internalFormat) { + dst_is_srgb = true; + } + + if (rb_is_srgb != dst_is_srgb) { + /* Page 190 (page 211 of the PDF) in section 8.6 of the OpenGL 4.3 + * Core Profile spec says: + * + * "An INVALID_OPERATION error is generated under any of the + * following conditions: + * + * ... + * + * - if the value of FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING + * for the framebuffer attachment corresponding to the read + * buffer is LINEAR (see section 9.2.3) and internalformat + * is one of the sRGB formats in table 8.23 + * - if the value of FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING + * for the framebuffer attachment corresponding to the read + * buffer is SRGB and internalformat is not one of the sRGB + * formats. in table 8.23." + */ + _mesa_error(ctx, GL_INVALID_OPERATION, + "glCopyTexImage%dD(srgb usage mismatch)", dimensions); + return GL_TRUE; + } + } + if (!_mesa_source_buffer_exists(ctx, baseFormat)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glCopyTexImage%dD(missing readbuffer)", dimensions);
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev