mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	Merge pull request #9917 from Morph1984/the-real-time
native_clock: Re-adjust the RDTSC frequency to its real frequency
This commit is contained in:
		@@ -53,7 +53,7 @@ void CoreTiming::ThreadEntry(CoreTiming& instance) {
 | 
			
		||||
    static constexpr char name[] = "HostTiming";
 | 
			
		||||
    MicroProfileOnThreadCreate(name);
 | 
			
		||||
    Common::SetCurrentThreadName(name);
 | 
			
		||||
    Common::SetCurrentThreadPriority(Common::ThreadPriority::Critical);
 | 
			
		||||
    Common::SetCurrentThreadPriority(Common::ThreadPriority::High);
 | 
			
		||||
    instance.on_thread_init();
 | 
			
		||||
    instance.ThreadLoop();
 | 
			
		||||
    MicroProfileOnThreadExit();
 | 
			
		||||
 
 | 
			
		||||
@@ -192,7 +192,7 @@ void CpuManager::RunThread(std::stop_token token, std::size_t core) {
 | 
			
		||||
    }
 | 
			
		||||
    MicroProfileOnThreadCreate(name.c_str());
 | 
			
		||||
    Common::SetCurrentThreadName(name.c_str());
 | 
			
		||||
    Common::SetCurrentThreadPriority(Common::ThreadPriority::High);
 | 
			
		||||
    Common::SetCurrentThreadPriority(Common::ThreadPriority::Critical);
 | 
			
		||||
    auto& data = core_data[core];
 | 
			
		||||
    data.host_context = Common::Fiber::ThreadToFiber();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,7 @@ void Controller_Stubbed::OnUpdate(const Core::Timing::CoreTiming& core_timing) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    CommonHeader header{};
 | 
			
		||||
    header.timestamp = core_timing.GetCPUTicks();
 | 
			
		||||
    header.timestamp = core_timing.GetGlobalTimeNs().count();
 | 
			
		||||
    header.total_entry_count = 17;
 | 
			
		||||
    header.entry_count = 0;
 | 
			
		||||
    header.last_entry_index = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@ void Controller_Touchscreen::OnInit() {}
 | 
			
		||||
void Controller_Touchscreen::OnRelease() {}
 | 
			
		||||
 | 
			
		||||
void Controller_Touchscreen::OnUpdate(const Core::Timing::CoreTiming& core_timing) {
 | 
			
		||||
    shared_memory->touch_screen_lifo.timestamp = core_timing.GetCPUTicks();
 | 
			
		||||
    shared_memory->touch_screen_lifo.timestamp = core_timing.GetGlobalTimeNs().count();
 | 
			
		||||
 | 
			
		||||
    if (!IsControllerActivated()) {
 | 
			
		||||
        shared_memory->touch_screen_lifo.buffer_count = 0;
 | 
			
		||||
@@ -85,7 +85,7 @@ void Controller_Touchscreen::OnUpdate(const Core::Timing::CoreTiming& core_timin
 | 
			
		||||
    const auto active_fingers_count =
 | 
			
		||||
        static_cast<std::size_t>(std::distance(active_fingers.begin(), end_iter));
 | 
			
		||||
 | 
			
		||||
    const u64 tick = core_timing.GetCPUTicks();
 | 
			
		||||
    const u64 timestamp = static_cast<u64>(core_timing.GetGlobalTimeNs().count());
 | 
			
		||||
    const auto& last_entry = shared_memory->touch_screen_lifo.ReadCurrentEntry().state;
 | 
			
		||||
 | 
			
		||||
    next_state.sampling_number = last_entry.sampling_number + 1;
 | 
			
		||||
@@ -102,8 +102,8 @@ void Controller_Touchscreen::OnUpdate(const Core::Timing::CoreTiming& core_timin
 | 
			
		||||
            touch_entry.diameter_x = Settings::values.touchscreen.diameter_x;
 | 
			
		||||
            touch_entry.diameter_y = Settings::values.touchscreen.diameter_y;
 | 
			
		||||
            touch_entry.rotation_angle = Settings::values.touchscreen.rotation_angle;
 | 
			
		||||
            touch_entry.delta_time = tick - active_fingers[id].last_touch;
 | 
			
		||||
            fingers[active_fingers[id].id].last_touch = tick;
 | 
			
		||||
            touch_entry.delta_time = timestamp - active_fingers[id].last_touch;
 | 
			
		||||
            fingers[active_fingers[id].id].last_touch = timestamp;
 | 
			
		||||
            touch_entry.finger = active_fingers[id].id;
 | 
			
		||||
            touch_entry.attribute.raw = active_fingers[id].attribute.raw;
 | 
			
		||||
        } else {
 | 
			
		||||
 
 | 
			
		||||
@@ -126,8 +126,8 @@ double PerfStats::GetLastFrameTimeScale() const {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SpeedLimiter::DoSpeedLimiting(microseconds current_system_time_us) {
 | 
			
		||||
    if (!Settings::values.use_speed_limit.GetValue() ||
 | 
			
		||||
        Settings::values.use_multi_core.GetValue()) {
 | 
			
		||||
    if (Settings::values.use_multi_core.GetValue() ||
 | 
			
		||||
        !Settings::values.use_speed_limit.GetValue()) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user