From 18219afbf727deddb17fd43f9124c14b8c3523e1 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Wed, 22 Apr 2020 20:36:10 +0200 Subject: [PATCH] Qt: move rsx capture to Utilities menu --- rpcs3/Emu/RSX/RSXThread.cpp | 6 +++--- rpcs3/Emu/RSX/RSXThread.h | 2 +- rpcs3/rpcs3qt/debugger_frame.cpp | 10 ---------- rpcs3/rpcs3qt/debugger_frame.h | 1 - rpcs3/rpcs3qt/main_window.cpp | 7 +++++++ rpcs3/rpcs3qt/main_window.ui | 13 ++++++++++++- 6 files changed, 23 insertions(+), 16 deletions(-) diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index c14b651b92..9c5442d0f5 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -28,7 +28,7 @@ class GSRender; #define CMD_DEBUG 0 -std::atomic user_asked_for_frame_capture = false; +std::atomic g_user_asked_for_frame_capture = false; rsx::frame_trace_data frame_debug; rsx::frame_capture_data frame_capture; @@ -309,7 +309,7 @@ namespace rsx m_graphics_state = pipeline_state::all_dirty; - user_asked_for_frame_capture = false; + g_user_asked_for_frame_capture = false; if (g_cfg.misc.use_native_interface && (g_cfg.video.renderer == video_renderer::opengl || g_cfg.video.renderer == video_renderer::vulkan)) { @@ -2558,7 +2558,7 @@ namespace rsx void thread::on_frame_end(u32 buffer, bool forced) { // Marks the end of a frame scope GPU-side - if (user_asked_for_frame_capture.exchange(false) && !capture_current_frame) + if (g_user_asked_for_frame_capture.exchange(false) && !capture_current_frame) { capture_current_frame = true; frame_debug.reset(); diff --git a/rpcs3/Emu/RSX/RSXThread.h b/rpcs3/Emu/RSX/RSXThread.h index c6ee64a2f0..771440d128 100644 --- a/rpcs3/Emu/RSX/RSXThread.h +++ b/rpcs3/Emu/RSX/RSXThread.h @@ -28,7 +28,7 @@ extern u64 get_guest_system_time(); extern u64 get_system_time(); -extern std::atomic user_asked_for_frame_capture; +extern std::atomic g_user_asked_for_frame_capture; extern rsx::frame_trace_data frame_debug; extern rsx::frame_capture_data frame_capture; diff --git a/rpcs3/rpcs3qt/debugger_frame.cpp b/rpcs3/rpcs3qt/debugger_frame.cpp index 36ede3d113..88996b7f06 100644 --- a/rpcs3/rpcs3qt/debugger_frame.cpp +++ b/rpcs3/rpcs3qt/debugger_frame.cpp @@ -28,7 +28,6 @@ #include constexpr auto qstr = QString::fromStdString; -extern std::atomic user_asked_for_frame_capture; debugger_frame::debugger_frame(std::shared_ptr settings, QWidget *parent) : custom_dock_widget(tr("Debugger"), parent), xgui_settings(settings) @@ -69,7 +68,6 @@ debugger_frame::debugger_frame(std::shared_ptr settings, QWidget * m_go_to_addr = new QPushButton(tr("Go To Address"), this); m_go_to_pc = new QPushButton(tr("Go To PC"), this); - m_btn_capture = new QPushButton(tr("RSX Capture"), this); m_btn_step = new QPushButton(tr("Step"), this); m_btn_step_over = new QPushButton(tr("Step Over"), this); m_btn_run = new QPushButton(RunString, this); @@ -80,7 +78,6 @@ debugger_frame::debugger_frame(std::shared_ptr settings, QWidget * hbox_b_main->addWidget(m_go_to_addr); hbox_b_main->addWidget(m_go_to_pc); - hbox_b_main->addWidget(m_btn_capture); hbox_b_main->addWidget(m_btn_step); hbox_b_main->addWidget(m_btn_step_over); hbox_b_main->addWidget(m_btn_run); @@ -132,11 +129,6 @@ debugger_frame::debugger_frame(std::shared_ptr settings, QWidget * connect(m_go_to_addr, &QAbstractButton::clicked, this, &debugger_frame::ShowGotoAddressDialog); connect(m_go_to_pc, &QAbstractButton::clicked, this, &debugger_frame::ShowPC); - connect(m_btn_capture, &QAbstractButton::clicked, [this]() - { - user_asked_for_frame_capture = true; - }); - connect(m_btn_step, &QAbstractButton::clicked, this, &debugger_frame::DoStep); connect(m_btn_step_over, &QAbstractButton::clicked, [this]() { DoStep(true); }); @@ -301,8 +293,6 @@ void debugger_frame::UpdateUI() { UpdateUnitList(); - m_btn_capture->setEnabled(Emu.IsRunning() || Emu.IsPaused()); - if (m_no_thread_selected) return; const auto cpu = this->cpu.lock(); diff --git a/rpcs3/rpcs3qt/debugger_frame.h b/rpcs3/rpcs3qt/debugger_frame.h index e16908282e..4f05ee6e70 100644 --- a/rpcs3/rpcs3qt/debugger_frame.h +++ b/rpcs3/rpcs3qt/debugger_frame.h @@ -32,7 +32,6 @@ class debugger_frame : public custom_dock_widget QTextEdit* m_regs; QPushButton* m_go_to_addr; QPushButton* m_go_to_pc; - QPushButton* m_btn_capture; QPushButton* m_btn_step; QPushButton* m_btn_step_over; QPushButton* m_btn_run; diff --git a/rpcs3/rpcs3qt/main_window.cpp b/rpcs3/rpcs3qt/main_window.cpp index dd56082c63..f5714d8793 100644 --- a/rpcs3/rpcs3qt/main_window.cpp +++ b/rpcs3/rpcs3qt/main_window.cpp @@ -50,6 +50,8 @@ LOG_CHANNEL(gui_log, "GUI"); +extern std::atomic g_user_asked_for_frame_capture; + inline std::string sstr(const QString& _in) { return _in.toStdString(); } main_window::main_window(std::shared_ptr gui_settings, std::shared_ptr emu_settings, std::shared_ptr persistent_settings, QWidget *parent) @@ -1088,6 +1090,7 @@ void main_window::EnableMenus(bool enabled) ui->toolsmemory_viewerAct->setEnabled(enabled); ui->toolsRsxDebuggerAct->setEnabled(enabled); ui->toolsStringSearchAct->setEnabled(enabled); + ui->actionCreate_RSX_Capture->setEnabled(enabled); } void main_window::BootRecentAction(const QAction* act) @@ -1359,6 +1362,10 @@ void main_window::CreateConnects() connect(ui->bootElfAct, &QAction::triggered, this, &main_window::BootElf); connect(ui->bootGameAct, &QAction::triggered, this, &main_window::BootGame); connect(ui->actionopen_rsx_capture, &QAction::triggered, [this](){ BootRsxCapture(); }); + connect(ui->actionCreate_RSX_Capture, &QAction::triggered, []() + { + g_user_asked_for_frame_capture = true; + }); connect(ui->addGamesAct, &QAction::triggered, [this]() { diff --git a/rpcs3/rpcs3qt/main_window.ui b/rpcs3/rpcs3qt/main_window.ui index 80861d1d83..df308abb9a 100644 --- a/rpcs3/rpcs3qt/main_window.ui +++ b/rpcs3/rpcs3qt/main_window.ui @@ -141,7 +141,7 @@ 0 0 1058 - 26 + 22 @@ -250,7 +250,10 @@ + + + @@ -1057,6 +1060,14 @@ Create Firmware Cache + + + false + + + Create RSX Capture + +