From de4e9b9fcc50de7bd71bece0b57873033722864d Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 13 Mar 2019 11:27:25 +0100 Subject: [PATCH] Only show 'update shaders' options based on what the video driver and underlying shader driver/context driver supports --- menu/menu_displaylist.c | 53 +++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 6eef2af825..56eb372d03 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3245,34 +3245,45 @@ static unsigned menu_displaylist_parse_options( MENU_SETTING_ACTION, 0, 0); count++; - if (video_shader_is_supported(RARCH_SHADER_CG)) { - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UPDATE_CG_SHADERS), - msg_hash_to_str(MENU_ENUM_LABEL_UPDATE_CG_SHADERS), - MENU_ENUM_LABEL_UPDATE_CG_SHADERS, - MENU_SETTING_ACTION, 0, 0); - count++; + gfx_ctx_flags_t flags; + + if (video_driver_get_all_flags(&flags, GFX_CTX_FLAGS_SHADERS_CG)) + { + + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UPDATE_CG_SHADERS), + msg_hash_to_str(MENU_ENUM_LABEL_UPDATE_CG_SHADERS), + MENU_ENUM_LABEL_UPDATE_CG_SHADERS, + MENU_SETTING_ACTION, 0, 0); + count++; + } } - if (video_shader_is_supported(RARCH_SHADER_GLSL)) { - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UPDATE_GLSL_SHADERS), - msg_hash_to_str(MENU_ENUM_LABEL_UPDATE_GLSL_SHADERS), - MENU_ENUM_LABEL_UPDATE_GLSL_SHADERS, - MENU_SETTING_ACTION, 0, 0); - count++; + gfx_ctx_flags_t flags; + if (video_driver_get_all_flags(&flags, GFX_CTX_FLAGS_SHADERS_GLSL)) + { + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UPDATE_GLSL_SHADERS), + msg_hash_to_str(MENU_ENUM_LABEL_UPDATE_GLSL_SHADERS), + MENU_ENUM_LABEL_UPDATE_GLSL_SHADERS, + MENU_SETTING_ACTION, 0, 0); + count++; + } } - if (video_shader_is_supported(RARCH_SHADER_SLANG)) { - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UPDATE_SLANG_SHADERS), - msg_hash_to_str(MENU_ENUM_LABEL_UPDATE_SLANG_SHADERS), - MENU_ENUM_LABEL_UPDATE_SLANG_SHADERS, - MENU_SETTING_ACTION, 0, 0); - count++; + gfx_ctx_flags_t flags; + if (video_driver_get_all_flags(&flags, GFX_CTX_FLAGS_SHADERS_SLANG)) + { + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UPDATE_SLANG_SHADERS), + msg_hash_to_str(MENU_ENUM_LABEL_UPDATE_SLANG_SHADERS), + MENU_ENUM_LABEL_UPDATE_SLANG_SHADERS, + MENU_SETTING_ACTION, 0, 0); + count++; + } } #endif