mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-10-31 23:06:43 +08:00 
			
		
		
		
	hle: service: nvflinger: Factor speed limit into frame time calculation.
- This allows the %-based "Limit Speed Percent" setting to work with MC emulation. - This is already supported for SC emulation.
This commit is contained in:
		
							parent
							
								
									7d66f8339e
								
							
						
					
					
						commit
						f8aaa59990
					
				| @ -289,7 +289,14 @@ s64 NVFlinger::GetNextTicks() const { | |||||||
|     const auto& settings = Settings::values; |     const auto& settings = Settings::values; | ||||||
|     const bool unlocked_fps = settings.disable_fps_limit.GetValue(); |     const bool unlocked_fps = settings.disable_fps_limit.GetValue(); | ||||||
|     const s64 fps_cap = unlocked_fps ? static_cast<s64>(settings.fps_cap.GetValue()) : 1; |     const s64 fps_cap = unlocked_fps ? static_cast<s64>(settings.fps_cap.GetValue()) : 1; | ||||||
|     return (1000000000 * (1LL << swap_interval)) / (max_hertz * fps_cap); |     auto speed_scale = 1.f; | ||||||
|  |     if (settings.use_speed_limit.GetValue() && settings.use_multi_core.GetValue()) { | ||||||
|  |         // Scales the speed based on speed_limit setting on MC. SC is handled by
 | ||||||
|  |         // SpeedLimiter::DoSpeedLimiting.
 | ||||||
|  |         speed_scale = 100.f / settings.speed_limit.GetValue(); | ||||||
|  |     } | ||||||
|  |     return static_cast<s64>(((1000000000 * (1LL << swap_interval)) / (max_hertz * fps_cap)) * | ||||||
|  |                             speed_scale); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } // namespace Service::NVFlinger
 | } // namespace Service::NVFlinger
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user