mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2025-08-02 02:52:25 -07:00
Add per-source type memory change tracking, simplified state change tracking, other fixes
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using Ryujinx.Graphics.Gpu.Memory;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Graphics.Gpu.Image
|
||||
@@ -31,7 +32,7 @@ namespace Ryujinx.Graphics.Gpu.Image
|
||||
|
||||
public void SynchronizeMemory()
|
||||
{
|
||||
(ulong, ulong)[] modifiedRanges = Context.PhysicalMemory.GetModifiedRanges(Address, Size);
|
||||
(ulong, ulong)[] modifiedRanges = Context.PhysicalMemory.GetModifiedRanges(Address, Size, ResourceName.TexturePool);
|
||||
|
||||
for (int index = 0; index < modifiedRanges.Length; index++)
|
||||
{
|
||||
|
@@ -202,7 +202,7 @@ namespace Ryujinx.Graphics.Gpu.Image
|
||||
|
||||
_sequenceNumber = _context.SequenceNumber;
|
||||
|
||||
bool modified = _context.PhysicalMemory.GetModifiedRanges(Address, Size).Length != 0;
|
||||
bool modified = _context.PhysicalMemory.GetModifiedRanges(Address, Size, ResourceName.Texture).Length != 0;
|
||||
|
||||
if (!modified && _hasData)
|
||||
{
|
||||
|
@@ -114,7 +114,7 @@ namespace Ryujinx.Graphics.Gpu.Image
|
||||
|
||||
public void CommitComputeBindings()
|
||||
{
|
||||
// Evert time we switch between graphics and compute work,
|
||||
// Every time we switch between graphics and compute work,
|
||||
// we must rebind everything.
|
||||
// Since compute work happens less often, we always do that
|
||||
// before and after the compute dispatch.
|
||||
|
Reference in New Issue
Block a user