void BufferCache::UpdateGraphicsBuffers(bool is_indexed) {
- MICROPROFILE_SCOPE(GPU_PrepareBuffers);
do {
channel_state->has_deleted_buffers = false;
DoUpdateGraphicsBuffers(is_indexed);
@@ -343,7 +342,6 @@ void BufferCache
::UpdateGraphicsBuffers(bool is_indexed) {
template
void BufferCache::UpdateComputeBuffers() {
- MICROPROFILE_SCOPE(GPU_PrepareBuffers);
do {
channel_state->has_deleted_buffers = false;
DoUpdateComputeBuffers();
@@ -352,7 +350,6 @@ void BufferCache
::UpdateComputeBuffers() {
template
void BufferCache::BindHostGeometryBuffers(bool is_indexed) {
- MICROPROFILE_SCOPE(GPU_BindUploadBuffers);
if (is_indexed) {
BindHostIndexBuffer();
} else if constexpr (!HAS_FULL_INDEX_AND_PRIMITIVE_SUPPORT) {
@@ -372,7 +369,6 @@ void BufferCache
::BindHostGeometryBuffers(bool is_indexed) {
template
void BufferCache::BindHostStageBuffers(size_t stage) {
- MICROPROFILE_SCOPE(GPU_BindUploadBuffers);
BindHostGraphicsUniformBuffers(stage);
BindHostGraphicsStorageBuffers(stage);
BindHostGraphicsTextureBuffers(stage);
@@ -380,7 +376,6 @@ void BufferCache
::BindHostStageBuffers(size_t stage) {
template
void BufferCache::BindHostComputeBuffers() {
- MICROPROFILE_SCOPE(GPU_BindUploadBuffers);
BindHostComputeUniformBuffers();
BindHostComputeStorageBuffers();
BindHostComputeTextureBuffers();
@@ -534,7 +529,6 @@ void BufferCache
::CommitAsyncFlushesHigh() {
async_buffers.emplace_back(std::optional{});
return;
}
- MICROPROFILE_SCOPE(GPU_DownloadMemory);
auto it = committed_gpu_modified_ranges.begin();
while (it != committed_gpu_modified_ranges.end()) {
@@ -621,7 +615,6 @@ void BufferCache::CommitAsyncFlushes() {
template
void BufferCache::PopAsyncFlushes() {
- MICROPROFILE_SCOPE(GPU_DownloadMemory);
PopAsyncBuffers();
}
@@ -1611,7 +1604,6 @@ void BufferCache
::DownloadBufferMemory(Buffer& buffer, DAddr device_addr, u64
if (total_size_bytes == 0) {
return;
}
- MICROPROFILE_SCOPE(GPU_DownloadMemory);
if constexpr (USE_MEMORY_MAPS) {
auto download_staging = runtime.DownloadStagingBuffer(total_size_bytes);
diff --git a/src/video_core/buffer_cache/buffer_cache_base.h b/src/video_core/buffer_cache/buffer_cache_base.h
index 1c7320dcc1..a45e9b35f1 100644
--- a/src/video_core/buffer_cache/buffer_cache_base.h
+++ b/src/video_core/buffer_cache/buffer_cache_base.h
@@ -20,7 +20,6 @@
#include "common/div_ceil.h"
#include "common/literals.h"
#include "common/lru_cache.h"
-#include "common/microprofile.h"
#include "common/range_sets.h"
#include "common/scope_exit.h"
#include "common/settings.h"
@@ -38,10 +37,6 @@
namespace VideoCommon {
-MICROPROFILE_DECLARE(GPU_PrepareBuffers);
-MICROPROFILE_DECLARE(GPU_BindUploadBuffers);
-MICROPROFILE_DECLARE(GPU_DownloadMemory);
-
using BufferId = Common::SlotId;
using VideoCore::Surface::PixelFormat;
diff --git a/src/video_core/dma_pusher.cpp b/src/video_core/dma_pusher.cpp
index 401329eea0..c2c07deb9b 100644
--- a/src/video_core/dma_pusher.cpp
+++ b/src/video_core/dma_pusher.cpp
@@ -1,8 +1,10 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#include "common/cityhash.h"
-#include "common/microprofile.h"
#include "common/settings.h"
#include "core/core.h"
#include "video_core/dma_pusher.h"
@@ -29,11 +31,7 @@ DmaPusher::DmaPusher(Core::System& system_, GPU& gpu_, MemoryManager& memory_man
DmaPusher::~DmaPusher() = default;
-MICROPROFILE_DEFINE(DispatchCalls, "GPU", "Execute command buffer", MP_RGB(128, 128, 192));
-
void DmaPusher::DispatchCalls() {
- MICROPROFILE_SCOPE(DispatchCalls);
-
dma_pushbuffer_subindex = 0;
dma_state.is_last_call = true;
diff --git a/src/video_core/engines/fermi_2d.cpp b/src/video_core/engines/fermi_2d.cpp
index 91f10aec2e..17fbe9961c 100644
--- a/src/video_core/engines/fermi_2d.cpp
+++ b/src/video_core/engines/fermi_2d.cpp
@@ -1,9 +1,11 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#include "common/assert.h"
#include "common/logging/log.h"
-#include "common/microprofile.h"
#include "video_core/engines/fermi_2d.h"
#include "video_core/engines/sw_blitter/blitter.h"
#include "video_core/memory_manager.h"
@@ -11,9 +13,6 @@
#include "video_core/surface.h"
#include "video_core/textures/decoders.h"
-MICROPROFILE_DECLARE(GPU_BlitEngine);
-MICROPROFILE_DEFINE(GPU_BlitEngine, "GPU", "Blit Engine", MP_RGB(224, 224, 128));
-
using VideoCore::Surface::BytesPerBlock;
using VideoCore::Surface::PixelFormatFromRenderTargetFormat;
@@ -61,7 +60,6 @@ void Fermi2D::ConsumeSinkImpl() {
}
void Fermi2D::Blit() {
- MICROPROFILE_SCOPE(GPU_BlitEngine);
LOG_DEBUG(HW_GPU, "called. source address=0x{:x}, destination address=0x{:x}",
regs.src.Address(), regs.dst.Address());
diff --git a/src/video_core/engines/maxwell_dma.cpp b/src/video_core/engines/maxwell_dma.cpp
index 2ebd21fc55..a4b2c1098b 100644
--- a/src/video_core/engines/maxwell_dma.cpp
+++ b/src/video_core/engines/maxwell_dma.cpp
@@ -1,10 +1,12 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#include "common/algorithm.h"
#include "common/assert.h"
#include "common/logging/log.h"
-#include "common/microprofile.h"
#include "common/polyfill_ranges.h"
#include "common/settings.h"
#include "core/core.h"
@@ -15,15 +17,6 @@
#include "video_core/renderer_base.h"
#include "video_core/textures/decoders.h"
-MICROPROFILE_DECLARE(GPU_DMAEngine);
-MICROPROFILE_DECLARE(GPU_DMAEngineBL);
-MICROPROFILE_DECLARE(GPU_DMAEngineLB);
-MICROPROFILE_DECLARE(GPU_DMAEngineBB);
-MICROPROFILE_DEFINE(GPU_DMAEngine, "GPU", "DMA Engine", MP_RGB(224, 224, 128));
-MICROPROFILE_DEFINE(GPU_DMAEngineBL, "GPU", "DMA Engine Block - Linear", MP_RGB(224, 224, 128));
-MICROPROFILE_DEFINE(GPU_DMAEngineLB, "GPU", "DMA Engine Linear - Block", MP_RGB(224, 224, 128));
-MICROPROFILE_DEFINE(GPU_DMAEngineBB, "GPU", "DMA Engine Block - Block", MP_RGB(224, 224, 128));
-
namespace Tegra::Engines {
using namespace Texture;
@@ -65,7 +58,6 @@ void MaxwellDMA::CallMultiMethod(u32 method, const u32* base_start, u32 amount,
}
void MaxwellDMA::Launch() {
- MICROPROFILE_SCOPE(GPU_DMAEngine);
LOG_TRACE(Render_OpenGL, "DMA copy 0x{:x} -> 0x{:x}", static_cast(regs.offset_in),
static_cast(regs.offset_out));
@@ -80,7 +72,6 @@ void MaxwellDMA::Launch() {
memory_manager.FlushCaching();
if (!is_src_pitch && !is_dst_pitch) {
// If both the source and the destination are in block layout, assert.
- MICROPROFILE_SCOPE(GPU_DMAEngineBB);
CopyBlockLinearToBlockLinear();
ReleaseSemaphore();
return;
@@ -96,10 +87,8 @@ void MaxwellDMA::Launch() {
}
} else {
if (!is_src_pitch && is_dst_pitch) {
- MICROPROFILE_SCOPE(GPU_DMAEngineBL);
CopyBlockLinearToPitch();
} else {
- MICROPROFILE_SCOPE(GPU_DMAEngineLB);
CopyPitchToBlockLinear();
}
}
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp
index 7c34005a12..d97620ce91 100644
--- a/src/video_core/gpu.cpp
+++ b/src/video_core/gpu.cpp
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -9,7 +12,6 @@
#include
#include "common/assert.h"
-#include "common/microprofile.h"
#include "common/settings.h"
#include "core/core.h"
#include "core/core_timing.h"
diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp
index 2b4bce4f8d..9392534e7d 100644
--- a/src/video_core/gpu_thread.cpp
+++ b/src/video_core/gpu_thread.cpp
@@ -1,8 +1,10 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#include "common/assert.h"
-#include "common/microprofile.h"
#include "common/scope_exit.h"
#include "common/settings.h"
#include "common/thread.h"
@@ -22,12 +24,6 @@ static void RunThread(std::stop_token stop_token, Core::System& system,
VideoCore::RendererBase& renderer, Core::Frontend::GraphicsContext& context,
Tegra::Control::Scheduler& scheduler, SynchState& state) {
std::string name = "GPU";
- MicroProfileOnThreadCreate(name.c_str());
-#if MICROPROFILE_ENABLED
- SCOPE_EXIT {
- MicroProfileOnThreadExit();
- };
-#endif
Common::SetCurrentThreadName(name.c_str());
Common::SetCurrentThreadPriority(Common::ThreadPriority::Critical);
diff --git a/src/video_core/host1x/syncpoint_manager.cpp b/src/video_core/host1x/syncpoint_manager.cpp
index 8f51c92af9..7b7353b6ca 100644
--- a/src/video_core/host1x/syncpoint_manager.cpp
+++ b/src/video_core/host1x/syncpoint_manager.cpp
@@ -1,15 +1,15 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: 2021 yuzu Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
-#include "common/microprofile.h"
#include "video_core/host1x/syncpoint_manager.h"
namespace Tegra {
namespace Host1x {
-MICROPROFILE_DEFINE(GPU_wait, "GPU", "Wait for the GPU", MP_RGB(128, 128, 192));
-
SyncpointManager::ActionHandle SyncpointManager::RegisterAction(
std::atomic& syncpoint, std::list& action_storage, u32 expected_value,
std::function&& action) {
@@ -70,7 +70,6 @@ void SyncpointManager::WaitGuest(u32 syncpoint_id, u32 expected_value) {
}
void SyncpointManager::WaitHost(u32 syncpoint_id, u32 expected_value) {
- MICROPROFILE_SCOPE(GPU_wait);
Wait(syncpoints_host[syncpoint_id], wait_host_cv, expected_value);
}
diff --git a/src/video_core/macro/macro.cpp b/src/video_core/macro/macro.cpp
index e476261e3e..2ff5e21c5e 100644
--- a/src/video_core/macro/macro.cpp
+++ b/src/video_core/macro/macro.cpp
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -12,7 +15,6 @@
#include "common/assert.h"
#include "common/fs/fs.h"
#include "common/fs/path_util.h"
-#include "common/microprofile.h"
#include "common/settings.h"
#include "video_core/engines/maxwell_3d.h"
#include "video_core/macro/macro.h"
@@ -23,8 +25,6 @@
#include "video_core/macro/macro_jit_x64.h"
#endif
-MICROPROFILE_DEFINE(MacroHLE, "GPU", "Execute macro HLE", MP_RGB(128, 192, 192));
-
namespace Tegra {
static void Dump(u64 hash, std::span code, bool decompiled = false) {
@@ -73,7 +73,6 @@ void MacroEngine::Execute(u32 method, const std::vector& parameters) {
if (compiled_macro != macro_cache.end()) {
const auto& cache_info = compiled_macro->second;
if (cache_info.has_hle_program) {
- MICROPROFILE_SCOPE(MacroHLE);
cache_info.hle_program->Execute(parameters, method);
} else {
maxwell3d.RefreshParameters();
@@ -118,7 +117,6 @@ void MacroEngine::Execute(u32 method, const std::vector& parameters) {
} else {
cache_info.has_hle_program = true;
cache_info.hle_program = std::move(hle_program);
- MICROPROFILE_SCOPE(MacroHLE);
cache_info.hle_program->Execute(parameters, method);
}
diff --git a/src/video_core/macro/macro_interpreter.cpp b/src/video_core/macro/macro_interpreter.cpp
index 0d63495a9d..f9befce676 100644
--- a/src/video_core/macro/macro_interpreter.cpp
+++ b/src/video_core/macro/macro_interpreter.cpp
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -6,12 +9,9 @@
#include "common/assert.h"
#include "common/logging/log.h"
-#include "common/microprofile.h"
#include "video_core/engines/maxwell_3d.h"
#include "video_core/macro/macro_interpreter.h"
-MICROPROFILE_DEFINE(MacroInterp, "GPU", "Execute macro interpreter", MP_RGB(128, 128, 192));
-
namespace Tegra {
namespace {
class MacroInterpreterImpl final : public CachedMacro {
@@ -90,7 +90,6 @@ private:
};
void MacroInterpreterImpl::Execute(const std::vector& params, u32 method) {
- MICROPROFILE_SCOPE(MacroInterp);
Reset();
registers[1] = params[0];
diff --git a/src/video_core/macro/macro_jit_x64.cpp b/src/video_core/macro/macro_jit_x64.cpp
index 14f265ad71..f8811d29c8 100644
--- a/src/video_core/macro/macro_jit_x64.cpp
+++ b/src/video_core/macro/macro_jit_x64.cpp
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -10,16 +13,12 @@
#include "common/assert.h"
#include "common/bit_field.h"
#include "common/logging/log.h"
-#include "common/microprofile.h"
#include "common/x64/xbyak_abi.h"
#include "common/x64/xbyak_util.h"
#include "video_core/engines/maxwell_3d.h"
#include "video_core/macro/macro_interpreter.h"
#include "video_core/macro/macro_jit_x64.h"
-MICROPROFILE_DEFINE(MacroJitCompile, "GPU", "Compile macro JIT", MP_RGB(173, 255, 47));
-MICROPROFILE_DEFINE(MacroJitExecute, "GPU", "Execute macro JIT", MP_RGB(255, 255, 0));
-
namespace Tegra {
namespace {
constexpr Xbyak::Reg64 STATE = Xbyak::util::rbx;
@@ -109,7 +108,6 @@ private:
};
void MacroJITx64Impl::Execute(const std::vector& parameters, u32 method) {
- MICROPROFILE_SCOPE(MacroJitExecute);
ASSERT_OR_EXECUTE(program != nullptr, { return; });
JITState state{};
state.maxwell3d = &maxwell3d;
@@ -449,7 +447,6 @@ void MacroJITx64Impl::Optimizer_ScanFlags() {
}
void MacroJITx64Impl::Compile() {
- MICROPROFILE_SCOPE(MacroJitCompile);
labels.fill(Xbyak::Label());
Common::X64::ABI_PushRegistersAndAdjustStack(*this, Common::X64::ABI_ALL_CALLEE_SAVED, 8);
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index 131b7463e0..2ea42abf4b 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -16,7 +16,6 @@
#include "common/assert.h"
#include "common/logging/log.h"
#include "common/math_util.h"
-#include "common/microprofile.h"
#include "common/scope_exit.h"
#include "common/settings.h"
#include "video_core/control/channel_state.h"
@@ -43,11 +42,6 @@ using VideoCore::Surface::PixelFormat;
using VideoCore::Surface::SurfaceTarget;
using VideoCore::Surface::SurfaceType;
-MICROPROFILE_DEFINE(OpenGL_Drawing, "OpenGL", "Drawing", MP_RGB(128, 128, 192));
-MICROPROFILE_DEFINE(OpenGL_Clears, "OpenGL", "Clears", MP_RGB(128, 128, 192));
-MICROPROFILE_DEFINE(OpenGL_Blits, "OpenGL", "Blits", MP_RGB(128, 128, 192));
-MICROPROFILE_DEFINE(OpenGL_CacheManagement, "OpenGL", "Cache Management", MP_RGB(100, 255, 100));
-
namespace {
constexpr size_t NUM_SUPPORTED_VERTEX_ATTRIBUTES = 16;
@@ -159,8 +153,6 @@ void RasterizerOpenGL::LoadDiskResources(u64 title_id, std::stop_token stop_load
}
void RasterizerOpenGL::Clear(u32 layer_count) {
- MICROPROFILE_SCOPE(OpenGL_Clears);
-
gpu_memory->FlushCaching();
const auto& regs = maxwell3d->regs;
bool use_color{};
@@ -231,8 +223,6 @@ void RasterizerOpenGL::Clear(u32 layer_count) {
template
void RasterizerOpenGL::PrepareDraw(bool is_indexed, Func&& draw_func) {
- MICROPROFILE_SCOPE(OpenGL_Drawing);
-
SCOPE_EXIT {
gpu.TickWork();
};
@@ -359,8 +349,6 @@ void RasterizerOpenGL::DrawIndirect() {
}
void RasterizerOpenGL::DrawTexture() {
- MICROPROFILE_SCOPE(OpenGL_Drawing);
-
SCOPE_EXIT {
gpu.TickWork();
};
@@ -489,7 +477,6 @@ void RasterizerOpenGL::DisableGraphicsUniformBuffer(size_t stage, u32 index) {
void RasterizerOpenGL::FlushAll() {}
void RasterizerOpenGL::FlushRegion(DAddr addr, u64 size, VideoCommon::CacheType which) {
- MICROPROFILE_SCOPE(OpenGL_CacheManagement);
if (addr == 0 || size == 0) {
return;
}
@@ -547,7 +534,6 @@ VideoCore::RasterizerDownloadArea RasterizerOpenGL::GetFlushArea(DAddr addr, u64
}
void RasterizerOpenGL::InvalidateRegion(DAddr addr, u64 size, VideoCommon::CacheType which) {
- MICROPROFILE_SCOPE(OpenGL_CacheManagement);
if (addr == 0 || size == 0) {
return;
}
@@ -568,7 +554,6 @@ void RasterizerOpenGL::InvalidateRegion(DAddr addr, u64 size, VideoCommon::Cache
}
bool RasterizerOpenGL::OnCPUWrite(DAddr addr, u64 size) {
- MICROPROFILE_SCOPE(OpenGL_CacheManagement);
DEBUG_ASSERT(addr != 0 || size != 0);
{
std::scoped_lock lock{buffer_cache.mutex};
@@ -585,8 +570,6 @@ bool RasterizerOpenGL::OnCPUWrite(DAddr addr, u64 size) {
}
void RasterizerOpenGL::OnCacheInvalidation(DAddr addr, u64 size) {
- MICROPROFILE_SCOPE(OpenGL_CacheManagement);
-
if (addr == 0 || size == 0) {
return;
}
@@ -716,7 +699,6 @@ bool RasterizerOpenGL::AccelerateConditionalRendering() {
bool RasterizerOpenGL::AccelerateSurfaceCopy(const Tegra::Engines::Fermi2D::Surface& src,
const Tegra::Engines::Fermi2D::Surface& dst,
const Tegra::Engines::Fermi2D::Config& copy_config) {
- MICROPROFILE_SCOPE(OpenGL_Blits);
std::scoped_lock lock{texture_cache.mutex};
return texture_cache.BlitImage(dst, src, copy_config);
}
@@ -752,7 +734,6 @@ std::optional RasterizerOpenGL::AccelerateDisplay(
if (framebuffer_addr == 0) {
return {};
}
- MICROPROFILE_SCOPE(OpenGL_CacheManagement);
std::scoped_lock lock{texture_cache.mutex};
const auto [image_view, scaled] =
diff --git a/src/video_core/renderer_opengl/gl_resource_manager.cpp b/src/video_core/renderer_opengl/gl_resource_manager.cpp
index 1d2c9b70a6..79177489b4 100644
--- a/src/video_core/renderer_opengl/gl_resource_manager.cpp
+++ b/src/video_core/renderer_opengl/gl_resource_manager.cpp
@@ -1,23 +1,21 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: 2015 Citra Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#include
#include
#include "common/assert.h"
-#include "common/microprofile.h"
#include "video_core/renderer_opengl/gl_resource_manager.h"
#include "video_core/renderer_opengl/gl_shader_util.h"
-MICROPROFILE_DEFINE(OpenGL_ResourceCreation, "OpenGL", "Resource Creation", MP_RGB(128, 128, 192));
-MICROPROFILE_DEFINE(OpenGL_ResourceDeletion, "OpenGL", "Resource Deletion", MP_RGB(128, 128, 192));
-
namespace OpenGL {
void OGLRenderbuffer::Create() {
if (handle != 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceCreation);
glCreateRenderbuffers(1, &handle);
}
@@ -25,7 +23,6 @@ void OGLRenderbuffer::Release() {
if (handle == 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceDeletion);
glDeleteRenderbuffers(1, &handle);
handle = 0;
}
@@ -34,7 +31,6 @@ void OGLTexture::Create(GLenum target) {
if (handle != 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceCreation);
glCreateTextures(target, 1, &handle);
}
@@ -42,7 +38,6 @@ void OGLTexture::Release() {
if (handle == 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceDeletion);
glDeleteTextures(1, &handle);
handle = 0;
}
@@ -51,7 +46,6 @@ void OGLTextureView::Create() {
if (handle != 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceCreation);
glGenTextures(1, &handle);
}
@@ -59,7 +53,6 @@ void OGLTextureView::Release() {
if (handle == 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceDeletion);
glDeleteTextures(1, &handle);
handle = 0;
}
@@ -68,7 +61,6 @@ void OGLSampler::Create() {
if (handle != 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceCreation);
glCreateSamplers(1, &handle);
}
@@ -76,7 +68,6 @@ void OGLSampler::Release() {
if (handle == 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceDeletion);
glDeleteSamplers(1, &handle);
handle = 0;
}
@@ -85,7 +76,6 @@ void OGLShader::Release() {
if (handle == 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceDeletion);
glDeleteShader(handle);
handle = 0;
}
@@ -94,7 +84,6 @@ void OGLProgram::Release() {
if (handle == 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceDeletion);
glDeleteProgram(handle);
handle = 0;
}
@@ -103,7 +92,6 @@ void OGLAssemblyProgram::Release() {
if (handle == 0) {
return;
}
- MICROPROFILE_SCOPE(OpenGL_ResourceDeletion);
glDeleteProgramsARB(1, &handle);
handle = 0;
}
@@ -112,7 +100,6 @@ void OGLPipeline::Create() {
if (handle != 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceCreation);
glGenProgramPipelines(1, &handle);
}
@@ -120,7 +107,6 @@ void OGLPipeline::Release() {
if (handle == 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceDeletion);
glDeleteProgramPipelines(1, &handle);
handle = 0;
}
@@ -129,7 +115,6 @@ void OGLBuffer::Create() {
if (handle != 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceCreation);
glCreateBuffers(1, &handle);
}
@@ -137,7 +122,6 @@ void OGLBuffer::Release() {
if (handle == 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceDeletion);
glDeleteBuffers(1, &handle);
handle = 0;
}
@@ -172,7 +156,6 @@ void OGLFramebuffer::Create() {
if (handle != 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceCreation);
// Bind to READ_FRAMEBUFFER to stop Nvidia's driver from creating an EXT_framebuffer instead of
// a core framebuffer. EXT framebuffer attachments have to match in size and can be shared
// across contexts. yuzu doesn't share framebuffers across contexts and we need attachments with
@@ -185,7 +168,6 @@ void OGLFramebuffer::Release() {
if (handle == 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceDeletion);
glDeleteFramebuffers(1, &handle);
handle = 0;
}
@@ -194,7 +176,6 @@ void OGLQuery::Create(GLenum target) {
if (handle != 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceCreation);
glCreateQueries(target, 1, &handle);
}
@@ -202,7 +183,6 @@ void OGLQuery::Release() {
if (handle == 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceDeletion);
glDeleteQueries(1, &handle);
handle = 0;
}
@@ -211,7 +191,6 @@ void OGLTransformFeedback::Create() {
if (handle != 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceCreation);
glCreateTransformFeedbacks(1, &handle);
}
@@ -219,7 +198,6 @@ void OGLTransformFeedback::Release() {
if (handle == 0)
return;
- MICROPROFILE_SCOPE(OpenGL_ResourceDeletion);
glDeleteTransformFeedbacks(1, &handle);
handle = 0;
}
diff --git a/src/video_core/renderer_opengl/gl_staging_buffer_pool.cpp b/src/video_core/renderer_opengl/gl_staging_buffer_pool.cpp
index cadad65072..bdd8e47f61 100644
--- a/src/video_core/renderer_opengl/gl_staging_buffer_pool.cpp
+++ b/src/video_core/renderer_opengl/gl_staging_buffer_pool.cpp
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -10,10 +13,8 @@
#include "common/alignment.h"
#include "common/assert.h"
#include "common/bit_util.h"
-#include "common/microprofile.h"
#include "video_core/renderer_opengl/gl_staging_buffer_pool.h"
-MICROPROFILE_DEFINE(OpenGL_BufferRequest, "OpenGL", "BufferRequest", MP_RGB(128, 128, 192));
namespace OpenGL {
@@ -30,7 +31,6 @@ StagingBuffers::~StagingBuffers() = default;
StagingBufferMap StagingBuffers::RequestMap(size_t requested_size, bool insert_fence,
bool deferred) {
- MICROPROFILE_SCOPE(OpenGL_BufferRequest);
const size_t index = RequestBuffer(requested_size);
OGLSync* const sync = insert_fence ? &allocs[index].sync : nullptr;
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp
index 850bc10c58..3412b1d998 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.cpp
+++ b/src/video_core/renderer_opengl/renderer_opengl.cpp
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -10,7 +13,6 @@
#include "common/assert.h"
#include "common/logging/log.h"
-#include "common/microprofile.h"
#include "common/settings.h"
#include "core/core_timing.h"
#include "core/frontend/emu_window.h"
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index 0311c37bd9..e3fd0b683c 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -16,7 +16,6 @@
#include "common/cityhash.h"
#include "common/fs/fs.h"
#include "common/fs/path_util.h"
-#include "common/microprofile.h"
#include "common/thread_worker.h"
#include "core/core.h"
#include "shader_recompiler/backend/spirv/emit_spirv.h"
@@ -44,7 +43,6 @@
#include "video_core/vulkan_common/vulkan_wrapper.h"
namespace Vulkan {
-MICROPROFILE_DECLARE(Vulkan_PipelineCache);
namespace {
using Shader::Backend::SPIRV::EmitSPIRV;
@@ -438,7 +436,6 @@ PipelineCache::~PipelineCache() {
}
GraphicsPipeline* PipelineCache::CurrentGraphicsPipeline() {
- MICROPROFILE_SCOPE(Vulkan_PipelineCache);
if (!RefreshStages(graphics_key.unique_hashes)) {
current_pipeline = nullptr;
@@ -457,7 +454,6 @@ GraphicsPipeline* PipelineCache::CurrentGraphicsPipeline() {
}
ComputePipeline* PipelineCache::CurrentComputePipeline() {
- MICROPROFILE_SCOPE(Vulkan_PipelineCache);
const ShaderInfo* const shader{ComputeShader()};
if (!shader) {
diff --git a/src/video_core/renderer_vulkan/vk_present_manager.cpp b/src/video_core/renderer_vulkan/vk_present_manager.cpp
index a448dc5288..9422110895 100644
--- a/src/video_core/renderer_vulkan/vk_present_manager.cpp
+++ b/src/video_core/renderer_vulkan/vk_present_manager.cpp
@@ -1,7 +1,9 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
-#include "common/microprofile.h"
#include "common/settings.h"
#include "common/thread.h"
#include "core/frontend/emu_window.h"
@@ -14,8 +16,6 @@
namespace Vulkan {
-MICROPROFILE_DEFINE(Vulkan_WaitPresent, "Vulkan", "Wait For Present", MP_RGB(128, 128, 128));
-MICROPROFILE_DEFINE(Vulkan_CopyToSwapchain, "Vulkan", "Copy to swapchain", MP_RGB(192, 255, 192));
namespace {
@@ -157,7 +157,6 @@ PresentManager::PresentManager(const vk::Instance& instance_,
PresentManager::~PresentManager() = default;
Frame* PresentManager::GetRenderFrame() {
- MICROPROFILE_SCOPE(Vulkan_WaitPresent);
// Wait for free presentation frames
std::unique_lock lock{free_mutex};
@@ -346,7 +345,6 @@ void PresentManager::CopyToSwapchain(Frame* frame) {
}
void PresentManager::CopyToSwapchainImpl(Frame* frame) {
- MICROPROFILE_SCOPE(Vulkan_CopyToSwapchain);
// If the size of the incoming frames has changed, recreate the swapchain
// to account for that.
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
index c803b50e24..dbe2ce66c9 100644
--- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp
+++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
@@ -13,7 +13,6 @@
#include "common/assert.h"
#include "common/logging/log.h"
-#include "common/microprofile.h"
#include "common/scope_exit.h"
#include "common/settings.h"
#include "video_core/buffer_cache/buffer_cache.h"
@@ -48,11 +47,6 @@ using MaxwellDrawState = Tegra::Engines::DrawManager::State;
using VideoCommon::ImageViewId;
using VideoCommon::ImageViewType;
-MICROPROFILE_DEFINE(Vulkan_WaitForWorker, "Vulkan", "Wait for worker", MP_RGB(255, 192, 192));
-MICROPROFILE_DEFINE(Vulkan_Drawing, "Vulkan", "Record drawing", MP_RGB(192, 128, 128));
-MICROPROFILE_DEFINE(Vulkan_Compute, "Vulkan", "Record compute", MP_RGB(192, 128, 128));
-MICROPROFILE_DEFINE(Vulkan_Clearing, "Vulkan", "Record clearing", MP_RGB(192, 128, 128));
-MICROPROFILE_DEFINE(Vulkan_PipelineCache, "Vulkan", "Pipeline cache", MP_RGB(192, 128, 128));
namespace {
struct DrawParams {
@@ -209,7 +203,6 @@ RasterizerVulkan::~RasterizerVulkan() = default;
template
void RasterizerVulkan::PrepareDraw(bool is_indexed, Func&& draw_func) {
- MICROPROFILE_SCOPE(Vulkan_Drawing);
SCOPE_EXIT {
gpu.TickWork();
@@ -306,7 +299,6 @@ void RasterizerVulkan::DrawIndirect() {
}
void RasterizerVulkan::DrawTexture() {
- MICROPROFILE_SCOPE(Vulkan_Drawing);
SCOPE_EXIT {
gpu.TickWork();
@@ -354,7 +346,6 @@ void RasterizerVulkan::DrawTexture() {
}
void RasterizerVulkan::Clear(u32 layer_count) {
- MICROPROFILE_SCOPE(Vulkan_Clearing);
FlushWork();
gpu_memory->FlushCaching();
diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp
index 7c556588b6..aa56a6affd 100644
--- a/src/video_core/renderer_vulkan/vk_scheduler.cpp
+++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp
@@ -11,7 +11,6 @@
#include "video_core/renderer_vulkan/vk_query_cache.h"
-#include "common/microprofile.h"
#include "common/thread.h"
#include "video_core/renderer_vulkan/vk_command_pool.h"
#include "video_core/renderer_vulkan/vk_master_semaphore.h"
@@ -23,7 +22,6 @@
namespace Vulkan {
-MICROPROFILE_DECLARE(Vulkan_WaitForWorker);
void Scheduler::CommandChunk::ExecuteAll(vk::CommandBuffer cmdbuf,
vk::CommandBuffer upload_cmdbuf) {
@@ -67,7 +65,6 @@ void Scheduler::Finish(VkSemaphore signal_semaphore, VkSemaphore wait_semaphore)
}
void Scheduler::WaitWorker() {
- MICROPROFILE_SCOPE(Vulkan_WaitForWorker);
DispatchWork();
// Ensure the queue is drained.
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt
index 34f2ba455a..09aa6cc77b 100644
--- a/src/yuzu/CMakeLists.txt
+++ b/src/yuzu/CMakeLists.txt
@@ -160,8 +160,6 @@ add_executable(yuzu
debugger/console.h
debugger/controller.cpp
debugger/controller.h
- debugger/profiler.cpp
- debugger/profiler.h
debugger/wait_tree.cpp
debugger/wait_tree.h
discord.h
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp
index 6852193b1b..e54064d8a5 100644
--- a/src/yuzu/bootmanager.cpp
+++ b/src/yuzu/bootmanager.cpp
@@ -38,7 +38,6 @@
#include
#endif
-#include "common/microprofile.h"
#include "common/polyfill_thread.h"
#include "common/scm_rev.h"
#include "common/settings.h"
@@ -73,7 +72,6 @@ EmuThread::~EmuThread() = default;
void EmuThread::run() {
const char* name = "EmuControlThread";
- MicroProfileOnThreadCreate(name);
Common::SetCurrentThreadName(name);
auto& gpu = m_system.GPU();
@@ -124,10 +122,6 @@ void EmuThread::run() {
// Shutdown the main emulated process
m_system.DetachDebugger();
m_system.ShutdownMainProcess();
-
-#if MICROPROFILE_ENABLED
- MicroProfileOnThreadExit();
-#endif
}
// Unlock while emitting signals so that the main thread can
diff --git a/src/yuzu/debugger/profiler.cpp b/src/yuzu/debugger/profiler.cpp
deleted file mode 100644
index 55d4298fa6..0000000000
--- a/src/yuzu/debugger/profiler.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-// SPDX-FileCopyrightText: 2015 Citra Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#if MICROPROFILE_ENABLED
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include "common/common_types.h"
-#include "common/microprofile.h"
-#include "yuzu/debugger/profiler.h"
-#include "yuzu/util/util.h"
-
-// Include the implementation of the UI in this file. This isn't in microprofile.cpp because the
-// non-Qt frontends don't need it (and don't implement the UI drawing hooks either).
-
-#define MICROPROFILEUI_IMPL 1
-#include "common/microprofileui.h"
-
-class MicroProfileWidget : public QWidget {
-public:
- MicroProfileWidget(QWidget* parent = nullptr);
-
-protected:
- void paintEvent(QPaintEvent* ev) override;
- void showEvent(QShowEvent* ev) override;
- void hideEvent(QHideEvent* ev) override;
-
- void mouseMoveEvent(QMouseEvent* ev) override;
- void mousePressEvent(QMouseEvent* ev) override;
- void mouseReleaseEvent(QMouseEvent* ev) override;
- void wheelEvent(QWheelEvent* ev) override;
-
- void keyPressEvent(QKeyEvent* ev) override;
- void keyReleaseEvent(QKeyEvent* ev) override;
-
-private:
- /// This timer is used to redraw the widget's contents continuously. To save resources, it only
- /// runs while the widget is visible.
- QTimer update_timer;
- /// Scale the coordinate system appropriately when dpi != 96.
- qreal x_scale = 1.0, y_scale = 1.0;
-};
-
-MicroProfileDialog::MicroProfileDialog(QWidget* parent) : QWidget(parent, Qt::Dialog) {
- setObjectName(QStringLiteral("MicroProfile"));
- setWindowTitle(tr("&MicroProfile"));
- resize(1000, 600);
- // Enable the maximize button
- setWindowFlags(windowFlags() | Qt::WindowMaximizeButtonHint);
-
- MicroProfileWidget* widget = new MicroProfileWidget(this);
-
- QLayout* layout = new QVBoxLayout(this);
- layout->setContentsMargins(0, 0, 0, 0);
- layout->addWidget(widget);
- setLayout(layout);
-
- // Configure focus so that widget is focusable and the dialog automatically forwards focus to
- // it.
- setFocusProxy(widget);
- widget->setFocusPolicy(Qt::StrongFocus);
- widget->setFocus();
-}
-
-QAction* MicroProfileDialog::toggleViewAction() {
- if (toggle_view_action == nullptr) {
- toggle_view_action = new QAction(windowTitle(), this);
- toggle_view_action->setCheckable(true);
- toggle_view_action->setChecked(isVisible());
- connect(toggle_view_action, &QAction::toggled, this, &MicroProfileDialog::setVisible);
- }
-
- return toggle_view_action;
-}
-
-void MicroProfileDialog::showEvent(QShowEvent* ev) {
- if (toggle_view_action) {
- toggle_view_action->setChecked(isVisible());
- }
- QWidget::showEvent(ev);
-}
-
-void MicroProfileDialog::hideEvent(QHideEvent* ev) {
- if (toggle_view_action) {
- toggle_view_action->setChecked(isVisible());
- }
- QWidget::hideEvent(ev);
-}
-
-/// There's no way to pass a user pointer to MicroProfile, so this variable is used to make the
-/// QPainter available inside the drawing callbacks.
-static QPainter* mp_painter = nullptr;
-
-MicroProfileWidget::MicroProfileWidget(QWidget* parent) : QWidget(parent) {
- // Send mouse motion events even when not dragging.
- setMouseTracking(true);
-
- MicroProfileSetDisplayMode(1); // Timers screen
- MicroProfileInitUI();
-
- connect(&update_timer, &QTimer::timeout, this, qOverload<>(&MicroProfileWidget::update));
-}
-
-void MicroProfileWidget::paintEvent(QPaintEvent* ev) {
- QPainter painter(this);
-
- // The units used by Microprofile for drawing are based in pixels on a 96 dpi display.
- x_scale = qreal(painter.device()->logicalDpiX()) / 96.0;
- y_scale = qreal(painter.device()->logicalDpiY()) / 96.0;
- painter.scale(x_scale, y_scale);
-
- painter.setBackground(Qt::black);
- painter.eraseRect(rect());
-
- QFont font = GetMonospaceFont();
- font.setPixelSize(MICROPROFILE_TEXT_HEIGHT);
- painter.setFont(font);
-
- mp_painter = &painter;
- MicroProfileDraw(rect().width() / x_scale, rect().height() / y_scale);
- mp_painter = nullptr;
-}
-
-void MicroProfileWidget::showEvent(QShowEvent* ev) {
- update_timer.start(15); // ~60 Hz
- QWidget::showEvent(ev);
-}
-
-void MicroProfileWidget::hideEvent(QHideEvent* ev) {
- update_timer.stop();
- QWidget::hideEvent(ev);
-}
-
-void MicroProfileWidget::mouseMoveEvent(QMouseEvent* ev) {
- const auto mouse_position = ev->pos();
- MicroProfileMousePosition(mouse_position.x() / x_scale, mouse_position.y() / y_scale, 0);
- ev->accept();
-}
-
-void MicroProfileWidget::mousePressEvent(QMouseEvent* ev) {
- const auto mouse_position = ev->pos();
- MicroProfileMousePosition(mouse_position.x() / x_scale, mouse_position.y() / y_scale, 0);
- MicroProfileMouseButton(ev->buttons() & Qt::LeftButton, ev->buttons() & Qt::RightButton);
- ev->accept();
-}
-
-void MicroProfileWidget::mouseReleaseEvent(QMouseEvent* ev) {
- const auto mouse_position = ev->pos();
- MicroProfileMousePosition(mouse_position.x() / x_scale, mouse_position.y() / y_scale, 0);
- MicroProfileMouseButton(ev->buttons() & Qt::LeftButton, ev->buttons() & Qt::RightButton);
- ev->accept();
-}
-
-void MicroProfileWidget::wheelEvent(QWheelEvent* ev) {
- const auto wheel_position = ev->position().toPoint();
- MicroProfileMousePosition(wheel_position.x() / x_scale, wheel_position.y() / y_scale,
- ev->angleDelta().y() / 120);
- ev->accept();
-}
-
-void MicroProfileWidget::keyPressEvent(QKeyEvent* ev) {
- if (ev->key() == Qt::Key_Control) {
- // Inform MicroProfile that the user is holding Ctrl.
- MicroProfileModKey(1);
- }
- QWidget::keyPressEvent(ev);
-}
-
-void MicroProfileWidget::keyReleaseEvent(QKeyEvent* ev) {
- if (ev->key() == Qt::Key_Control) {
- MicroProfileModKey(0);
- }
- QWidget::keyReleaseEvent(ev);
-}
-
-// These functions are called by MicroProfileDraw to draw the interface elements on the screen.
-
-void MicroProfileDrawText(int x, int y, u32 hex_color, const char* text, u32 text_length) {
- // hex_color does not include an alpha, so it must be assumed to be 255
- mp_painter->setPen(QColor::fromRgb(hex_color));
-
- // It's impossible to draw a string using a monospaced font with a fixed width per cell in a
- // way that's reliable across different platforms and fonts as far as I (yuriks) can tell, so
- // draw each character individually in order to precisely control the text advance.
- for (u32 i = 0; i < text_length; ++i) {
- // Position the text baseline 1 pixel above the bottom of the text cell, this gives nice
- // vertical alignment of text for a wide range of tested fonts.
- mp_painter->drawText(x, y + MICROPROFILE_TEXT_HEIGHT - 2, QString{QLatin1Char{text[i]}});
- x += MICROPROFILE_TEXT_WIDTH + 1;
- }
-}
-
-void MicroProfileDrawBox(int left, int top, int right, int bottom, u32 hex_color,
- MicroProfileBoxType type) {
- QColor color = QColor::fromRgba(hex_color);
- QBrush brush = color;
- if (type == MicroProfileBoxTypeBar) {
- QLinearGradient gradient(left, top, left, bottom);
- gradient.setColorAt(0.f, color.lighter(125));
- gradient.setColorAt(1.f, color.darker(125));
- brush = gradient;
- }
- mp_painter->fillRect(left, top, right - left, bottom - top, brush);
-}
-
-void MicroProfileDrawLine2D(u32 vertices_length, float* vertices, u32 hex_color) {
- // Temporary vector used to convert between the float array and QPointF. Marked static to reuse
- // the allocation across calls.
- static std::vector point_buf;
-
- for (u32 i = 0; i < vertices_length; ++i) {
- point_buf.emplace_back(vertices[i * 2 + 0], vertices[i * 2 + 1]);
- }
-
- // hex_color does not include an alpha, so it must be assumed to be 255
- mp_painter->setPen(QColor::fromRgb(hex_color));
- mp_painter->drawPolyline(point_buf.data(), vertices_length);
- point_buf.clear();
-}
-#endif
diff --git a/src/yuzu/debugger/profiler.h b/src/yuzu/debugger/profiler.h
deleted file mode 100644
index caf81bdd9b..0000000000
--- a/src/yuzu/debugger/profiler.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-// SPDX-FileCopyrightText: 2015 Citra Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#if MICROPROFILE_ENABLED
-
-#include
-
-class QAction;
-class QHideEvent;
-class QShowEvent;
-
-class MicroProfileDialog : public QWidget {
- Q_OBJECT
-
-public:
- explicit MicroProfileDialog(QWidget* parent = nullptr);
-
- /// Returns a QAction that can be used to toggle visibility of this dialog.
- QAction* toggleViewAction();
-
-protected:
- void showEvent(QShowEvent* ev) override;
- void hideEvent(QHideEvent* ev) override;
-
-private:
- QAction* toggle_view_action = nullptr;
-};
-#endif
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index a46c5cd881..a5f12b814b 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -114,7 +114,6 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual
#include "common/logging/backend.h"
#include "common/logging/log.h"
#include "common/memory_detect.h"
-#include "common/microprofile.h"
#include "common/scm_rev.h"
#include "common/scope_exit.h"
#ifdef _WIN32
@@ -159,7 +158,6 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual
#include "yuzu/configuration/qt_config.h"
#include "yuzu/debugger/console.h"
#include "yuzu/debugger/controller.h"
-#include "yuzu/debugger/profiler.h"
#include "yuzu/debugger/wait_tree.h"
#include "yuzu/discord.h"
#include "yuzu/game_list.h"
@@ -1344,17 +1342,6 @@ void GMainWindow::InitializeWidgets() {
void GMainWindow::InitializeDebugWidgets() {
QMenu* debug_menu = ui->menu_View_Debugging;
-#if MICROPROFILE_ENABLED
- microProfileDialog = new MicroProfileDialog(this);
- microProfileDialog->hide();
- debug_menu->addAction(microProfileDialog->toggleViewAction());
-#else
- auto micro_profile_stub = new QAction(tr("MicroProfile (unavailable)"), this);
- micro_profile_stub->setEnabled(false);
- micro_profile_stub->setChecked(false);
- debug_menu->addAction(micro_profile_stub);
-#endif
-
waitTreeWidget = new WaitTreeWidget(*system, this);
addDockWidget(Qt::LeftDockWidgetArea, waitTreeWidget);
waitTreeWidget->hide();
@@ -1505,10 +1492,6 @@ void GMainWindow::RestoreUIState() {
restoreState(UISettings::values.state);
render_window->setWindowFlags(render_window->windowFlags() & ~Qt::FramelessWindowHint);
render_window->restoreGeometry(UISettings::values.renderwindow_geometry);
-#if MICROPROFILE_ENABLED
- microProfileDialog->restoreGeometry(UISettings::values.microprofile_geometry);
- microProfileDialog->setVisible(UISettings::values.microprofile_visible.GetValue());
-#endif
game_list->LoadInterfaceLayout();
@@ -5109,10 +5092,6 @@ void GMainWindow::UpdateUISettings() {
UISettings::values.renderwindow_geometry = render_window->saveGeometry();
}
UISettings::values.state = saveState();
-#if MICROPROFILE_ENABLED
- UISettings::values.microprofile_geometry = microProfileDialog->saveGeometry();
- UISettings::values.microprofile_visible = microProfileDialog->isVisible();
-#endif
UISettings::values.single_window_mode = ui->action_Single_Window_Mode->isChecked();
UISettings::values.fullscreen = ui->action_Fullscreen->isChecked();
UISettings::values.display_titlebar = ui->action_Display_Dock_Widget_Headers->isChecked();
@@ -5635,14 +5614,6 @@ int main(int argc, char* argv[]) {
#endif
Common::DetachedTasks detached_tasks;
-
-#if MICROPROFILE_ENABLED
- MicroProfileOnThreadCreate("Frontend");
- SCOPE_EXIT {
- MicroProfileShutdown();
- };
-#endif
-
Common::ConfigureNvidiaEnvironmentFlags();
// Init settings params
diff --git a/src/yuzu/main.h b/src/yuzu/main.h
index b6f818099a..9021c26005 100644
--- a/src/yuzu/main.h
+++ b/src/yuzu/main.h
@@ -43,11 +43,7 @@ class GameList;
class GImageInfo;
class GRenderWindow;
class LoadingScreen;
-#if MICROPROFILE_ENABLED
-class MicroProfileDialog;
-#endif
class OverlayDialog;
-class ProfilerWidget;
class ControllerDialog;
class QLabel;
class MultiplayerState;
@@ -566,10 +562,6 @@ private:
std::unique_ptr provider;
// Debugger panes
- ProfilerWidget* profilerWidget;
-#if MICROPROFILE_ENABLED
- MicroProfileDialog* microProfileDialog;
-#endif
WaitTreeWidget* waitTreeWidget;
ControllerDialog* controller_dialog;
diff --git a/src/yuzu/uisettings.cpp b/src/yuzu/uisettings.cpp
index 02d6bc9006..6da5424775 100644
--- a/src/yuzu/uisettings.cpp
+++ b/src/yuzu/uisettings.cpp
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: 2016 Citra Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -66,7 +69,6 @@ void SaveWindowState() {
config.setValue(QStringLiteral("state"), values.state);
config.setValue(QStringLiteral("geometryRenderWindow"), values.renderwindow_geometry);
config.setValue(QStringLiteral("gameListHeaderState"), values.gamelist_header_state);
- config.setValue(QStringLiteral("microProfileDialogGeometry"), values.microprofile_geometry);
config.sync();
}
@@ -89,8 +91,6 @@ void RestoreWindowState(std::unique_ptr& qtConfig) {
config.value(QStringLiteral("geometryRenderWindow")).toByteArray();
values.gamelist_header_state =
config.value(QStringLiteral("gameListHeaderState")).toByteArray();
- values.microprofile_geometry =
- config.value(QStringLiteral("microProfileDialogGeometry")).toByteArray();
config.endGroup();
config.endGroup();
return;
@@ -105,8 +105,6 @@ void RestoreWindowState(std::unique_ptr& qtConfig) {
config.value(QStringLiteral("geometryRenderWindow")).toByteArray();
values.gamelist_header_state =
config.value(QStringLiteral("gameListHeaderState")).toByteArray();
- values.microprofile_geometry =
- config.value(QStringLiteral("microProfileDialogGeometry")).toByteArray();
}
} // namespace UISettings
diff --git a/src/yuzu/uisettings.h b/src/yuzu/uisettings.h
index b713b52fcc..0502fe75e4 100644
--- a/src/yuzu/uisettings.h
+++ b/src/yuzu/uisettings.h
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: 2016 Citra Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -92,10 +95,6 @@ struct Values {
QByteArray gamelist_header_state;
- QByteArray microprofile_geometry;
- Setting microprofile_visible{linkage, false, "microProfileDialogVisible",
- Category::UiLayout};
-
Setting single_window_mode{linkage, true, "singleWindowMode", Category::Ui};
Setting fullscreen{linkage, false, "fullscreen", Category::Ui};
Setting display_titlebar{linkage, true, "displayTitleBars", Category::Ui};
diff --git a/src/yuzu_cmd/yuzu.cpp b/src/yuzu_cmd/yuzu.cpp
index 6acf7c0ace..599582aba9 100644
--- a/src/yuzu_cmd/yuzu.cpp
+++ b/src/yuzu_cmd/yuzu.cpp
@@ -16,7 +16,6 @@
#include "common/detached_tasks.h"
#include "common/logging/backend.h"
#include "common/logging/log.h"
-#include "common/microprofile.h"
#include "common/nvidia_flags.h"
#include "common/scm_rev.h"
#include "common/scope_exit.h"
@@ -335,13 +334,6 @@ int main(int argc, char** argv) {
LocalFree(argv_w);
#endif
-#if MICROPROFILE_ENABLED
- MicroProfileOnThreadCreate("EmuThread");
- SCOPE_EXIT {
- MicroProfileShutdown();
- };
-#endif
-
Common::ConfigureNvidiaEnvironmentFlags();
if (filepath.empty()) {