Integrate the MicroProfile profiling library
This brings goodies such as a configurable user interface and multi-threaded timeline view.
This commit is contained in:
parent
c7745408f7
commit
0fcabd2b11
24 changed files with 11142 additions and 0 deletions
|
@ -7,6 +7,7 @@
|
|||
|
||||
#include "common/color.h"
|
||||
#include "common/math_util.h"
|
||||
#include "common/microprofile.h"
|
||||
#include "common/profiler.h"
|
||||
|
||||
#include "core/hw/gpu.h"
|
||||
|
@ -777,12 +778,16 @@ void RasterizerOpenGL::SyncDrawState() {
|
|||
state.Apply();
|
||||
}
|
||||
|
||||
MICROPROFILE_DEFINE(OpenGL_FramebufferReload, "OpenGL", "FB Reload", MP_RGB(70, 70, 200));
|
||||
|
||||
void RasterizerOpenGL::ReloadColorBuffer() {
|
||||
u8* color_buffer = Memory::GetPhysicalPointer(Pica::g_state.regs.framebuffer.GetColorBufferPhysicalAddress());
|
||||
|
||||
if (color_buffer == nullptr)
|
||||
return;
|
||||
|
||||
MICROPROFILE_SCOPE(OpenGL_FramebufferReload);
|
||||
|
||||
u32 bytes_per_pixel = Pica::Regs::BytesPerColorPixel(fb_color_texture.format);
|
||||
|
||||
std::unique_ptr<u8[]> temp_fb_color_buffer(new u8[fb_color_texture.width * fb_color_texture.height * bytes_per_pixel]);
|
||||
|
@ -822,6 +827,8 @@ void RasterizerOpenGL::ReloadDepthBuffer() {
|
|||
if (depth_buffer == nullptr)
|
||||
return;
|
||||
|
||||
MICROPROFILE_SCOPE(OpenGL_FramebufferReload);
|
||||
|
||||
u32 bytes_per_pixel = Pica::Regs::BytesPerDepthPixel(fb_depth_texture.format);
|
||||
|
||||
// OpenGL needs 4 bpp alignment for D24
|
||||
|
@ -868,6 +875,7 @@ void RasterizerOpenGL::ReloadDepthBuffer() {
|
|||
}
|
||||
|
||||
Common::Profiling::TimingCategory buffer_commit_category("Framebuffer Commit");
|
||||
MICROPROFILE_DEFINE(OpenGL_FramebufferCommit, "OpenGL", "FB Commit", MP_RGB(70, 70, 200));
|
||||
|
||||
void RasterizerOpenGL::CommitColorBuffer() {
|
||||
if (last_fb_color_addr != 0) {
|
||||
|
@ -875,6 +883,7 @@ void RasterizerOpenGL::CommitColorBuffer() {
|
|||
|
||||
if (color_buffer != nullptr) {
|
||||
Common::Profiling::ScopeTimer timer(buffer_commit_category);
|
||||
MICROPROFILE_SCOPE(OpenGL_FramebufferCommit);
|
||||
|
||||
u32 bytes_per_pixel = Pica::Regs::BytesPerColorPixel(fb_color_texture.format);
|
||||
|
||||
|
@ -911,6 +920,7 @@ void RasterizerOpenGL::CommitDepthBuffer() {
|
|||
|
||||
if (depth_buffer != nullptr) {
|
||||
Common::Profiling::ScopeTimer timer(buffer_commit_category);
|
||||
MICROPROFILE_SCOPE(OpenGL_FramebufferCommit);
|
||||
|
||||
u32 bytes_per_pixel = Pica::Regs::BytesPerDepthPixel(fb_depth_texture.format);
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
#include "common/make_unique.h"
|
||||
#include "common/math_util.h"
|
||||
#include "common/microprofile.h"
|
||||
#include "common/vector_math.h"
|
||||
|
||||
#include "core/memory.h"
|
||||
|
@ -16,6 +17,8 @@ RasterizerCacheOpenGL::~RasterizerCacheOpenGL() {
|
|||
FullFlush();
|
||||
}
|
||||
|
||||
MICROPROFILE_DEFINE(OpenGL_TextureUpload, "OpenGL", "Texture Upload", MP_RGB(128, 64, 192));
|
||||
|
||||
void RasterizerCacheOpenGL::LoadAndBindTexture(OpenGLState &state, unsigned texture_unit, const Pica::Regs::FullTextureConfig& config) {
|
||||
PAddr texture_addr = config.config.GetPhysicalAddress();
|
||||
|
||||
|
@ -25,6 +28,8 @@ void RasterizerCacheOpenGL::LoadAndBindTexture(OpenGLState &state, unsigned text
|
|||
state.texture_units[texture_unit].texture_2d = cached_texture->second->texture.handle;
|
||||
state.Apply();
|
||||
} else {
|
||||
MICROPROFILE_SCOPE(OpenGL_TextureUpload);
|
||||
|
||||
std::unique_ptr<CachedTexture> new_texture = Common::make_unique<CachedTexture>();
|
||||
|
||||
new_texture->texture.Create();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue