v3d: Let scheduler know GS doesn’t have shared I/O memory
authorNeil Roberts <nroberts@igalia.com>
Wed, 17 Jun 2020 13:22:32 +0000 (15:22 +0200)
committerNeil Roberts <nroberts@igalia.com>
Mon, 22 Jun 2020 06:23:06 +0000 (08:23 +0200)
Unlike the vertex shaders, the memory for inputs and outputs is stored
in separate segments so the scheduler doesn’t need to serialise them.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5561>

src/broadcom/compiler/vir.c

index 4c9e99cfd77cf7015e97a33da21a6bf6119ce6e7..ff2e0290122f4b56b219cded47da55b6d1a3544d 100644 (file)
@@ -1083,7 +1083,8 @@ uint64_t *v3d_compile(const struct v3d_compiler *compiler,
                  */
                 .stages_with_shared_io_memory =
                 (((1 << MESA_ALL_SHADER_STAGES) - 1) &
-                 ~(1 << MESA_SHADER_FRAGMENT)),
+                 ~((1 << MESA_SHADER_FRAGMENT) |
+                   (1 << MESA_SHADER_GEOMETRY))),
         };
         NIR_PASS_V(c->s, nir_schedule, &schedule_options);