This is the status of GL extension support in the virglrenderer code base. The initial codebase has GL3.3 feature complete. Some features don't require renderer support and are handled in the guest driver completely. Feature Status ----------------------------------------------------- ------------------------ GL 3.3, GLSL 3.30 --- renderer complete support. GL 4.0, GLSL 4.00 --- GL_ARB_draw_buffers_blend DONE GL_ARB_draw_indirect DONE GL_ARB_gpu_shader5 DONE - 'precise' qualifier GUEST - Dynamically uniform sampler array indices - Dynamically uniform UBO array indices - Implicit signed -> unsigned conversions GUEST - Fused multiply-add - Packing/bitfield/conversion functions - Enhanced textureGather - Geometry shader instancing - Geometry shader multiple streams - Enhanced per-sample shading - Interpolation functions - New overload resolution rules GUEST GL_ARB_gpu_shader_fp64 DONE GL_ARB_sample_shading DONE GL_ARB_shader_subroutine GUEST GL_ARB_tessellation_shader DONE GL_ARB_texture_buffer_object_rgb32 DONE GL_ARB_texture_cube_map_array DONE GL_ARB_texture_gather DONE GL_ARB_texture_query_lod DONE GL_ARB_transform_feedback2 DONE GL_ARB_transform_feedback3 DONE GL 4.1, GLSL 4.10 --- GL_ARB_ES2_compatibility GUEST GL_ARB_get_program_binary GUEST GL_ARB_separate_shader_objects GUEST GL_ARB_shader_precision GUEST GL_ARB_vertex_attrib_64bit DONE GL_ARB_viewport_array DONE GL 4.2, GLSL 4.20: GL_ARB_texture_compression_bptc DONE GL_ARB_compressed_texture_pixel_storage DONE GL_ARB_shader_atomic_counters DONE GL_ARB_texture_storage DONE GL_ARB_transform_feedback_instanced DONE GL_ARB_base_instance DONE GL_ARB_shader_image_load_store DONE GL_ARB_conservative_depth DONE GL_ARB_shading_language_420pack DONE GL_ARB_shading_language_packing DONE GL_ARB_internalformat_query DONE GL_ARB_map_buffer_alignment DONE GL 4.3, GLSL 4.30: GL_ARB_arrays_of_arrays DONE GL_ARB_ES3_compatibility DONE GL_ARB_clear_buffer_object DONE GL_ARB_compute_shader DONE GL_ARB_copy_image DONE GL_KHR_debug DONE GL_ARB_explicit_uniform_location DONE GL_ARB_fragment_layer_viewport DONE GL_ARB_framebuffer_no_attachments DONE GL_ARB_internalformat_query2 DONE GL_ARB_invalidate_subdata DONE GL_ARB_multi_draw_indirect DONE GL_ARB_program_interface_query DONE GL_ARB_robust_buffer_access_behavior DONE GL_ARB_shader_image_size DONE GL_ARB_shader_storage_buffer_object DONE GL_ARB_stencil_texturing DONE GL_ARB_texture_buffer_range DONE GL_ARB_texture_query_levels DONE GL_ARB_texture_storage_multisample DONE GL_ARB_texture_view DONE GL_ARB_vertex_attrib_binding GUEST GL 4.4, GLSL 4.40: GL_MAX_VERTEX_ATTRIB_STRIDE GL_ARB_buffer_storage GL_ARB_clear_texture GL_ARB_enhanced_layouts DONE GL_ARB_multi_bind DONE GL_ARB_query_buffer_object GL_ARB_texture_mirror_clamp_to_edge DONE GL_ARB_texture_stencil8 DONE GL_ARB_vertex_type_10f_11f_11f_rev DONE GL 4.5, GLSL 4.50: GL_ARB_ES3_1_compatibility DONE GL_ARB_clip_control DONE GL_ARB_conditional_render_inverted DONE GL_ARB_cull_distance DONE GL_ARB_derivative_control DONE GL_ARB_direct_state_access GUEST GL_ARB_get_texture_sub_image DONE GL_ARB_shader_texture_image_samples DONE GL_ARB_texture_barrier DONE GL_KHR_context_flush_control DONE GL_KHR_robust_buffer_access_behavior DONE GL_KHR_robustness DONE GL_EXT_shader_integer_mix DONE