summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/state_tracker/st_extensions.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index 3f89d3d115d..91f429513fe 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -1145,6 +1145,11 @@ void st_init_extensions(struct pipe_screen *screen,
extensions->EXT_shader_integer_mix = GL_TRUE;
extensions->ARB_arrays_of_arrays = GL_TRUE;
extensions->MESA_shader_integer_functions = GL_TRUE;
+
+ if (screen->get_param(screen, PIPE_CAP_OPENCL_INTEGER_FUNCTIONS) &&
+ screen->get_param(screen, PIPE_CAP_INTEGER_MULTIPLY_32X16)) {
+ extensions->INTEL_shader_integer_functions2 = GL_TRUE;
+ }
} else {
/* Optional integer support for GLSL 1.2. */
if (screen->get_shader_param(screen, PIPE_SHADER_VERTEX,
@@ -1676,6 +1681,7 @@ void st_init_extensions(struct pipe_screen *screen,
spirv_caps->transform_feedback = extensions->ARB_transform_feedback3;
spirv_caps->variable_pointers =
screen->get_param(screen, PIPE_CAP_GL_SPIRV_VARIABLE_POINTERS);
+ spirv_caps->integer_functions2 = extensions->INTEL_shader_integer_functions2;
consts->SpirVExtensions = CALLOC_STRUCT(spirv_supported_extensions);
_mesa_fill_supported_spirv_extensions(consts->SpirVExtensions, spirv_caps);