mirror of
https://github.com/yuzu-emu/yuzu-android.git
synced 2025-06-10 14:48:17 -05:00
async shaders
This commit is contained in:
@ -94,6 +94,8 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual
|
||||
#include "core/perf_stats.h"
|
||||
#include "core/settings.h"
|
||||
#include "core/telemetry_session.h"
|
||||
#include "video_core/gpu.h"
|
||||
#include "video_core/shader_notify.h"
|
||||
#include "yuzu/about_dialog.h"
|
||||
#include "yuzu/bootmanager.h"
|
||||
#include "yuzu/compatdb.h"
|
||||
@ -498,6 +500,8 @@ void GMainWindow::InitializeWidgets() {
|
||||
message_label->setAlignment(Qt::AlignLeft);
|
||||
statusBar()->addPermanentWidget(message_label, 1);
|
||||
|
||||
shader_building_label = new QLabel();
|
||||
shader_building_label->setToolTip(tr("The amount of shaders currently being built"));
|
||||
emu_speed_label = new QLabel();
|
||||
emu_speed_label->setToolTip(
|
||||
tr("Current emulation speed. Values higher or lower than 100% "
|
||||
@ -510,7 +514,8 @@ void GMainWindow::InitializeWidgets() {
|
||||
tr("Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For "
|
||||
"full-speed emulation this should be at most 16.67 ms."));
|
||||
|
||||
for (auto& label : {emu_speed_label, game_fps_label, emu_frametime_label}) {
|
||||
for (auto& label :
|
||||
{shader_building_label, emu_speed_label, game_fps_label, emu_frametime_label}) {
|
||||
label->setVisible(false);
|
||||
label->setFrameStyle(QFrame::NoFrame);
|
||||
label->setContentsMargins(4, 0, 4, 0);
|
||||
@ -1176,6 +1181,7 @@ void GMainWindow::ShutdownGame() {
|
||||
|
||||
// Disable status bar updates
|
||||
status_bar_update_timer.stop();
|
||||
shader_building_label->setVisible(false);
|
||||
emu_speed_label->setVisible(false);
|
||||
game_fps_label->setVisible(false);
|
||||
emu_frametime_label->setVisible(false);
|
||||
@ -2186,6 +2192,17 @@ void GMainWindow::UpdateStatusBar() {
|
||||
}
|
||||
|
||||
auto results = Core::System::GetInstance().GetAndResetPerfStats();
|
||||
auto& shader_notify = Core::System::GetInstance().GPU().ShaderNotify();
|
||||
const auto shaders_building = shader_notify.GetShadersBuilding();
|
||||
|
||||
if (shaders_building != 0) {
|
||||
shader_building_label->setText(
|
||||
tr("Building: %1 shader").arg(shaders_building) +
|
||||
(shaders_building != 1 ? QString::fromStdString("s") : QString::fromStdString("")));
|
||||
shader_building_label->setVisible(true);
|
||||
} else {
|
||||
shader_building_label->setVisible(false);
|
||||
}
|
||||
|
||||
if (Settings::values.use_frame_limit.GetValue()) {
|
||||
emu_speed_label->setText(tr("Speed: %1% / %2%")
|
||||
@ -2315,9 +2332,12 @@ void GMainWindow::OnReinitializeKeys(ReinitializeKeyBehavior behavior) {
|
||||
if (behavior == ReinitializeKeyBehavior::Warning) {
|
||||
const auto res = QMessageBox::information(
|
||||
this, tr("Confirm Key Rederivation"),
|
||||
tr("You are about to force rederive all of your keys. \nIf you do not know what this "
|
||||
"means or what you are doing, \nthis is a potentially destructive action. \nPlease "
|
||||
"make sure this is what you want \nand optionally make backups.\n\nThis will delete "
|
||||
tr("You are about to force rederive all of your keys. \nIf you do not know what "
|
||||
"this "
|
||||
"means or what you are doing, \nthis is a potentially destructive action. "
|
||||
"\nPlease "
|
||||
"make sure this is what you want \nand optionally make backups.\n\nThis will "
|
||||
"delete "
|
||||
"your autogenerated key files and re-run the key derivation module."),
|
||||
QMessageBox::StandardButtons{QMessageBox::Ok, QMessageBox::Cancel});
|
||||
|
||||
@ -2628,8 +2648,8 @@ int main(int argc, char* argv[]) {
|
||||
|
||||
#ifdef __APPLE__
|
||||
// If you start a bundle (binary) on OSX without the Terminal, the working directory is "/".
|
||||
// But since we require the working directory to be the executable path for the location of the
|
||||
// user folder in the Qt Frontend, we need to cd into that working directory
|
||||
// But since we require the working directory to be the executable path for the location of
|
||||
// the user folder in the Qt Frontend, we need to cd into that working directory
|
||||
const std::string bin_path = FileUtil::GetBundleDirectory() + DIR_SEP + "..";
|
||||
chdir(bin_path.c_str());
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user