Optimize string memory usage. Use Spans and StringBuilders where possible (#3933)
* Optimize string memory usage. Use ReadOnlySpan<char> and StringBuilder where possible. * Fix copypaste error * Code generator review fixes * Use if statement instead of switch * Code style fixes Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Another code style fix * Styling fix Co-authored-by: Mary-nyan <thog@protonmail.com> * Styling fix Co-authored-by: gdkchan <gab.dark.100@gmail.com> Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> Co-authored-by: Mary-nyan <thog@protonmail.com> Co-authored-by: gdkchan <gab.dark.100@gmail.com>
This commit is contained in:
parent
f449895e6d
commit
ae4324032a
19 changed files with 118 additions and 81 deletions
|
@ -1,4 +1,5 @@
|
|||
using Ryujinx.Graphics.Shader.Instructions;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Graphics.Shader.Decoders
|
||||
{
|
||||
|
@ -329,18 +330,18 @@ namespace Ryujinx.Graphics.Shader.Decoders
|
|||
|
||||
private static void Add(string encoding, InstName name, InstEmitter emitter, InstProps props = InstProps.None)
|
||||
{
|
||||
encoding = encoding.Substring(0, EncodingBits);
|
||||
ReadOnlySpan<char> encodingPart = encoding.AsSpan(0, EncodingBits);
|
||||
|
||||
int bit = encoding.Length - 1;
|
||||
int bit = encodingPart.Length - 1;
|
||||
int value = 0;
|
||||
int xMask = 0;
|
||||
int xBits = 0;
|
||||
|
||||
int[] xPos = new int[encoding.Length];
|
||||
int[] xPos = new int[encodingPart.Length];
|
||||
|
||||
for (int index = 0; index < encoding.Length; index++, bit--)
|
||||
for (int index = 0; index < encodingPart.Length; index++, bit--)
|
||||
{
|
||||
char chr = encoding[index];
|
||||
char chr = encodingPart[index];
|
||||
|
||||
if (chr == '1')
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue