mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-09-11 18:28:50 +02:00
* 3D engine now uses DeviceState too, plus new state modification tracking * Remove old methods code * Remove GpuState and friends * Optimize DeviceState, force inline some functions * This change was not supposed to go in * Proper channel initialization * Optimize state read/write methods even more * Fix debug build * Do not dirty state if the write is redundant * The YControl register should dirty either the viewport or front face state too, to update the host origin * Avoid redundant vertex buffer updates * Move state and get rid of the Ryujinx.Graphics.Gpu.State namespace * Comments and nits * Fix rebase * PR feedback * Move changed = false to improve codegen * PR feedback * Carry RyuJIT a bit more
42 lines
1.6 KiB
C#
42 lines
1.6 KiB
C#
using Ryujinx.Graphics.GAL;
|
|
using Ryujinx.Graphics.Gpu.Image;
|
|
|
|
namespace Ryujinx.Graphics.Gpu.Engine.Types
|
|
{
|
|
/// <summary>
|
|
/// Depth-stencil texture format.
|
|
/// </summary>
|
|
enum ZetaFormat
|
|
{
|
|
D32Float = 0xa,
|
|
D16Unorm = 0x13,
|
|
D24UnormS8Uint = 0x14,
|
|
D24Unorm = 0x15,
|
|
S8UintD24Unorm = 0x16,
|
|
S8Uint = 0x17,
|
|
D32FloatS8Uint = 0x19
|
|
}
|
|
|
|
static class ZetaFormatConverter
|
|
{
|
|
/// <summary>
|
|
/// Converts the depth-stencil texture format to a host compatible format.
|
|
/// </summary>
|
|
/// <param name="format">Depth-stencil format</param>
|
|
/// <returns>Host compatible format enum value</returns>
|
|
public static FormatInfo Convert(this ZetaFormat format)
|
|
{
|
|
return format switch
|
|
{
|
|
ZetaFormat.D32Float => new FormatInfo(Format.D32Float, 1, 1, 4, 1),
|
|
ZetaFormat.D16Unorm => new FormatInfo(Format.D16Unorm, 1, 1, 2, 1),
|
|
ZetaFormat.D24UnormS8Uint => new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4, 2),
|
|
ZetaFormat.D24Unorm => new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4, 1),
|
|
ZetaFormat.S8UintD24Unorm => new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4, 2),
|
|
ZetaFormat.S8Uint => new FormatInfo(Format.S8Uint, 1, 1, 1, 1),
|
|
ZetaFormat.D32FloatS8Uint => new FormatInfo(Format.D32FloatS8Uint, 1, 1, 8, 2),
|
|
_ => FormatInfo.Default
|
|
};
|
|
}
|
|
}
|
|
}
|