mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2026-07-12 05:54:17 +00:00
Memory changes 3 (ryubing/ryujinx!202)
See merge request ryubing/ryujinx!202
This commit is contained in:
@@ -48,36 +48,36 @@ namespace Ryujinx.Horizon.Sdk.Sf
|
||||
case CommandArgType.Buffer:
|
||||
HipcBufferFlags flags = argInfo.BufferFlags;
|
||||
|
||||
if (flags.HasFlag(HipcBufferFlags.In))
|
||||
if ((flags & HipcBufferFlags.In) != 0)
|
||||
{
|
||||
if (flags.HasFlag(HipcBufferFlags.AutoSelect))
|
||||
if ((flags & HipcBufferFlags.AutoSelect) != 0)
|
||||
{
|
||||
_inMapAliasBuffersCount++;
|
||||
_inPointerBuffersCount++;
|
||||
}
|
||||
else if (flags.HasFlag(HipcBufferFlags.MapAlias))
|
||||
else if ((flags & HipcBufferFlags.MapAlias) != 0)
|
||||
{
|
||||
_inMapAliasBuffersCount++;
|
||||
}
|
||||
else if (flags.HasFlag(HipcBufferFlags.Pointer))
|
||||
else if ((flags & HipcBufferFlags.Pointer) != 0)
|
||||
{
|
||||
_inPointerBuffersCount++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bool autoSelect = flags.HasFlag(HipcBufferFlags.AutoSelect);
|
||||
if (autoSelect || flags.HasFlag(HipcBufferFlags.Pointer))
|
||||
bool autoSelect = (flags & HipcBufferFlags.AutoSelect) != 0;
|
||||
if (autoSelect || (flags & HipcBufferFlags.Pointer) != 0)
|
||||
{
|
||||
_outPointerBuffersCount++;
|
||||
|
||||
if (flags.HasFlag(HipcBufferFlags.FixedSize))
|
||||
if ((flags & HipcBufferFlags.FixedSize) != 0)
|
||||
{
|
||||
_outFixedSizePointerBuffersCount++;
|
||||
}
|
||||
}
|
||||
|
||||
if (autoSelect || flags.HasFlag(HipcBufferFlags.MapAlias))
|
||||
if (autoSelect || (flags & HipcBufferFlags.MapAlias) != 0)
|
||||
{
|
||||
_outMapAliasBuffersCount++;
|
||||
}
|
||||
@@ -150,17 +150,17 @@ namespace Ryujinx.Horizon.Sdk.Sf
|
||||
HipcBufferFlags flags = _args[i].BufferFlags;
|
||||
bool isMapAlias;
|
||||
|
||||
if (flags.HasFlag(HipcBufferFlags.MapAlias))
|
||||
if ((flags & HipcBufferFlags.MapAlias) != 0)
|
||||
{
|
||||
isMapAlias = true;
|
||||
}
|
||||
else if (flags.HasFlag(HipcBufferFlags.Pointer))
|
||||
else if ((flags & HipcBufferFlags.Pointer) != 0)
|
||||
{
|
||||
isMapAlias = false;
|
||||
}
|
||||
else /* if (flags.HasFlag(HipcBufferFlags.HipcAutoSelect)) */
|
||||
else /* if (flags & HipcBufferFlags.HipcAutoSelect)) */
|
||||
{
|
||||
HipcBufferDescriptor descriptor = flags.HasFlag(HipcBufferFlags.In)
|
||||
HipcBufferDescriptor descriptor = (flags & HipcBufferFlags.In) != 0
|
||||
? context.Request.Data.SendBuffers[sendMapAliasIndex]
|
||||
: context.Request.Data.ReceiveBuffers[recvMapAliasIndex];
|
||||
|
||||
@@ -171,7 +171,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
|
||||
|
||||
if (isMapAlias)
|
||||
{
|
||||
HipcBufferDescriptor descriptor = flags.HasFlag(HipcBufferFlags.In)
|
||||
HipcBufferDescriptor descriptor = (flags & HipcBufferFlags.In) != 0
|
||||
? context.Request.Data.SendBuffers[sendMapAliasIndex++]
|
||||
: context.Request.Data.ReceiveBuffers[recvMapAliasIndex++];
|
||||
|
||||
@@ -184,7 +184,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
|
||||
}
|
||||
else
|
||||
{
|
||||
if (flags.HasFlag(HipcBufferFlags.In))
|
||||
if ((flags & HipcBufferFlags.In) != 0)
|
||||
{
|
||||
HipcStaticDescriptor descriptor = context.Request.Data.SendStatics[sendPointerIndex++];
|
||||
ulong address = descriptor.Address;
|
||||
@@ -197,11 +197,11 @@ namespace Ryujinx.Horizon.Sdk.Sf
|
||||
pointerBufferTail = Math.Max(pointerBufferTail, address + size);
|
||||
}
|
||||
}
|
||||
else /* if (flags.HasFlag(HipcBufferFlags.Out)) */
|
||||
else /* if (flags & HipcBufferFlags.Out)) */
|
||||
{
|
||||
ulong size;
|
||||
|
||||
if (flags.HasFlag(HipcBufferFlags.FixedSize))
|
||||
if ((flags & HipcBufferFlags.FixedSize) != 0)
|
||||
{
|
||||
size = _args[i].BufferFixedSize;
|
||||
}
|
||||
@@ -234,12 +234,12 @@ namespace Ryujinx.Horizon.Sdk.Sf
|
||||
|
||||
private static bool IsMapTransferModeValid(HipcBufferFlags flags, HipcBufferMode mode)
|
||||
{
|
||||
if (flags.HasFlag(HipcBufferFlags.MapTransferAllowsNonSecure))
|
||||
if ((flags & HipcBufferFlags.MapTransferAllowsNonSecure) != 0)
|
||||
{
|
||||
return mode == HipcBufferMode.NonSecure;
|
||||
}
|
||||
|
||||
if (flags.HasFlag(HipcBufferFlags.MapTransferAllowsNonDevice))
|
||||
if ((flags & HipcBufferFlags.MapTransferAllowsNonDevice) != 0)
|
||||
{
|
||||
return mode == HipcBufferMode.NonDevice;
|
||||
}
|
||||
@@ -259,18 +259,18 @@ namespace Ryujinx.Horizon.Sdk.Sf
|
||||
}
|
||||
|
||||
HipcBufferFlags flags = _args[i].BufferFlags;
|
||||
if (!flags.HasFlag(HipcBufferFlags.Out))
|
||||
if ((flags & HipcBufferFlags.Out) == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
PointerAndSize buffer = _bufferRanges[i];
|
||||
|
||||
if (flags.HasFlag(HipcBufferFlags.Pointer))
|
||||
if ((flags & HipcBufferFlags.Pointer) != 0)
|
||||
{
|
||||
response.SendStatics[recvPointerIndex] = new HipcStaticDescriptor(buffer.Address, (ushort)buffer.Size, recvPointerIndex);
|
||||
}
|
||||
else if (flags.HasFlag(HipcBufferFlags.AutoSelect))
|
||||
else if ((flags & HipcBufferFlags.AutoSelect) != 0)
|
||||
{
|
||||
if (!isBufferMapAlias[i])
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user