early-access version 3297
This commit is contained in:
parent
ec5ff6b829
commit
be79968945
5 changed files with 29 additions and 7 deletions
|
@ -1,7 +1,7 @@
|
||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 3296.
|
This is the source code for early-access 3297.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
|
|
@ -110,7 +110,7 @@ RendererVulkan::RendererVulkan(Core::TelemetrySession& telemetry_session_,
|
||||||
screen_info),
|
screen_info),
|
||||||
rasterizer(render_window, gpu, cpu_memory, screen_info, device, memory_allocator,
|
rasterizer(render_window, gpu, cpu_memory, screen_info, device, memory_allocator,
|
||||||
state_tracker, scheduler) {
|
state_tracker, scheduler) {
|
||||||
if (Settings::values.renderer_force_max_clock.GetValue()) {
|
if (Settings::values.renderer_force_max_clock.GetValue() && device.ShouldBoostClocks()) {
|
||||||
turbo_mode.emplace(instance, dld);
|
turbo_mode.emplace(instance, dld);
|
||||||
}
|
}
|
||||||
Report();
|
Report();
|
||||||
|
|
|
@ -991,6 +991,18 @@ std::string Device::GetDriverName() const {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Device::ShouldBoostClocks() const {
|
||||||
|
const bool validated_driver =
|
||||||
|
driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE ||
|
||||||
|
driver_id == VK_DRIVER_ID_MESA_RADV || driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY ||
|
||||||
|
driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS ||
|
||||||
|
driver_id == VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA;
|
||||||
|
|
||||||
|
const bool is_steam_deck = properties.vendorID == 0x1002 && properties.deviceID == 0x163F;
|
||||||
|
|
||||||
|
return validated_driver && !is_steam_deck;
|
||||||
|
}
|
||||||
|
|
||||||
static std::vector<const char*> ExtensionsRequiredForInstanceVersion(u32 available_version) {
|
static std::vector<const char*> ExtensionsRequiredForInstanceVersion(u32 available_version) {
|
||||||
std::vector<const char*> extensions{REQUIRED_EXTENSIONS.begin(), REQUIRED_EXTENSIONS.end()};
|
std::vector<const char*> extensions{REQUIRED_EXTENSIONS.begin(), REQUIRED_EXTENSIONS.end()};
|
||||||
|
|
||||||
|
@ -1520,9 +1532,13 @@ void Device::SetupFamilies(VkSurfaceKHR surface) {
|
||||||
LOG_ERROR(Render_Vulkan, "Device lacks a present queue");
|
LOG_ERROR(Render_Vulkan, "Device lacks a present queue");
|
||||||
throw vk::Exception(VK_ERROR_FEATURE_NOT_PRESENT);
|
throw vk::Exception(VK_ERROR_FEATURE_NOT_PRESENT);
|
||||||
}
|
}
|
||||||
|
if (graphics) {
|
||||||
graphics_family = *graphics;
|
graphics_family = *graphics;
|
||||||
|
}
|
||||||
|
if (present) {
|
||||||
present_family = *present;
|
present_family = *present;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Device::SetupFeatures() {
|
void Device::SetupFeatures() {
|
||||||
const VkPhysicalDeviceFeatures features{physical.GetFeatures()};
|
const VkPhysicalDeviceFeatures features{physical.GetFeatures()};
|
||||||
|
|
|
@ -106,6 +106,8 @@ public:
|
||||||
return driver_id;
|
return driver_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ShouldBoostClocks() const;
|
||||||
|
|
||||||
/// Returns uniform buffer alignment requeriment.
|
/// Returns uniform buffer alignment requeriment.
|
||||||
VkDeviceSize GetUniformBufferAlignment() const {
|
VkDeviceSize GetUniformBufferAlignment() const {
|
||||||
return properties.limits.minUniformBufferOffsetAlignment;
|
return properties.limits.minUniformBufferOffsetAlignment;
|
||||||
|
|
|
@ -1838,9 +1838,11 @@ void GMainWindow::OnEmulationStopTimeExpired() {
|
||||||
|
|
||||||
void GMainWindow::OnEmulationStopped() {
|
void GMainWindow::OnEmulationStopped() {
|
||||||
shutdown_timer.stop();
|
shutdown_timer.stop();
|
||||||
|
if (emu_thread) {
|
||||||
emu_thread->disconnect();
|
emu_thread->disconnect();
|
||||||
emu_thread->wait();
|
emu_thread->wait();
|
||||||
emu_thread = nullptr;
|
emu_thread.reset();
|
||||||
|
}
|
||||||
|
|
||||||
if (shutdown_dialog) {
|
if (shutdown_dialog) {
|
||||||
shutdown_dialog->deleteLater();
|
shutdown_dialog->deleteLater();
|
||||||
|
@ -3028,6 +3030,8 @@ void GMainWindow::OnStopGame() {
|
||||||
|
|
||||||
if (OnShutdownBegin()) {
|
if (OnShutdownBegin()) {
|
||||||
OnShutdownBeginDialog();
|
OnShutdownBeginDialog();
|
||||||
|
} else {
|
||||||
|
OnEmulationStopped();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue