diff options
author | Eric Anholt <eric@anholt.net> | 2012-01-20 13:59:37 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2012-01-24 16:37:10 -0800 |
commit | 6bf0f6ae86dae14ed0348e5fccf75c43302ad502 (patch) | |
tree | b72679deccb02eae13a7a737080c9f59d3f64aa4 | |
parent | d6c58545a1da8c83f0aad296a5e9e31a7c77cfe4 (diff) |
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 <brianp@vmware.com>
-rw-r--r-- | src/mesa/drivers/common/meta.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index 05cc712cfa..aa5fef8737 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) { |