Initial conditional rendering support (#1012)

* Initial conditional rendering support

* Properly reset state

* Support conditional modes and skeleton a counter cache for future host conditional rendering

* Address PR feedback
This commit is contained in:
gdkchan 2020-04-22 03:00:11 -03:00 committed by GitHub
parent c46edfab85
commit 6bfe4715f0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 269 additions and 2 deletions

View file

@ -1,3 +1,5 @@
using System;
namespace Ryujinx.Graphics.Gpu.Memory
{
/// <summary>
@ -27,7 +29,9 @@ namespace Ryujinx.Graphics.Gpu.Memory
private const ulong PteUnmapped = 0xffffffff_ffffffff;
private const ulong PteReserved = 0xffffffff_fffffffe;
private ulong[][] _pageTable;
private readonly ulong[][] _pageTable;
public event EventHandler<UnmapEventArgs> MemoryUnmapped;
/// <summary>
/// Creates a new instance of the GPU memory manager.
@ -181,6 +185,9 @@ namespace Ryujinx.Graphics.Gpu.Memory
{
SetPte(va + offset, PteUnmapped);
}
// Event handlers are not expected to be thread safe.
MemoryUnmapped?.Invoke(this, new UnmapEventArgs(va, size));
}
}