Explorar o código

Isolate more services to separate threads (#1573)

* Isolate more services to separate threads

* Fix DisplayServer

* Add explanation for vi services
mageven %!s(int64=5) %!d(string=hai) anos
pai
achega
16e9d15674

+ 1 - 1
Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs

@@ -35,7 +35,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
         private HidAccelerometerParameters _accelerometerParams;
         private HidVibrationValue          _vibrationValue;
 
-        public IHidServer(ServiceCtx context)
+        public IHidServer(ServiceCtx context) : base(new ServerBase("HidServer"))
         {
             _xpadIdEvent                 = new KEvent(context.Device.System.KernelContext);
             _palmaOperationCompleteEvent = new KEvent(context.Device.System.KernelContext);

+ 1 - 1
Ryujinx.HLE/HOS/Services/Time/IStaticServiceForGlue.cs

@@ -15,7 +15,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
         private IStaticServiceForPsc _inner;
         private TimePermissions      _permissions;
 
-        public IStaticServiceForGlue(ServiceCtx context, TimePermissions permissions)
+        public IStaticServiceForGlue(ServiceCtx context, TimePermissions permissions) : base(new ServerBase("TimeServer"))
         {
             _permissions = permissions;
             _inner       = new IStaticServiceForPsc(context, permissions);

+ 2 - 1
Ryujinx.HLE/HOS/Services/Vi/IApplicationRootService.cs

@@ -5,7 +5,8 @@ namespace Ryujinx.HLE.HOS.Services.Vi
     [Service("vi:u")]
     class IApplicationRootService : IpcService
     {
-        public IApplicationRootService(ServiceCtx context) : base(new ServerBase("ViServer")) { }
+        // vi:u/m/s aren't on 3 separate threads but we can't put them together with the current ServerBase
+        public IApplicationRootService(ServiceCtx context) : base(new ServerBase("ViServerU")) { }
 
         [Command(0)]
         // GetDisplayService(u32) -> object<nn::visrv::sf::IApplicationDisplayService>

+ 2 - 1
Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs

@@ -5,7 +5,8 @@ namespace Ryujinx.HLE.HOS.Services.Vi
     [Service("vi:m")]
     class IManagerRootService : IpcService
     {
-        public IManagerRootService(ServiceCtx context) { }
+        // vi:u/m/s aren't on 3 separate threads but we can't put them together with the current ServerBase
+        public IManagerRootService(ServiceCtx context) : base(new ServerBase("ViServerM")) { }
 
         [Command(2)]
         // GetDisplayService(u32) -> object<nn::visrv::sf::IApplicationDisplayService>

+ 2 - 1
Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs

@@ -5,7 +5,8 @@ namespace Ryujinx.HLE.HOS.Services.Vi
     [Service("vi:s")]
     class ISystemRootService : IpcService
     {
-        public ISystemRootService(ServiceCtx context) { }
+        // vi:u/m/s aren't on 3 separate threads but we can't put them together with the current ServerBase
+        public ISystemRootService(ServiceCtx context) : base(new ServerBase("ViServerS")) { }
 
         [Command(1)]
         // GetDisplayService(u32) -> object<nn::visrv::sf::IApplicationDisplayService>