mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 22:00:05 +00:00 
			
		
		
		
	Add profiling infrastructure and widget
This commit is contained in:
		
							parent
							
								
									c1d29ac202
								
							
						
					
					
						commit
						cd1fbfcf1b
					
				
					 16 changed files with 757 additions and 0 deletions
				
			
		|  | @ -4,6 +4,8 @@ | |||
| 
 | ||||
| #include <boost/range/algorithm/fill.hpp> | ||||
| 
 | ||||
| #include "common/profiler.h" | ||||
| 
 | ||||
| #include "clipper.h" | ||||
| #include "command_processor.h" | ||||
| #include "math.h" | ||||
|  | @ -25,6 +27,8 @@ static int float_regs_counter = 0; | |||
| 
 | ||||
| static u32 uniform_write_buffer[4]; | ||||
| 
 | ||||
| Common::Profiling::TimingCategory category_drawing("Drawing"); | ||||
| 
 | ||||
| static inline void WritePicaReg(u32 id, u32 value, u32 mask) { | ||||
| 
 | ||||
|     if (id >= registers.NumIds()) | ||||
|  | @ -53,6 +57,8 @@ static inline void WritePicaReg(u32 id, u32 value, u32 mask) { | |||
|         case PICA_REG_INDEX(trigger_draw): | ||||
|         case PICA_REG_INDEX(trigger_draw_indexed): | ||||
|         { | ||||
|             Common::Profiling::ScopeTimer scope_timer(category_drawing); | ||||
| 
 | ||||
|             DebugUtils::DumpTevStageConfig(registers.GetTevStages()); | ||||
| 
 | ||||
|             if (g_debug_context) | ||||
|  |  | |||
|  | @ -4,7 +4,10 @@ | |||
| 
 | ||||
| #include "core/hw/gpu.h" | ||||
| #include "core/mem_map.h" | ||||
| 
 | ||||
| #include "common/emu_window.h" | ||||
| #include "common/profiler_reporting.h" | ||||
| 
 | ||||
| #include "video_core/video_core.h" | ||||
| #include "video_core/renderer_opengl/renderer_opengl.h" | ||||
| #include "video_core/renderer_opengl/gl_shader_util.h" | ||||
|  | @ -75,9 +78,18 @@ void RendererOpenGL::SwapBuffers() { | |||
| 
 | ||||
|     DrawScreens(); | ||||
| 
 | ||||
|     auto& profiler = Common::Profiling::GetProfilingManager(); | ||||
|     profiler.FinishFrame(); | ||||
|     { | ||||
|         auto aggregator = Common::Profiling::GetTimingResultsAggregator(); | ||||
|         aggregator->AddFrame(profiler.GetPreviousFrameResults()); | ||||
|     } | ||||
| 
 | ||||
|     // Swap buffers
 | ||||
|     render_window->PollEvents(); | ||||
|     render_window->SwapBuffers(); | ||||
| 
 | ||||
|     profiler.BeginFrame(); | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue