Mesa (master): llvmpipe: pass face+slice to llvmpipe_unswizzle_cbuf_tile()

Brian Paul brianp at kemper.freedesktop.org
Tue Jul 27 23:42:39 UTC 2010


Module: Mesa
Branch: master
Commit: 25472942c9640f6c0d252de2f013d04ac2355b1d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=25472942c9640f6c0d252de2f013d04ac2355b1d

Author: Brian Paul <brianp at vmware.com>
Date:   Tue Jul 27 17:40:00 2010 -0600

llvmpipe: pass face+slice to llvmpipe_unswizzle_cbuf_tile()

Cube map faces and 3D texture slices are treated the same in llvmpipe
textures.  Need to pass the sum of these fields to
llvmpipe_unswizzle_cbuf_tile() as we do elsewhere.

Fixes piglit fbo-3d test (fd.o bug 29135).

---

 src/gallium/drivers/llvmpipe/lp_rast.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c
index 654f4ea..ba7b483 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast.c
+++ b/src/gallium/drivers/llvmpipe/lp_rast.c
@@ -368,14 +368,15 @@ lp_rast_store_linear_color( struct lp_rasterizer_task *task,
 
    for (buf = 0; buf < rast->state.nr_cbufs; buf++) {
       struct pipe_surface *cbuf = scene->fb.cbufs[buf];
-      const unsigned face = cbuf->face, level = cbuf->level;
+      const unsigned face_slice = cbuf->face + cbuf->zslice;
+      const unsigned level = cbuf->level;
       struct llvmpipe_resource *lpt = llvmpipe_resource(cbuf->texture);
 
       if (!task->color_tiles[buf])
          continue;
 
       llvmpipe_unswizzle_cbuf_tile(lpt,
-                                   face,
+                                   face_slice,
                                    level,
                                    task->x, task->y,
                                    task->color_tiles[buf]);




More information about the mesa-commit mailing list