diff options
| author | bunnei <bunneidev@gmail.com> | 2020-01-02 22:03:30 -0500 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-02 22:03:30 -0500 | 
| commit | c332c66eb206ccd68b5826c91e5f5fba1cf442e7 (patch) | |
| tree | 387e5129419845948ddfc3884be8acd69626f324 /src/yuzu | |
| parent | ae0e48167771710980def376bb26ed270a0d7c2d (diff) | |
| parent | 0d6d8129c46f96b2e9f05c592e0d9a6bc3769619 (diff) | |
Merge pull request #3267 from ReinUsesLisp/remove-maxwell-debugger
yuzu: Remove Maxwell debugger
Diffstat (limited to 'src/yuzu')
| -rw-r--r-- | src/yuzu/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | src/yuzu/debugger/graphics/graphics_breakpoint_observer.cpp | 27 | ||||
| -rw-r--r-- | src/yuzu/debugger/graphics/graphics_breakpoint_observer.h | 33 | ||||
| -rw-r--r-- | src/yuzu/debugger/graphics/graphics_breakpoints.cpp | 221 | ||||
| -rw-r--r-- | src/yuzu/debugger/graphics/graphics_breakpoints.h | 45 | ||||
| -rw-r--r-- | src/yuzu/debugger/graphics/graphics_breakpoints_p.h | 37 | ||||
| -rw-r--r-- | src/yuzu/main.cpp | 11 | ||||
| -rw-r--r-- | src/yuzu/main.h | 8 | 
8 files changed, 0 insertions, 387 deletions
| diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index ff1c1d985..11ae1e66e 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt @@ -78,11 +78,6 @@ add_executable(yuzu      configuration/configure_web.cpp      configuration/configure_web.h      configuration/configure_web.ui -    debugger/graphics/graphics_breakpoint_observer.cpp -    debugger/graphics/graphics_breakpoint_observer.h -    debugger/graphics/graphics_breakpoints.cpp -    debugger/graphics/graphics_breakpoints.h -    debugger/graphics/graphics_breakpoints_p.h      debugger/console.cpp      debugger/console.h      debugger/profiler.cpp diff --git a/src/yuzu/debugger/graphics/graphics_breakpoint_observer.cpp b/src/yuzu/debugger/graphics/graphics_breakpoint_observer.cpp deleted file mode 100644 index 5f459ccfb..000000000 --- a/src/yuzu/debugger/graphics/graphics_breakpoint_observer.cpp +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include <QMetaType> -#include "yuzu/debugger/graphics/graphics_breakpoint_observer.h" - -BreakPointObserverDock::BreakPointObserverDock(std::shared_ptr<Tegra::DebugContext> debug_context, -                                               const QString& title, QWidget* parent) -    : QDockWidget(title, parent), BreakPointObserver(debug_context) { -    qRegisterMetaType<Tegra::DebugContext::Event>("Tegra::DebugContext::Event"); - -    connect(this, &BreakPointObserverDock::Resumed, this, &BreakPointObserverDock::OnResumed); - -    // NOTE: This signal is emitted from a non-GUI thread, but connect() takes -    //       care of delaying its handling to the GUI thread. -    connect(this, &BreakPointObserverDock::BreakPointHit, this, -            &BreakPointObserverDock::OnBreakPointHit, Qt::BlockingQueuedConnection); -} - -void BreakPointObserverDock::OnMaxwellBreakPointHit(Tegra::DebugContext::Event event, void* data) { -    emit BreakPointHit(event, data); -} - -void BreakPointObserverDock::OnMaxwellResume() { -    emit Resumed(); -} diff --git a/src/yuzu/debugger/graphics/graphics_breakpoint_observer.h b/src/yuzu/debugger/graphics/graphics_breakpoint_observer.h deleted file mode 100644 index ab32f0115..000000000 --- a/src/yuzu/debugger/graphics/graphics_breakpoint_observer.h +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <QDockWidget> -#include "video_core/debug_utils/debug_utils.h" - -/** - * Utility class which forwards calls to OnMaxwellBreakPointHit and OnMaxwellResume to public slots. - * This is because the Maxwell breakpoint callbacks are called from a non-GUI thread, while - * the widget usually wants to perform reactions in the GUI thread. - */ -class BreakPointObserverDock : public QDockWidget, -                               protected Tegra::DebugContext::BreakPointObserver { -    Q_OBJECT - -public: -    BreakPointObserverDock(std::shared_ptr<Tegra::DebugContext> debug_context, const QString& title, -                           QWidget* parent = nullptr); - -    void OnMaxwellBreakPointHit(Tegra::DebugContext::Event event, void* data) override; -    void OnMaxwellResume() override; - -signals: -    void Resumed(); -    void BreakPointHit(Tegra::DebugContext::Event event, void* data); - -private: -    virtual void OnBreakPointHit(Tegra::DebugContext::Event event, void* data) = 0; -    virtual void OnResumed() = 0; -}; diff --git a/src/yuzu/debugger/graphics/graphics_breakpoints.cpp b/src/yuzu/debugger/graphics/graphics_breakpoints.cpp deleted file mode 100644 index 1c80082a4..000000000 --- a/src/yuzu/debugger/graphics/graphics_breakpoints.cpp +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include <QLabel> -#include <QMetaType> -#include <QPushButton> -#include <QTreeView> -#include <QVBoxLayout> -#include "common/assert.h" -#include "yuzu/debugger/graphics/graphics_breakpoints.h" -#include "yuzu/debugger/graphics/graphics_breakpoints_p.h" - -BreakPointModel::BreakPointModel(std::shared_ptr<Tegra::DebugContext> debug_context, -                                 QObject* parent) -    : QAbstractListModel(parent), context_weak(debug_context), -      at_breakpoint(debug_context->at_breakpoint), -      active_breakpoint(debug_context->active_breakpoint) {} - -int BreakPointModel::columnCount(const QModelIndex& parent) const { -    return 1; -} - -int BreakPointModel::rowCount(const QModelIndex& parent) const { -    return static_cast<int>(Tegra::DebugContext::Event::NumEvents); -} - -QVariant BreakPointModel::data(const QModelIndex& index, int role) const { -    const auto event = static_cast<Tegra::DebugContext::Event>(index.row()); - -    switch (role) { -    case Qt::DisplayRole: { -        if (index.column() == 0) { -            return DebugContextEventToString(event); -        } -        break; -    } - -    case Qt::CheckStateRole: { -        if (index.column() == 0) -            return data(index, Role_IsEnabled).toBool() ? Qt::Checked : Qt::Unchecked; -        break; -    } - -    case Qt::BackgroundRole: { -        if (at_breakpoint && index.row() == static_cast<int>(active_breakpoint)) { -            return QBrush(QColor(0xE0, 0xE0, 0x10)); -        } -        break; -    } - -    case Role_IsEnabled: { -        auto context = context_weak.lock(); -        return context && context->breakpoints[(int)event].enabled; -    } - -    default: -        break; -    } -    return QVariant(); -} - -Qt::ItemFlags BreakPointModel::flags(const QModelIndex& index) const { -    if (!index.isValid()) -        return 0; - -    Qt::ItemFlags flags = Qt::ItemIsEnabled; -    if (index.column() == 0) -        flags |= Qt::ItemIsUserCheckable; -    return flags; -} - -bool BreakPointModel::setData(const QModelIndex& index, const QVariant& value, int role) { -    const auto event = static_cast<Tegra::DebugContext::Event>(index.row()); - -    switch (role) { -    case Qt::CheckStateRole: { -        if (index.column() != 0) -            return false; - -        auto context = context_weak.lock(); -        if (!context) -            return false; - -        context->breakpoints[(int)event].enabled = value == Qt::Checked; -        QModelIndex changed_index = createIndex(index.row(), 0); -        emit dataChanged(changed_index, changed_index); -        return true; -    } -    } - -    return false; -} - -void BreakPointModel::OnBreakPointHit(Tegra::DebugContext::Event event) { -    auto context = context_weak.lock(); -    if (!context) -        return; - -    active_breakpoint = context->active_breakpoint; -    at_breakpoint = context->at_breakpoint; -    emit dataChanged(createIndex(static_cast<int>(event), 0), -                     createIndex(static_cast<int>(event), 0)); -} - -void BreakPointModel::OnResumed() { -    auto context = context_weak.lock(); -    if (!context) -        return; - -    at_breakpoint = context->at_breakpoint; -    emit dataChanged(createIndex(static_cast<int>(active_breakpoint), 0), -                     createIndex(static_cast<int>(active_breakpoint), 0)); -    active_breakpoint = context->active_breakpoint; -} - -QString BreakPointModel::DebugContextEventToString(Tegra::DebugContext::Event event) { -    switch (event) { -    case Tegra::DebugContext::Event::MaxwellCommandLoaded: -        return tr("Maxwell command loaded"); -    case Tegra::DebugContext::Event::MaxwellCommandProcessed: -        return tr("Maxwell command processed"); -    case Tegra::DebugContext::Event::IncomingPrimitiveBatch: -        return tr("Incoming primitive batch"); -    case Tegra::DebugContext::Event::FinishedPrimitiveBatch: -        return tr("Finished primitive batch"); -    case Tegra::DebugContext::Event::NumEvents: -        break; -    } - -    return tr("Unknown debug context event"); -} - -GraphicsBreakPointsWidget::GraphicsBreakPointsWidget( -    std::shared_ptr<Tegra::DebugContext> debug_context, QWidget* parent) -    : QDockWidget(tr("Maxwell Breakpoints"), parent), Tegra::DebugContext::BreakPointObserver( -                                                          debug_context) { -    setObjectName(QStringLiteral("TegraBreakPointsWidget")); - -    status_text = new QLabel(tr("Emulation running")); -    resume_button = new QPushButton(tr("Resume")); -    resume_button->setEnabled(false); - -    breakpoint_model = new BreakPointModel(debug_context, this); -    breakpoint_list = new QTreeView; -    breakpoint_list->setRootIsDecorated(false); -    breakpoint_list->setHeaderHidden(true); -    breakpoint_list->setModel(breakpoint_model); - -    qRegisterMetaType<Tegra::DebugContext::Event>("Tegra::DebugContext::Event"); - -    connect(breakpoint_list, &QTreeView::doubleClicked, this, -            &GraphicsBreakPointsWidget::OnItemDoubleClicked); - -    connect(resume_button, &QPushButton::clicked, this, -            &GraphicsBreakPointsWidget::OnResumeRequested); - -    connect(this, &GraphicsBreakPointsWidget::BreakPointHit, this, -            &GraphicsBreakPointsWidget::OnBreakPointHit, Qt::BlockingQueuedConnection); -    connect(this, &GraphicsBreakPointsWidget::Resumed, this, &GraphicsBreakPointsWidget::OnResumed); - -    connect(this, &GraphicsBreakPointsWidget::BreakPointHit, breakpoint_model, -            &BreakPointModel::OnBreakPointHit, Qt::BlockingQueuedConnection); -    connect(this, &GraphicsBreakPointsWidget::Resumed, breakpoint_model, -            &BreakPointModel::OnResumed); - -    connect(this, &GraphicsBreakPointsWidget::BreakPointsChanged, -            [this](const QModelIndex& top_left, const QModelIndex& bottom_right) { -                breakpoint_model->dataChanged(top_left, bottom_right); -            }); - -    QWidget* main_widget = new QWidget; -    auto main_layout = new QVBoxLayout; -    { -        auto sub_layout = new QHBoxLayout; -        sub_layout->addWidget(status_text); -        sub_layout->addWidget(resume_button); -        main_layout->addLayout(sub_layout); -    } -    main_layout->addWidget(breakpoint_list); -    main_widget->setLayout(main_layout); - -    setWidget(main_widget); -} - -void GraphicsBreakPointsWidget::OnMaxwellBreakPointHit(Event event, void* data) { -    // Process in GUI thread -    emit BreakPointHit(event, data); -} - -void GraphicsBreakPointsWidget::OnBreakPointHit(Tegra::DebugContext::Event event, void* data) { -    status_text->setText(tr("Emulation halted at breakpoint")); -    resume_button->setEnabled(true); -} - -void GraphicsBreakPointsWidget::OnMaxwellResume() { -    // Process in GUI thread -    emit Resumed(); -} - -void GraphicsBreakPointsWidget::OnResumed() { -    status_text->setText(tr("Emulation running")); -    resume_button->setEnabled(false); -} - -void GraphicsBreakPointsWidget::OnResumeRequested() { -    if (auto context = context_weak.lock()) -        context->Resume(); -} - -void GraphicsBreakPointsWidget::OnItemDoubleClicked(const QModelIndex& index) { -    if (!index.isValid()) -        return; - -    QModelIndex check_index = breakpoint_list->model()->index(index.row(), 0); -    QVariant enabled = breakpoint_list->model()->data(check_index, Qt::CheckStateRole); -    QVariant new_state = Qt::Unchecked; -    if (enabled == Qt::Unchecked) -        new_state = Qt::Checked; -    breakpoint_list->model()->setData(check_index, new_state, Qt::CheckStateRole); -} diff --git a/src/yuzu/debugger/graphics/graphics_breakpoints.h b/src/yuzu/debugger/graphics/graphics_breakpoints.h deleted file mode 100644 index a920a2ae5..000000000 --- a/src/yuzu/debugger/graphics/graphics_breakpoints.h +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <memory> -#include <QDockWidget> -#include "video_core/debug_utils/debug_utils.h" - -class QLabel; -class QPushButton; -class QTreeView; - -class BreakPointModel; - -class GraphicsBreakPointsWidget : public QDockWidget, Tegra::DebugContext::BreakPointObserver { -    Q_OBJECT - -    using Event = Tegra::DebugContext::Event; - -public: -    explicit GraphicsBreakPointsWidget(std::shared_ptr<Tegra::DebugContext> debug_context, -                                       QWidget* parent = nullptr); - -    void OnMaxwellBreakPointHit(Tegra::DebugContext::Event event, void* data) override; -    void OnMaxwellResume() override; - -signals: -    void Resumed(); -    void BreakPointHit(Tegra::DebugContext::Event event, void* data); -    void BreakPointsChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight); - -private: -    void OnBreakPointHit(Tegra::DebugContext::Event event, void* data); -    void OnItemDoubleClicked(const QModelIndex&); -    void OnResumeRequested(); -    void OnResumed(); - -    QLabel* status_text; -    QPushButton* resume_button; - -    BreakPointModel* breakpoint_model; -    QTreeView* breakpoint_list; -}; diff --git a/src/yuzu/debugger/graphics/graphics_breakpoints_p.h b/src/yuzu/debugger/graphics/graphics_breakpoints_p.h deleted file mode 100644 index fb488e38f..000000000 --- a/src/yuzu/debugger/graphics/graphics_breakpoints_p.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <memory> -#include <QAbstractListModel> -#include "video_core/debug_utils/debug_utils.h" - -class BreakPointModel : public QAbstractListModel { -    Q_OBJECT - -public: -    enum { -        Role_IsEnabled = Qt::UserRole, -    }; - -    BreakPointModel(std::shared_ptr<Tegra::DebugContext> context, QObject* parent); - -    int columnCount(const QModelIndex& parent = QModelIndex()) const override; -    int rowCount(const QModelIndex& parent = QModelIndex()) const override; -    QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; -    Qt::ItemFlags flags(const QModelIndex& index) const override; - -    bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override; - -    void OnBreakPointHit(Tegra::DebugContext::Event event); -    void OnResumed(); - -private: -    static QString DebugContextEventToString(Tegra::DebugContext::Event event); - -    std::weak_ptr<Tegra::DebugContext> context_weak; -    bool at_breakpoint; -    Tegra::DebugContext::Event active_breakpoint; -}; diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 867f8e913..b21fbf826 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -93,7 +93,6 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual  #include "core/perf_stats.h"  #include "core/settings.h"  #include "core/telemetry_session.h" -#include "video_core/debug_utils/debug_utils.h"  #include "yuzu/about_dialog.h"  #include "yuzu/bootmanager.h"  #include "yuzu/compatdb.h" @@ -101,7 +100,6 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual  #include "yuzu/configuration/config.h"  #include "yuzu/configuration/configure_dialog.h"  #include "yuzu/debugger/console.h" -#include "yuzu/debugger/graphics/graphics_breakpoints.h"  #include "yuzu/debugger/profiler.h"  #include "yuzu/debugger/wait_tree.h"  #include "yuzu/discord.h" @@ -187,8 +185,6 @@ GMainWindow::GMainWindow()        provider(std::make_unique<FileSys::ManualContentProvider>()) {      InitializeLogging(); -    debug_context = Tegra::DebugContext::Construct(); -      setAcceptDrops(true);      ui.setupUi(this);      statusBar()->hide(); @@ -495,11 +491,6 @@ void GMainWindow::InitializeDebugWidgets() {      debug_menu->addAction(microProfileDialog->toggleViewAction());  #endif -    graphicsBreakpointsWidget = new GraphicsBreakPointsWidget(debug_context, this); -    addDockWidget(Qt::RightDockWidgetArea, graphicsBreakpointsWidget); -    graphicsBreakpointsWidget->hide(); -    debug_menu->addAction(graphicsBreakpointsWidget->toggleViewAction()); -      waitTreeWidget = new WaitTreeWidget(this);      addDockWidget(Qt::LeftDockWidgetArea, waitTreeWidget);      waitTreeWidget->hide(); @@ -869,8 +860,6 @@ bool GMainWindow::LoadROM(const QString& filename) {      Core::System& system{Core::System::GetInstance()};      system.SetFilesystem(vfs); -    system.SetGPUDebugContext(debug_context); -      system.SetAppletFrontendSet({          nullptr,                                     // Parental Controls          std::make_unique<QtErrorDisplay>(*this),     // diff --git a/src/yuzu/main.h b/src/yuzu/main.h index 7f46bea2b..a56f9a981 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h @@ -22,7 +22,6 @@ class Config;  class EmuThread;  class GameList;  class GImageInfo; -class GraphicsBreakPointsWidget;  class GRenderWindow;  class LoadingScreen;  class MicroProfileDialog; @@ -42,10 +41,6 @@ class ManualContentProvider;  class VfsFilesystem;  } // namespace FileSys -namespace Tegra { -class DebugContext; -} -  enum class EmulatedDirectoryTarget {      NAND,      SDMC, @@ -223,8 +218,6 @@ private:      Ui::MainWindow ui; -    std::shared_ptr<Tegra::DebugContext> debug_context; -      GRenderWindow* render_window;      GameList* game_list;      LoadingScreen* loading_screen; @@ -255,7 +248,6 @@ private:      // Debugger panes      ProfilerWidget* profilerWidget;      MicroProfileDialog* microProfileDialog; -    GraphicsBreakPointsWidget* graphicsBreakpointsWidget;      WaitTreeWidget* waitTreeWidget;      QAction* actions_recent_files[max_recent_files_item]; | 
