-void BufferCache::BindHostGraphicsUniformBuffer(size_t stage, u32 index, u32 binding_index, bool needs_bind) {
- ++channel_state->uniform_cache_shots[0];
+void BufferCache
::BindHostGraphicsUniformBuffer(size_t stage, u32 index, u32 binding_index,
+ bool needs_bind) {
const Binding& binding = channel_state->uniform_buffers[stage][index];
const DAddr device_addr = binding.device_addr;
const u32 size = (std::min)(binding.size, (*channel_state->uniform_buffer_sizes)[stage][index]);
Buffer& buffer = slot_buffers[binding.buffer_id];
TouchBuffer(buffer, binding.buffer_id);
+ const bool sync_buffer = SynchronizeBuffer(buffer, device_addr, size);
+ if (sync_buffer) {
+ ++channel_state->uniform_cache_hits[0];
+ }
+ ++channel_state->uniform_cache_shots[0];
const bool use_fast_buffer = binding.buffer_id != NULL_BUFFER_ID &&
size <= channel_state->uniform_buffer_skip_cache_size &&
!memory_tracker.IsRegionGpuModified(device_addr, size);
@@ -822,10 +827,7 @@ void BufferCache
::BindHostGraphicsUniformBuffer(size_t stage, u32 index, u32
device_memory.ReadBlockUnsafe(device_addr, span.data(), size);
return;
}
- // Classic cached path
- if (SynchronizeBuffer(buffer, device_addr, size)) {
- ++channel_state->uniform_cache_hits[0];
- }
+
// Skip binding if it's not needed and if the bound buffer is not the fast version
// This exists to avoid instances where the fast buffer is bound and a GPU write happens
needs_bind |= HasFastUniformBufferBound(stage, binding_index);
diff --git a/src/yuzu/Info.plist b/src/yuzu/Info.plist
index 773c4ee302..96096c84d1 100644
--- a/src/yuzu/Info.plist
+++ b/src/yuzu/Info.plist
@@ -45,31 +45,9 @@ SPDX-License-Identifier: GPL-2.0-or-later
NSHumanReadableCopyright
-
- LSApplicationCategoryType
- public.app-category.games
- CFBundleDocumentTypes
-
-
- CFBundleTypeExtensions
-
- nsp
- xci
- nro
-
- CFBundleTypeName
- Switch File
- CFBundleTypeRole
- Viewer
- LSHandlerRank
- Default
-
-
NSPrincipalClass
NSApplication
NSHighResolutionCapable
True
- UIDesignRequiresCompatibility
-
diff --git a/src/yuzu/configuration/configure_audio.cpp b/src/yuzu/configuration/configure_audio.cpp
index af81ef552e..a7ebae91f8 100644
--- a/src/yuzu/configuration/configure_audio.cpp
+++ b/src/yuzu/configuration/configure_audio.cpp
@@ -270,8 +270,10 @@ void ConfigureAudio::UpdateAudioDevices(int sink_index) {
void ConfigureAudio::InitializeAudioSinkComboBox() {
sink_combo_box->clear();
sink_combo_box->addItem(QString::fromUtf8(AudioCore::Sink::auto_device_name));
- for (const auto& id : AudioCore::Sink::GetSinkIDs())
- sink_combo_box->addItem(QString::fromStdString(std::string{Settings::CanonicalizeEnum(id)}));
+
+ for (const auto& id : AudioCore::Sink::GetSinkIDs()) {
+ sink_combo_box->addItem(QString::fromStdString(Settings::CanonicalizeEnum(id)));
+ }
}
void ConfigureAudio::RetranslateUI() {
diff --git a/src/yuzu/configuration/configure_profile_manager.cpp b/src/yuzu/configuration/configure_profile_manager.cpp
index df74738df4..f5de08a676 100644
--- a/src/yuzu/configuration/configure_profile_manager.cpp
+++ b/src/yuzu/configuration/configure_profile_manager.cpp
@@ -373,13 +373,13 @@ bool ConfigureProfileManager::LoadAvatarData() {
const auto romfs = nca->GetRomFS();
if (!romfs) {
QMessageBox::warning(this, tr("Error loading archive"),
- tr("Could not locate RomFS. Your file or decryption keys may be corrupted."));
+ tr("Archive does not contain romfs. It is probably corrupt."));
return false;
}
const auto extracted = FileSys::ExtractRomFS(romfs);
if (!extracted) {
QMessageBox::warning(this, tr("Error extracting archive"),
- tr("Could not extract RomFS. Your file or decryption keys may be corrupted."));
+ tr("Archive could not be extracted. It is probably corrupt."));
return false;
}
const auto chara_dir = extracted->GetSubdirectory("chara");
diff --git a/src/yuzu/configuration/shared_widget.h b/src/yuzu/configuration/shared_widget.h
index dd5d5b7257..9e718098a3 100644
--- a/src/yuzu/configuration/shared_widget.h
+++ b/src/yuzu/configuration/shared_widget.h
@@ -13,7 +13,6 @@
#include
#include
#include
-#include
#include
#include "qt_common/shared_translation.h"
diff --git a/src/yuzu/game_list.h b/src/yuzu/game_list.h
index cd71fb2139..94e7b2dc42 100644
--- a/src/yuzu/game_list.h
+++ b/src/yuzu/game_list.h
@@ -58,11 +58,11 @@ class GameList : public QWidget {
public:
enum {
COLUMN_NAME,
+ COLUMN_COMPATIBILITY,
+ COLUMN_ADD_ONS,
COLUMN_FILE_TYPE,
COLUMN_SIZE,
COLUMN_PLAY_TIME,
- COLUMN_ADD_ONS,
- COLUMN_COMPATIBILITY,
COLUMN_COUNT, // Number of columns
};
diff --git a/src/yuzu/game_list_worker.cpp b/src/yuzu/game_list_worker.cpp
index 2914c275a8..538c7ab822 100644
--- a/src/yuzu/game_list_worker.cpp
+++ b/src/yuzu/game_list_worker.cpp
@@ -204,24 +204,36 @@ QList MakeGameListEntry(const std::string& path,
const PlayTime::PlayTimeManager& play_time_manager,
const FileSys::PatchManager& patch)
{
- auto const it = FindMatchingCompatibilityEntry(compatibility_list, program_id);
- // The game list uses 99 as compatibility number for untested games
- QString compatibility = it != compatibility_list.end() ? it->second.first : QStringLiteral("99");
+ const auto it = FindMatchingCompatibilityEntry(compatibility_list, program_id);
- auto const file_type = loader.GetFileType();
- auto const file_type_string = QString::fromStdString(Loader::GetFileTypeString(file_type));
+ // The game list uses this as compatibility number for untested games
+ QString compatibility{QStringLiteral("99")};
+ if (it != compatibility_list.end()) {
+ compatibility = it->second.first;
+ }
- QString patch_versions = GetGameListCachedObject(fmt::format("{:016X}", patch.GetTitleID()), "pv.txt", [&patch, &loader] {
- return FormatPatchNameVersions(patch, loader, loader.IsRomFSUpdatable());
- });
- return QList{
- new GameListItemPath(FormatGameName(path), icon, QString::fromStdString(name), file_type_string, program_id),
+ const auto file_type = loader.GetFileType();
+ const auto file_type_string = QString::fromStdString(Loader::GetFileTypeString(file_type));
+
+ QList list{
+ new GameListItemPath(FormatGameName(path), icon, QString::fromStdString(name),
+ file_type_string, program_id),
+ new GameListItemCompat(compatibility),
new GameListItem(file_type_string),
new GameListItemSize(size),
new GameListItemPlayTime(play_time_manager.GetPlayTime(program_id)),
- new GameListItem(patch_versions),
- new GameListItemCompat(compatibility),
};
+
+ QString patch_versions;
+
+ patch_versions = GetGameListCachedObject(
+ fmt::format("{:016X}", patch.GetTitleID()), "pv.txt", [&patch, &loader] {
+ return FormatPatchNameVersions(patch, loader, loader.IsRomFSUpdatable());
+ });
+
+ list.insert(2, new GameListItem(patch_versions));
+
+ return list;
}
} // Anonymous namespace