diff options
author | Brian Paul <[email protected]> | 2010-07-27 17:40:00 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2010-07-27 17:42:27 -0600 |
commit | 25472942c9640f6c0d252de2f013d04ac2355b1d (patch) | |
tree | 58535a34770a5dfcb51d2ed2f6b8f8d81f60c8fc | |
parent | 6a20539580e1b7ae921d497fbf66a8fd545efea4 (diff) |
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).
-rw-r--r-- | 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 654f4ea48eb..ba7b48328b0 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]); |