mirror of
https://github.com/libretro/RetroArch.git
synced 2024-11-23 07:59:42 +00:00
Remove 'Frame Rest' (#16936)
This commit is contained in:
parent
fe870bc2e0
commit
3f8dc5c49d
@ -399,9 +399,6 @@
|
||||
#define MAXIMUM_FRAME_DELAY 99
|
||||
#define DEFAULT_FRAME_DELAY_AUTO false
|
||||
|
||||
/* Try to sleep the spare time after frame is presented in order to reduce vsync CPU usage. */
|
||||
#define DEFAULT_FRAME_REST false
|
||||
|
||||
/* Duplicates frames for the purposes of running Shaders at a higher framerate
|
||||
* than content framerate. Requires running screen at multiple of 60hz, and
|
||||
* don't combine with Swap_interval > 1, or BFI. (Though BFI can be done in a shader
|
||||
|
@ -1862,7 +1862,6 @@ static struct config_bool_setting *populate_settings_bool(
|
||||
SETTING_BOOL("video_ctx_scaling", &settings->bools.video_ctx_scaling, true, DEFAULT_VIDEO_CTX_SCALING, false);
|
||||
SETTING_BOOL("video_force_aspect", &settings->bools.video_force_aspect, true, DEFAULT_FORCE_ASPECT, false);
|
||||
SETTING_BOOL("video_frame_delay_auto", &settings->bools.video_frame_delay_auto, true, DEFAULT_FRAME_DELAY_AUTO, false);
|
||||
SETTING_BOOL("video_frame_rest", &settings->bools.video_frame_rest, true, DEFAULT_FRAME_REST, false);
|
||||
#if defined(DINGUX)
|
||||
SETTING_BOOL("video_dingux_ipu_keep_aspect", &settings->bools.video_dingux_ipu_keep_aspect, true, DEFAULT_DINGUX_IPU_KEEP_ASPECT, false);
|
||||
#endif
|
||||
|
@ -609,7 +609,6 @@ typedef struct settings
|
||||
bool video_ctx_scaling;
|
||||
bool video_force_aspect;
|
||||
bool video_frame_delay_auto;
|
||||
bool video_frame_rest;
|
||||
bool video_crop_overscan;
|
||||
bool video_aspect_ratio_auto;
|
||||
bool video_dingux_ipu_keep_aspect;
|
||||
|
@ -68,7 +68,6 @@
|
||||
#define TIME_TO_FPS(last_time, new_time, frames) ((1000000.0f * (frames)) / ((new_time) - (last_time)))
|
||||
|
||||
#define FRAME_DELAY_AUTO_DEBUG 0
|
||||
#define FRAME_REST_DEBUG 0
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@ -2708,7 +2707,6 @@ void video_driver_build_info(video_frame_info_t *video_info)
|
||||
video_info->runloop_is_paused = (runloop_st->flags & RUNLOOP_FLAG_PAUSED) ? true : false;
|
||||
video_info->runloop_is_slowmotion = (runloop_st->flags & RUNLOOP_FLAG_SLOWMOTION) ? true : false;
|
||||
video_info->fastforward_frameskip = settings->bools.fastforward_frameskip;
|
||||
video_info->frame_rest = settings->bools.video_frame_rest;
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifdef HAVE_VULKAN
|
||||
@ -3840,7 +3838,6 @@ void video_driver_frame(const void *data, unsigned width,
|
||||
audio_statistics_t audio_stats;
|
||||
char tmp[256];
|
||||
char latency_stats[256];
|
||||
char throttle_stats[128];
|
||||
size_t len;
|
||||
double stddev = 0.0;
|
||||
float font_size_scale = (float)video_info.font_size / 100;
|
||||
@ -3886,28 +3883,10 @@ void video_driver_frame(const void *data, unsigned width,
|
||||
|
||||
audio_compute_buffer_statistics(&audio_stats);
|
||||
|
||||
throttle_stats[0] = '\0';
|
||||
latency_stats[0] = '\0';
|
||||
tmp[0] = '\0';
|
||||
len = 0;
|
||||
|
||||
if (video_info.frame_rest)
|
||||
len = snprintf(tmp + len, sizeof(throttle_stats),
|
||||
" Frame Rest: %2u.00 ms\n"
|
||||
" - Rested: %5.2f %%\n",
|
||||
video_st->frame_rest,
|
||||
(float)video_st->frame_rest_time_count / runloop_st->core_runtime_usec * 100);
|
||||
|
||||
if (len)
|
||||
{
|
||||
/* TODO/FIXME - localize */
|
||||
size_t _len = strlcpy(throttle_stats, "THROTTLE\n", sizeof(throttle_stats));
|
||||
strlcpy(throttle_stats + _len, tmp, sizeof(throttle_stats) - _len);
|
||||
}
|
||||
|
||||
tmp[0] = '\0';
|
||||
len = 0;
|
||||
|
||||
/* TODO/FIXME - localize */
|
||||
if (video_st->frame_delay_target > 0)
|
||||
len = snprintf(tmp, sizeof(latency_stats),
|
||||
@ -3968,7 +3947,6 @@ void video_driver_frame(const void *data, unsigned width,
|
||||
" Underrun: %5.2f %%\n"
|
||||
" Blocking: %5.2f %%\n"
|
||||
" Samples: %8d\n"
|
||||
"%s"
|
||||
"%s",
|
||||
av_info->geometry.base_width,
|
||||
av_info->geometry.base_height,
|
||||
@ -3992,7 +3970,6 @@ void video_driver_frame(const void *data, unsigned width,
|
||||
audio_stats.close_to_underrun,
|
||||
audio_stats.close_to_blocking,
|
||||
audio_stats.samples,
|
||||
throttle_stats,
|
||||
latency_stats);
|
||||
|
||||
/* TODO/FIXME - add OSD chat text here */
|
||||
@ -4565,149 +4542,3 @@ void video_frame_delay_auto(video_driver_state_t *video_st, video_frame_delay_au
|
||||
);
|
||||
#endif
|
||||
}
|
||||
|
||||
void video_frame_rest(video_driver_state_t *video_st,
|
||||
settings_t *settings,
|
||||
retro_time_t current_time)
|
||||
{
|
||||
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
||||
audio_statistics_t audio_stats = {0};
|
||||
double video_stddev = 0;
|
||||
static retro_time_t after_present = 0;
|
||||
retro_time_t latest_time = cpu_features_get_time_usec();
|
||||
retro_time_t frame_time_delta = latest_time - current_time;
|
||||
uint16_t frame_time_target = 1000000.0f / settings->floats.video_refresh_rate;
|
||||
uint16_t frame_time = 0;
|
||||
static int8_t frame_time_over_count = 0;
|
||||
static int8_t frame_time_near_count = 0;
|
||||
static int8_t frame_time_try_count = 0;
|
||||
uint8_t frame_time_near_req_count = ceil(settings->floats.video_refresh_rate / 2);
|
||||
uint8_t sleep_max = frame_time_target / 1000 / 2;
|
||||
uint8_t sleep = 0;
|
||||
#ifdef HAVE_MENU
|
||||
bool menu_is_alive = (menu_state_get_ptr()->flags & MENU_ST_FLAG_ALIVE);
|
||||
bool menu_is_pausing = settings->bools.menu_pause_libretro && menu_is_alive;
|
||||
#else
|
||||
bool menu_is_alive = false;
|
||||
bool menu_is_pausing = false;
|
||||
#endif
|
||||
|
||||
/* Don't care about deviations when core is not running */
|
||||
if ( !menu_is_alive
|
||||
&& !(runloop_st->flags & RUNLOOP_FLAG_PAUSED)
|
||||
&& (runloop_st->flags & RUNLOOP_FLAG_CORE_RUNNING))
|
||||
{
|
||||
/* Must require video and audio deviation standards */
|
||||
video_monitor_fps_statistics(NULL, &video_stddev, NULL);
|
||||
audio_compute_buffer_statistics(&audio_stats);
|
||||
}
|
||||
|
||||
/* Compare to previous timestamp */
|
||||
frame_time = latest_time - after_present;
|
||||
|
||||
/* Count running timers */
|
||||
if (frame_time > frame_time_target)
|
||||
frame_time_over_count++;
|
||||
else if (frame_time < frame_time_target)
|
||||
frame_time_over_count--;
|
||||
|
||||
if (abs(frame_time - frame_time_target) < frame_time_target * 0.002f)
|
||||
frame_time_near_count++;
|
||||
else
|
||||
frame_time_near_count--;
|
||||
|
||||
/* Take new timestamp */
|
||||
after_present = latest_time;
|
||||
|
||||
/* Ignore unreasonable frame times */
|
||||
if ( frame_time < frame_time_target / 2
|
||||
|| frame_time > frame_time_target * 2)
|
||||
return;
|
||||
|
||||
/* Carry the extra */
|
||||
frame_time_delta -= frame_time_target - frame_time;
|
||||
sleep = (frame_time_delta > 0) ? frame_time_delta : 0;
|
||||
|
||||
/* No rest with bogus values */
|
||||
if ( sleep < 0
|
||||
|| ( frame_time_target < frame_time_delta
|
||||
&& frame_time_target < frame_time))
|
||||
sleep = 0;
|
||||
|
||||
/* Reset over the target counter */
|
||||
if (!sleep)
|
||||
frame_time_over_count = 0;
|
||||
|
||||
frame_time_try_count++;
|
||||
if ( frame_time_try_count > frame_time_near_req_count * 2
|
||||
|| frame_time_try_count < frame_time_near_count)
|
||||
frame_time_over_count = frame_time_near_count = frame_time_try_count = 0;
|
||||
|
||||
/* Increase */
|
||||
if ( sleep
|
||||
&& (frame_time_over_count < 2)
|
||||
&& (video_stddev * 100.0f < 20.00f)
|
||||
&& (audio_stats.std_deviation_percentage < 25.00f)
|
||||
&& (frame_time_near_count > frame_time_try_count / 2)
|
||||
&& (frame_time_near_count > frame_time_near_req_count)
|
||||
)
|
||||
{
|
||||
#if FRAME_REST_DEBUG
|
||||
RARCH_DBG("+ frame=%5d delta=%5d sleep=%2d over=%3d near=%3d try=%3d\n", frame_time, frame_time_delta, video_st->frame_rest, frame_time_over_count, frame_time_near_count, frame_time_try_count);
|
||||
#endif
|
||||
video_st->frame_rest++;
|
||||
frame_time_over_count = frame_time_near_count = frame_time_try_count = 0;
|
||||
}
|
||||
/* Decrease */
|
||||
else if (sleep
|
||||
&& (frame_time_over_count != 0)
|
||||
&& (frame_time_try_count > 10)
|
||||
&& ( (frame_time_near_count < -2 && -frame_time_near_count >= frame_time_try_count)
|
||||
|| (frame_time_over_count > frame_time_near_req_count / 2)
|
||||
|| (frame_time_over_count < -(frame_time_near_req_count / 2))
|
||||
)
|
||||
)
|
||||
{
|
||||
#if FRAME_REST_DEBUG
|
||||
RARCH_DBG("- frame=%5d delta=%5d sleep=%2d over=%3d near=%3d try=%3d\n", frame_time, frame_time_delta, video_st->frame_rest, frame_time_over_count, frame_time_near_count, frame_time_try_count);
|
||||
#endif
|
||||
if (video_st->frame_rest)
|
||||
video_st->frame_rest--;
|
||||
frame_time_over_count = frame_time_near_count = frame_time_try_count = 0;
|
||||
}
|
||||
|
||||
/* Limit to maximum sleep */
|
||||
if (video_st->frame_rest > sleep_max)
|
||||
video_st->frame_rest = sleep_max;
|
||||
|
||||
/* Subtract effective frame delay */
|
||||
if (video_st->frame_delay_effective >= 0 && video_st->frame_rest > 0)
|
||||
{
|
||||
int new_rest = video_st->frame_rest;
|
||||
|
||||
if (new_rest + video_st->frame_delay_effective > sleep_max)
|
||||
new_rest = sleep_max - video_st->frame_delay_effective;
|
||||
if (new_rest < 0)
|
||||
new_rest = 0;
|
||||
|
||||
/* Only allow recover from dropped frame delay if in menu */
|
||||
if ( video_st->frame_delay_effective < video_st->frame_delay_target
|
||||
&& video_st->frame_delay_effective < video_st->frame_rest
|
||||
&& !menu_is_alive)
|
||||
new_rest = video_st->frame_delay_effective;
|
||||
|
||||
video_st->frame_rest = new_rest;
|
||||
}
|
||||
|
||||
#if FRAME_REST_DEBUG
|
||||
RARCH_DBG(" frame=%5d delta=%5d sleep=%2d over=%3d near=%3d try=%3d %f %f\n", frame_time, frame_time_delta, video_st->frame_rest, frame_time_over_count, frame_time_near_count, frame_time_try_count, video_stddev, audio_stats.std_deviation_percentage);
|
||||
#endif
|
||||
|
||||
/* Do what is promised and add to statistics */
|
||||
if (video_st->frame_rest > 0)
|
||||
{
|
||||
if (!menu_is_pausing)
|
||||
video_st->frame_rest_time_count += video_st->frame_rest * 1000;
|
||||
retro_sleep(video_st->frame_rest);
|
||||
}
|
||||
}
|
||||
|
@ -485,7 +485,6 @@ typedef struct video_frame_info
|
||||
bool runloop_is_slowmotion;
|
||||
bool runloop_is_paused;
|
||||
bool fastforward_frameskip;
|
||||
bool frame_rest;
|
||||
bool msg_bgcolor_enable;
|
||||
bool crt_switch_hires_menu;
|
||||
bool hdr_enable;
|
||||
@ -779,7 +778,6 @@ typedef struct
|
||||
retro_time_t frame_time_samples[MEASURE_FRAME_TIME_SAMPLES_COUNT];
|
||||
uint64_t frame_time_count;
|
||||
uint64_t frame_count;
|
||||
uint64_t frame_rest_time_count;
|
||||
uint8_t *record_gpu_buffer;
|
||||
#ifdef HAVE_VIDEO_FILTER
|
||||
rarch_softfilter_t *state_filter;
|
||||
@ -867,7 +865,6 @@ typedef struct
|
||||
|
||||
uint16_t frame_drop_count;
|
||||
uint16_t frame_time_reserve;
|
||||
uint8_t frame_rest;
|
||||
uint8_t frame_delay_target;
|
||||
uint8_t frame_delay_effective;
|
||||
bool frame_delay_pause;
|
||||
@ -1133,10 +1130,6 @@ void video_frame_delay(video_driver_state_t *video_st,
|
||||
void video_frame_delay_auto(video_driver_state_t *video_st,
|
||||
video_frame_delay_auto_t *vfda);
|
||||
|
||||
void video_frame_rest(video_driver_state_t *video_st,
|
||||
settings_t *settings,
|
||||
retro_time_t current_time);
|
||||
|
||||
/**
|
||||
* video_context_driver_init:
|
||||
* @core_set_shared_context : Boolean value that tells us whether shared context
|
||||
|
@ -8943,10 +8943,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_WIFI_NETWORKS,
|
||||
"Злучыцца з сеткай"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"Спакой кадраў"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_RESTART_KEY,
|
||||
"Перазапуск RetroArch"
|
||||
|
@ -15163,14 +15163,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"启用 Linux 游戏模式可以通过自动配置 CPU 和 GPU 的最佳性能来提高延迟性,修复音频破解问题,并最大限度地提高整体性能。\n需要安装游戏模式软件才能正常工作。请参阅https://github.com/FeralInteractive/gamemode获取如何安装 GameMode的信息。"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"图像休眠"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"尽量在图像显示后通过休眠来减少垂直同步 CPU使用率。主要为第三方扫描同步设计。"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"使用 PAL60 模式"
|
||||
|
@ -14647,14 +14647,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"Zapnutím režimu Linux GameMode lze zlepšit latenci, odstranit problémy s praskáním zvuku a maximalizovat celkový výkon automatickou konfigurací CPU a GPU pro nejlepší výkon.\nPro fungování tohoto režimu je třeba nainstalovat software Herní mód. Informace o instalaci Herní mód naleznete na adrese https://github.com/FeralInteractive/gamemode."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"Snímkový odpočinek"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"Pokuste se snížit využití procesoru vsync tím, že po prezentaci snímku co nejvíce uspíte. Určeno především pro synchronizaci skenovací linie třetích stran."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"Použít režim PAL60r"
|
||||
|
@ -14867,14 +14867,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"Das Aktivieren von Linux GameMode kann die Latenzzeit verbessern, Audioknackser beheben und die Gesamtleistung maximieren, indem CPU und GPU automatisch für die beste Leistung konfiguriert werden.\nDie GameMode-Software muss installiert sein, damit dies funktioniert. Siehe https://github.com/FeralInteractive/gamemode für Informationen zur Installation von GameMode."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"Bildpausen"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"Versucht, die CPU-Last von vsync zu reduzieren, indem es nach der Framedarstellung so viel wie möglich ruht. In erster Linie für Scanline-Synchronisation von Drittanbietern entwickelt."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"Verwende PAL60-Modus"
|
||||
|
@ -15211,14 +15211,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"Activar el GameMode de Linux podría mejorar la latencia, corregir chasquidos en el audio y maximizar el rendimiento general configurando de forma automática tu CPU y GPU para sacarles el máximo partido.\nEs necesario tener instalado el software GameMode para que esta opción surta efecto. Para más información sobre cómo instalar GameMode, visita https://github.com/FeralInteractive/gamemode (en inglés)."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"Poner fotogramas en reposo"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"Intenta reducir el consumo de CPU de la sincronía vertical poniéndola en espera todo el tiempo posible tras presentar cada fotograma. Opción diseñada principalmente para sincronizarse con filtros de líneas de barrido («scanlines») de terceros."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"Usar modo PAL60"
|
||||
|
@ -15171,14 +15171,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"Activer le GameMode de Linux peut améliorer la latence, corriger les problèmes de crépitements audio et maximiser les performances globales en configurant automatiquement votre processeur et votre processeur graphique pour les meilleures performances.\nLe logiciel GameMode doit être installé pour que cela fonctionne. Consultez https://github.com/FeralInteractive/gamemode pour plus d'informations sur l'installation de GameMode."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"Repos de l'image"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"Tenter de réduire l'utilisation processeur pour la synchronisation verticale (vsync) en se mettant le plus possible en veille après la présentation d'images. Conçu principalement pour les systèmes de synchronisation des lignes de balayage tiers."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"Utiliser le mode PAL60"
|
||||
|
@ -15027,14 +15027,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"A activación de Linux GameMode pode mellorar a latencia, solucionar problemas de crepitación de audio e maximizar o rendemento xeral configurando automaticamente a CPU e a GPU para obter o mellor rendemento.\nPara que funcione, é necesario instalar o software GameMode. Consulte https://github.com/FeralInteractive/gamemode para obter información sobre como instalar GameMode."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"Pausa de fotogramas"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"Tentar reducir o uso da CPU pola sincronía vertical durmindo o máximo posible tras a presentación do fotograma. Deseñado principalmente para a sincronización de terceiros por scanlines."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"Use o modo PAL60"
|
||||
|
@ -14919,14 +14919,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"A Linux GameMode engedélyezése segíthet a késleltetésen, megjavíthatja a hang recsegését és az általános teljesítményt maximalizálhatja, a CPU és a GPU konfigurálásával a legjobb teljesítményhez.\nA GameMode programot ehhez telepíteni kell. A GameMode telepítési információi: https://github.com/FeralInteractive/gamemode."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"Képkocka pihentetés"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"A függőleges szinkron CPU használatának csökkentése, a képmegjelenítés után alvó módba állítás, ameddig csak lehetséges. Elsősorban külső scanline szinkronizáló programokhoz."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"PAL60 mód használata"
|
||||
|
@ -14991,14 +14991,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"Abilitare Linux GameMode può migliorare la latenza, correggere i problemi di crackling audio e massimizzare le prestazioni complessive configurando automaticamente la CPU e la GPU per le migliori prestazioni.\nIl software GameMode deve essere installato per funzionare. Vedi https://github.com/FeralInteractive/gamemode per informazioni su come installare GameMode."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"Riposo fotogramma"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"Prova a ridurre l'utilizzo della CPU vsync dormendo il più possibile dopo la presentazione del quadro. Progettato principalmente per la sincronizzazione di scanline di terze parti."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"Usa modalità PAL60"
|
||||
|
@ -15155,14 +15155,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"Linux GameMode を有効にすることで、レイテンシを改善し、音割れの問題を修正し、最高のパフォーマンスを得るために CPU と GPU を自動的に設定することで全体的なパフォーマンスを最大化できます。\nGame Mode ソフトウェアをインストールする必要があります。GameMode のインストール方法については、https://github.com/FeralInteractive/gamemode を参照してください。"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"フレームレスト"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"フレーム提示のあと、できるだけスリープさせることで垂直同期の CPU 使用率の軽減を試みます。主にサードパーティのスキャンライン同期用に設計されています。"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"PAL60モードを使用"
|
||||
|
@ -15319,14 +15319,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"Linux에서 GameMode를 활성화하면 자동으로 CPU와 GPU를 최고 성능 모드로 변경하여 지연 시간이 줄어들고, 오디오 깨짐이 고쳐지고, 전체적인 성능이 최대화되는 등의 효과를 볼 수 있습니다.\n사용하려면 GameMode 소프트웨어가 설치되어 있어야 합니다. GameMode를 설치하는 방법은 https://github.com/FeralInteractive/gamemode 에서 확인하실 수 있습니다."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"프레임 휴식"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"프레임 표시 후에 가능한 만큼 최대한 슬립하여 수직 동기 시 CPU 사용량을 줄입니다. 서드 파티 스캔라인 동기화를 위한 기능입니다."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"PAL60 모드 사용"
|
||||
|
@ -4406,10 +4406,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_FRAME_DELAY_AUTO,
|
||||
"video_frame_delay_auto"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_FRAME_REST,
|
||||
"video_frame_rest"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_SHADER_DELAY,
|
||||
"video_shader_delay"
|
||||
|
@ -15235,14 +15235,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"Включение Linux GameMode может уменьшить задержку, исправить проблемы со звуком и повысить общую производительность путём автонастройки CPU и GPU для оптимальной эффективности.\nТребуется установка программного обеспечения GameMode. Посетите https://github.com/FeralInteractive/gamemode для получения ин[...]"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"Простой кадра"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"Пытаться снижать нагрузку на CPU при верт. синхронизации путём максимального бездействия после вывода кадра. Предназначено главным образом для сторонних методов синхронизации строк развёртки."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"Использовать режим PAL60"
|
||||
|
@ -15291,14 +15291,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"Linux GameMode etkinleştirilmesi, en iyi performans için CPU ve GPU'nuzu otomatik olarak yapılandırarak gecikmeyi iyileştirebilir, ses cızırtı sorunlarını düzeltebilir ve genel performansı en üst düzeye çıkarabilir.\nBunun çalışması için GameMode yazılımının yüklenmesi gerekir. GameMode nasıl kurulacağı hakkında bilgi için https://github.com/FeralInteractive/gamemode adresine bakın."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"Kare Desteği"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"Kare sunumundan sonra mümkün olduğunca uyuyarak vsync CPU kullanımını azaltmaya çalışın. Öncelikle üçüncü taraf tarama hattı eşitlenmesi için tasarlandı."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"PAL60 Kipi Kullan"
|
||||
|
@ -16011,14 +16011,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_HELP_GAMEMODE_ENABLE,
|
||||
"Enabling Linux GameMode can improve latency, fix audio crackling issues and maximize overall performance by automatically configuring your CPU and GPU for best performance.\nThe GameMode software needs to be installed for this to work. See https://github.com/FeralInteractive/gamemode for information on how to install GameMode."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
"Frame Rest"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST,
|
||||
"Try to reduce vsync CPU usage by sleeping as much as possible after frame presentation. Designed primarily for third party scanline sync."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
|
||||
"Use PAL60 Mode"
|
||||
|
@ -1298,7 +1298,6 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_gamemode_enable, MENU
|
||||
#endif
|
||||
#endif /*HAVE_LAKKA*/
|
||||
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_frame_rest, MENU_ENUM_SUBLABEL_VIDEO_FRAME_REST)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_brightness_control, MENU_ENUM_SUBLABEL_BRIGHTNESS_CONTROL)
|
||||
|
||||
#ifdef _3DS
|
||||
@ -5403,9 +5402,6 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_gamemode_enable);
|
||||
break;
|
||||
#endif /*HAVE_LAKKA*/
|
||||
case MENU_ENUM_LABEL_VIDEO_FRAME_REST:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_frame_rest);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_BRIGHTNESS_CONTROL:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_brightness_control);
|
||||
break;
|
||||
|
@ -1993,7 +1993,6 @@ static uintptr_t ozone_entries_icon_get_texture(
|
||||
case MENU_ENUM_LABEL_CONTENT_SHOW_LATENCY:
|
||||
case MENU_ENUM_LABEL_SETTINGS_SHOW_LATENCY:
|
||||
case MENU_ENUM_LABEL_MENU_THROTTLE_FRAMERATE:
|
||||
case MENU_ENUM_LABEL_VIDEO_FRAME_REST:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LATENCY];
|
||||
case MENU_ENUM_LABEL_SAVING_SETTINGS:
|
||||
case MENU_ENUM_LABEL_SETTINGS_SHOW_SAVING:
|
||||
|
@ -3313,7 +3313,6 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb,
|
||||
case MENU_ENUM_LABEL_CONTENT_SHOW_LATENCY:
|
||||
case MENU_ENUM_LABEL_SETTINGS_SHOW_LATENCY:
|
||||
case MENU_ENUM_LABEL_MENU_THROTTLE_FRAMERATE:
|
||||
case MENU_ENUM_LABEL_VIDEO_FRAME_REST:
|
||||
return xmb->textures.list[XMB_TEXTURE_LATENCY];
|
||||
case MENU_ENUM_LABEL_SAVING_SETTINGS:
|
||||
case MENU_ENUM_LABEL_SETTINGS_SHOW_SAVING:
|
||||
|
@ -10906,7 +10906,6 @@ unsigned menu_displaylist_build_list(
|
||||
{
|
||||
menu_displaylist_build_info_t build_list[] = {
|
||||
{MENU_ENUM_LABEL_FASTFORWARD_FRAMESKIP, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_VIDEO_FRAME_REST, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_SUSTAINED_PERFORMANCE_MODE, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_CPU_PERFPOWER, PARSE_ACTION},
|
||||
#ifdef HAVE_LAKKA
|
||||
@ -11391,7 +11390,6 @@ unsigned menu_displaylist_build_list(
|
||||
{MENU_ENUM_LABEL_SLOWMOTION_RATIO, PARSE_ONLY_FLOAT, true},
|
||||
{MENU_ENUM_LABEL_VRR_RUNLOOP_ENABLE, PARSE_ONLY_BOOL, true},
|
||||
{MENU_ENUM_LABEL_MENU_THROTTLE_FRAMERATE, PARSE_ONLY_BOOL, false},
|
||||
{MENU_ENUM_LABEL_VIDEO_FRAME_REST, PARSE_ONLY_BOOL, true},
|
||||
};
|
||||
|
||||
#ifdef HAVE_REWIND
|
||||
|
@ -20324,21 +20324,6 @@ static bool setting_append_list(
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.video_frame_rest,
|
||||
MENU_ENUM_LABEL_VIDEO_FRAME_REST,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_REST,
|
||||
DEFAULT_FRAME_REST,
|
||||
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);
|
||||
|
||||
END_SUB_GROUP(list, list_info, parent_group);
|
||||
END_GROUP(list, list_info, parent_group);
|
||||
break;
|
||||
|
@ -3982,7 +3982,6 @@ enum msg_hash_enums
|
||||
MENU_LABEL(CPU_MANAGED_MAX_FREQ),
|
||||
MENU_LBL_H(GAMEMODE_ENABLE),
|
||||
MENU_ENUM_SUBLABEL_GAMEMODE_ENABLE_LINUX,
|
||||
MENU_LABEL(VIDEO_FRAME_REST),
|
||||
|
||||
MENU_ENUM_LABEL_VALUE_CPU_PERF_MODE_MANAGED_PERF,
|
||||
MENU_ENUM_LABEL_VALUE_CPU_PERF_MODE_MANAGED_PER_CONTEXT,
|
||||
|
@ -4102,10 +4102,6 @@ void runloop_event_deinit_core(void)
|
||||
if (settings->bools.video_frame_delay_auto)
|
||||
video_st->frame_delay_target = 0;
|
||||
|
||||
/* Reset frame rest counter */
|
||||
if (settings->bools.video_frame_rest)
|
||||
video_st->frame_rest_time_count = video_st->frame_rest = 0;
|
||||
|
||||
driver_uninit(DRIVERS_CMD_ALL, 0);
|
||||
|
||||
#ifdef HAVE_CONFIGFILE
|
||||
@ -7259,11 +7255,6 @@ end:
|
||||
runloop_st->frame_limit_last_time = end_frame_time;
|
||||
}
|
||||
|
||||
/* Post-frame power saving sleep resting */
|
||||
if ( settings->bools.video_frame_rest
|
||||
&& !(input_st->flags & INP_FLAG_NONBLOCKING))
|
||||
video_frame_rest(video_st, settings, current_time);
|
||||
|
||||
/* Frame delay */
|
||||
if ( !(input_st->flags & INP_FLAG_NONBLOCKING)
|
||||
|| (runloop_st->flags & RUNLOOP_FLAG_FASTMOTION))
|
||||
|
Loading…
Reference in New Issue
Block a user