Skip to content
Snippets Groups Projects
Commit 70fb3a47 authored by Mike Blumenkrantz's avatar Mike Blumenkrantz :lifter: Committed by Marge Bot
Browse files

st/pbo_compute: use different calc for non-3d compute buffer sizing


this avoids looking at irrelevant 3d pixelstore params like
GL_PACK_IMAGE_HEIGHT when they don't apply, which will cause the storage
buffer to be incorrectly sized and break the operation

Fixes: e7b95619 ("gallium: implement compute pbo download")

Reviewed-by: default avatarMarek Olšák <marek.olsak@amd.com>
Part-of: <mesa/mesa!16728>
parent 5b02facc
No related branches found
No related tags found
No related merge requests found
......@@ -929,7 +929,12 @@ download_texture_compute(struct st_context *st,
}
/* Set up destination buffer */
unsigned img_stride = _mesa_image_image_stride(pack, width, height, format, type);
unsigned img_stride = src->target == PIPE_TEXTURE_3D ||
src->target == PIPE_TEXTURE_2D_ARRAY ||
src->target == PIPE_TEXTURE_CUBE_ARRAY ?
/* only use image stride for 3d images to avoid pulling in IMAGE_HEIGHT pixelstore */
_mesa_image_image_stride(pack, width, height, format, type) :
_mesa_image_row_stride(pack, width, format, type) * height;
unsigned buffer_size = (depth + (dim == 3 ? pack->SkipImages : 0)) * img_stride;
{
struct pipe_shader_buffer buffer;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment