diff options
| author | riperiperi <rhy3756547@hotmail.com> | 2022-12-26 18:50:27 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-26 15:50:27 -0300 |
| commit | 470be03c2ff22346a1f0ae53fa25f53c4d1790b5 (patch) | |
| tree | 7ce75f2ac860063279893571c762257806e197b5 /Ryujinx.Graphics.GAL/Format.cs | |
| parent | c963b3c80488f88c9d7f44588b6ba45051af3e2d (diff) | |
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
Diffstat (limited to 'Ryujinx.Graphics.GAL/Format.cs')
| -rw-r--r-- | Ryujinx.Graphics.GAL/Format.cs | 21 |
1 files changed, 21 insertions, 0 deletions
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 @@ -449,6 +449,27 @@ namespace Ryujinx.Graphics.GAL } /// <summary> + /// Checks if the texture format is 16 bit packed. + /// </summary> + /// <param name="format">Texture format</param> + /// <returns>True if the texture format is 16 bit packed, false otherwise</returns> + 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; + } + + /// <summary> /// Checks if the texture format is an ASTC format. /// </summary> /// <param name="format">Texture format</param> |
