X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=init.cpp;h=b9e68ab16e9d0c9ed164ea28b7f47b03d253f681;hp=7781ba24ccd7e8fb76c1e5f305ecff8ba75c35bc;hb=bb8f46837ca4dfa2d085dfbf62e5c27136778712;hpb=e0811ddf51aeb50575fb5f7d9c6e32b92a6bac0d diff --git a/init.cpp b/init.cpp index 7781ba2..b9e68ab 100644 --- a/init.cpp +++ b/init.cpp @@ -18,7 +18,6 @@ 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; // The rules for objects with nontrivial constructors in static scope @@ -79,9 +78,11 @@ void measure_texel_subpixel_precision() glViewport(0, 0, width, 1); + vector frag_shader_outputs; GLuint glsl_program_num = resource_pool.compile_glsl_program( read_version_dependent_file("vs", "vert"), - read_version_dependent_file("texture1d", "frag")); + read_version_dependent_file("texture1d", "frag"), + frag_shader_outputs); glUseProgram(glsl_program_num); check_error(); glUniform1i(glGetUniformLocation(glsl_program_num, "tex"), 0); // Bind the 2D sampler. @@ -211,9 +212,11 @@ void measure_roundoff_problems() glViewport(0, 0, 512, 1); + vector frag_shader_outputs; GLuint glsl_program_num = resource_pool.compile_glsl_program( read_version_dependent_file("vs", "vert"), - read_version_dependent_file("texture1d", "frag")); + read_version_dependent_file("texture1d", "frag"), + frag_shader_outputs); glUseProgram(glsl_program_num); check_error(); glUniform1i(glGetUniformLocation(glsl_program_num, "tex"), 0); // Bind the 2D sampler. @@ -314,7 +317,6 @@ bool check_extensions() if (!epoxy_is_desktop_gl()) { if (epoxy_gl_version() >= 30) { movit_srgb_textures_supported = true; - movit_shader_rounding_supported = true; return true; } else { fprintf(stderr, "Movit system requirements: GLES version %.1f is too old (GLES 3.0 needed).\n", @@ -349,13 +351,6 @@ bool check_extensions() movit_srgb_textures_supported = (epoxy_gl_version() >= 21 || epoxy_has_gl_extension("GL_EXT_texture_sRGB")); - // We may want to use round() at the end of the final shader, - // if supported. We need either GLSL 1.30 or this extension to do that, - // and 1.30 brings with it other things that we don't want to demand - // for now. - 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. @@ -433,14 +428,7 @@ bool init_movit(const string& data_directory, MovitDebugLevel debug_level) 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()); - if (get_glsl_version() >= 1.10f) { - fprintf(stderr, "Attempting to continue nevertheless; expect shader compilation issues.\n"); - fprintf(stderr, "Try switching to a core OpenGL context, as especially OS X drivers\n"); - fprintf(stderr, "support newer GLSL versions there.\n"); - movit_shader_model = MOVIT_GLSL_130_AS_110; - } else { - return false; - } + return false; } if (get_glsl_version() < 1.50f) { movit_shader_model = MOVIT_GLSL_130;