mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Core: Split Microprofile Dynarmic timing per Core
This commit is contained in:
		
							parent
							
								
									528b19a842
								
							
						
					
					
						commit
						cdf900f1e3
					
				| @ -51,7 +51,10 @@ | ||||
| #include "video_core/renderer_base.h" | ||||
| #include "video_core/video_core.h" | ||||
| 
 | ||||
| MICROPROFILE_DEFINE(ARM_Jit_Dynarmic, "ARM JIT", "Dynarmic", MP_RGB(255, 64, 64)); | ||||
| MICROPROFILE_DEFINE(ARM_Jit_Dynarmic_CPU0, "ARM JIT", "Dynarmic CPU 0", MP_RGB(255, 64, 64)); | ||||
| MICROPROFILE_DEFINE(ARM_Jit_Dynarmic_CPU1, "ARM JIT", "Dynarmic CPU 1", MP_RGB(255, 64, 64)); | ||||
| MICROPROFILE_DEFINE(ARM_Jit_Dynarmic_CPU2, "ARM JIT", "Dynarmic CPU 2", MP_RGB(255, 64, 64)); | ||||
| MICROPROFILE_DEFINE(ARM_Jit_Dynarmic_CPU3, "ARM JIT", "Dynarmic CPU 3", MP_RGB(255, 64, 64)); | ||||
| 
 | ||||
| namespace Core { | ||||
| 
 | ||||
| @ -189,6 +192,11 @@ struct System::Impl { | ||||
|         is_powered_on = true; | ||||
|         exit_lock = false; | ||||
| 
 | ||||
|         microprofile_dynarmic[0] = MICROPROFILE_TOKEN(ARM_Jit_Dynarmic_CPU0); | ||||
|         microprofile_dynarmic[1] = MICROPROFILE_TOKEN(ARM_Jit_Dynarmic_CPU1); | ||||
|         microprofile_dynarmic[2] = MICROPROFILE_TOKEN(ARM_Jit_Dynarmic_CPU2); | ||||
|         microprofile_dynarmic[3] = MICROPROFILE_TOKEN(ARM_Jit_Dynarmic_CPU3); | ||||
| 
 | ||||
|         LOG_DEBUG(Core, "Initialized OK"); | ||||
| 
 | ||||
|         return ResultStatus::Success; | ||||
| @ -396,6 +404,7 @@ struct System::Impl { | ||||
|     bool is_async_gpu{}; | ||||
| 
 | ||||
|     std::array<u64, Core::Hardware::NUM_CPU_CORES> dynarmic_ticks{}; | ||||
|     std::array<MicroProfileToken, Core::Hardware::NUM_CPU_CORES> microprofile_dynarmic{}; | ||||
| }; | ||||
| 
 | ||||
| System::System() : impl{std::make_unique<Impl>(*this)} {} | ||||
| @ -747,12 +756,12 @@ void System::RegisterHostThread() { | ||||
| 
 | ||||
| void System::EnterDynarmicProfile() { | ||||
|     std::size_t core = impl->kernel.GetCurrentHostThreadID(); | ||||
|     impl->dynarmic_ticks[core] = MicroProfileEnter(MICROPROFILE_TOKEN(ARM_Jit_Dynarmic)); | ||||
|     impl->dynarmic_ticks[core] = MicroProfileEnter(impl->microprofile_dynarmic[core]); | ||||
| } | ||||
| 
 | ||||
| void System::ExitDynarmicProfile() { | ||||
|     std::size_t core = impl->kernel.GetCurrentHostThreadID(); | ||||
|     MicroProfileLeave(MICROPROFILE_TOKEN(ARM_Jit_Dynarmic), impl->dynarmic_ticks[core]); | ||||
|     MicroProfileLeave(impl->microprofile_dynarmic[core], impl->dynarmic_ticks[core]); | ||||
| } | ||||
| 
 | ||||
| } // namespace Core
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Fernando Sahmkow
						Fernando Sahmkow