diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index 73cbb297c45..f0f03420aac 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -1293,13 +1293,11 @@ void st_init_extensions(struct pipe_screen *screen, extensions->ARB_tessellation_shader = GL_TRUE; } - /* What this is really checking for is the ability to support multiple - * invocations of a geometry shader. There is no separate cap for that, so - * we check the GLSLVersion. - */ + /* OES_geometry_shader requires instancing */ if ((GLSLVersion >= 400 || ESSLVersion >= 310) && screen->get_shader_param(screen, PIPE_SHADER_GEOMETRY, - PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0) { + PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0 && + consts->MaxGeometryShaderInvocations >= 32) { extensions->OES_geometry_shader = GL_TRUE; }