mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-06-30 04:16:26 +02:00
Add a separate device memory manager (#6153)
* Add a separate device memory manager * Still need this * Device writes are always tracked * Device writes are always tracked (2) * Rename more instances of gmm to mm
This commit is contained in:
parent
90455a05e6
commit
f241f88558
33 changed files with 555 additions and 157 deletions
|
@ -1,23 +1,23 @@
|
|||
using Ryujinx.Graphics.Gpu.Memory;
|
||||
using Ryujinx.Graphics.Device;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Graphics.Nvdec
|
||||
{
|
||||
static class MemoryExtensions
|
||||
{
|
||||
public static T DeviceRead<T>(this MemoryManager gmm, uint offset) where T : unmanaged
|
||||
public static T DeviceRead<T>(this DeviceMemoryManager gmm, uint offset) where T : unmanaged
|
||||
{
|
||||
return gmm.Read<T>((ulong)offset << 8);
|
||||
return gmm.Read<T>(ExtendOffset(offset));
|
||||
}
|
||||
|
||||
public static ReadOnlySpan<byte> DeviceGetSpan(this MemoryManager gmm, uint offset, int size)
|
||||
public static ReadOnlySpan<byte> DeviceGetSpan(this DeviceMemoryManager gmm, uint offset, int size)
|
||||
{
|
||||
return gmm.GetSpan((ulong)offset << 8, size);
|
||||
return gmm.GetSpan(ExtendOffset(offset), size);
|
||||
}
|
||||
|
||||
public static void DeviceWrite(this MemoryManager gmm, uint offset, ReadOnlySpan<byte> data)
|
||||
public static void DeviceWrite(this DeviceMemoryManager gmm, uint offset, ReadOnlySpan<byte> data)
|
||||
{
|
||||
gmm.Write((ulong)offset << 8, data);
|
||||
gmm.Write(ExtendOffset(offset), data);
|
||||
}
|
||||
|
||||
public static ulong ExtendOffset(uint offset)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue