Mesa (main): llvmpipe: always set ssbo data pointers for draw
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue May 10 21:08:02 UTC 2022
Module: Mesa
Branch: main
Commit: 6a219f318af7282ba26318364e1138f0d91a3908
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6a219f318af7282ba26318364e1138f0d91a3908
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
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 <airlied at redhat.com>
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;
More information about the mesa-commit
mailing list