On Thu, Jul 31, 2014 at 12:42:11AM -0700, Jordan Justen wrote: > Fixes assertion failure in piglit (gen6, gen8): > spec/glsl-1.30/execution/tex-miplevel-selection textureOffset 1DArrayShadow > > In release builds of Mesa, this was observed to cause a GPU hang on > gen8. > > Signed-off-by: Jordan Justen <[email protected]> > Cc: Ben Widawsky <[email protected]> > Cc: Jason Ekstrand <[email protected]> > Cc: "10.2" <[email protected]>
I was hoping I would have a chance to fix this one :-( Tested-by: Ben Widawsky <[email protected]> > --- > On a gen6 piglit quick run: > 15: crash => pass > 1: crash => fail > > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > index 22c5ab8..f504e06 100644 > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > @@ -244,6 +244,26 @@ intel_miptree_create_layout(struct brw_context *brw, > _mesa_get_format_name(format), > first_level, last_level, depth0, mt); > > + if (target == GL_TEXTURE_1D_ARRAY) { > + /* For a 1D Array texture the OpenGL API will treat the height0 > + * parameter as the number of array slices. For Intel hardware, we > treat > + * the 1D array as a 2D Array with a height of 1. > + * > + * So, when we first come through this path to create a 1D Array > + * texture, height0 stores the number of slices, and depth0 is 1. In > + * this case, we want to swap height0 and depth0. > + * > + * Since some miptrees will be created based on the base miptree, we > may > + * come through this path and see height0 as 1 and depth0 being the > + * number of slices. In this case we don't need to do the swap. > + */ > + assert(height0 == 1 || depth0 == 1); > + if (height0 > 1) { > + depth0 = height0; > + height0 = 1; > + } > + } > + > mt->target = target; > mt->format = format; > mt->first_level = first_level; > -- > 2.0.1 > -- Ben Widawsky, Intel Open Source Technology Center _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
