radeonsi: fix blit compressed texture workaround to support 2D arrays
authorMarek Olšák <marek.olsak@amd.com>
Mon, 3 Mar 2014 18:22:56 +0000 (19:22 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 7 Mar 2014 17:07:05 +0000 (18:07 +0100)
We don't have a piglit test for this, but I think it's correct.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
src/gallium/drivers/radeonsi/si_state.c

index 225753db9e6d1b7d85a62499a2d6f621e4e0fead..8f90000eea0fb3b4fa25a13260af9c718f236948 100644 (file)
@@ -2588,7 +2588,8 @@ static struct pipe_sampler_view *si_create_sampler_view(struct pipe_context *ctx
 
        va = r600_resource_va(ctx->screen, texture);
        va += surflevel[0].offset;
-       va += tmp->mipmap_shift * surflevel[texture->last_level].slice_size;
+       va += tmp->mipmap_shift * surflevel[texture->last_level].slice_size * tmp->surface.array_size;
+
        view->state[0] = va >> 8;
        view->state[1] = (S_008F14_BASE_ADDRESS_HI(va >> 40) |
                          S_008F14_DATA_FORMAT(format) |