summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2017-11-03 12:23:01 +1000
committerDave Airlie <[email protected]>2017-12-05 10:38:35 +0000
commitb501ef164ed772e7445ba1a86ac750a37476c913 (patch)
treecb4b9344a5597e7f6419713520eaa4ebdba2f07a /src/mesa
parent05f594f2291f146f5f8704f80fb475dfb21b66fb (diff)
st/mesa: handle compute atomics
Just reuse the cs atomics bit and emit the hw atomic state. Reviewed-by: Nicolai Hähnle <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/state_tracker/st_atom_atomicbuf.c4
-rw-r--r--src/mesa/state_tracker/st_context.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_atom_atomicbuf.c b/src/mesa/state_tracker/st_atom_atomicbuf.c
index d01c227acdd..eda9e51b581 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 da1cca471ba..7564a530352 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;