aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Nvdec.Vp9/Common
diff options
context:
space:
mode:
authorTSR Berry <20988865+TSRBerry@users.noreply.github.com>2023-04-08 01:22:00 +0200
committerMary <thog@protonmail.com>2023-04-27 23:51:14 +0200
commitcee712105850ac3385cd0091a923438167433f9f (patch)
tree4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /Ryujinx.Graphics.Nvdec.Vp9/Common
parentcd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff)
Move solution and projects to src
Diffstat (limited to 'Ryujinx.Graphics.Nvdec.Vp9/Common')
-rw-r--r--Ryujinx.Graphics.Nvdec.Vp9/Common/BitUtils.cs58
-rw-r--r--Ryujinx.Graphics.Nvdec.Vp9/Common/MemoryAllocator.cs94
-rw-r--r--Ryujinx.Graphics.Nvdec.Vp9/Common/MemoryUtil.cs23
3 files changed, 0 insertions, 175 deletions
diff --git a/Ryujinx.Graphics.Nvdec.Vp9/Common/BitUtils.cs b/Ryujinx.Graphics.Nvdec.Vp9/Common/BitUtils.cs
deleted file mode 100644
index 641188f8..00000000
--- a/Ryujinx.Graphics.Nvdec.Vp9/Common/BitUtils.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-using System;
-using System.Diagnostics;
-using System.Numerics;
-using System.Runtime.CompilerServices;
-
-namespace Ryujinx.Graphics.Nvdec.Vp9.Common
-{
- internal static class BitUtils
- {
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static byte ClipPixel(int val)
- {
- return (byte)((val > 255) ? 255 : (val < 0) ? 0 : val);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static ushort ClipPixelHighbd(int val, int bd)
- {
- return bd switch
- {
- 10 => (ushort)Math.Clamp(val, 0, 1023),
- 12 => (ushort)Math.Clamp(val, 0, 4095),
- _ => (ushort)Math.Clamp(val, 0, 255)
- };
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static int RoundPowerOfTwo(int value, int n)
- {
- return (value + (1 << (n - 1))) >> n;
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static long RoundPowerOfTwo(long value, int n)
- {
- return (value + (1L << (n - 1))) >> n;
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static int AlignPowerOfTwo(int value, int n)
- {
- return (value + ((1 << n) - 1)) & ~((1 << n) - 1);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- private static int GetMsb(uint n)
- {
- Debug.Assert(n != 0);
- return 31 ^ BitOperations.LeadingZeroCount(n);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static int GetUnsignedBits(uint numValues)
- {
- return numValues > 0 ? GetMsb(numValues) + 1 : 0;
- }
- }
-}
diff --git a/Ryujinx.Graphics.Nvdec.Vp9/Common/MemoryAllocator.cs b/Ryujinx.Graphics.Nvdec.Vp9/Common/MemoryAllocator.cs
deleted file mode 100644
index 473dd904..00000000
--- a/Ryujinx.Graphics.Nvdec.Vp9/Common/MemoryAllocator.cs
+++ /dev/null
@@ -1,94 +0,0 @@
-using Ryujinx.Common.Memory;
-using System;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-namespace Ryujinx.Graphics.Nvdec.Vp9.Common
-{
- internal class MemoryAllocator : IDisposable
- {
- private const int PoolEntries = 10;
-
- private struct PoolItem
- {
- public IntPtr Pointer;
- public int Length;
- public bool InUse;
- }
-
- private PoolItem[] _pool = new PoolItem[PoolEntries];
-
- public ArrayPtr<T> Allocate<T>(int length) where T : unmanaged
- {
- int lengthInBytes = Unsafe.SizeOf<T>() * length;
-
- IntPtr ptr = IntPtr.Zero;
-
- for (int i = 0; i < PoolEntries; i++)
- {
- ref PoolItem item = ref _pool[i];
-
- if (!item.InUse && item.Length == lengthInBytes)
- {
- item.InUse = true;
- ptr = item.Pointer;
- break;
- }
- }
-
- if (ptr == IntPtr.Zero)
- {
- ptr = Marshal.AllocHGlobal(lengthInBytes);
-
- for (int i = 0; i < PoolEntries; i++)
- {
- ref PoolItem item = ref _pool[i];
-
- if (!item.InUse)
- {
- item.InUse = true;
- if (item.Pointer != IntPtr.Zero)
- {
- Marshal.FreeHGlobal(item.Pointer);
- }
- item.Pointer = ptr;
- item.Length = lengthInBytes;
- break;
- }
- }
- }
-
- return new ArrayPtr<T>(ptr, length);
- }
-
- public unsafe void Free<T>(ArrayPtr<T> arr) where T : unmanaged
- {
- IntPtr ptr = (IntPtr)arr.ToPointer();
-
- for (int i = 0; i < PoolEntries; i++)
- {
- ref PoolItem item = ref _pool[i];
-
- if (item.Pointer == ptr)
- {
- item.InUse = false;
- break;
- }
- }
- }
-
- public void Dispose()
- {
- for (int i = 0; i < PoolEntries; i++)
- {
- ref PoolItem item = ref _pool[i];
-
- if (item.Pointer != IntPtr.Zero)
- {
- Marshal.FreeHGlobal(item.Pointer);
- item.Pointer = IntPtr.Zero;
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Graphics.Nvdec.Vp9/Common/MemoryUtil.cs b/Ryujinx.Graphics.Nvdec.Vp9/Common/MemoryUtil.cs
deleted file mode 100644
index 909a9483..00000000
--- a/Ryujinx.Graphics.Nvdec.Vp9/Common/MemoryUtil.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace Ryujinx.Graphics.Nvdec.Vp9.Common
-{
- internal static class MemoryUtil
- {
- public static unsafe void Copy<T>(T* dest, T* source, int length) where T : unmanaged
- {
- new Span<T>(source, length).CopyTo(new Span<T>(dest, length));
- }
-
- public static void Copy<T>(ref T dest, ref T source) where T : unmanaged
- {
- MemoryMarshal.CreateSpan(ref source, 1).CopyTo(MemoryMarshal.CreateSpan(ref dest, 1));
- }
-
- public static unsafe void Fill<T>(T* ptr, T value, int length) where T : unmanaged
- {
- new Span<T>(ptr, length).Fill(value);
- }
- }
-}