aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.GAL
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.GAL')
-rw-r--r--src/Ryujinx.Graphics.GAL/BufferAccess.cs1
-rw-r--r--src/Ryujinx.Graphics.GAL/BufferRange.cs4
-rw-r--r--src/Ryujinx.Graphics.GAL/Multithreading/BufferMap.cs8
3 files changed, 8 insertions, 5 deletions
diff --git a/src/Ryujinx.Graphics.GAL/BufferAccess.cs b/src/Ryujinx.Graphics.GAL/BufferAccess.cs
index 2f7d994f..e7d7ceb0 100644
--- a/src/Ryujinx.Graphics.GAL/BufferAccess.cs
+++ b/src/Ryujinx.Graphics.GAL/BufferAccess.cs
@@ -4,5 +4,6 @@ namespace Ryujinx.Graphics.GAL
{
Default,
FlushPersistent,
+ Stream
}
}
diff --git a/src/Ryujinx.Graphics.GAL/BufferRange.cs b/src/Ryujinx.Graphics.GAL/BufferRange.cs
index 483747f1..fec82de2 100644
--- a/src/Ryujinx.Graphics.GAL/BufferRange.cs
+++ b/src/Ryujinx.Graphics.GAL/BufferRange.cs
@@ -10,12 +10,14 @@ namespace Ryujinx.Graphics.GAL
public int Offset { get; }
public int Size { get; }
+ public bool Write { get; }
- public BufferRange(BufferHandle handle, int offset, int size)
+ public BufferRange(BufferHandle handle, int offset, int size, bool write = false)
{
Handle = handle;
Offset = offset;
Size = size;
+ Write = write;
}
}
}
diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/BufferMap.cs b/src/Ryujinx.Graphics.GAL/Multithreading/BufferMap.cs
index c30df046..6377e5ea 100644
--- a/src/Ryujinx.Graphics.GAL/Multithreading/BufferMap.cs
+++ b/src/Ryujinx.Graphics.GAL/Multithreading/BufferMap.cs
@@ -113,7 +113,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading
internal BufferRange MapBufferRange(BufferRange range)
{
- return new BufferRange(MapBuffer(range.Handle), range.Offset, range.Size);
+ return new BufferRange(MapBuffer(range.Handle), range.Offset, range.Size, range.Write);
}
internal Span<BufferRange> MapBufferRanges(Span<BufferRange> ranges)
@@ -131,7 +131,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading
result = BufferHandle.Null;
}
- range = new BufferRange(result, range.Offset, range.Size);
+ range = new BufferRange(result, range.Offset, range.Size, range.Write);
}
}
@@ -154,7 +154,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading
result = BufferHandle.Null;
}
- assignment = new BufferAssignment(ranges[i].Binding, new BufferRange(result, range.Offset, range.Size));
+ assignment = new BufferAssignment(ranges[i].Binding, new BufferRange(result, range.Offset, range.Size, range.Write));
}
}
@@ -176,7 +176,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading
result = BufferHandle.Null;
}
- range = new BufferRange(result, range.Offset, range.Size);
+ range = new BufferRange(result, range.Offset, range.Size, range.Write);
ranges[i] = new VertexBufferDescriptor(range, ranges[i].Stride, ranges[i].Divisor);
}