From 470be03c2ff22346a1f0ae53fa25f53c4d1790b5 Mon Sep 17 00:00:00 2001 From: riperiperi Date: Mon, 26 Dec 2022 18:50:27 +0000 Subject: GPU: Add fallback when 16-bit formats are not supported (#4108) * Add conversion for 16 bit RGBA formats (not supported in Rosetta) * Rebase fix Rebase fix * Forgot to remove this * Fix RGBA16 format conversion * Add RGBA4 -> RGBA8 conversion * Handle host stride alignment * Address Feedback Part 1 * Can't count * Don't zero out rgb when alpha is 0 * Separate RGBA4 and 5-bit component formats Not sure of a better way to name them... * Add A1B5G5R5 conversion * Put this in the right place. * Make format naming consistent for capabilities * Change method names --- Ryujinx.Graphics.GAL/Format.cs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'Ryujinx.Graphics.GAL/Format.cs') diff --git a/Ryujinx.Graphics.GAL/Format.cs b/Ryujinx.Graphics.GAL/Format.cs index 87d08803..5e0274e5 100644 --- a/Ryujinx.Graphics.GAL/Format.cs +++ b/Ryujinx.Graphics.GAL/Format.cs @@ -448,6 +448,27 @@ namespace Ryujinx.Graphics.GAL return false; } + /// + /// Checks if the texture format is 16 bit packed. + /// + /// Texture format + /// True if the texture format is 16 bit packed, false otherwise + public static bool Is16BitPacked(this Format format) + { + switch (format) + { + case Format.B5G6R5Unorm: + case Format.B5G5R5A1Unorm: + case Format.R5G5B5X1Unorm: + case Format.R5G5B5A1Unorm: + case Format.R5G6B5Unorm: + case Format.R4G4B4A4Unorm: + return true; + } + + return false; + } + /// /// Checks if the texture format is an ASTC format. /// -- cgit v1.2.3