On 09/30/2014 05:24 PM, Dave Airlie wrote:
From: Dave Airlie <[email protected]>

While running piglit in virgl, I hit an assert in intel driver.

"qemu-system-x86_64: intel_tex.c:219: intel_map_texture_image: Assertion 
`tex_image->TexObject->Target != 0x8C18 || h == 1' failed."

Thanks to Eric and Ken for pointing me in the right direction,

Fix the get_tex_depth to do the same fixup as get_tex_rgba does
for 1D array textures.

Signed-off-by: Dave Airlie <[email protected]>
Cc: [email protected]
---
  src/mesa/main/texgetimage.c | 8 ++++++--
  1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
index 2c54e4a..5d392ae 100644
--- a/src/mesa/main/texgetimage.c
+++ b/src/mesa/main/texgetimage.c
@@ -78,8 +78,8 @@ get_tex_depth(struct gl_context *ctx, GLuint dimensions,
                struct gl_texture_image *texImage)
  {
     const GLint width = texImage->Width;
-   const GLint height = texImage->Height;
-   const GLint depth = texImage->Depth;
+   GLint height = texImage->Height;
+   GLint depth = texImage->Depth;
     GLint img, row;
     GLfloat *depthRow = malloc(width * sizeof(GLfloat));

@@ -88,6 +88,10 @@ get_tex_depth(struct gl_context *ctx, GLuint dimensions,
        return;
     }

+   if (texImage->TexObject->Target == GL_TEXTURE_1D_ARRAY) {
+      depth = height;
+      height = 1;
+   }

Minor formatting nit: insert a blank line here.

     for (img = 0; img < depth; img++) {
        GLubyte *srcMap;
        GLint srcRowStride;


LGTM.  Reviewed-by: Brian Paul <[email protected]>


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

Reply via email to