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