st/mesa: Don't set atomic counter size != 0 if MAX_SHADER_BUFFERS == 0.
authorEric Anholt <eric@anholt.net>
Wed, 1 Aug 2018 23:07:45 +0000 (16:07 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 25 Apr 2019 00:24:11 +0000 (17:24 -0700)
This is just asking for tests to get confused about the HW supporting
atomics in this shader stage or not, such as
dEQP-GLES31.functional.shaders.opaque_type_indexing.atomic_counter.const_expression_vertex.

v2: Rebase on the other atomic cleanups that have happened since posting.
v3: Commit message tweak by Marek.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/state_tracker/st_extensions.c

index b23bd7c044de84809dedf449e28e6f6f4eb761df..cebc35a76a71bbcd14eae42c6b7fbc135b16d23f 100644 (file)
@@ -259,7 +259,7 @@ void st_init_limits(struct pipe_screen *screen,
           */
          pc->MaxAtomicCounters = temp;
          pc->MaxAtomicBuffers = screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS);
-      } else {
+      } else if (pc->MaxShaderStorageBlocks) {
          pc->MaxAtomicCounters = MAX_ATOMIC_COUNTERS;
          /*
           * without separate atomic counters, reserve half of the available