glsl: only explicitly check GS components in PSIZ injection with output variables
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 17 Jul 2023 13:11:01 +0000 (09:11 -0400)
committerMarge Bot <emma+marge@anholt.net>
Wed, 2 Aug 2023 02:43:03 +0000 (02:43 +0000)
if no output variables exist then there's plenty of room for a psiz

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24182>

src/compiler/glsl/gl_nir_linker.c

index d9787d7..c870d1b 100644 (file)
@@ -151,7 +151,7 @@ gl_nir_can_add_pointsize_to_program(const struct gl_constants *consts,
    }
 
    /* Ensure that there is enough attribute space to emit at least one primitive */
-   if (nir->info.stage == MESA_SHADER_GEOMETRY) {
+   if (num_components && nir->info.stage == MESA_SHADER_GEOMETRY) {
       if (num_components + needed_components > consts->Program[nir->info.stage].MaxOutputComponents)
          return false;
       num_components *= nir->info.gs.vertices_out;