summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2013-05-30 10:06:49 -0700
committerEric Anholt <[email protected]>2013-06-03 13:47:19 -0700
commitc937aea3d1af49041138aa3088e8efc253b34fbb (patch)
tree198f186c0ea6d020e665ac2d8bb7853f5d2f515d /src
parentf96de8ad9622d42ce54feedd246967c73d1206cd (diff)
meta: Fix temporary image type for float depth/stencil.
Fixes assertion failure in piglit copyteximage. Reviewed-by: Chad Versace <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/common/meta.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 1ab603a1034..1250bd35c8f 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -3764,10 +3764,20 @@ get_temp_image_type(struct gl_context *ctx, gl_format format)
return datatype;
return GL_FLOAT;
}
- case GL_DEPTH_COMPONENT:
- return GL_UNSIGNED_INT;
- case GL_DEPTH_STENCIL:
- return GL_UNSIGNED_INT_24_8;
+ case GL_DEPTH_COMPONENT: {
+ GLenum datatype = _mesa_get_format_datatype(format);
+ if (datatype == GL_FLOAT)
+ return GL_FLOAT;
+ else
+ return GL_UNSIGNED_INT;
+ }
+ case GL_DEPTH_STENCIL: {
+ GLenum datatype = _mesa_get_format_datatype(format);
+ if (datatype == GL_FLOAT)
+ return GL_FLOAT_32_UNSIGNED_INT_24_8_REV;
+ else
+ return GL_UNSIGNED_INT_24_8;
+ }
default:
_mesa_problem(ctx, "Unexpected format %d in get_temp_image_type()",
baseFormat);