diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 370b29f563..cc9a909d89 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4772,9 +4772,6 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct case DISPLAYLIST_LATENCY_SETTINGS_LIST: { menu_displaylist_build_info_t build_list[] = { - {MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES, PARSE_ONLY_UINT }, - {MENU_ENUM_LABEL_VIDEO_HARD_SYNC, PARSE_ONLY_BOOL }, - {MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES, PARSE_ONLY_UINT }, {MENU_ENUM_LABEL_VIDEO_FRAME_DELAY, PARSE_ONLY_UINT }, {MENU_ENUM_LABEL_AUDIO_LATENCY, PARSE_ONLY_UINT }, {MENU_ENUM_LABEL_INPUT_POLL_TYPE_BEHAVIOR, PARSE_ONLY_UINT }, @@ -4785,6 +4782,25 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct {MENU_ENUM_LABEL_RUN_AHEAD_HIDE_WARNINGS, PARSE_ONLY_BOOL }, }; + if (video_driver_test_all_flags(GFX_CTX_FLAGS_CUSTOMIZABLE_SWAPCHAIN_IMAGES)) + { + menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES, + PARSE_ONLY_UINT, false); + count++; + } + if (video_driver_test_all_flags(GFX_CTX_FLAGS_HARD_SYNC)) + { + menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_VIDEO_HARD_SYNC, + PARSE_ONLY_BOOL, false); + count++; + menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES, + PARSE_ONLY_UINT, false); + count++; + } + for (i = 0; i < ARRAY_SIZE(build_list); i++) { if (menu_displaylist_parse_settings_enum(list, @@ -7420,18 +7436,24 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist_parse_settings_enum(info->list, MENU_ENUM_LABEL_VIDEO_ADAPTIVE_VSYNC, PARSE_ONLY_BOOL, false); - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES, - PARSE_ONLY_UINT, false) == 0) + if (video_driver_test_all_flags(GFX_CTX_FLAGS_CUSTOMIZABLE_SWAPCHAIN_IMAGES)) + { + menu_displaylist_parse_settings_enum(info->list, + MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES, + PARSE_ONLY_UINT, false); count++; - if (menu_displaylist_parse_settings_enum(info->list, + } + if (video_driver_test_all_flags(GFX_CTX_FLAGS_HARD_SYNC)) + { + menu_displaylist_parse_settings_enum(info->list, MENU_ENUM_LABEL_VIDEO_HARD_SYNC, - PARSE_ONLY_BOOL, false) == 0) + PARSE_ONLY_BOOL, false); count++; - if (menu_displaylist_parse_settings_enum(info->list, + menu_displaylist_parse_settings_enum(info->list, MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES, - PARSE_ONLY_UINT, false) == 0) + PARSE_ONLY_UINT, false); count++; + } if (menu_displaylist_parse_settings_enum(info->list, MENU_ENUM_LABEL_VIDEO_FRAME_DELAY, PARSE_ONLY_UINT, false) == 0) diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 8e783fbbbd..2864808aa0 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -9548,55 +9548,48 @@ static bool setting_append_list( SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_CMD_APPLY_AUTO); SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_LAKKA_ADVANCED); - if (video_driver_test_all_flags(GFX_CTX_FLAGS_CUSTOMIZABLE_SWAPCHAIN_IMAGES)) - { - CONFIG_UINT( - list, list_info, - &settings->uints.video_max_swapchain_images, - MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES, - MENU_ENUM_LABEL_VALUE_VIDEO_MAX_SWAPCHAIN_IMAGES, - DEFAULT_MAX_SWAPCHAIN_IMAGES, - &group_info, - &subgroup_info, - parent_group, - general_write_handler, - general_read_handler); - menu_settings_list_current_add_range(list, list_info, 1, 4, 1, true, true); - SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_CMD_APPLY_AUTO); - } + CONFIG_UINT( + list, list_info, + &settings->uints.video_max_swapchain_images, + MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES, + MENU_ENUM_LABEL_VALUE_VIDEO_MAX_SWAPCHAIN_IMAGES, + DEFAULT_MAX_SWAPCHAIN_IMAGES, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + menu_settings_list_current_add_range(list, list_info, 1, 4, 1, true, true); + SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_CMD_APPLY_AUTO); - if (video_driver_test_all_flags(GFX_CTX_FLAGS_HARD_SYNC)) - { - CONFIG_BOOL( - list, list_info, - &settings->bools.video_hard_sync, - MENU_ENUM_LABEL_VIDEO_HARD_SYNC, - MENU_ENUM_LABEL_VALUE_VIDEO_HARD_SYNC, - DEFAULT_HARD_SYNC, - MENU_ENUM_LABEL_VALUE_OFF, - MENU_ENUM_LABEL_VALUE_ON, - &group_info, - &subgroup_info, - parent_group, - general_write_handler, - general_read_handler, - SD_FLAG_NONE - ); + CONFIG_BOOL( + list, list_info, + &settings->bools.video_hard_sync, + MENU_ENUM_LABEL_VIDEO_HARD_SYNC, + MENU_ENUM_LABEL_VALUE_VIDEO_HARD_SYNC, + DEFAULT_HARD_SYNC, + MENU_ENUM_LABEL_VALUE_OFF, + MENU_ENUM_LABEL_VALUE_ON, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler, + SD_FLAG_NONE); - CONFIG_UINT( - list, list_info, - &settings->uints.video_hard_sync_frames, - MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES, - MENU_ENUM_LABEL_VALUE_VIDEO_HARD_SYNC_FRAMES, - DEFAULT_HARD_SYNC_FRAMES, - &group_info, - &subgroup_info, - parent_group, - general_write_handler, - general_read_handler); - (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; - menu_settings_list_current_add_range(list, list_info, 0, 3, 1, true, true); - } + CONFIG_UINT( + list, list_info, + &settings->uints.video_hard_sync_frames, + MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES, + MENU_ENUM_LABEL_VALUE_VIDEO_HARD_SYNC_FRAMES, + DEFAULT_HARD_SYNC_FRAMES, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + menu_settings_list_current_add_range(list, list_info, 0, 3, 1, true, true); if (video_driver_test_all_flags(GFX_CTX_FLAGS_ADAPTIVE_VSYNC)) { diff --git a/retroarch.c b/retroarch.c index 4b9b7fdeea..7f2d3832fd 100644 --- a/retroarch.c +++ b/retroarch.c @@ -19021,6 +19021,7 @@ static bool video_driver_find_driver(void) if (hwr && hw_render_context_is_vulkan(hwr->context_type)) { RARCH_LOG("[Video]: Using HW render, Vulkan driver forced.\n"); + strcpy(settings->arrays.video_driver, "vulkan"); current_video = &video_vulkan; } #endif @@ -21093,7 +21094,8 @@ static void drivers_init(int flags) { /* Initialize menu driver */ if (flags & DRIVER_MENU_MASK) - menu_driver_init(video_is_threaded); + if (!menu_driver_init(video_is_threaded)) + RARCH_ERR("Unable to init menu driver.\n"); } #else /* Qt uses core info, even if the menu is disabled */