diff options
| -rw-r--r-- | src/core/file_sys/patch_manager.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/service/friend/friend.cpp | 11 | ||||
| -rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 4 |
3 files changed, 19 insertions, 2 deletions
diff --git a/src/core/file_sys/patch_manager.cpp b/src/core/file_sys/patch_manager.cpp index e226e9711..e77e82b8d 100644 --- a/src/core/file_sys/patch_manager.cpp +++ b/src/core/file_sys/patch_manager.cpp | |||
| @@ -348,6 +348,12 @@ static void ApplyLayeredFS(VirtualFile& romfs, u64 title_id, ContentRecordType t | |||
| 348 | if (ext_dir != nullptr) | 348 | if (ext_dir != nullptr) |
| 349 | layers_ext.push_back(std::move(ext_dir)); | 349 | layers_ext.push_back(std::move(ext_dir)); |
| 350 | } | 350 | } |
| 351 | |||
| 352 | // When there are no layers to apply, return early as there is no need to rebuild the RomFS | ||
| 353 | if (layers.empty() && layers_ext.empty()) { | ||
| 354 | return; | ||
| 355 | } | ||
| 356 | |||
| 351 | layers.push_back(std::move(extracted)); | 357 | layers.push_back(std::move(extracted)); |
| 352 | 358 | ||
| 353 | auto layered = LayeredVfsDirectory::MakeLayeredDirectory(std::move(layers)); | 359 | auto layered = LayeredVfsDirectory::MakeLayeredDirectory(std::move(layers)); |
diff --git a/src/core/hle/service/friend/friend.cpp b/src/core/hle/service/friend/friend.cpp index 6aadb3ea8..7938b4b80 100644 --- a/src/core/hle/service/friend/friend.cpp +++ b/src/core/hle/service/friend/friend.cpp | |||
| @@ -27,7 +27,7 @@ public: | |||
| 27 | {10110, nullptr, "GetFriendProfileImage"}, | 27 | {10110, nullptr, "GetFriendProfileImage"}, |
| 28 | {10200, nullptr, "SendFriendRequestForApplication"}, | 28 | {10200, nullptr, "SendFriendRequestForApplication"}, |
| 29 | {10211, nullptr, "AddFacedFriendRequestForApplication"}, | 29 | {10211, nullptr, "AddFacedFriendRequestForApplication"}, |
| 30 | {10400, nullptr, "GetBlockedUserListIds"}, | 30 | {10400, &IFriendService::GetBlockedUserListIds, "GetBlockedUserListIds"}, |
| 31 | {10500, nullptr, "GetProfileList"}, | 31 | {10500, nullptr, "GetProfileList"}, |
| 32 | {10600, nullptr, "DeclareOpenOnlinePlaySession"}, | 32 | {10600, nullptr, "DeclareOpenOnlinePlaySession"}, |
| 33 | {10601, &IFriendService::DeclareCloseOnlinePlaySession, "DeclareCloseOnlinePlaySession"}, | 33 | {10601, &IFriendService::DeclareCloseOnlinePlaySession, "DeclareCloseOnlinePlaySession"}, |
| @@ -121,6 +121,15 @@ private: | |||
| 121 | }; | 121 | }; |
| 122 | static_assert(sizeof(SizedFriendFilter) == 0x10, "SizedFriendFilter is an invalid size"); | 122 | static_assert(sizeof(SizedFriendFilter) == 0x10, "SizedFriendFilter is an invalid size"); |
| 123 | 123 | ||
| 124 | void GetBlockedUserListIds(Kernel::HLERequestContext& ctx) { | ||
| 125 | // This is safe to stub, as there should be no adverse consequences from reporting no | ||
| 126 | // blocked users. | ||
| 127 | LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||
| 128 | IPC::ResponseBuilder rb{ctx, 3}; | ||
| 129 | rb.Push(RESULT_SUCCESS); | ||
| 130 | rb.Push<u32>(0); // Indicates there are no blocked users | ||
| 131 | } | ||
| 132 | |||
| 124 | void DeclareCloseOnlinePlaySession(Kernel::HLERequestContext& ctx) { | 133 | void DeclareCloseOnlinePlaySession(Kernel::HLERequestContext& ctx) { |
| 125 | // Stub used by Splatoon 2 | 134 | // Stub used by Splatoon 2 |
| 126 | LOG_WARNING(Service_ACC, "(STUBBED) called"); | 135 | LOG_WARNING(Service_ACC, "(STUBBED) called"); |
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index cfc7fe6e9..4edd4313b 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h | |||
| @@ -509,7 +509,9 @@ private: | |||
| 509 | } | 509 | } |
| 510 | const auto& final_params = new_surface->GetSurfaceParams(); | 510 | const auto& final_params = new_surface->GetSurfaceParams(); |
| 511 | if (cr_params.type != final_params.type) { | 511 | if (cr_params.type != final_params.type) { |
| 512 | BufferCopy(current_surface, new_surface); | 512 | if (Settings::values.use_accurate_gpu_emulation) { |
| 513 | BufferCopy(current_surface, new_surface); | ||
| 514 | } | ||
| 513 | } else { | 515 | } else { |
| 514 | std::vector<CopyParams> bricks = current_surface->BreakDown(final_params); | 516 | std::vector<CopyParams> bricks = current_surface->BreakDown(final_params); |
| 515 | for (auto& brick : bricks) { | 517 | for (auto& brick : bricks) { |