Are we that far? OG.
On Sat, Aug 23, 2014 at 7:22 PM, Ian Romanick <i...@freedesktop.org> wrote: > I'm content with waiting to add this until we're even close to > supporting any of those versions... especially given all the lines like > "false && // ARB_gpu_shader_fp64 &&". That's just clutter. > > On 08/21/2014 05:02 AM, Olivier Galibert wrote: >> Signed-off-by: Olivier Galibert <galib...@pobox.com> >> --- >> src/mesa/main/getstring.c | 6 ++ >> src/mesa/main/version.c | 140 >> +++++++++++++++++++++++++++++++++++++++++++++- >> 2 files changed, 143 insertions(+), 3 deletions(-) >> >> diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c >> index 431d60b..f9d13a7 100644 >> --- a/src/mesa/main/getstring.c >> +++ b/src/mesa/main/getstring.c >> @@ -58,6 +58,12 @@ shading_language_version(struct gl_context *ctx) >> return (const GLubyte *) "4.10"; >> case 420: >> return (const GLubyte *) "4.20"; >> + case 430: >> + return (const GLubyte *) "4.30"; >> + case 440: >> + return (const GLubyte *) "4.40"; >> + case 450: >> + return (const GLubyte *) "4.50"; >> default: >> _mesa_problem(ctx, >> "Invalid GLSL version in >> shading_language_version()"); >> diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c >> index 4dea530..c7a2381 100644 >> --- a/src/mesa/main/version.c >> +++ b/src/mesa/main/version.c >> @@ -290,7 +290,122 @@ compute_version(const struct gl_extensions *extensions, >> extensions->EXT_texture_swizzle); >> /* ARB_sampler_objects is always enabled in >> mesa */ >> >> - if (ver_3_3) { >> + const GLboolean ver_4_0 = (ver_3_3 && >> + consts->GLSLVersion >= 400 && >> + extensions->ARB_draw_buffers_blend && >> + extensions->ARB_draw_indirect && >> + extensions->ARB_gpu_shader5 && >> + false && // ARB_gpu_shader_fp64 && >> + extensions->ARB_sample_shading && >> + false && // ARB_shader_subroutine >> + false && // ARB_tesselation_shader >> + extensions->ARB_texture_buffer_object_rgb32 && >> + extensions->ARB_texture_cube_map_array && >> + extensions->ARB_texture_gather && >> + extensions->ARB_texture_query_lod && >> + extensions->ARB_transform_feedback2 && >> + extensions->ARB_transform_feedback3); >> + >> + const GLboolean ver_4_1 = (ver_4_0 && >> + consts->GLSLVersion >= 410 && >> + extensions->ARB_ES2_compatibility && >> + false && // ARB_shader_precision >> + false && // ARB_vertex_attrib_64bit >> + extensions->ARB_viewport_array); >> + /* ARB_get_program_binary and >> + ARB_separate_shader_objects are always >> enabled in mesa */ >> + >> + const GLboolean ver_4_2 = (ver_4_1 && >> + consts->GLSLVersion >= 420 && >> + extensions->ARB_texture_compression_bptc && >> + extensions->ARB_shader_atomic_counters && >> + extensions->ARB_transform_feedback_instanced >> && >> + extensions->ARB_base_instance && >> + extensions->ARB_shader_image_load_store && >> + extensions->ARB_conservative_depth && >> + extensions->ARB_shading_language_420pack && >> + extensions->ARB_internalformat_query); >> + /* ARB_compressed_texture_pixel_storage, >> + ARB_texture_storage and >> + ARB_map_buffer_alignment are always >> enabled in mesa */ >> + >> + const GLboolean ver_4_3 = (ver_4_2 && >> + consts->GLSLVersion >= 430 && >> + false && // ARB_arrays_of_arrays >> + extensions->ARB_ES3_compatibility && >> + extensions->ARB_compute_shader && >> + extensions->ARB_copy_image && >> + extensions->ARB_explicit_uniform_location && >> + extensions->ARB_fragment_layer_viewport && >> + false && // ARB_framebuffer_no_attachments >> + false && // ARB_internalformat_query2 >> + extensions->ARB_draw_indirect && >> + false && // ARB_program_interface_query >> + false && // ARB_robust_buffer_access_behavior >> + false && // ARB_shader_image_size >> + false && // ARB_shader_storage_buffer_object >> + extensions->ARB_stencil_texturing && >> + extensions->ARB_texture_buffer_range && >> + extensions->ARB_texture_query_levels && >> + extensions->ARB_texture_multisample && >> + extensions->ARB_texture_view); >> + /* ARB_clear_buffer_object, >> + KHR_debug, >> + ARB_invalidate_subdata and >> + ARB_vertex_attrib_binding are always >> enabled in mesa */ >> + >> + const GLboolean ver_4_4 = (ver_4_3 && >> + consts->GLSLVersion >= 440 && >> + false && // GL_MAX_VERTEX_ATTRIB_STRIDE >> + extensions->ARB_buffer_storage && >> + extensions->ARB_clear_texture && >> + false && // ARB_enhanced_layouts >> + false && // ARB_query_buffer_object >> + extensions->ARB_texture_mirror_clamp_to_edge >> && >> + false && // ARB_texture_stencil8 >> + extensions->ARB_vertex_type_10f_11f_11f_rev); >> + /* ARB_multi_bind is always enabled in mesa */ >> + >> + const GLboolean ver_4_5 = (ver_4_4 && >> + consts->GLSLVersion >= 450 && >> + false && // ARB_ES3_1_compatibility >> + false && // ARB_clip_control >> + extensions->ARB_conditional_render_inverted && >> + false && // ARB_cull_distance >> + extensions->ARB_derivative_control && >> + false && // ARB_direct_state_access >> + false && // ARB_get_texture_sub_image >> + false && // ARB_shader_texture_image_samples >> + extensions->NV_texture_barrier && >> + false && // KHR_context_flush_control >> + false && // KHR_robust_buffer_access_behavior >> + false); // KHR_robustness >> + >> + if (ver_4_5) { >> + major = 4; >> + minor = 5; >> + } >> + else if (ver_4_4) { >> + major = 4; >> + minor = 4; >> + } >> + else if (ver_4_3) { >> + major = 4; >> + minor = 3; >> + } >> + else if (ver_4_2) { >> + major = 4; >> + minor = 2; >> + } >> + else if (ver_4_1) { >> + major = 4; >> + minor = 1; >> + } >> + else if (ver_4_0) { >> + major = 4; >> + minor = 0; >> + } >> + else if (ver_3_3) { >> major = 3; >> minor = 3; >> } >> @@ -371,7 +486,8 @@ compute_version_es2(const struct gl_extensions >> *extensions) >> extensions->ARB_texture_non_power_of_two && >> extensions->EXT_blend_equation_separate); >> /* FINISHME: This list isn't quite right. */ >> - const GLboolean ver_3_0 = (extensions->ARB_half_float_vertex && >> + const GLboolean ver_3_0 = (ver_2_0 && >> + extensions->ARB_half_float_vertex && >> extensions->ARB_internalformat_query && >> extensions->ARB_map_buffer_range && >> extensions->ARB_shader_texture_lod && >> @@ -391,7 +507,25 @@ compute_version_es2(const struct gl_extensions >> *extensions) >> extensions->EXT_texture_snorm && >> extensions->NV_primitive_restart && >> extensions->OES_depth_texture_cube_map); >> - if (ver_3_0) { >> + >> + const GLboolean ver_3_1 = (ver_3_0 && >> + false && // ARB_arrays_of_arrays >> + extensions->ARB_compute_shader && >> + extensions->ARB_explicit_uniform_location && >> + false && // ARB_framebuffer_no_attachments >> + false && // ARB_program_interface_query >> + extensions->ARB_shader_atomic_counters && >> + extensions->ARB_shader_image_load_store && >> + false && // ARB_shader_storage_buffer_object >> + extensions->ARB_stencil_texturing && >> + extensions->ARB_gpu_shader5 && // Too much? >> + extensions->EXT_shader_integer_mix); >> + /* ARB_separate_shader_objects and >> + ARB_vertex_attrib_binding are always >> enabled in mesa */ >> + >> + if (ver_3_1) { >> + return 31; >> + } else if (ver_3_0) { >> return 30; >> } else if (ver_2_0) { >> return 20; >> > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev