OSDN Git Service

i965: Don't minify depth when setting up cube map miptrees on Gen4.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 15 Dec 2011 21:43:00 +0000 (13:43 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 20 Dec 2011 00:33:09 +0000 (16:33 -0800)
Prior to Ironlake, cube maps were stored as 3D textures.  In recent
refactoring, we removed a separate "layers" parameter in favor of using
depth.  Unfortunately, depth was getting minified, which is only correct
for actual 3D textures.

Fixes piglit tests:
- bugs/crash-cubemap-order
- fbo/fbo-cubemap
- texturing/cubemap

Also changes texturing/cubemap npot from abort to fail.

This hasn't seen a full test run since Piglit on Mesa master hangs
GM45 a lot.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_tex_layout.c

index eaea49b..4c7e88c 100644 (file)
@@ -124,7 +124,8 @@ brw_miptree_layout(struct intel_context *intel, struct intel_mipmap_tree *mt)
         mt->total_height += y;
         width  = minify(width);
         height = minify(height);
-        depth  = minify(depth);
+        if (mt->target == GL_TEXTURE_3D)
+           depth = minify(depth);
 
         if (mt->compressed) {
            pack_y_pitch = (height + 3) / 4;