Mesa (master): st/mesa: handle compute atomics

Dave Airlie airlied at kemper.freedesktop.org
Tue Dec 5 10:39:56 UTC 2017


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Fri Nov  3 12:23:01 2017 +1000

st/mesa: handle compute atomics

Just reuse the cs atomics bit and emit the hw atomic state.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/mesa/state_tracker/st_atom_atomicbuf.c | 4 ++++
 src/mesa/state_tracker/st_context.c        | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_atom_atomicbuf.c b/src/mesa/state_tracker/st_atom_atomicbuf.c
index d01c227acd..eda9e51b58 100644
--- a/src/mesa/state_tracker/st_atom_atomicbuf.c
+++ b/src/mesa/state_tracker/st_atom_atomicbuf.c
@@ -123,6 +123,10 @@ st_bind_tes_atomics(struct st_context *st)
 void
 st_bind_cs_atomics(struct st_context *st)
 {
+   if (st->has_hw_atomics) {
+      st_bind_hw_atomic_buffers(st);
+      return;
+   }
    struct gl_program *prog =
       st->ctx->_Shader->CurrentProgram[MESA_SHADER_COMPUTE];
 
diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c
index da1cca471b..7564a53035 100644
--- a/src/mesa/state_tracker/st_context.c
+++ b/src/mesa/state_tracker/st_context.c
@@ -302,7 +302,7 @@ st_init_driver_flags(struct st_context *st)
    /* Shader resources */
    f->NewTextureBuffer = ST_NEW_SAMPLER_VIEWS;
    if (st->has_hw_atomics)
-      f->NewAtomicBuffer = ST_NEW_HW_ATOMICS;
+      f->NewAtomicBuffer = ST_NEW_HW_ATOMICS | ST_NEW_CS_ATOMICS;
    else
       f->NewAtomicBuffer = ST_NEW_ATOMIC_BUFFER;
    f->NewShaderStorageBuffer = ST_NEW_STORAGE_BUFFER;




More information about the mesa-commit mailing list