On 8 April 2015 at 10:43, Ilia Mirkin <imir...@alum.mit.edu> wrote: > On Tue, Apr 7, 2015 at 8:02 PM, Dave Airlie <airl...@gmail.com> wrote: >> From: Dave Airlie <airl...@redhat.com> >> >> We create textures internally for texsubimage, and we use >> the values from sub image to create a new texture, however >> we don't align these to valid sizes, and cube map arrays >> must have an array size aligned to 6. >> >> This fixes texsubimage cube_map_array on CAYMAN at least, >> (it was causing GPU hang and bad values), it probably >> also fixes it on radeonsi and evergreen. >> >> Signed-off-by: Dave Airlie <airl...@redhat.com> >> --- >> src/mesa/state_tracker/st_texture.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/src/mesa/state_tracker/st_texture.c >> b/src/mesa/state_tracker/st_texture.c >> index ca7c83c..5c9a09c 100644 >> --- a/src/mesa/state_tracker/st_texture.c >> +++ b/src/mesa/state_tracker/st_texture.c >> @@ -177,6 +177,8 @@ st_gl_texture_dims_to_pipe_dims(GLenum texture, >> *widthOut = widthIn; >> *heightOut = heightIn; >> *depthOut = 1; >> + if (depthIn % 6) >> + depthIn = util_align_npot(depthIn, 6); >> *layersOut = depthIn; > > I'd just do this as > > *layersOut = util_align_npot(depthIn, 6) > > But I assume this is the st_TexSubImage caller? Then I bet that instead > > /* TexSubImage only sets a single cubemap face. */ > if (gl_target == GL_TEXTURE_CUBE_MAP) { > gl_target = GL_TEXTURE_2D; > } > > Should be changed to account for cube map arrays...
That works as well, belt and braces maybe just in case? Dave. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev