Fix R5G6B5 in SurfaceFlinger (#863)
Also fix B5G6R5Unorm wrong definition in Ryujinx.Graphics.OpenGL.
This commit is contained in:
parent
80707f9311
commit
ab29521faa
2 changed files with 3 additions and 3 deletions
|
@ -160,7 +160,7 @@ namespace Ryujinx.Graphics.OpenGL
|
||||||
Add(Format.Astc10x10Srgb, new FormatInfo(1, false, false, All.CompressedSrgb8Alpha8Astc10X10Khr));
|
Add(Format.Astc10x10Srgb, new FormatInfo(1, false, false, All.CompressedSrgb8Alpha8Astc10X10Khr));
|
||||||
Add(Format.Astc12x10Srgb, new FormatInfo(1, false, false, All.CompressedSrgb8Alpha8Astc12X10Khr));
|
Add(Format.Astc12x10Srgb, new FormatInfo(1, false, false, All.CompressedSrgb8Alpha8Astc12X10Khr));
|
||||||
Add(Format.Astc12x12Srgb, new FormatInfo(1, false, false, All.CompressedSrgb8Alpha8Astc12X12Khr));
|
Add(Format.Astc12x12Srgb, new FormatInfo(1, false, false, All.CompressedSrgb8Alpha8Astc12X12Khr));
|
||||||
Add(Format.B5G6R5Unorm, new FormatInfo(3, true, false, All.Rgb565, PixelFormat.Bgr, PixelType.UnsignedShort565));
|
Add(Format.B5G6R5Unorm, new FormatInfo(3, true, false, All.Rgb565, PixelFormat.Rgb, PixelType.UnsignedShort565));
|
||||||
Add(Format.B5G5R5X1Unorm, new FormatInfo(4, true, false, All.Rgb5, PixelFormat.Bgra, PixelType.UnsignedShort5551));
|
Add(Format.B5G5R5X1Unorm, new FormatInfo(4, true, false, All.Rgb5, PixelFormat.Bgra, PixelType.UnsignedShort5551));
|
||||||
Add(Format.B5G5R5A1Unorm, new FormatInfo(4, true, false, All.Rgb5A1, PixelFormat.Bgra, PixelType.UnsignedShort5551));
|
Add(Format.B5G5R5A1Unorm, new FormatInfo(4, true, false, All.Rgb5A1, PixelFormat.Bgra, PixelType.UnsignedShort5551));
|
||||||
Add(Format.A1B5G5R5Unorm, new FormatInfo(4, true, false, All.Rgb5A1, PixelFormat.Bgra, PixelType.UnsignedShort1555Reversed));
|
Add(Format.A1B5G5R5Unorm, new FormatInfo(4, true, false, All.Rgb5A1, PixelFormat.Bgra, PixelType.UnsignedShort1555Reversed));
|
||||||
|
|
|
@ -264,7 +264,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||||
case ColorFormat.X8B8G8R8:
|
case ColorFormat.X8B8G8R8:
|
||||||
return Format.R8G8B8A8Unorm;
|
return Format.R8G8B8A8Unorm;
|
||||||
case ColorFormat.R5G6B5:
|
case ColorFormat.R5G6B5:
|
||||||
return Format.R5G6B5Unorm;
|
return Format.B5G6R5Unorm;
|
||||||
case ColorFormat.A8R8G8B8:
|
case ColorFormat.A8R8G8B8:
|
||||||
return Format.B8G8R8A8Unorm;
|
return Format.B8G8R8A8Unorm;
|
||||||
case ColorFormat.A4B4G4R4:
|
case ColorFormat.A4B4G4R4:
|
||||||
|
@ -298,7 +298,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||||
Format format = ConvertColorFormat(_bufferQueue[slot].Data.Buffer.Surfaces[0].ColorFormat);
|
Format format = ConvertColorFormat(_bufferQueue[slot].Data.Buffer.Surfaces[0].ColorFormat);
|
||||||
|
|
||||||
int bytesPerPixel =
|
int bytesPerPixel =
|
||||||
format == Format.R5G6B5Unorm ||
|
format == Format.B5G6R5Unorm ||
|
||||||
format == Format.R4G4B4A4Unorm ? 2 : 4;
|
format == Format.R4G4B4A4Unorm ? 2 : 4;
|
||||||
|
|
||||||
int gobBlocksInY = 1 << _bufferQueue[slot].Data.Buffer.Surfaces[0].BlockHeightLog2;
|
int gobBlocksInY = 1 << _bufferQueue[slot].Data.Buffer.Surfaces[0].BlockHeightLog2;
|
||||||
|
|
Reference in a new issue