Mesa (master): llvmpipe/draw: fix image sizes for vertex/geometry shaders.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Oct 10 21:52:56 UTC 2019
Module: Mesa
Branch: master
Commit: 744b8936dfd7bb21bf04a47ae83bcad75716e46f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=744b8936dfd7bb21bf04a47ae83bcad75716e46f
Author: Dave Airlie <airlied at redhat.com>
Date: Wed Oct 9 14:13:19 2019 +1000
llvmpipe/draw: fix image sizes for vertex/geometry shaders.
since images are a single level, minify before passing the w/h
to draw.
Fixes: KHR-GLES31.core.shader_image_size.basic-nonMS-vs-*
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
---
src/gallium/drivers/llvmpipe/lp_state_sampler.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/gallium/drivers/llvmpipe/lp_state_sampler.c b/src/gallium/drivers/llvmpipe/lp_state_sampler.c
index 36159a363f4..0428b5cd2c5 100644
--- a/src/gallium/drivers/llvmpipe/lp_state_sampler.c
+++ b/src/gallium/drivers/llvmpipe/lp_state_sampler.c
@@ -386,7 +386,8 @@ prepare_shader_images(
if (!img)
continue;
- unsigned width0 = img->width0;
+ unsigned width = u_minify(img->width0, view->u.tex.level);
+ unsigned height = u_minify(img->height0, view->u.tex.level);
unsigned num_layers = img->depth0;
if (!lp_img->dt) {
@@ -419,7 +420,7 @@ prepare_shader_images(
img_stride = 0;
/* everything specified in number of elements here. */
- width0 = view->u.buf.size / view_blocksize;
+ width = view->u.buf.size / view_blocksize;
addr = (uint8_t *)addr + view->u.buf.offset;
assert(view->u.buf.offset + view->u.buf.size <= res->width0);
}
@@ -440,7 +441,7 @@ prepare_shader_images(
draw_set_mapped_image(lp->draw,
shader_type,
i,
- width0, img->height0, num_layers,
+ width, height, num_layers,
addr,
row_stride, img_stride);
}
More information about the mesa-commit
mailing list