diff options
Diffstat (limited to 'src/mesa/state_tracker/st_extensions.c')
-rw-r--r-- | src/mesa/state_tracker/st_extensions.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index 461d197a041..0efd16bfd4a 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -1132,6 +1132,9 @@ void st_init_extensions(struct pipe_screen *screen, consts->AllowGLSLCrossStageInterpolationMismatch = options->allow_glsl_cross_stage_interpolation_mismatch; + consts->PrimitiveRestartFixedIndex = + screen->get_param(screen, PIPE_CAP_PRIMITIVE_RESTART_FIXED_INDEX); + /* Technically we are turning on the EXT_gpu_shader5 extension, * ARB_gpu_shader5 does not exist in GLES, but this flag is what * switches on EXT_gpu_shader5: @@ -1505,7 +1508,8 @@ void st_init_extensions(struct pipe_screen *screen, */ if (GLSLVersion >= 130 && extensions->ARB_uniform_buffer_object && - extensions->NV_primitive_restart && + (extensions->NV_primitive_restart || + consts->PrimitiveRestartFixedIndex) && screen->get_shader_param(screen, PIPE_SHADER_VERTEX, PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS) >= 16 && /* Requirements for ETC2 emulation. */ |