- move shader flags from the video drivers to the context drivers
- rework config_load_shader_preset() from configuration.c into retroarch_load_shader_preset() in retroarch.c with proper compatibility check
- implicitly call retroarch_load_shader_preset() in retroarch_get_shader_preset() once per core/content life cycle
- use video_shader_is_supported() instead of video_driver_test_all_flags() where appropriate
- remove GFX_CTX_FLAGS_NONE because it is meaningless
- gl.c: refactor backend fallback into more general gl2_get_fallback_shader_type
- d3d9-12, gl_core, gx2_gfx, gl, vulkan: more consistent shader init and `set_shader` behavior
- configuration.c: remove check_shader_compatibility
- shader_glsl.c, shader_gl_cg.c: use `video_shader_get_type_from_ext`
- shader_gl_cg.c: add shader type check with fallback to stock like in shader_glsl.c
- menu_shader.c: use `enum rarch_shader_type` instead of `unsigned`
- video_shader_parse.c: add `video_shader_to_str` for easier logging
- remove `type` from `struct video_shader`, which was always set to CG and wrongly used in lang_process.cpp's `slang_process()` (has no further consequences because the code is unused)
- video_shader_parse_type()'s fallback only worked for NULL paths and was wrongly used, now returns RARCH_SHADER_NONE like video_shader_get_type_from_ext().
- video_shader_get_type_from_ext() should not be checking video driver flags, this is instead done by video_shader_is_supported()
- video_driver_get_all_flags() did not actually 'get' flags, changed to video_driver_test_all_flags()
workaround for crash due to glcore not always using at least OpenGL 3.2
- Correctly handle error conditions in menu_displaylist 'DISPLAYLIST_DATABASE_ENTRY' case (i.e. prevent segfaults/menu lockups when content
has no label)
- only use filestream_exists immediately before filestream_delete or
any other genuine filestream-related operations - when just checking
if a path exists on the filesystem, just use path_is_valid - faster