X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=init.cpp;h=5b8da897271e8cf6b282cf153759bb8666e47a53;hp=a7bd1e3ea5d4e247722c04f3d1a6d1aabd2b33a4;hb=3c2ad5e6496cc518f6abd23a5a5332314e8dab80;hpb=da8dfcce3a52f2de180ead1dd315f6e6cac5fef2 diff --git a/init.cpp b/init.cpp index a7bd1e3..5b8da89 100644 --- a/init.cpp +++ b/init.cpp @@ -16,6 +16,7 @@ bool movit_initialized = false; MovitDebugLevel movit_debug_level = MOVIT_DEBUG_ON; float movit_texel_subpixel_precision; bool movit_srgb_textures_supported; +bool movit_timer_queries_supported; int movit_num_wrongly_rounded; bool movit_shader_rounding_supported; MovitShaderModel movit_shader_model; @@ -355,6 +356,12 @@ bool check_extensions() movit_shader_rounding_supported = (epoxy_gl_version() >= 30 || epoxy_has_gl_extension("GL_EXT_gpu_shader4")); + // The user can specify that they want a timing report for each + // phase in an effect chain. However, that depends on this extension; + // without it, we do cannot even create the query objects. + movit_timer_queries_supported = + (epoxy_gl_version() >= 33 || epoxy_has_gl_extension("GL_ARB_timer_query")); + return true; } @@ -421,12 +428,14 @@ bool init_movit(const string& data_directory, MovitDebugLevel debug_level) } // Find out what shader model we should compile for. + // We need at least 1.30, due to use of (among others) integers. if (epoxy_is_desktop_gl()) { - if (get_glsl_version() >= 1.30) { - movit_shader_model = MOVIT_GLSL_130; - } else { - movit_shader_model = MOVIT_GLSL_110; + if (get_glsl_version() < 1.30f) { + fprintf(stderr, "Movit system requirements: Needs at least GLSL version 1.30 (has version %.1f)\n", + get_glsl_version()); + return false; } + movit_shader_model = MOVIT_GLSL_130; } else { movit_shader_model = MOVIT_ESSL_300; }