nir/gather_info: Set info.gs.uses_streams
authorNeil Roberts <nroberts@igalia.com>
Wed, 17 Jan 2018 15:37:35 +0000 (16:37 +0100)
committerAlejandro Piñeiro <apinheiro@igalia.com>
Tue, 31 Jul 2018 11:18:28 +0000 (13:18 +0200)
Whenever a non-zero stream is written to it now sets uses_streams to
true. This reflects the code in validate_geometry_shader_emissions for
GLSL.

v2: set uses_streams at gather_info instead that at spirv to nir
    (Jason Ekstrand)

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/compiler/nir/nir_gather_info.c

index 2b431e343e926ebbc9bfecf010d984a1e3f0466c..d0b656ea741026d5cb87a3885a7db65bfa085815 100644 (file)
@@ -288,6 +288,11 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader,
    case nir_intrinsic_end_primitive_with_counter:
       assert(shader->info.stage == MESA_SHADER_GEOMETRY);
       shader->info.gs.uses_end_primitive = 1;
+
+   case nir_intrinsic_emit_vertex:
+      if (nir_intrinsic_stream_id(instr) > 0)
+         shader->info.gs.uses_streams = true;
+
       break;
 
    default: