Mesa (master): st/mesa: skip atomics when binding UBOs

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jan 28 00:13:26 UTC 2021


Module: Mesa
Branch: master
Commit: b18b68ba18deb30daaaf3f115d6dd498fa5ce915
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b18b68ba18deb30daaaf3f115d6dd498fa5ce915

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sat Jan  2 18:06:53 2021 -0500

st/mesa: skip atomics when binding UBOs

This uses the same mechanism as vertex buffers.

Reviewed-by: Zoltán Böszörményi <zboszor at gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8298>

---

 src/mesa/state_tracker/st_atom_constbuf.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom_constbuf.c b/src/mesa/state_tracker/st_atom_constbuf.c
index 7c3cb981c8d..d5a09437f52 100644
--- a/src/mesa/state_tracker/st_atom_constbuf.c
+++ b/src/mesa/state_tracker/st_atom_constbuf.c
@@ -266,13 +266,11 @@ st_bind_ubos(struct st_context *st, struct gl_program *prog,
 
    for (i = 0; i < prog->sh.NumUniformBlocks; i++) {
       struct gl_buffer_binding *binding;
-      struct st_buffer_object *st_obj;
 
       binding =
          &st->ctx->UniformBufferBindings[prog->sh.UniformBlocks[i]->Binding];
-      st_obj = st_buffer_object(binding->BufferObject);
 
-      cb.buffer = st_obj ? st_obj->buffer : NULL;
+      cb.buffer = st_get_buffer_reference(st->ctx, binding->BufferObject);
 
       if (cb.buffer) {
          cb.buffer_offset = binding->Offset;
@@ -289,7 +287,7 @@ st_bind_ubos(struct st_context *st, struct gl_program *prog,
          cb.buffer_size = 0;
       }
 
-      pipe->set_constant_buffer(pipe, shader_type, 1 + i, false, &cb);
+      pipe->set_constant_buffer(pipe, shader_type, 1 + i, true, &cb);
    }
 }
 



More information about the mesa-commit mailing list