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