mirror of
https://github.com/ryujinx-mirror/ryujinx.git
synced 2025-01-28 18:46:47 -06:00
3b46bb73f7
* dotnet format style --severity info Some changes were manually reverted. * dotnet format analyzers --serverity info Some changes have been minimally adapted. * Restore a few unused methods and variables * Silence dotnet format IDE0060 warnings * Silence dotnet format IDE0052 warnings * Address dotnet format CA1816 warnings * Address or silence dotnet format CA1069 warnings * Address or silence dotnet format CA2211 warnings * Address remaining dotnet format analyzer warnings * Address review comments * Address most dotnet format whitespace warnings * Apply dotnet format whitespace formatting A few of them have been manually reverted and the corresponding warning was silenced * Format if-blocks correctly * Run dotnet format whitespace after rebase * Run dotnet format style after rebase * Another rebase, another dotnet format run * Run dotnet format style after rebase * Run dotnet format after rebase and remove unused usings - analyzers - style - whitespace * Disable 'prefer switch expression' rule * Add comments to disabled warnings * Remove a few unused parameters * Replace MmeShadowScratch with Array256<uint> * Simplify properties and array initialization, Use const when possible, Remove trailing commas * Start working on disabled warnings * Fix and silence a few dotnet-format warnings again * Run dotnet format after rebase * Address IDE0251 warnings * Silence IDE0060 in .editorconfig * Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas" This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e. * dotnet format whitespace after rebase * First pass of dotnet format * Add unsafe dotnet format changes * Fix typos * Add trailing commas * Disable formatting for FormatTable * Address review feedback
59 lines
2.1 KiB
C#
59 lines
2.1 KiB
C#
using Ryujinx.Common.Memory;
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Ryujinx.Graphics.Gpu.Shader
|
|
{
|
|
/// <summary>
|
|
/// Transform feedback descriptor.
|
|
/// </summary>
|
|
struct TransformFeedbackDescriptor
|
|
{
|
|
// New fields should be added to the end of the struct to keep disk shader cache compatibility.
|
|
|
|
/// <summary>
|
|
/// Index of the transform feedback.
|
|
/// </summary>
|
|
public readonly int BufferIndex;
|
|
|
|
/// <summary>
|
|
/// Amount of bytes consumed per vertex.
|
|
/// </summary>
|
|
public readonly int Stride;
|
|
|
|
/// <summary>
|
|
/// Number of varyings written into the buffer.
|
|
/// </summary>
|
|
public readonly int VaryingCount;
|
|
|
|
/// <summary>
|
|
/// Location of varyings to be written into the buffer. Each byte is one location.
|
|
/// </summary>
|
|
public Array32<uint> VaryingLocations; // Making this readonly breaks AsSpan
|
|
|
|
/// <summary>
|
|
/// Creates a new transform feedback descriptor.
|
|
/// </summary>
|
|
/// <param name="bufferIndex">Index of the transform feedback</param>
|
|
/// <param name="stride">Amount of bytes consumed per vertex</param>
|
|
/// <param name="varyingCount">Number of varyings written into the buffer. Indicates size in bytes of <paramref name="varyingLocations"/></param>
|
|
/// <param name="varyingLocations">Location of varyings to be written into the buffer. Each byte is one location</param>
|
|
public TransformFeedbackDescriptor(int bufferIndex, int stride, int varyingCount, ref Array32<uint> varyingLocations)
|
|
{
|
|
BufferIndex = bufferIndex;
|
|
Stride = stride;
|
|
VaryingCount = varyingCount;
|
|
VaryingLocations = varyingLocations;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets a span of the <see cref="VaryingLocations"/>.
|
|
/// </summary>
|
|
/// <returns>Span of varying locations</returns>
|
|
public ReadOnlySpan<byte> AsSpan()
|
|
{
|
|
return MemoryMarshal.Cast<uint, byte>(VaryingLocations.AsSpan())[..Math.Min(128, VaryingCount)];
|
|
}
|
|
}
|
|
}
|