turnip: Geometry shader never invoked if there is no EmitVertex and gl_Position is not written
Several GL CTS tests depend on GS being invoked even if there is no EmitVertex:
KHR-GL46.shader_image_load_store.multiple-uniforms
KHR-GL46.texture_cube_map_array.image_op_geometry_sh
Per VK spec:
The geometry shader operates on a group of vertices and their associated data assembled from a single input primitive, and emits zero or more output primitives and the group of vertices and their associated data required for each output primitive.
So emitting zero vertices is valid.
Not writing gl_Position should also be ok if we don't care about FS.
If I either add EmitVertex()
or gl_Position = gl_in[0].gl_Position
to the GS - it gets invoked.
Going to have a closer look.