[Mesa-dev] [PATCH] mesa: fix GetTexImage for 1D array depth textures
Brian Paul
brianp at vmware.com
Wed Oct 1 06:29:11 PDT 2014
On 09/30/2014 05:24 PM, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> 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 <airlied at redhat.com>
> Cc: mesa-stable at lists.freedesktop.org
> ---
> 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 <brianp at vmware.com>
More information about the mesa-dev
mailing list