Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Nov 2017 00:44:05 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r453584 - in head/emulators/citra: . files
Message-ID:  <201711060044.vA60i5Yj066364@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Mon Nov  6 00:44:04 2017
New Revision: 453584
URL: https://svnweb.freebsd.org/changeset/ports/453584

Log:
  emulators/citra: update to s20171105
  
  Changes:	https://github.com/citra-emu/citra/compare/1f6da9fb...4fc04480

Added:
  head/emulators/citra/files/patch-revert-pr3042   (contents, props changed)
Modified:
  head/emulators/citra/Makefile   (contents, props changed)
  head/emulators/citra/distinfo   (contents, props changed)

Modified: head/emulators/citra/Makefile
==============================================================================
--- head/emulators/citra/Makefile	Sun Nov  5 21:59:19 2017	(r453583)
+++ head/emulators/citra/Makefile	Mon Nov  6 00:44:04 2017	(r453584)
@@ -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/dy
 
 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 \

Modified: head/emulators/citra/distinfo
==============================================================================
--- head/emulators/citra/distinfo	Sun Nov  5 21:59:19 2017	(r453583)
+++ head/emulators/citra/distinfo	Mon Nov  6 00:44:04 2017	(r453584)
@@ -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

Added: head/emulators/citra/files/patch-revert-pr3042
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/citra/files/patch-revert-pr3042	Mon Nov  6 00:44:04 2017	(r453584)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711060044.vA60i5Yj066364>