diff options
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_texture.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c index ba0e7f8b5b8..a7d7ad48619 100644 --- a/src/gallium/drivers/llvmpipe/lp_texture.c +++ b/src/gallium/drivers/llvmpipe/lp_texture.c @@ -132,12 +132,15 @@ llvmpipe_texture_layout(struct llvmpipe_screen *screen, lpr->img_stride[level] = lpr->row_stride[level] * nblocksy; /* Number of 3D image slices, cube faces or texture array layers */ - if (lpr->base.target == PIPE_TEXTURE_CUBE) - num_slices = 6; - else if (lpr->base.target == PIPE_TEXTURE_3D) + if (lpr->base.target == PIPE_TEXTURE_CUBE) { + assert(layers == 6); + } + + if (lpr->base.target == PIPE_TEXTURE_3D) num_slices = depth; else if (lpr->base.target == PIPE_TEXTURE_1D_ARRAY || lpr->base.target == PIPE_TEXTURE_2D_ARRAY || + lpr->base.target == PIPE_TEXTURE_CUBE || lpr->base.target == PIPE_TEXTURE_CUBE_ARRAY) num_slices = layers; else |