gallium/tgsi: add helper tgsi_get_interp_mode
[mesa.git] / src / mesa / state_tracker / st_extensions.c
index 0efd16bfd4a64d89b4319e082a2f3345f61877b3..af454dca069dd343a5c0d9c100a6d77f7b19858a 100644 (file)
@@ -346,6 +346,8 @@ void st_init_limits(struct pipe_screen *screen,
          screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_FP16_DERIVATIVES);
       options->LowerPrecisionInt16 =
          screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_INT16);
+      options->LowerPrecisionConstants =
+         screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_GLSL_16BIT_CONSTS);
    }
 
    c->MaxUserAssignableUniformLocations =
@@ -1402,6 +1404,9 @@ void st_init_extensions(struct pipe_screen *screen,
    if (options->allow_glsl_extension_directive_midshader)
       consts->AllowGLSLExtensionDirectiveMidShader = GL_TRUE;
 
+   if (options->allow_glsl_120_subset_in_110)
+      consts->AllowGLSL120SubsetIn110 = GL_TRUE;
+
    if (options->allow_glsl_builtin_const_expression)
       consts->AllowGLSLBuiltinConstantExpression = GL_TRUE;
 
@@ -1465,6 +1470,9 @@ void st_init_extensions(struct pipe_screen *screen,
    bool coherent_fb_fetch =
       screen->get_param(screen, PIPE_CAP_FBFETCH_COHERENT);
 
+   if (screen->get_param(screen, PIPE_CAP_BLEND_EQUATION_ADVANCED))
+      extensions->KHR_blend_equation_advanced = true;
+
    if (max_fb_fetch_rts > 0) {
       extensions->KHR_blend_equation_advanced = true;
       extensions->KHR_blend_equation_advanced_coherent = coherent_fb_fetch;