Improved Logger (#1292)
* Logger class changes only Now compile-time checking is possible with the help of Nullable Value types. * Misc formatting * Manual optimizations PrintGuestLog PrintGuestStackTrace Surfaceflinger DequeueBuffer * Reduce SendVibrationXX log level to Debug * Add Notice log level This level is always enabled and used to print system info, etc... Also, rewrite LogColor to switch expression as colors are static * Unify unhandled exception event handlers * Print enabled LogLevels during init * Re-add App Exit disposes in proper order nit: switch case spacing * Revert PrintGuestStackTrace to Info logs due to #1407 PrintGuestStackTrace is now called in some critical error handlers so revert to old behavior as KThread isn't part of Guest. * Batch replace Logger statements
This commit is contained in:
parent
60db4c3530
commit
a33dc2f491
120 changed files with 800 additions and 809 deletions
|
@ -66,7 +66,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv
|
|||
}
|
||||
else
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Cannot find file device \"{path}\"!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Cannot find file device \"{path}\"!");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -88,7 +88,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv
|
|||
{
|
||||
arguments = null;
|
||||
|
||||
Logger.PrintWarning(LogClass.ServiceNv, "Ioctl size inconsistency found!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, "Ioctl size inconsistency found!");
|
||||
|
||||
return NvResult.InvalidSize;
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv
|
|||
{
|
||||
arguments = null;
|
||||
|
||||
Logger.PrintWarning(LogClass.ServiceNv, "Ioctl size inconsistency found!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, "Ioctl size inconsistency found!");
|
||||
|
||||
return NvResult.InvalidSize;
|
||||
}
|
||||
|
@ -145,7 +145,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv
|
|||
|
||||
if (deviceFile == null)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid file descriptor {fd}");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid file descriptor {fd}");
|
||||
|
||||
return NvResult.NotImplemented;
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv
|
|||
{
|
||||
if (_owner == null)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, "INvDrvServices is not initialized!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, "INvDrvServices is not initialized!");
|
||||
|
||||
return NvResult.NotInitialized;
|
||||
}
|
||||
|
@ -411,7 +411,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv
|
|||
context.ResponseData.WriteStruct(nvStatus);
|
||||
context.ResponseData.Write((uint)NvResult.Success);
|
||||
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -443,7 +443,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv
|
|||
// DumpGraphicsMemoryInfo()
|
||||
public ResultCode DumpGraphicsMemoryInfo(ServiceCtx context)
|
||||
{
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return ResultCode.Success;
|
||||
}
|
||||
|
@ -558,7 +558,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv
|
|||
// FinishInitialize(unknown<8>)
|
||||
public ResultCode FinishInitialize(ServiceCtx context)
|
||||
{
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return ResultCode.Success;
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices
|
|||
|
||||
private static NvInternalResult PrintResult(MethodInfo info, NvInternalResult result)
|
||||
{
|
||||
Logger.PrintDebug(LogClass.ServiceNv, $"{info.Name} returned result {result}");
|
||||
Logger.Debug?.Print(LogClass.ServiceNv, $"{info.Name} returned result {result}");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
|||
|
||||
private NvInternalResult BindChannel(ref BindChannelArguments arguments)
|
||||
{
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
@ -102,7 +102,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
|||
{
|
||||
arguments.Offset = 0;
|
||||
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Failed to allocate size {size:x16}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Failed to allocate size {size:x16}!");
|
||||
|
||||
result = NvInternalResult.OutOfMemory;
|
||||
}
|
||||
|
@ -131,7 +131,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
|||
}
|
||||
else
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv,
|
||||
Logger.Warning?.Print(LogClass.ServiceNv,
|
||||
$"Failed to free offset 0x{arguments.Offset:x16} size 0x{size:x16}!");
|
||||
|
||||
result = NvInternalResult.InvalidInput;
|
||||
|
@ -156,7 +156,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
|||
}
|
||||
else
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid buffer offset {arguments.Offset:x16}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid buffer offset {arguments.Offset:x16}!");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -173,7 +173,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
|||
|
||||
if (map == null)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid NvMap handle 0x{arguments.NvMapHandle:x8}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid NvMap handle 0x{arguments.NvMapHandle:x8}!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -201,7 +201,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
|||
{
|
||||
string message = string.Format(mapErrorMsg, virtualAddress, arguments.MappingSize, pageSize);
|
||||
|
||||
Logger.PrintWarning(LogClass.ServiceNv, message);
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, message);
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -210,7 +210,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
|||
}
|
||||
else
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Address 0x{arguments.Offset:x16} not mapped!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Address 0x{arguments.Offset:x16} not mapped!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -244,7 +244,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
|||
{
|
||||
string message = string.Format(mapErrorMsg, arguments.Offset, size, pageSize);
|
||||
|
||||
Logger.PrintWarning(LogClass.ServiceNv, message);
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, message);
|
||||
|
||||
result = NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -258,7 +258,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
|||
{
|
||||
arguments.Offset = 0;
|
||||
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Failed to map size 0x{size:x16}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Failed to map size 0x{size:x16}!");
|
||||
|
||||
result = NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -273,14 +273,14 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
|||
|
||||
private NvInternalResult GetVaRegions(ref GetVaRegionsArguments arguments)
|
||||
{
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
||||
private NvInternalResult InitializeEx(ref InitializeExArguments arguments)
|
||||
{
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
@ -295,7 +295,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
|||
|
||||
if (map == null)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid NvMap handle 0x{arguments[index].NvMapHandle:x8}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid NvMap handle 0x{arguments[index].NvMapHandle:x8}!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -307,7 +307,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
|||
|
||||
if (result < 0)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv,
|
||||
Logger.Warning?.Print(LogClass.ServiceNv,
|
||||
$"Page 0x{arguments[index].GpuOffset:x16} size 0x{arguments[index].Pages:x16} not allocated!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
|
|
|
@ -208,7 +208,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
{
|
||||
arguments.Value = 0;
|
||||
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
@ -217,7 +217,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
{
|
||||
_submitTimeout = submitTimeout;
|
||||
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
@ -235,7 +235,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
|
||||
if (map == null)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid handle 0x{commandBufferEntry.MapHandle:x8}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid handle 0x{commandBufferEntry.MapHandle:x8}!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -267,7 +267,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
|
||||
if (map == null)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid handle 0x{commandBufferEntry.MapHandle:x8}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid handle 0x{commandBufferEntry.MapHandle:x8}!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -292,7 +292,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
|
||||
private NvInternalResult SetNvMapFd(ref int nvMapFd)
|
||||
{
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
@ -301,7 +301,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
{
|
||||
_timeout = timeout;
|
||||
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
@ -317,21 +317,21 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
|
||||
private NvInternalResult AllocObjCtx(ref AllocObjCtxArguments arguments)
|
||||
{
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
||||
private NvInternalResult ZcullBind(ref ZcullBindArguments arguments)
|
||||
{
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
||||
private NvInternalResult SetErrorNotifier(ref SetErrorNotifierArguments arguments)
|
||||
{
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
@ -353,7 +353,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
// TODO: disable and preempt channel when GPU scheduler will be implemented.
|
||||
|
||||
|
@ -366,7 +366,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
|
||||
arguments.Fence = _channelSyncpoint;
|
||||
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
@ -377,7 +377,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
|
||||
arguments.Fence = _channelSyncpoint;
|
||||
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
@ -391,7 +391,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
|
||||
_timeslice = timeslice; // in micro-seconds
|
||||
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
// TODO: disable and preempt channel when GPU scheduler will be implemented.
|
||||
|
||||
|
@ -400,7 +400,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
|
||||
private NvInternalResult SetUserData(ref ulong userData)
|
||||
{
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
|
|
@ -185,7 +185,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
|
|||
{
|
||||
if (stringValue.Length > 0x100)
|
||||
{
|
||||
Logger.PrintError(LogClass.ServiceNv, $"{arguments.Domain}!{arguments.Parameter} String value size is too big!");
|
||||
Logger.Error?.Print(LogClass.ServiceNv, $"{arguments.Domain}!{arguments.Parameter} String value size is too big!");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -205,7 +205,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
|
|||
throw new NotImplementedException(nvSetting.GetType().Name);
|
||||
}
|
||||
|
||||
Logger.PrintDebug(LogClass.ServiceNv, $"Got setting {arguments.Domain}!{arguments.Parameter}");
|
||||
Logger.Debug?.Print(LogClass.ServiceNv, $"Got setting {arguments.Domain}!{arguments.Parameter}");
|
||||
|
||||
arguments.Configuration = settingBuffer;
|
||||
|
||||
|
@ -451,11 +451,11 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
|
|||
}
|
||||
else
|
||||
{
|
||||
Logger.PrintError(LogClass.ServiceNv, $"Invalid Event at index {eventIndex} (isWaitEventAsyncCmd: {isWaitEventAsyncCmd}, isWaitEventCmd: {isWaitEventCmd})");
|
||||
Logger.Error?.Print(LogClass.ServiceNv, $"Invalid Event at index {eventIndex} (isWaitEventAsyncCmd: {isWaitEventAsyncCmd}, isWaitEventCmd: {isWaitEventCmd})");
|
||||
|
||||
if (hostEvent != null)
|
||||
{
|
||||
Logger.PrintError(LogClass.ServiceNv, hostEvent.DumpState(_device.Gpu));
|
||||
Logger.Error?.Print(LogClass.ServiceNv, hostEvent.DumpState(_device.Gpu));
|
||||
}
|
||||
|
||||
result = NvInternalResult.InvalidInput;
|
||||
|
@ -464,7 +464,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
|
|||
}
|
||||
else
|
||||
{
|
||||
Logger.PrintError(LogClass.ServiceNv, $"Invalid Event at index {eventIndex} (isWaitEventAsyncCmd: {isWaitEventAsyncCmd}, isWaitEventCmd: {isWaitEventCmd})");
|
||||
Logger.Error?.Print(LogClass.ServiceNv, $"Invalid Event at index {eventIndex} (isWaitEventAsyncCmd: {isWaitEventAsyncCmd}, isWaitEventCmd: {isWaitEventCmd})");
|
||||
|
||||
result = NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -522,7 +522,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
|
|||
|
||||
public override void Close()
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, "Closing channel");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, "Closing channel");
|
||||
|
||||
lock (_events)
|
||||
{
|
||||
|
|
|
@ -119,7 +119,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
|
|||
// This allows to keep GPU and CPU in sync when we are slow.
|
||||
if (_failingCount == FailingCountMax)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, "GPU processing thread is too slow, waiting on CPU...");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, "GPU processing thread is too slow, waiting on CPU...");
|
||||
|
||||
bool timedOut = Fence.Wait(gpuContext, Timeout.InfiniteTimeSpan);
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
|
|||
}
|
||||
}
|
||||
|
||||
Logger.PrintError(LogClass.ServiceNv, "Cannot allocate a new syncpoint!");
|
||||
Logger.Error?.Print(LogClass.ServiceNv, "Cannot allocate a new syncpoint!");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -140,7 +140,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrlGpu
|
|||
|
||||
private NvInternalResult ZbcSetTable(ref ZbcSetTableArguments arguments)
|
||||
{
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
@ -213,7 +213,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrlGpu
|
|||
|
||||
private NvInternalResult GetActiveSlotMask(ref GetActiveSlotMaskArguments arguments)
|
||||
{
|
||||
Logger.PrintStub(LogClass.ServiceNv);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceNv);
|
||||
|
||||
arguments.Slot = 0x07;
|
||||
arguments.Mask = 0x01;
|
||||
|
|
|
@ -68,7 +68,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
|
|||
{
|
||||
if (arguments.Size == 0)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid size 0x{arguments.Size:x8}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid size 0x{arguments.Size:x8}!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
|
|||
|
||||
arguments.Handle = CreateHandleFromMap(new NvMapHandle(size));
|
||||
|
||||
Logger.PrintInfo(LogClass.ServiceNv, $"Created map {arguments.Handle} with size 0x{size:x8}!");
|
||||
Logger.Info?.Print(LogClass.ServiceNv, $"Created map {arguments.Handle} with size 0x{size:x8}!");
|
||||
|
||||
return NvInternalResult.Success;
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
|
|||
|
||||
if (map == null)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid handle 0x{arguments.Handle:x8}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid handle 0x{arguments.Handle:x8}!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -106,14 +106,14 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
|
|||
|
||||
if (map == null)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid handle 0x{arguments.Handle:x8}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid handle 0x{arguments.Handle:x8}!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
||||
if ((arguments.Align & (arguments.Align - 1)) != 0)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid alignment 0x{arguments.Align:x8}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid alignment 0x{arguments.Align:x8}!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
|
|||
|
||||
if (map == null)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid handle 0x{arguments.Handle:x8}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid handle 0x{arguments.Handle:x8}!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -187,7 +187,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
|
|||
|
||||
if (map == null)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid handle 0x{arguments.Handle:x8}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid handle 0x{arguments.Handle:x8}!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -214,7 +214,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
|
|||
|
||||
if (map == null)
|
||||
{
|
||||
Logger.PrintWarning(LogClass.ServiceNv, $"Invalid handle 0x{arguments.Handle:x8}!");
|
||||
Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid handle 0x{arguments.Handle:x8}!");
|
||||
|
||||
return NvInternalResult.InvalidInput;
|
||||
}
|
||||
|
@ -272,7 +272,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
|
|||
{
|
||||
DeleteMapWithHandle(process, handle);
|
||||
|
||||
Logger.PrintInfo(LogClass.ServiceNv, $"Deleted map {handle}!");
|
||||
Logger.Info?.Print(LogClass.ServiceNv, $"Deleted map {handle}!");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue