forked from eden-emu/eden
Compare commits
3 commits
arm-cpu-ac
...
master
Author | SHA1 | Date | |
---|---|---|---|
61adc85c4b | |||
4be6d30cd9 | |||
020f1cdb1f |
14 changed files with 103 additions and 92 deletions
|
@ -224,7 +224,7 @@ set(YUZU_TZDB_PATH "" CACHE STRING "Path to a pre-downloaded timezone database")
|
||||||
|
|
||||||
cmake_dependent_option(YUZU_USE_FASTER_LD "Check if a faster linker is available" ON "LINUX" OFF)
|
cmake_dependent_option(YUZU_USE_FASTER_LD "Check if a faster linker is available" ON "LINUX" OFF)
|
||||||
|
|
||||||
cmake_dependent_option(YUZU_APPLE_USE_BUNDLED_MONTENVK "Download bundled MoltenVK lib" ON "APPLE" OFF)
|
cmake_dependent_option(YUZU_USE_BUNDLED_MOLTENVK "Download bundled MoltenVK lib" ON "APPLE" OFF)
|
||||||
|
|
||||||
option(YUZU_DISABLE_LLVM "Disable LLVM (useful for CI)" OFF)
|
option(YUZU_DISABLE_LLVM "Disable LLVM (useful for CI)" OFF)
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ Notes:
|
||||||
* Currently, build fails without this
|
* Currently, build fails without this
|
||||||
- `YUZU_USE_FASTER_LD` (ON) Check if a faster linker is available
|
- `YUZU_USE_FASTER_LD` (ON) Check if a faster linker is available
|
||||||
* Only available on UNIX
|
* Only available on UNIX
|
||||||
- `YUZU_APPLE_USE_BUNDLED_MONTENVK` (ON, macOS only) Download bundled MoltenVK lib)
|
- `YUZU_USE_BUNDLED_MOLTENVK` (ON, macOS only) Download bundled MoltenVK lib)
|
||||||
- `YUZU_TZDB_PATH` (string) Path to a pre-downloaded timezone database (useful for nixOS)
|
- `YUZU_TZDB_PATH` (string) Path to a pre-downloaded timezone database (useful for nixOS)
|
||||||
- `ENABLE_OPENSSL` (ON for Linux and *BSD) Enable OpenSSL backend for the ssl service
|
- `ENABLE_OPENSSL` (ON for Linux and *BSD) Enable OpenSSL backend for the ssl service
|
||||||
* Always enabled if the web service is enabled
|
* Always enabled if the web service is enabled
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
#define TITLE_BAR_FORMAT_RUNNING "@TITLE_BAR_FORMAT_RUNNING@"
|
#define TITLE_BAR_FORMAT_RUNNING "@TITLE_BAR_FORMAT_RUNNING@"
|
||||||
#define IS_DEV_BUILD @IS_DEV_BUILD@
|
#define IS_DEV_BUILD @IS_DEV_BUILD@
|
||||||
#define COMPILER_ID "@CXX_COMPILER@"
|
#define COMPILER_ID "@CXX_COMPILER@"
|
||||||
#define BUILD_AUTO_UPDATE_WEBISTE "@BUILD_AUTO_UPDATE_WEBISTE@"
|
#define BUILD_AUTO_UPDATE_WEBSITE "@BUILD_AUTO_UPDATE_WEBSITE@"
|
||||||
#define BUILD_AUTO_UPDATE_API "@BUILD_AUTO_UPDATE_API@"
|
#define BUILD_AUTO_UPDATE_API "@BUILD_AUTO_UPDATE_API@"
|
||||||
#define BUILD_AUTO_UPDATE_REPO "@BUILD_AUTO_UPDATE_REPO@"
|
#define BUILD_AUTO_UPDATE_REPO "@BUILD_AUTO_UPDATE_REPO@"
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ constexpr const char g_title_bar_format_running[] = TITLE_BAR_FORMAT_RUNNING;
|
||||||
constexpr const char g_compiler_id[] = COMPILER_ID;
|
constexpr const char g_compiler_id[] = COMPILER_ID;
|
||||||
constexpr const bool g_is_dev_build = IS_DEV_BUILD;
|
constexpr const bool g_is_dev_build = IS_DEV_BUILD;
|
||||||
|
|
||||||
constexpr const char g_build_auto_update_website[] = BUILD_AUTO_UPDATE_WEBISTE;
|
constexpr const char g_build_auto_update_website[] = BUILD_AUTO_UPDATE_WEBSITE;
|
||||||
constexpr const char g_build_auto_update_api[] = BUILD_AUTO_UPDATE_API;
|
constexpr const char g_build_auto_update_api[] = BUILD_AUTO_UPDATE_API;
|
||||||
constexpr const char g_build_auto_update_repo[] = BUILD_AUTO_UPDATE_REPO;
|
constexpr const char g_build_auto_update_repo[] = BUILD_AUTO_UPDATE_REPO;
|
||||||
|
|
||||||
|
|
|
@ -163,11 +163,11 @@ bool IsDMALevelSafe() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsFastmemEnabled() {
|
bool IsFastmemEnabled() {
|
||||||
if (values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Debugging) {
|
if (values.cpu_debug_mode) {
|
||||||
return bool(values.cpuopt_fastmem);
|
return static_cast<bool>(values.cpuopt_fastmem);
|
||||||
}
|
}
|
||||||
if (values.cpu_accuracy.GetValue() == CpuAccuracy::Unsafe) {
|
if (values.cpu_accuracy.GetValue() == CpuAccuracy::Unsafe) {
|
||||||
return bool(values.cpuopt_unsafe_host_mmu);
|
return static_cast<bool>(values.cpuopt_unsafe_host_mmu);
|
||||||
}
|
}
|
||||||
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -275,6 +275,9 @@ struct Values {
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
&use_custom_cpu_ticks};
|
&use_custom_cpu_ticks};
|
||||||
|
|
||||||
|
SwitchableSetting<bool> cpu_debug_mode{linkage, false, "cpu_debug_mode", Category::CpuDebug};
|
||||||
|
|
||||||
Setting<bool> cpuopt_page_tables{linkage, true, "cpuopt_page_tables", Category::CpuDebug};
|
Setting<bool> cpuopt_page_tables{linkage, true, "cpuopt_page_tables", Category::CpuDebug};
|
||||||
Setting<bool> cpuopt_block_linking{linkage, true, "cpuopt_block_linking", Category::CpuDebug};
|
Setting<bool> cpuopt_block_linking{linkage, true, "cpuopt_block_linking", Category::CpuDebug};
|
||||||
Setting<bool> cpuopt_return_stack_buffer{linkage, true, "cpuopt_return_stack_buffer",
|
Setting<bool> cpuopt_return_stack_buffer{linkage, true, "cpuopt_return_stack_buffer",
|
||||||
|
|
|
@ -136,7 +136,7 @@ ENUM(ShaderBackend, Glsl, Glasm, SpirV);
|
||||||
ENUM(GpuAccuracy, Normal, High, Extreme);
|
ENUM(GpuAccuracy, Normal, High, Extreme);
|
||||||
ENUM(DmaAccuracy, Default, Unsafe, Safe);
|
ENUM(DmaAccuracy, Default, Unsafe, Safe);
|
||||||
ENUM(CpuBackend, Dynarmic, Nce);
|
ENUM(CpuBackend, Dynarmic, Nce);
|
||||||
ENUM(CpuAccuracy, Auto, Accurate, Unsafe, Paranoid, Debugging);
|
ENUM(CpuAccuracy, Auto, Accurate, Unsafe, Paranoid);
|
||||||
ENUM(CpuClock, Boost, Fast)
|
ENUM(CpuClock, Boost, Fast)
|
||||||
ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb, Memory_10Gb, Memory_12Gb);
|
ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb, Memory_10Gb, Memory_12Gb);
|
||||||
ENUM(ConfirmStop, Ask_Always, Ask_Based_On_Game, Ask_Never);
|
ENUM(ConfirmStop, Ask_Always, Ask_Based_On_Game, Ask_Never);
|
||||||
|
|
|
@ -229,8 +229,7 @@ std::shared_ptr<Dynarmic::A32::Jit> ArmDynarmic32::MakeJit(Common::PageTable* pa
|
||||||
}
|
}
|
||||||
|
|
||||||
// Safe optimizations
|
// Safe optimizations
|
||||||
switch (Settings::values.cpu_accuracy.GetValue()) {
|
if (Settings::values.cpu_debug_mode) {
|
||||||
case Settings::CpuAccuracy::Debugging:
|
|
||||||
if (!Settings::values.cpuopt_page_tables) {
|
if (!Settings::values.cpuopt_page_tables) {
|
||||||
config.page_table = nullptr;
|
config.page_table = nullptr;
|
||||||
}
|
}
|
||||||
|
@ -268,9 +267,9 @@ std::shared_ptr<Dynarmic::A32::Jit> ArmDynarmic32::MakeJit(Common::PageTable* pa
|
||||||
if (!Settings::values.cpuopt_ignore_memory_aborts) {
|
if (!Settings::values.cpuopt_ignore_memory_aborts) {
|
||||||
config.check_halt_on_memory_access = true;
|
config.check_halt_on_memory_access = true;
|
||||||
}
|
}
|
||||||
break;
|
} else {
|
||||||
// Unsafe optimizations
|
// Unsafe optimizations
|
||||||
case Settings::CpuAccuracy::Unsafe:
|
if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Unsafe) {
|
||||||
config.unsafe_optimizations = true;
|
config.unsafe_optimizations = true;
|
||||||
if (!Settings::values.cpuopt_unsafe_host_mmu) {
|
if (!Settings::values.cpuopt_unsafe_host_mmu) {
|
||||||
config.fastmem_pointer = std::nullopt;
|
config.fastmem_pointer = std::nullopt;
|
||||||
|
@ -291,9 +290,10 @@ std::shared_ptr<Dynarmic::A32::Jit> ArmDynarmic32::MakeJit(Common::PageTable* pa
|
||||||
if (Settings::values.cpuopt_unsafe_ignore_global_monitor) {
|
if (Settings::values.cpuopt_unsafe_ignore_global_monitor) {
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
|
|
||||||
// Curated optimizations
|
// Curated optimizations
|
||||||
case Settings::CpuAccuracy::Auto:
|
if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Auto) {
|
||||||
config.unsafe_optimizations = true;
|
config.unsafe_optimizations = true;
|
||||||
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
||||||
config.fastmem_pointer = std::nullopt;
|
config.fastmem_pointer = std::nullopt;
|
||||||
|
@ -303,16 +303,15 @@ std::shared_ptr<Dynarmic::A32::Jit> ArmDynarmic32::MakeJit(Common::PageTable* pa
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreStandardFPCRValue;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreStandardFPCRValue;
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
||||||
break;
|
}
|
||||||
|
|
||||||
// Paranoia mode for debugging optimizations
|
// Paranoia mode for debugging optimizations
|
||||||
case Settings::CpuAccuracy::Paranoid:
|
if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Paranoid) {
|
||||||
config.unsafe_optimizations = false;
|
config.unsafe_optimizations = false;
|
||||||
config.optimizations = Dynarmic::no_optimizations;
|
config.optimizations = Dynarmic::no_optimizations;
|
||||||
break;
|
|
||||||
case Settings::CpuAccuracy::Accurate:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return std::make_unique<Dynarmic::A32::Jit>(config);
|
return std::make_unique<Dynarmic::A32::Jit>(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -287,9 +287,8 @@ std::shared_ptr<Dynarmic::A64::Jit> ArmDynarmic64::MakeJit(Common::PageTable* pa
|
||||||
config.code_cache_size = std::uint32_t(8_MiB);
|
config.code_cache_size = std::uint32_t(8_MiB);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (Settings::values.cpu_accuracy.GetValue()) {
|
// Safe optimizations
|
||||||
// Debug mode
|
if (Settings::values.cpu_debug_mode) {
|
||||||
case Settings::CpuAccuracy::Debugging:
|
|
||||||
if (!Settings::values.cpuopt_page_tables) {
|
if (!Settings::values.cpuopt_page_tables) {
|
||||||
config.page_table = nullptr;
|
config.page_table = nullptr;
|
||||||
}
|
}
|
||||||
|
@ -327,9 +326,9 @@ std::shared_ptr<Dynarmic::A64::Jit> ArmDynarmic64::MakeJit(Common::PageTable* pa
|
||||||
if (!Settings::values.cpuopt_ignore_memory_aborts) {
|
if (!Settings::values.cpuopt_ignore_memory_aborts) {
|
||||||
config.check_halt_on_memory_access = true;
|
config.check_halt_on_memory_access = true;
|
||||||
}
|
}
|
||||||
break;
|
} else {
|
||||||
// Unsafe optimizations
|
// Unsafe optimizations
|
||||||
case Settings::CpuAccuracy::Unsafe:
|
if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Unsafe) {
|
||||||
config.unsafe_optimizations = true;
|
config.unsafe_optimizations = true;
|
||||||
if (!Settings::values.cpuopt_unsafe_host_mmu) {
|
if (!Settings::values.cpuopt_unsafe_host_mmu) {
|
||||||
config.fastmem_pointer = std::nullopt;
|
config.fastmem_pointer = std::nullopt;
|
||||||
|
@ -350,9 +349,10 @@ std::shared_ptr<Dynarmic::A64::Jit> ArmDynarmic64::MakeJit(Common::PageTable* pa
|
||||||
if (Settings::values.cpuopt_unsafe_ignore_global_monitor) {
|
if (Settings::values.cpuopt_unsafe_ignore_global_monitor) {
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
// Safe optimisations
|
|
||||||
case Settings::CpuAccuracy::Auto:
|
// Curated optimizations
|
||||||
|
if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Auto) {
|
||||||
config.unsafe_optimizations = true;
|
config.unsafe_optimizations = true;
|
||||||
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
||||||
config.fastmem_pointer = std::nullopt;
|
config.fastmem_pointer = std::nullopt;
|
||||||
|
@ -361,16 +361,15 @@ std::shared_ptr<Dynarmic::A64::Jit> ArmDynarmic64::MakeJit(Common::PageTable* pa
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
|
||||||
config.fastmem_address_space_bits = 64;
|
config.fastmem_address_space_bits = 64;
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
||||||
break;
|
}
|
||||||
|
|
||||||
// Paranoia mode for debugging optimizations
|
// Paranoia mode for debugging optimizations
|
||||||
case Settings::CpuAccuracy::Paranoid:
|
if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Paranoid) {
|
||||||
config.unsafe_optimizations = false;
|
config.unsafe_optimizations = false;
|
||||||
config.optimizations = Dynarmic::no_optimizations;
|
config.optimizations = Dynarmic::no_optimizations;
|
||||||
break;
|
|
||||||
case Settings::CpuAccuracy::Accurate:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return std::make_shared<Dynarmic::A64::Jit>(config);
|
return std::make_shared<Dynarmic::A64::Jit>(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -516,7 +516,6 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QObject* parent)
|
||||||
PAIR(CpuAccuracy, Accurate, tr("Accurate")),
|
PAIR(CpuAccuracy, Accurate, tr("Accurate")),
|
||||||
PAIR(CpuAccuracy, Unsafe, tr("Unsafe")),
|
PAIR(CpuAccuracy, Unsafe, tr("Unsafe")),
|
||||||
PAIR(CpuAccuracy, Paranoid, tr("Paranoid (disables most optimizations)")),
|
PAIR(CpuAccuracy, Paranoid, tr("Paranoid (disables most optimizations)")),
|
||||||
PAIR(CpuAccuracy, Debugging, tr("Debugging")),
|
|
||||||
}});
|
}});
|
||||||
translations->insert({Settings::EnumMetadata<Settings::CpuBackend>::Index(),
|
translations->insert({Settings::EnumMetadata<Settings::CpuBackend>::Index(),
|
||||||
{
|
{
|
||||||
|
|
|
@ -366,7 +366,7 @@ if (APPLE)
|
||||||
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE TRUE)
|
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE TRUE)
|
||||||
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
|
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
|
||||||
|
|
||||||
if (YUZU_APPLE_USE_BUNDLED_MONTENVK)
|
if (YUZU_USE_BUNDLED_MOLTENVK)
|
||||||
set(MOLTENVK_PLATFORM "macOS")
|
set(MOLTENVK_PLATFORM "macOS")
|
||||||
set(MOLTENVK_VERSION "v1.3.0")
|
set(MOLTENVK_VERSION "v1.3.0")
|
||||||
download_moltenvk(${MOLTENVK_PLATFORM} ${MOLTENVK_VERSION})
|
download_moltenvk(${MOLTENVK_PLATFORM} ${MOLTENVK_VERSION})
|
||||||
|
|
|
@ -62,6 +62,8 @@ void ConfigureDebug::SetConfiguration() {
|
||||||
ui->enable_graphics_debugging->setChecked(Settings::values.renderer_debug.GetValue());
|
ui->enable_graphics_debugging->setChecked(Settings::values.renderer_debug.GetValue());
|
||||||
ui->enable_shader_feedback->setEnabled(runtime_lock);
|
ui->enable_shader_feedback->setEnabled(runtime_lock);
|
||||||
ui->enable_shader_feedback->setChecked(Settings::values.renderer_shader_feedback.GetValue());
|
ui->enable_shader_feedback->setChecked(Settings::values.renderer_shader_feedback.GetValue());
|
||||||
|
ui->enable_cpu_debugging->setEnabled(runtime_lock);
|
||||||
|
ui->enable_cpu_debugging->setChecked(Settings::values.cpu_debug_mode.GetValue());
|
||||||
ui->enable_nsight_aftermath->setEnabled(runtime_lock);
|
ui->enable_nsight_aftermath->setEnabled(runtime_lock);
|
||||||
ui->enable_nsight_aftermath->setChecked(Settings::values.enable_nsight_aftermath.GetValue());
|
ui->enable_nsight_aftermath->setChecked(Settings::values.enable_nsight_aftermath.GetValue());
|
||||||
ui->dump_shaders->setEnabled(runtime_lock);
|
ui->dump_shaders->setEnabled(runtime_lock);
|
||||||
|
@ -105,6 +107,7 @@ void ConfigureDebug::ApplyConfiguration() {
|
||||||
Settings::values.enable_renderdoc_hotkey = ui->enable_renderdoc_hotkey->isChecked();
|
Settings::values.enable_renderdoc_hotkey = ui->enable_renderdoc_hotkey->isChecked();
|
||||||
Settings::values.disable_buffer_reorder = ui->disable_buffer_reorder->isChecked();
|
Settings::values.disable_buffer_reorder = ui->disable_buffer_reorder->isChecked();
|
||||||
Settings::values.renderer_shader_feedback = ui->enable_shader_feedback->isChecked();
|
Settings::values.renderer_shader_feedback = ui->enable_shader_feedback->isChecked();
|
||||||
|
Settings::values.cpu_debug_mode = ui->enable_cpu_debugging->isChecked();
|
||||||
Settings::values.enable_nsight_aftermath = ui->enable_nsight_aftermath->isChecked();
|
Settings::values.enable_nsight_aftermath = ui->enable_nsight_aftermath->isChecked();
|
||||||
Settings::values.dump_shaders = ui->dump_shaders->isChecked();
|
Settings::values.dump_shaders = ui->dump_shaders->isChecked();
|
||||||
Settings::values.dump_macros = ui->dump_macros->isChecked();
|
Settings::values.dump_macros = ui->dump_macros->isChecked();
|
||||||
|
|
|
@ -435,6 +435,13 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QCheckBox" name="enable_cpu_debugging">
|
||||||
|
<property name="text">
|
||||||
|
<string>Enable CPU Debugging</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QCheckBox" name="use_debug_asserts">
|
<widget class="QCheckBox" name="use_debug_asserts">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -575,6 +582,7 @@
|
||||||
<tabstop>fs_access_log</tabstop>
|
<tabstop>fs_access_log</tabstop>
|
||||||
<tabstop>reporting_services</tabstop>
|
<tabstop>reporting_services</tabstop>
|
||||||
<tabstop>quest_flag</tabstop>
|
<tabstop>quest_flag</tabstop>
|
||||||
|
<tabstop>enable_cpu_debugging</tabstop>
|
||||||
<tabstop>use_debug_asserts</tabstop>
|
<tabstop>use_debug_asserts</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|
|
@ -4204,8 +4204,8 @@ void GMainWindow::OnEmulatorUpdateAvailable() {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void GMainWindow::UpdateWindowTitle(std::string_view title_name, std::string_view title_version,
|
void GMainWindow::UpdateWindowTitle(std::string_view title_name, std::string_view title_version, std::string_view gpu_vendor) {
|
||||||
std::string_view gpu_vendor) {
|
static const std::string build_id = std::string{Common::g_build_id};
|
||||||
static const std::string yuzu_title = fmt::format("{} | {} | {}",
|
static const std::string yuzu_title = fmt::format("{} | {} | {}",
|
||||||
std::string{Common::g_build_name},
|
std::string{Common::g_build_name},
|
||||||
std::string{Common::g_build_version},
|
std::string{Common::g_build_version},
|
||||||
|
|
|
@ -58,7 +58,7 @@ std::optional<std::string> UpdateChecker::GetResponse(std::string url, std::stri
|
||||||
|
|
||||||
std::optional<std::string> UpdateChecker::GetLatestRelease(bool include_prereleases)
|
std::optional<std::string> UpdateChecker::GetLatestRelease(bool include_prereleases)
|
||||||
{
|
{
|
||||||
constexpr auto update_check_url = std::string{Common::g_build_auto_update_api};
|
const auto update_check_url = std::string{Common::g_build_auto_update_api};
|
||||||
std::string update_check_path = fmt::format("/repos/{}", std::string{Common::g_build_auto_update_repo});
|
std::string update_check_path = fmt::format("/repos/{}", std::string{Common::g_build_auto_update_repo});
|
||||||
try {
|
try {
|
||||||
if (include_prereleases) { // This can return either a prerelease or a stable release,
|
if (include_prereleases) { // This can return either a prerelease or a stable release,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue