diff options
author | Ian Romanick <[email protected]> | 2019-11-14 14:20:48 -0800 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-01-23 00:18:57 +0000 |
commit | 76970940a6b22d25fcff42ab6c779dc646b2d9d4 (patch) | |
tree | fb0bae371c272e9e9f2adde52d94f3754fbedf45 | |
parent | b14e718e68019019ea241d7e7a7f1bbdb8fcf21e (diff) |
iris: Enable INTEL_shader_integer_functions2
Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767>
-rw-r--r-- | src/gallium/drivers/iris/iris_screen.c | 4 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_extensions.c | 6 |
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); |