mirror of
https://github.com/Ryujinx/ChocolArm64.git
synced 2024-12-23 05:15:32 +00:00
NvServices refactoring (#120)
* Initial implementation of NvMap/NvHostCtrl * More work on NvHostCtrl * Refactoring of nvservices, move GPU Vmm, make Vmm per-process, refactor most gpu devices, move Gpu to Core, fix CbBind * Implement GetGpuTime, support CancelSynchronization, fix issue on InsertWaitingMutex, proper double buffering support (again, not working properly for commercial games, only hb) * Try to fix perf regression reading/writing textures, moved syncpts and events to a UserCtx class, delete global state when the process exits, other minor tweaks * Remove now unused code, add comment about probably wrong result codes
This commit is contained in:
parent
f9b17f86c1
commit
428360c5ac
|
@ -6,7 +6,7 @@ using System.Runtime.InteropServices;
|
||||||
|
|
||||||
namespace ChocolArm64.Memory
|
namespace ChocolArm64.Memory
|
||||||
{
|
{
|
||||||
public unsafe class AMemory : IDisposable
|
public unsafe class AMemory : IAMemory, IDisposable
|
||||||
{
|
{
|
||||||
private const long ErgMask = (4 << AThreadState.ErgSizeLog2) - 1;
|
private const long ErgMask = (4 << AThreadState.ErgSizeLog2) - 1;
|
||||||
|
|
||||||
|
|
37
Memory/IAMemory.cs
Normal file
37
Memory/IAMemory.cs
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
namespace ChocolArm64.Memory
|
||||||
|
{
|
||||||
|
public interface IAMemory
|
||||||
|
{
|
||||||
|
sbyte ReadSByte(long Position);
|
||||||
|
|
||||||
|
short ReadInt16(long Position);
|
||||||
|
|
||||||
|
int ReadInt32(long Position);
|
||||||
|
|
||||||
|
long ReadInt64(long Position);
|
||||||
|
|
||||||
|
byte ReadByte(long Position);
|
||||||
|
|
||||||
|
ushort ReadUInt16(long Position);
|
||||||
|
|
||||||
|
uint ReadUInt32(long Position);
|
||||||
|
|
||||||
|
ulong ReadUInt64(long Position);
|
||||||
|
|
||||||
|
void WriteSByte(long Position, sbyte Value);
|
||||||
|
|
||||||
|
void WriteInt16(long Position, short Value);
|
||||||
|
|
||||||
|
void WriteInt32(long Position, int Value);
|
||||||
|
|
||||||
|
void WriteInt64(long Position, long Value);
|
||||||
|
|
||||||
|
void WriteByte(long Position, byte Value);
|
||||||
|
|
||||||
|
void WriteUInt16(long Position, ushort Value);
|
||||||
|
|
||||||
|
void WriteUInt32(long Position, uint Value);
|
||||||
|
|
||||||
|
void WriteUInt64(long Position, ulong Value);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue