diff options
author | jbeich <jbeich@FreeBSD.org> | 2017-11-06 08:44:04 +0800 |
---|---|---|
committer | jbeich <jbeich@FreeBSD.org> | 2017-11-06 08:44:04 +0800 |
commit | 8ae7087b44d76d43fde034c513f774b77ad257cf (patch) | |
tree | f22b4ab6639739820802dad3710d62e6aa952359 | |
parent | 8eb7b9353be7a25941951f780ff05f9fc117e077 (diff) | |
download | freebsd-ports-gnome-8ae7087b44d76d43fde034c513f774b77ad257cf.tar.gz freebsd-ports-gnome-8ae7087b44d76d43fde034c513f774b77ad257cf.tar.zst freebsd-ports-gnome-8ae7087b44d76d43fde034c513f774b77ad257cf.zip |
emulators/citra: update to s20171105
Changes: https://github.com/citra-emu/citra/compare/1f6da9fb...4fc04480
-rw-r--r-- | emulators/citra/Makefile | 10 | ||||
-rw-r--r-- | emulators/citra/distinfo | 18 | ||||
-rw-r--r-- | emulators/citra/files/patch-revert-pr3042 | 119 |
3 files changed, 133 insertions, 14 deletions
diff --git a/emulators/citra/Makefile b/emulators/citra/Makefile index ab1cbb38c215..9a5b31a6a953 100644 --- a/emulators/citra/Makefile +++ b/emulators/citra/Makefile @@ -1,7 +1,7 @@ # $FreeBSD$ PORTNAME= citra -PORTVERSION= s20171028 +PORTVERSION= s20171105 PORTREVISION?= 0 CATEGORIES= emulators @@ -26,11 +26,11 @@ ONLY_FOR_ARCHS_REASON= https://github.com/MerryMage/dynarmic/issues/35 USE_GITHUB= yes GH_ACCOUNT= citra-emu -GH_TAGNAME= 1f6da9fb +GH_TAGNAME= 4fc04480 GH_TUPLE= citra-emu:ext-soundtouch:019d208:soundtouch/externals/soundtouch \ - MerryMage:dynarmic:8f15e3f:dynarmic/externals/dynarmic \ - fmtlib:fmt:3.0.0-187-gac5484c:fmt/externals/fmt \ - herumi:xbyak:v5.40:xbyak/externals/xbyak \ + MerryMage:dynarmic:d3fb603:dynarmic/externals/dynarmic \ + fmtlib:fmt:4.0.0:fmt/externals/fmt \ + herumi:xbyak:v5.53-1-gc5da377:xbyak/externals/xbyak \ lsalzman:enet:a84c120:enet/externals/enet \ neobrain:nihstro:7e24743:nihstro/externals/nihstro \ philsquared:Catch:v1.9.4:catch/externals/catch \ diff --git a/emulators/citra/distinfo b/emulators/citra/distinfo index 291651774534..e1f7d0302f84 100644 --- a/emulators/citra/distinfo +++ b/emulators/citra/distinfo @@ -1,14 +1,14 @@ -TIMESTAMP = 1509212336 -SHA256 (citra-emu-citra-s20171028-1f6da9fb_GH0.tar.gz) = 816e73d9e5ccef3927a0924515f3b66469d8ef8acdb9ff3367ea5b5603224e24 -SIZE (citra-emu-citra-s20171028-1f6da9fb_GH0.tar.gz) = 1588279 +TIMESTAMP = 1509870766 +SHA256 (citra-emu-citra-s20171105-4fc04480_GH0.tar.gz) = 05301e6316b858c94d068d936e086c20faa8c86c32aaab0bd3645f3acc953b89 +SIZE (citra-emu-citra-s20171105-4fc04480_GH0.tar.gz) = 1619629 SHA256 (citra-emu-ext-soundtouch-019d208_GH0.tar.gz) = f48c211bbabe7ad79e1c504af1082756c74241be6bab4aca13140803f4b694e7 SIZE (citra-emu-ext-soundtouch-019d208_GH0.tar.gz) = 59366 -SHA256 (MerryMage-dynarmic-8f15e3f_GH0.tar.gz) = 3e5b184c8d190849374fa426ee6a511f3375682232b46aaa8e060632eaa4cadb -SIZE (MerryMage-dynarmic-8f15e3f_GH0.tar.gz) = 420423 -SHA256 (fmtlib-fmt-3.0.0-187-gac5484c_GH0.tar.gz) = 1400d4e807c5bb0329e44784210bbabddd4f42103f3d9d86c8d3d97188bc9975 -SIZE (fmtlib-fmt-3.0.0-187-gac5484c_GH0.tar.gz) = 615682 -SHA256 (herumi-xbyak-v5.40_GH0.tar.gz) = 106bbe15dc7e5d025ff98d1b5dd62a3f0a26d2569debe77fcde14852d50a66e1 -SIZE (herumi-xbyak-v5.40_GH0.tar.gz) = 203521 +SHA256 (MerryMage-dynarmic-d3fb603_GH0.tar.gz) = a6e159eab0d40a39e868dbab7d250af5076fb3cef5a4030dcaa0eaa8ead71f66 +SIZE (MerryMage-dynarmic-d3fb603_GH0.tar.gz) = 421395 +SHA256 (fmtlib-fmt-4.0.0_GH0.tar.gz) = 35300a0d356529447a79ed5ccf419239d8b34f916e5d4625f046fd37afa3650a +SIZE (fmtlib-fmt-4.0.0_GH0.tar.gz) = 617818 +SHA256 (herumi-xbyak-v5.53-1-gc5da377_GH0.tar.gz) = 51129bc945fe2650f5fcd41f3b0166555b17589f03bda5d2216927234ef6446a +SIZE (herumi-xbyak-v5.53-1-gc5da377_GH0.tar.gz) = 206888 SHA256 (lsalzman-enet-a84c120_GH0.tar.gz) = 409d458f2da9d8bba49191ab6abaeb6bcf89193cd5eff07382c1d7b5f3fb06f0 SIZE (lsalzman-enet-a84c120_GH0.tar.gz) = 79369 SHA256 (neobrain-nihstro-7e24743_GH0.tar.gz) = 063728b01f7de99ca91693c46bd5c5a0fb03c0058baf4452d539f630b10f3650 diff --git a/emulators/citra/files/patch-revert-pr3042 b/emulators/citra/files/patch-revert-pr3042 new file mode 100644 index 000000000000..e24c68f2f655 --- /dev/null +++ b/emulators/citra/files/patch-revert-pr3042 @@ -0,0 +1,119 @@ +https://github.com/citra-emu/citra/issues/3079 + +--- src/core/hle/kernel/errors.h.orig 2017-11-05 08:32:46 UTC ++++ src/core/hle/kernel/errors.h +@@ -13,7 +13,6 @@ enum { + OutOfHandles = 19, + SessionClosedByRemote = 26, + PortNameTooLong = 30, +- WrongLockingThread = 31, + NoPendingSessions = 35, + WrongPermission = 46, + InvalidBufferDescriptor = 48, +--- src/core/hle/kernel/mutex.cpp.orig 2017-11-05 08:32:46 UTC ++++ src/core/hle/kernel/mutex.cpp +@@ -7,7 +7,6 @@ + #include <boost/range/algorithm_ext/erase.hpp> + #include "common/assert.h" + #include "core/core.h" +-#include "core/hle/kernel/errors.h" + #include "core/hle/kernel/kernel.h" + #include "core/hle/kernel/mutex.h" + #include "core/hle/kernel/thread.h" +@@ -59,35 +58,20 @@ void Mutex::Acquire(Thread* thread) { + lock_count++; + } + +-ResultCode Mutex::Release(Thread* thread) { +- // We can only release the mutex if it's held by the calling thread. +- if (thread != holding_thread) { +- if (holding_thread) { +- LOG_ERROR( +- Kernel, +- "Tried to release a mutex (owned by thread id %u) from a different thread id %u", +- holding_thread->thread_id, thread->thread_id); ++void Mutex::Release() { ++ // Only release if the mutex is held ++ if (lock_count > 0) { ++ lock_count--; ++ ++ // Yield to the next thread only if we've fully released the mutex ++ if (lock_count == 0) { ++ holding_thread->held_mutexes.erase(this); ++ holding_thread->UpdatePriority(); ++ holding_thread = nullptr; ++ WakeupAllWaitingThreads(); ++ Core::System::GetInstance().PrepareReschedule(); + } +- return ResultCode(ErrCodes::WrongLockingThread, ErrorModule::Kernel, +- ErrorSummary::InvalidArgument, ErrorLevel::Permanent); + } +- +- // Note: It should not be possible for the situation where the mutex has a holding thread with a +- // zero lock count to occur. The real kernel still checks for this, so we do too. +- if (lock_count <= 0) +- return ResultCode(ErrorDescription::InvalidResultValue, ErrorModule::Kernel, +- ErrorSummary::InvalidState, ErrorLevel::Permanent); +- +- lock_count--; +- +- // Yield to the next thread only if we've fully released the mutex +- if (lock_count == 0) { +- holding_thread->held_mutexes.erase(this); +- holding_thread->UpdatePriority(); +- holding_thread = nullptr; +- WakeupAllWaitingThreads(); +- Core::System::GetInstance().PrepareReschedule(); +- } + } + + void Mutex::AddWaitingThread(SharedPtr<Thread> thread) { +@@ -118,4 +102,4 @@ void Mutex::UpdatePriority() { + } + } + +-} // namespace Kernel ++} // namespace +--- src/core/hle/kernel/mutex.h.orig 2017-11-05 08:32:46 UTC ++++ src/core/hle/kernel/mutex.h +@@ -8,7 +8,6 @@ + #include "common/common_types.h" + #include "core/hle/kernel/kernel.h" + #include "core/hle/kernel/wait_object.h" +-#include "core/hle/result.h" + + namespace Kernel { + +@@ -53,12 +52,7 @@ class Mutex final : public WaitObject { (public) + void AddWaitingThread(SharedPtr<Thread> thread) override; + void RemoveWaitingThread(Thread* thread) override; + +- /** +- * Attempts to release the mutex from the specified thread. +- * @param thread Thread that wants to release the mutex. +- * @returns The result code of the operation. +- */ +- ResultCode Release(Thread* thread); ++ void Release(); + + private: + Mutex(); +@@ -71,4 +65,4 @@ class Mutex final : public WaitObject { (public) + */ + void ReleaseThreadMutexes(Thread* thread); + +-} // namespace Kernel ++} // namespace +--- src/core/hle/svc.cpp.orig 2017-11-05 08:32:46 UTC ++++ src/core/hle/svc.cpp +@@ -818,7 +818,9 @@ static ResultCode ReleaseMutex(Kernel::Handle handle) + if (mutex == nullptr) + return ERR_INVALID_HANDLE; + +- return mutex->Release(Kernel::GetCurrentThread()); ++ mutex->Release(); ++ ++ return RESULT_SUCCESS; + } + + /// Get the ID of the specified process |