diff options
author | Andrey Sukharev <SukharevAndrey@users.noreply.github.com> | 2023-01-19 01:25:16 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-18 22:25:16 +0000 |
commit | ae4324032a48ee08a808354673f47536e76759d0 (patch) | |
tree | 90c7c6aceb14d095761a257a41e7dc6882d30d73 /Ryujinx.Graphics.Shader/Decoders/InstTable.cs | |
parent | f449895e6d8af90f727de6590fd6120038c73986 (diff) |
Optimize string memory usage. Use Spans and StringBuilders where possible (#3933)1.1.572
* 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>
Diffstat (limited to 'Ryujinx.Graphics.Shader/Decoders/InstTable.cs')
-rw-r--r-- | Ryujinx.Graphics.Shader/Decoders/InstTable.cs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/Ryujinx.Graphics.Shader/Decoders/InstTable.cs b/Ryujinx.Graphics.Shader/Decoders/InstTable.cs index 911f1581..eaa77930 100644 --- a/Ryujinx.Graphics.Shader/Decoders/InstTable.cs +++ b/Ryujinx.Graphics.Shader/Decoders/InstTable.cs @@ -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') { |