Mesa (main): radeonsi: delay sample_pos_buffer creation until first use
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jun 17 07:36:21 UTC 2021
Module: Mesa
Branch: main
Commit: edb77ec3c770135280cc321326c7924b73fb535c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=edb77ec3c770135280cc321326c7924b73fb535c
Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Date: Wed Jun 9 10:32:41 2021 +0200
radeonsi: delay sample_pos_buffer creation until first use
And use pipe_buffer_create_with_data instead of doing it
manually.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11296>
---
src/gallium/drivers/radeonsi/si_pipe.c | 5 -----
src/gallium/drivers/radeonsi/si_state.c | 5 +++++
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index f34e7e741a4..9eae6b18efb 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -717,11 +717,6 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, unsign
if (!sctx->dirty_implicit_resources)
goto fail;
- sctx->sample_pos_buffer =
- pipe_buffer_create(sctx->b.screen, 0, PIPE_USAGE_DEFAULT, sizeof(sctx->sample_positions));
- pipe_buffer_write(&sctx->b, sctx->sample_pos_buffer, 0, sizeof(sctx->sample_positions),
- &sctx->sample_positions);
-
/* The remainder of this function initializes the gfx CS and must be last. */
assert(sctx->gfx_cs.current.cdw == 0);
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 25db0ca54aa..9fefe1b59f5 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -2947,6 +2947,11 @@ static void si_set_framebuffer_state(struct pipe_context *ctx,
si_mark_atom_dirty(sctx, &sctx->atoms.s.msaa_config);
si_mark_atom_dirty(sctx, &sctx->atoms.s.db_render_state);
+ if (!sctx->sample_pos_buffer) {
+ sctx->sample_pos_buffer = pipe_buffer_create_with_data(&sctx->b, 0, PIPE_USAGE_DEFAULT,
+ sizeof(sctx->sample_positions),
+ &sctx->sample_positions);
+ }
constbuf.buffer = sctx->sample_pos_buffer;
/* Set sample locations as fragment shader constants. */
More information about the mesa-commit
mailing list