@@ -376,22 +376,27 @@ static bool gl_glsl_compile_shader(glsl_shader_data_t *glsl,
376376 strtoul (existing_version + 8 , (char * * )& program , 10 );
377377
378378#ifdef HAVE_OPENGLES
379- if (version_no >= 130 && version_no < 330 )
379+ if (gl_check_capability ( GL_CAPS_GLES3_SUPPORTED ) )
380380 {
381- version_extra = " es" ;
382- version_no = 300 ;
383- }
384- else if (version_no == 330 )
385- {
386- version_extra = " es" ;
387- version_no = 310 ;
388- }
389- else if (version_no > 330 )
390- {
391- version_extra = " es" ;
392- version_no = 320 ;
381+ if (version_no >= 130 && version_no < 330 )
382+ {
383+ version_extra = " es" ;
384+ version_no = 300 ;
385+ }
386+ else if (version_no == 330 )
387+ {
388+ version_extra = " es" ;
389+ version_no = 310 ;
390+ }
391+ else if (version_no > 330 )
392+ {
393+ version_extra = " es" ;
394+ version_no = 320 ;
395+ }
396+ else version_no = 100 ;
393397 }
394- else version_no = 100 ;
398+ /* Avoid versions that definitely aren't supported. */
399+ else version_no = 100 ;
395400#endif
396401 snprintf (version ,
397402 sizeof (version ), "#version %u%s\n" , version_no , version_extra );
@@ -895,7 +900,12 @@ static void gl_glsl_init_menu_shaders(void *data)
895900 shader_prog_info .vertex = stock_vertex_xmb_ribbon_modern ;
896901 shader_prog_info .fragment = stock_fragment_xmb ;
897902#else
898- if (gl_query_extension ("GL_OES_standard_derivatives" ))
903+ if (gl_check_capability (GL_CAPS_GLES3_SUPPORTED ))
904+ {
905+ shader_prog_info .vertex = stock_vertex_xmb_ribbon_modern ;
906+ shader_prog_info .fragment = core_stock_fragment_xmb ;
907+ }
908+ else if (gl_query_extension ("GL_OES_standard_derivatives" ))
899909 {
900910 shader_prog_info .vertex = glsl_core ? stock_vertex_xmb_ribbon_modern : stock_vertex_xmb_ribbon_legacy ;
901911 shader_prog_info .fragment = glsl_core ? core_stock_fragment_xmb : stock_fragment_xmb ;
0 commit comments