Make structs readonly when applicable (#4002)

* Make all structs readonly when applicable. It should reduce amount of needless defensive copies

* Make structs with trivial boilerplate equality code record structs

* Remove unnecessary readonly modifiers from TextureCreateInfo

* Make BitMap structs readonly too
This commit is contained in:
Andrey Sukharev 2022-12-05 16:47:39 +03:00 committed by GitHub
parent ae13f0ab4d
commit 4da44e09cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
133 changed files with 156 additions and 378 deletions

View file

@ -26,7 +26,7 @@ namespace Ryujinx.Graphics.Gpu.Shader
/// </summary>
public const TranslationFlags DefaultFlags = TranslationFlags.DebugMode;
private struct TranslatedShader
private readonly struct TranslatedShader
{
public readonly CachedShaderStage Shader;
public readonly ShaderProgram Program;
@ -38,7 +38,7 @@ namespace Ryujinx.Graphics.Gpu.Shader
}
}
private struct TranslatedShaderVertexPair
private readonly struct TranslatedShaderVertexPair
{
public readonly CachedShaderStage VertexA;
public readonly CachedShaderStage VertexB;
@ -59,7 +59,7 @@ namespace Ryujinx.Graphics.Gpu.Shader
private readonly Dictionary<ulong, CachedShaderProgram> _cpPrograms;
private readonly Dictionary<ShaderAddresses, CachedShaderProgram> _gpPrograms;
private struct ProgramToSave
private readonly struct ProgramToSave
{
public readonly CachedShaderProgram CachedProgram;
public readonly IProgram HostProgram;