aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_extensions.c
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2016-08-27 17:47:37 -0400
committerIlia Mirkin <[email protected]>2016-08-31 20:12:55 -0400
commite3db41545676d0b7961ac4caa5ef645cdbf12691 (patch)
tree45799a6d3054f07bc2f2b96fddf0440bdd637c75 /src/mesa/state_tracker/st_extensions.c
parent3bd885d09cea6ecf19ddfd948c8dd74f5e3ea600 (diff)
st/mesa: expose OES_geometry_shader and OES_texture_cube_map_array
Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker/st_extensions.c')
-rw-r--r--src/mesa/state_tracker/st_extensions.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index 2238d1a8550..807fbfbc1f6 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -946,6 +946,16 @@ void st_init_extensions(struct pipe_screen *screen,
extensions->ARB_tessellation_shader = GL_TRUE;
}
+ /* What this is really checking for is the ability to support multiple
+ * invocations of a geometry shader. There is no separate cap for that, so
+ * we check the GLSLVersion.
+ */
+ if (consts->GLSLVersion >= 400 &&
+ screen->get_shader_param(screen, PIPE_SHADER_GEOMETRY,
+ PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0) {
+ extensions->OES_geometry_shader = GL_TRUE;
+ }
+
if (screen->fence_finish) {
extensions->ARB_sync = GL_TRUE;
}
@@ -1211,6 +1221,11 @@ void st_init_extensions(struct pipe_screen *screen,
extensions->ARB_gpu_shader5 &&
extensions->EXT_shader_integer_mix;
+ extensions->OES_texture_cube_map_array =
+ extensions->ARB_ES3_1_compatibility &&
+ extensions->OES_geometry_shader &&
+ extensions->ARB_texture_cube_map_array;
+
extensions->OES_primitive_bounding_box = extensions->ARB_ES3_1_compatibility;
consts->NoPrimitiveBoundingBoxOutput = true;
}