mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-28 00:12:40 +00:00
feat: add an in-game performance panel (#1090)
Add in-game performance panel Co-authored-by: nmzik <Nmzik@mail.ru>
This commit is contained in:
1 parent
415387f00d
commit
6aa3846fb2
35 files changed
+1788
-34
No files matched your search
@@ -1,5 +1,6 @@
|
||||
#include "common/assert.h"
|
||||
#include "common/common.h"
|
||||
#include "common/debugCounters.h"
|
||||
#include "common/emulatorConfig.h"
|
||||
#include "common/logging/log.h"
|
||||
#include "common/profiler.h"
|
||||
@@ -10,6 +11,7 @@
|
||||
#include "graphics/host_gpu/renderer/render.h"
|
||||
#include "graphics/host_gpu/renderer/renderContext.h"
|
||||
#include "graphics/host_gpu/vulkanCommon.h"
|
||||
#include "graphics/presentation/performanceOverlay.h"
|
||||
#include "graphics/presentation/presenter.h"
|
||||
#include "graphics/presentation/systemOverlay.h"
|
||||
#include "graphics/presentation/videoOut.h"
|
||||
@@ -324,6 +326,7 @@ struct Presenter::Impl {
|
||||
void RecoverSwapchain(Swapchain::Status status) {
|
||||
LOGF("Recovering Vulkan swapchain%s\n",
|
||||
status == Swapchain::Status::SurfaceLost ? " and surface" : "");
|
||||
Common::DebugCounters::Add(Common::DebugCounters::Counter::SwapchainRecreations);
|
||||
swapchain.Recreate(status == Swapchain::Status::SurfaceLost);
|
||||
frames.SetFormat(swapchain.Format());
|
||||
}
|
||||
@@ -1039,8 +1042,8 @@ void Presenter::Impl::Present() {
|
||||
// present_mutex owns the prepared frames and this scheduler. Only queue submission
|
||||
// is shared with rendering, and it has its own queue_mutex.
|
||||
auto& command = present_scheduler.BeginCommand();
|
||||
const bool draw_system_overlay =
|
||||
overlay_visual.active && swapchain.PrepareSystemOverlay();
|
||||
const bool draw_system_overlay = (overlay_visual.active || PerformanceOverlayEnabled()) &&
|
||||
swapchain.PrepareSystemOverlay();
|
||||
swapchain.RecordPresentCommands(command, layers[0].frame, layers[1],
|
||||
draw_system_overlay);
|
||||
const auto tick = swapchain.Submit(present_scheduler);
|
||||
@@ -1060,6 +1063,7 @@ void Presenter::Impl::Present() {
|
||||
return;
|
||||
}
|
||||
LOGF("Vulkan presentation retry exhausted; dropping frame\n");
|
||||
Common::DebugCounters::Add(Common::DebugCounters::Counter::DroppedPresents);
|
||||
}
|
||||
|
||||
void Presenter::Discard(Frame& frame) {
|
||||
|
||||
Reference in new issue
Block a user