mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-06-29 08:46:24 +02:00
implement quickAccess for fast look-up
some values are reused often and will be quicker to access by first checking an array of the last used items. removed and renamed some older functions.
This commit is contained in:
parent
be8f4897a2
commit
ce438f7276
2 changed files with 85 additions and 184 deletions
|
@ -335,7 +335,7 @@ namespace Ryujinx.Graphics.Gpu.Memory
|
|||
ulong alignedEndAddress = (endAddress + alignmentMask) & ~alignmentMask;
|
||||
ulong alignedSize = alignedEndAddress - alignedAddress;
|
||||
|
||||
Buffer buffer = _buffers.FindFirstOverlap(alignedAddress, alignedSize);
|
||||
Buffer buffer = _buffers.FindOverlapFast(alignedAddress, alignedSize);
|
||||
BufferRange bufferRange = buffer.GetRange(alignedAddress, alignedSize, false);
|
||||
|
||||
alignedSubRanges[i] = new MemoryRange(alignedAddress, alignedSize);
|
||||
|
@ -402,7 +402,7 @@ namespace Ryujinx.Graphics.Gpu.Memory
|
|||
|
||||
if (subRange.Address != MemoryManager.PteUnmapped)
|
||||
{
|
||||
Buffer buffer = _buffers.FindFirstOverlap(subRange.Address, subRange.Size);
|
||||
Buffer buffer = _buffers.FindOverlapFast(subRange.Address, subRange.Size);
|
||||
|
||||
virtualBuffer.AddPhysicalDependency(buffer, subRange.Address, dstOffset, subRange.Size);
|
||||
physicalBuffers.Add(buffer);
|
||||
|
@ -890,7 +890,7 @@ namespace Ryujinx.Graphics.Gpu.Memory
|
|||
{
|
||||
MemoryRange subRange = range.GetSubRange(i);
|
||||
|
||||
Buffer subBuffer = _buffers.FindFirstOverlap(subRange.Address, subRange.Size);
|
||||
Buffer subBuffer = _buffers.FindOverlapFast(subRange.Address, subRange.Size);
|
||||
|
||||
subBuffer.SynchronizeMemory(subRange.Address, subRange.Size);
|
||||
|
||||
|
@ -938,7 +938,7 @@ namespace Ryujinx.Graphics.Gpu.Memory
|
|||
|
||||
if (size != 0)
|
||||
{
|
||||
buffer = _buffers.FindFirstOverlap(address, size);
|
||||
buffer = _buffers.FindOverlapFast(address, size);
|
||||
|
||||
buffer.CopyFromDependantVirtualBuffers();
|
||||
buffer.SynchronizeMemory(address, size);
|
||||
|
@ -950,7 +950,7 @@ namespace Ryujinx.Graphics.Gpu.Memory
|
|||
}
|
||||
else
|
||||
{
|
||||
buffer = _buffers.FindFirstOverlap(address, 1);
|
||||
buffer = _buffers.FindOverlapFast(address, 1);
|
||||
}
|
||||
|
||||
return buffer;
|
||||
|
@ -988,7 +988,7 @@ namespace Ryujinx.Graphics.Gpu.Memory
|
|||
{
|
||||
if (size != 0)
|
||||
{
|
||||
Buffer buffer = _buffers.FindFirstOverlap(address, size);
|
||||
Buffer buffer = _buffers.FindOverlapFast(address, size);
|
||||
|
||||
if (copyBackVirtual)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue