early-access version 3297
This commit is contained in:
		| @@ -1,7 +1,7 @@ | ||||
| yuzu emulator early access | ||||
| ============= | ||||
|  | ||||
| This is the source code for early-access 3296. | ||||
| This is the source code for early-access 3297. | ||||
|  | ||||
| ## Legal Notice | ||||
|  | ||||
|   | ||||
| @@ -110,7 +110,7 @@ RendererVulkan::RendererVulkan(Core::TelemetrySession& telemetry_session_, | ||||
|                   screen_info), | ||||
|       rasterizer(render_window, gpu, cpu_memory, screen_info, device, memory_allocator, | ||||
|                  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); | ||||
|     } | ||||
|     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) { | ||||
|     std::vector<const char*> extensions{REQUIRED_EXTENSIONS.begin(), REQUIRED_EXTENSIONS.end()}; | ||||
|  | ||||
| @@ -1520,8 +1532,12 @@ void Device::SetupFamilies(VkSurfaceKHR surface) { | ||||
|         LOG_ERROR(Render_Vulkan, "Device lacks a present queue"); | ||||
|         throw vk::Exception(VK_ERROR_FEATURE_NOT_PRESENT); | ||||
|     } | ||||
|     graphics_family = *graphics; | ||||
|     present_family = *present; | ||||
|     if (graphics) { | ||||
|         graphics_family = *graphics; | ||||
|     } | ||||
|     if (present) { | ||||
|         present_family = *present; | ||||
|     } | ||||
| } | ||||
|  | ||||
| void Device::SetupFeatures() { | ||||
|   | ||||
| @@ -106,6 +106,8 @@ public: | ||||
|         return driver_id; | ||||
|     } | ||||
|  | ||||
|     bool ShouldBoostClocks() const; | ||||
|  | ||||
|     /// Returns uniform buffer alignment requeriment. | ||||
|     VkDeviceSize GetUniformBufferAlignment() const { | ||||
|         return properties.limits.minUniformBufferOffsetAlignment; | ||||
|   | ||||
| @@ -1838,9 +1838,11 @@ void GMainWindow::OnEmulationStopTimeExpired() { | ||||
|  | ||||
| void GMainWindow::OnEmulationStopped() { | ||||
|     shutdown_timer.stop(); | ||||
|     emu_thread->disconnect(); | ||||
|     emu_thread->wait(); | ||||
|     emu_thread = nullptr; | ||||
|     if (emu_thread) { | ||||
|         emu_thread->disconnect(); | ||||
|         emu_thread->wait(); | ||||
|         emu_thread.reset(); | ||||
|     } | ||||
|  | ||||
|     if (shutdown_dialog) { | ||||
|         shutdown_dialog->deleteLater(); | ||||
| @@ -3028,6 +3030,8 @@ void GMainWindow::OnStopGame() { | ||||
|  | ||||
|     if (OnShutdownBegin()) { | ||||
|         OnShutdownBeginDialog(); | ||||
|     } else { | ||||
|         OnEmulationStopped(); | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user