b530f0e110
* Initial implementation (3d tex mips broken) This works rather well for most games, just need to fix 3d texture mips. * Cleanup * Address feedback * Copy Dependencies and various other fixes * Fix layer/level offset for copy from view<->view. * Remove dirty flag from dependency The dirty flag behaviour is not needed - DeferredCopy is all we need. * Fix tracking mip slices. * Propagate granularity (fix astral chain) * Address Feedback pt 1 * Save slice sizes as part of SizeInfo * Fix nits * Fix disposing multiple dependencies causing a crash This list is obviously modified when removing dependencies, so create a copy of it.
27 lines
884 B
C#
27 lines
884 B
C#
using Ryujinx.Memory.Tracking;
|
|
using System;
|
|
|
|
namespace Ryujinx.Cpu.Tracking
|
|
{
|
|
public class CpuRegionHandle : IRegionHandle
|
|
{
|
|
private readonly RegionHandle _impl;
|
|
|
|
public bool Dirty => _impl.Dirty;
|
|
public ulong Address => _impl.Address;
|
|
public ulong Size => _impl.Size;
|
|
public ulong EndAddress => _impl.EndAddress;
|
|
|
|
internal CpuRegionHandle(RegionHandle impl)
|
|
{
|
|
_impl = impl;
|
|
}
|
|
|
|
public void Dispose() => _impl.Dispose();
|
|
public void RegisterAction(RegionSignal action) => _impl.RegisterAction(action);
|
|
public void RegisterDirtyEvent(Action action) => _impl.RegisterDirtyEvent(action);
|
|
public void Reprotect(bool asDirty = false) => _impl.Reprotect(asDirty);
|
|
|
|
public bool OverlapsWith(ulong address, ulong size) => _impl.OverlapsWith(address, size);
|
|
}
|
|
}
|