From 5ef60aef630c1dd54400da8e60b07d9e26dd64e2 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 19 Feb 2025 15:54:59 -0500 Subject: [PATCH] llvmpipe: pass layer count to rast clear MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this otherwise passes the fb layer, which is not quite right when using multiview with view indexing cc: mesa-stable Reviewed-by: Marek Olšák Part-of: --- src/gallium/drivers/llvmpipe/lp_rast.c | 2 +- src/gallium/drivers/llvmpipe/lp_scene.c | 1 + src/gallium/drivers/llvmpipe/lp_scene.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c index 4f493c67302..a72d96e0933 100644 --- a/src/gallium/drivers/llvmpipe/lp_rast.c +++ b/src/gallium/drivers/llvmpipe/lp_rast.c @@ -168,7 +168,7 @@ lp_rast_clear_color(struct lp_rasterizer_task *task, 0, task->width, task->height, - scene->fb_max_layer + 1, + scene->cbufs[cbuf].layer_count, &uc); } diff --git a/src/gallium/drivers/llvmpipe/lp_scene.c b/src/gallium/drivers/llvmpipe/lp_scene.c index ca6145cca12..1a5f6b7d8c0 100644 --- a/src/gallium/drivers/llvmpipe/lp_scene.c +++ b/src/gallium/drivers/llvmpipe/lp_scene.c @@ -181,6 +181,7 @@ init_scene_texture(struct lp_scene_surface *ssurf, struct pipe_surface *psurf) assert(ssurf->map); ssurf->format_bytes = util_format_get_blocksize(psurf->format); ssurf->nr_samples = util_res_sample_count(psurf->texture); + ssurf->layer_count = psurf->u.tex.last_layer - psurf->u.tex.first_layer + 1; } else { struct llvmpipe_resource *lpr = llvmpipe_resource(psurf->texture); unsigned pixstride = util_format_get_blocksize(psurf->format); diff --git a/src/gallium/drivers/llvmpipe/lp_scene.h b/src/gallium/drivers/llvmpipe/lp_scene.h index 41dffd78ad3..ef2002ef64a 100644 --- a/src/gallium/drivers/llvmpipe/lp_scene.h +++ b/src/gallium/drivers/llvmpipe/lp_scene.h @@ -127,6 +127,7 @@ struct lp_scene_surface { unsigned format_bytes; unsigned sample_stride; unsigned nr_samples; + unsigned layer_count; };