Module: Mesa Branch: main Commit: 6a219f318af7282ba26318364e1138f0d91a3908 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6a219f318af7282ba26318364e1138f0d91a3908
Author: Mike Blumenkrantz <[email protected]> Date: Sat Apr 23 09:39:06 2022 -0400 llvmpipe: always set ssbo data pointers for draw skipping these would lead to reading the previously-set data if a null buffer was set after a valid buffer cc: mesa-stable Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137> --- src/gallium/drivers/llvmpipe/lp_setup.c | 5 ++--- src/gallium/drivers/llvmpipe/lp_state_cs.c | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/lp_setup.c b/src/gallium/drivers/llvmpipe/lp_setup.c index 83fb4ad1fd0..ce681792683 100644 --- a/src/gallium/drivers/llvmpipe/lp_setup.c +++ b/src/gallium/drivers/llvmpipe/lp_setup.c @@ -1345,10 +1345,9 @@ try_update_scene_state( struct lp_setup_context *setup ) struct pipe_resource *buffer = setup->ssbos[i].current.buffer; const ubyte *current_data = NULL; - if (!buffer) - continue; /* resource buffer */ - current_data = (ubyte *) llvmpipe_resource_data(buffer); + if (buffer) + current_data = (ubyte *) llvmpipe_resource_data(buffer); if (current_data) { current_data += setup->ssbos[i].current.buffer_offset; diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.c b/src/gallium/drivers/llvmpipe/lp_state_cs.c index 01ff10deb8a..56f75fed47e 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_cs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_cs.c @@ -1258,10 +1258,9 @@ update_csctx_ssbo(struct llvmpipe_context *llvmpipe) struct pipe_resource *buffer = csctx->ssbos[i].current.buffer; const ubyte *current_data = NULL; - if (!buffer) - continue; /* resource buffer */ - current_data = (ubyte *) llvmpipe_resource_data(buffer); + if (buffer) + current_data = (ubyte *) llvmpipe_resource_data(buffer); if (current_data) { current_data += csctx->ssbos[i].current.buffer_offset;
