Isolate more services to separate threads (#1573)

* Isolate more services to separate threads

* Fix DisplayServer

* Add explanation for vi services
This commit is contained in:
mageven 2020-09-25 15:48:28 +05:30 committed by GitHub
parent bd28ce90e6
commit 16e9d15674
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 8 additions and 5 deletions

View file

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

View file

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

View file

@ -5,7 +5,8 @@ namespace Ryujinx.HLE.HOS.Services.Vi
[Service("vi:u")] [Service("vi:u")]
class IApplicationRootService : IpcService 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)] [Command(0)]
// GetDisplayService(u32) -> object<nn::visrv::sf::IApplicationDisplayService> // GetDisplayService(u32) -> object<nn::visrv::sf::IApplicationDisplayService>

View file

@ -5,7 +5,8 @@ namespace Ryujinx.HLE.HOS.Services.Vi
[Service("vi:m")] [Service("vi:m")]
class IManagerRootService : IpcService 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)] [Command(2)]
// GetDisplayService(u32) -> object<nn::visrv::sf::IApplicationDisplayService> // GetDisplayService(u32) -> object<nn::visrv::sf::IApplicationDisplayService>

View file

@ -5,7 +5,8 @@ namespace Ryujinx.HLE.HOS.Services.Vi
[Service("vi:s")] [Service("vi:s")]
class ISystemRootService : IpcService 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)] [Command(1)]
// GetDisplayService(u32) -> object<nn::visrv::sf::IApplicationDisplayService> // GetDisplayService(u32) -> object<nn::visrv::sf::IApplicationDisplayService>