Gerry: I would say you're looking in the wrong place asking GLX, but can confirm the same results with EGL: Full desktop OpenGL on Pineview is limited to 1.4, but GLES is version 2.0. Also: https://www.opengl.org/wiki/FAQ#Why_is_my_GL_version_only_1.4_or_lower.3F But I don't think this is a problem at all. Right now I can see Mir demo servers running perfectly on Pineview in either mode with full hardware acceleration (no fallbacks) and even full desktop GLSL support at version 1.20 ... mir_proving_server from lp:mir - GLESv2 default build: [2016-05-27 12:02:05.879585] GLRenderer: EGL vendor: Mesa Project [2016-05-27 12:02:05.879710] GLRenderer: EGL version: 1.4 (DRI2) [2016-05-27 12:02:05.880050] GLRenderer: EGL client APIs: OpenGL OpenGL_ES OpenGL_ES2 [2016-05-27 12:02:05.880144] GLRenderer: EGL extensions: EGL_EXT_buffer_age EGL_KHR_create_context EGL_KHR_get_all_proc_addresses EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_surfaceless_context EGL_MESA_configless_context EGL_MESA_drm_image EGL_WL_bind_wayland_display [2016-05-27 12:02:05.880215] GLRenderer: GL vendor: Intel Open Source Technology Center [2016-05-27 12:02:05.880357] GLRenderer: GL renderer: Mesa DRI Intel(R) Pineview M [2016-05-27 12:02:05.880432] GLRenderer: GL version: OpenGL ES 2.0 Mesa 11.2.0 [2016-05-27 12:02:05.880492] GLRenderer: GLSL version: OpenGL ES GLSL ES 1.0.16 [2016-05-27 12:02:05.880554] GLRenderer: GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_filter_anisotropic GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888 GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_npot GL_OES_EGL_image GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_NV_fbo_color_attachments GL_OES_EGL_sync GL_OES_vertex_array_object GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug GL_OES_surfaceless_context GL_EXT_separate_shader_objects GL_EXT_draw_elements_base_vertex GL_KHR_context_flush_control GL_OES_draw_elements_base_vertex [2016-05-27 12:02:05.880664] GLRenderer: GL max texture size = 2048 [2016-05-27 12:02:05.880767] GLRenderer: GL framebuffer bits: RGBA=8888, depth=0, stencil=0 mir_proving_server from lp:mir with desktop OpenGL (-DMIR_SERVER_LIBGL=libGL): [2016-05-27 12:03:13.811224] GLRenderer: EGL vendor: Mesa Project [2016-05-27 12:03:13.811352] GLRenderer: EGL version: 1.4 (DRI2) [2016-05-27 12:03:13.811413] GLRenderer: EGL client APIs: OpenGL OpenGL_ES OpenGL_ES2 [2016-05-27 12:03:13.811586] GLRenderer: EGL extensions: EGL_EXT_buffer_age EGL_KHR_create_context EGL_KHR_get_all_proc_addresses EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_surfaceless_context EGL_MESA_configless_context EGL_MESA_drm_image EGL_WL_bind_wayland_display [2016-05-27 12:03:13.811784] GLRenderer: GL vendor: Intel Open Source Technology Center [2016-05-27 12:03:13.811880] GLRenderer: GL renderer: Mesa DRI Intel(R) Pineview M [2016-05-27 12:03:13.812004] GLRenderer: GL version: 1.4 Mesa 11.2.0 [2016-05-27 12:03:13.812241] GLRenderer: GLSL version: 1.20 [2016-05-27 12:03:13.812853] GLRenderer: GL extensions: GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_polygon_offset GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_multitexture GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_3DFX_texture_compression_FXT1 GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_EXT_framebuffer_object GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_APPLE_packed_pixels GL_APPLE_vertex_array_object GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_MESA_ycbcr_texture GL_ARB_half_float_pixel GL_ARB_point_sprite GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate GL_OES_read_format GL_ARB_pixel_buffer_object GL_ARB_texture_rectangle GL_EXT_pixel_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_ARB_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_packed_depth_stencil GL_APPLE_object_purgeable GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_EXT_gpu_program_parameters GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_ARB_copy_buffer GL_ARB_map_buffer_range GL_ARB_ES2_compatibility GL_ARB_debug_output GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_location GL_ARB_provoking_vertex GL_ARB_sampler_objects GL_EXT_provoking_vertex GL_ARB_get_program_binary GL_ARB_robustness GL_ARB_separate_shader_objects GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_compressed_texture_pixel_storage GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_texture_storage GL_AMD_shader_trinary_minmax GL_ARB_clear_buffer_object GL_ARB_explicit_uniform_location GL_ARB_invalidate_subdata GL_ARB_program_interface_query GL_ARB_vertex_attrib_binding GL_KHR_debug GL_ARB_multi_bind GL_ARB_get_texture_sub_image GL_KHR_context_flush_control [2016-05-27 12:03:13.813381] GLRenderer: GL max texture size = 2048 [2016-05-27 12:03:13.813769] GLRenderer: GL framebuffer bits: RGBA=8888, depth=0, stencil=0