blob: ef919c2b01ac65d5ec4d77d7fd612f7a8a24c7ab (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
namespace Ryujinx.Graphics.Gpu.Memory
{
/// <summary>
/// A cached entry for easily locating a buffer that is used often internally.
/// </summary>
class BufferCacheEntry
{
/// <summary>
/// The CPU VA of the buffer destination.
/// </summary>
public ulong Address;
/// <summary>
/// The end GPU VA of the associated buffer, used to check if new data can fit.
/// </summary>
public ulong EndGpuAddress;
/// <summary>
/// The buffer associated with this cache entry.
/// </summary>
public Buffer Buffer;
/// <summary>
/// The UnmappedSequence of the buffer at the time of creation.
/// If this differs from the value currently in the buffer, then this cache entry is outdated.
/// </summary>
public int UnmappedSequence;
/// <summary>
/// Create a new cache entry.
/// </summary>
/// <param name="address">The CPU VA of the buffer destination</param>
/// <param name="gpuVa">The GPU VA of the buffer destination</param>
/// <param name="buffer">The buffer object containing the target buffer</param>
public BufferCacheEntry(ulong address, ulong gpuVa, Buffer buffer)
{
Address = address;
EndGpuAddress = gpuVa + (buffer.EndAddress - address);
Buffer = buffer;
UnmappedSequence = buffer.UnmappedSequence;
}
}
}
|