From 6bf0f6ae86dae14ed0348e5fccf75c43302ad502 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 20 Jan 2012 13:59:37 -0800 Subject: meta: Detect currently-unsupported integer CopyTexSubImage and complain. This code is unprepared for handling integer (particularly, the baseFormat of the TexFormat comes out as GL_RGBA, not GL_RGBA_INTEGER, so the direct call of Driver.ReadPixels crashes due to the int vs non-int error checking not having happened). I'm frankly tempted to convert this code to MapRenderbuffer/MapTexImage rather than doing it as meta ops, now that we have that support. Improves the remaining crash in Intel oglconform for int-textures to just a rendering failure. NOTE: This is a candidate for the 8.0 branch. Reviewed-by: Brian Paul --- src/mesa/drivers/common/meta.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index 05cc712cfa4..aa5fef87373 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -3131,6 +3131,11 @@ copy_tex_sub_image(struct gl_context *ctx, format = GL_RGBA; } + if (_mesa_is_format_integer_color(texImage->TexFormat)) { + _mesa_problem(ctx, "unsupported integer color copyteximage"); + return; + } + type = get_temp_image_type(ctx, format); bpp = _mesa_bytes_per_pixel(format, type); if (bpp <= 0) { -- cgit v1.2.3