Linux: Change default Sleep Timers accuracy to host

- This doesn't change existing configs
- Also sets the host_min_quantum to the true value
- Restores lost TODO: comment
This commit is contained in:
Malcolm Jestadt 2019-10-14 13:04:47 -04:00 committed by Ivan
parent 2171ffdab2
commit 1a9e06d3c6
2 changed files with 8 additions and 2 deletions

View File

@ -252,12 +252,13 @@ public:
remaining = usec - passed;
#ifdef __linux__
// NOTE: Assumption that timer initialization has succeeded
u64 host_min_quantum = is_usleep && remaining <= 1000 ? 16 : 50;
u64 host_min_quantum = is_usleep && remaining <= 1000 ? 10 : 50;
#else
// Host scheduler quantum for windows (worst case)
// NOTE: On ps3 this function has very high accuracy
constexpr u64 host_min_quantum = 500;
#endif
// TODO: Tune for other non windows operating sytems
if (g_cfg.core.sleep_timers_accuracy < (is_usleep ? sleep_timers_accuracy_level::_usleep : sleep_timers_accuracy_level::_all_timers))
{

View File

@ -419,7 +419,12 @@ struct cfg_root : cfg::node
cfg::_bool hle_lwmutex{this, "HLE lwmutex"}; // Force alternative lwmutex/lwcond implementation
cfg::_int<10, 1000> clocks_scale{this, "Clocks scale", 100}; // Changing this from 100 (percentage) may affect game speed in unexpected ways
cfg::_enum<sleep_timers_accuracy_level> sleep_timers_accuracy{this, "Sleep Timers Accuracy", sleep_timers_accuracy_level::_usleep};
cfg::_enum<sleep_timers_accuracy_level> sleep_timers_accuracy{this, "Sleep Timers Accuracy",
#ifdef __linux__
sleep_timers_accuracy_level::_as_host};
#else
sleep_timers_accuracy_level::_usleep};
#endif
} core{this};
struct node_vfs : cfg::node