summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2019-11-14 14:20:48 -0800
committerMarge Bot <eric+marge@anholt.net>2020-01-23 00:18:57 +0000
commit76970940a6b22d25fcff42ab6c779dc646b2d9d4 (patch)
treefb0bae371c272e9e9f2adde52d94f3754fbedf45
parentb14e718e68019019ea241d7e7a7f1bbdb8fcf21e (diff)
iris: Enable INTEL_shader_integer_functions2
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767>
-rw-r--r--src/gallium/drivers/iris/iris_screen.c4
-rw-r--r--src/mesa/state_tracker/st_extensions.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c
index b17a7e5a24f..736d849feb8 100644
--- a/src/gallium/drivers/iris/iris_screen.c
+++ b/src/gallium/drivers/iris/iris_screen.c
@@ -324,6 +324,10 @@ iris_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_PCI_FUNCTION:
return 0;
+ case PIPE_CAP_OPENCL_INTEGER_FUNCTIONS:
+ case PIPE_CAP_INTEGER_MULTIPLY_32X16:
+ return true;
+
default:
return u_pipe_screen_get_param_defaults(pscreen, param);
}
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);