Module: Mesa
Branch: master
Commit: c937aea3d1af49041138aa3088e8efc253b34fbb
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c937aea3d1af49041138aa3088e8efc253b34fbb

Author: Eric Anholt <[email protected]>
Date:   Thu May 30 10:06:49 2013 -0700

meta: Fix temporary image type for float depth/stencil.

Fixes assertion failure in piglit copyteximage.

Reviewed-by: Chad Versace <[email protected]>

---

 src/mesa/drivers/common/meta.c |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 1ab603a..1250bd3 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);

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to