radeonsi/gfx9: fix geometry shaders without output vertices

Not that those are super common or useful, but hey! Fun corner cases
of the API...

Fixes dEQP-GLES31.functional.geometry_shading.emit.*

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
(cherry picked from commit 7dfa891f32)
This commit is contained in:
Nicolai Hähnle 2017-09-21 16:50:08 +02:00 committed by Emil Velikov
parent 332f6e9b3b
commit 7bedb1fd12

View file

@ -644,9 +644,11 @@ static void gfx9_get_gs_info(struct si_shader_selector *es,
/* MAX_PRIMS_PER_SUBGROUP = gs_prims * max_vert_out * gs_invocations.
* Make sure we don't go over the maximum value.
*/
max_gs_prims = MIN2(max_gs_prims,
max_out_prims /
(gs->gs_max_out_vertices * gs_num_invocations));
if (gs->gs_max_out_vertices > 0) {
max_gs_prims = MIN2(max_gs_prims,
max_out_prims /
(gs->gs_max_out_vertices * gs_num_invocations));
}
assert(max_gs_prims > 0);
/* If the primitive has adjacency, halve the number of vertices