1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-01 21:54:55 -04:00

Add VkFFT support and profiler

This commit is contained in:
Jon Beniston
2023-08-13 23:52:57 +01:00
parent b7de8b8255
commit 5e71da4530
37 changed files with 2418 additions and 36 deletions
+41 -7
View File
@@ -65,6 +65,7 @@
#include "gui/deviceuserargsdialog.h"
#include "gui/sdrangelsplash.h"
#include "gui/mypositiondialog.h"
#include "gui/fftdialog.h"
#include "gui/fftwisdomdialog.h"
#include "gui/workspace.h"
#include "gui/featurepresetsdialog.h"
@@ -73,6 +74,7 @@
#include "gui/configurationsdialog.h"
#include "gui/dialogpositioner.h"
#include "gui/welcomedialog.h"
#include "gui/profiledialog.h"
#include "dsp/dspengine.h"
#include "dsp/spectrumvis.h"
#include "dsp/dspcommands.h"
@@ -121,6 +123,7 @@ MainWindow::MainWindow(qtwebapp::LoggerWithFile *logger, const MainParser& parse
m_dateTimeWidget(nullptr),
m_showSystemWidget(nullptr),
m_commandKeyReceiver(nullptr),
m_profileDialog(nullptr),
m_fftWisdomProcess(nullptr)
{
#ifdef ANDROID
@@ -190,7 +193,11 @@ MainWindow::MainWindow(qtwebapp::LoggerWithFile *logger, const MainParser& parse
connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus()));
m_statusTimer.start(1000);
splash->showStatusMessage("allocate FFTs...", Qt::white);
splash->showStatusMessage("load settings...", Qt::white);
qDebug() << "MainWindow::MainWindow: load settings...";
loadSettings();
splash->showStatusMessage("allocate FFTs...", Qt::white);
if (parser.getFFTWFWisdomFileName().length() != 0)
@@ -213,11 +220,6 @@ MainWindow::MainWindow(qtwebapp::LoggerWithFile *logger, const MainParser& parse
m_dspEngine->preAllocateFFTs();
splash->showStatusMessage("load settings...", Qt::white);
qDebug() << "MainWindow::MainWindow: load settings...";
loadSettings();
splash->showStatusMessage("load plugins...", Qt::white);
qDebug() << "MainWindow::MainWindow: load plugins...";
@@ -322,6 +324,7 @@ MainWindow::~MainWindow()
removeAllFeatureSets();
delete m_commandKeyReceiver;
delete m_profileDialog;
for (const auto& workspace : m_workspaces) {
delete workspace;
@@ -1657,6 +1660,11 @@ void MainWindow::createMenuBar(QToolButton *button)
keepscreenonAction->setCheckable(true);
QObject::connect(keepscreenonAction, &QAction::triggered, this, &MainWindow::on_action_View_KeepScreenOn_toggled);
#endif
#ifdef ENABLE_PROFILER
QAction *profileAction = viewMenu->addAction("&Profile data...");
profileAction->setToolTip("View profile data");
QObject::connect(profileAction, &QAction::triggered, this, &MainWindow::on_action_Profile_triggered);
#endif
QAction *newWorkspaceAction = workspacesMenu->addAction("&New");
newWorkspaceAction->setToolTip("Add a new workspace");
@@ -1684,8 +1692,11 @@ void MainWindow::createMenuBar(QToolButton *button)
myPositionAction->setToolTip("Set station position");
QObject::connect(myPositionAction, &QAction::triggered, this, &MainWindow::on_action_My_Position_triggered);
QAction *fftAction = preferencesMenu->addAction("&FFT...");
fftAction->setToolTip("Set FFT cache");
fftAction->setToolTip("Set FFT preferences");
QObject::connect(fftAction, &QAction::triggered, this, &MainWindow::on_action_FFT_triggered);
QAction *fftWisdomAction = preferencesMenu->addAction("&FFTW Wisdom...");
fftWisdomAction->setToolTip("Set FFTW cache");
QObject::connect(fftWisdomAction, &QAction::triggered, this, &MainWindow::on_action_FFTWisdom_triggered);
QMenu *devicesMenu = preferencesMenu->addMenu("&Devices");
QAction *userArgumentsAction = devicesMenu->addAction("&User arguments...");
userArgumentsAction->setToolTip("Device custom user arguments");
@@ -1744,6 +1755,10 @@ void MainWindow::closeEvent(QCloseEvent *closeEvent)
removeLastDeviceSet();
}
if (m_profileDialog) {
m_profileDialog->close();
}
closeEvent->accept();
}
@@ -2223,6 +2238,17 @@ void MainWindow::on_action_View_Fullscreen_toggled(bool checked)
}
}
void MainWindow::on_action_Profile_triggered()
{
if (m_profileDialog == nullptr)
{
m_profileDialog = new ProfileDialog();
new DialogPositioner(m_profileDialog, true);
}
m_profileDialog->show();
m_profileDialog->raise();
}
void MainWindow::commandKeysConnect(QObject *object, const char *slot)
{
setFocus();
@@ -2345,6 +2371,14 @@ void MainWindow::on_action_commands_triggered()
void MainWindow::on_action_FFT_triggered()
{
qDebug("MainWindow::on_action_FFT_triggered");
FFTDialog fftDialog(m_mainCore->m_settings, this);
new DialogPositioner(&fftDialog, true);
fftDialog.exec();
}
void MainWindow::on_action_FFTWisdom_triggered()
{
qDebug("MainWindow::on_action_FFTWisdom_triggered");
if (m_fftWisdomProcess)
{