ASTC optimizations (#845)
* ASTC optimizations * Move code to Ryujinx.Common * Support 3D textures * Address feedback * Remove ASTC logging * Use stackalloc instead of a Buffer20 struct * Code style and cleanup * Respond to feedback * Rearrange public/private property ordering
This commit is contained in:
parent
947e14d3be
commit
d1ab9fb42c
12 changed files with 1009 additions and 599 deletions
23
Ryujinx.Graphics.Texture/Astc/EndPointSet.cs
Normal file
23
Ryujinx.Graphics.Texture/Astc/EndPointSet.cs
Normal file
|
@ -0,0 +1,23 @@
|
|||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Ryujinx.Graphics.Texture.Astc
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential, Size = AstcPixel.StructSize * 8)]
|
||||
internal struct EndPointSet
|
||||
{
|
||||
private AstcPixel _start;
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public Span<AstcPixel> Get(int index)
|
||||
{
|
||||
Debug.Assert(index < 4);
|
||||
|
||||
ref AstcPixel start = ref Unsafe.Add(ref _start, index * 2);
|
||||
|
||||
return MemoryMarshal.CreateSpan(ref start, 2);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue