Some small gpu improvements and shader improvements, add support for ASTC 4x4 textures (slow!)
This commit is contained in:
parent
aeb1bbf50c
commit
53a6922f87
11 changed files with 332 additions and 100 deletions
|
@ -59,14 +59,9 @@ namespace Ryujinx.Graphics.Gal.OpenGL
|
|||
{
|
||||
switch (Format)
|
||||
{
|
||||
case GalTextureFormat.R32G32B32A32: return (PixelFormat.Rgba, PixelType.Float);
|
||||
case GalTextureFormat.R16G16B16A16: return (PixelFormat.Rgba, PixelType.HalfFloat);
|
||||
case GalTextureFormat.A8B8G8R8: return (PixelFormat.Rgba, PixelType.UnsignedByte);
|
||||
case GalTextureFormat.R32: return (PixelFormat.Red, PixelType.Float);
|
||||
case GalTextureFormat.A1B5G5R5: return (PixelFormat.Rgba, PixelType.UnsignedShort5551);
|
||||
case GalTextureFormat.B5G6R5: return (PixelFormat.Rgb, PixelType.UnsignedShort565);
|
||||
case GalTextureFormat.G8R8: return (PixelFormat.Rg, PixelType.UnsignedByte);
|
||||
case GalTextureFormat.R8: return (PixelFormat.Red, PixelType.UnsignedByte);
|
||||
case GalTextureFormat.A8B8G8R8: return (PixelFormat.Rgba, PixelType.UnsignedByte);
|
||||
case GalTextureFormat.A1B5G5R5: return (PixelFormat.Rgba, PixelType.UnsignedShort5551);
|
||||
case GalTextureFormat.B5G6R5: return (PixelFormat.Rgb, PixelType.UnsignedShort565);
|
||||
}
|
||||
|
||||
throw new NotImplementedException(Format.ToString());
|
||||
|
@ -150,20 +145,20 @@ namespace Ryujinx.Graphics.Gal.OpenGL
|
|||
{
|
||||
switch (BlendEquation)
|
||||
{
|
||||
default:
|
||||
case GalBlendEquation.FuncAdd: return BlendEquationMode.FuncAdd;
|
||||
case GalBlendEquation.FuncSubtract: return BlendEquationMode.FuncSubtract;
|
||||
case GalBlendEquation.FuncReverseSubtract: return BlendEquationMode.FuncReverseSubtract;
|
||||
case GalBlendEquation.Min: return BlendEquationMode.Min;
|
||||
case GalBlendEquation.Max: return BlendEquationMode.Max;
|
||||
}
|
||||
|
||||
throw new ArgumentException(nameof(BlendEquation));
|
||||
}
|
||||
|
||||
public static BlendingFactorSrc GetBlendFactorSrc(GalBlendFactor BlendFactor)
|
||||
{
|
||||
switch (BlendFactor)
|
||||
{
|
||||
default:
|
||||
case GalBlendFactor.Zero: return BlendingFactorSrc.Zero;
|
||||
case GalBlendFactor.One: return BlendingFactorSrc.One;
|
||||
case GalBlendFactor.SrcColor: return BlendingFactorSrc.SrcColor;
|
||||
|
@ -184,13 +179,14 @@ namespace Ryujinx.Graphics.Gal.OpenGL
|
|||
case GalBlendFactor.Src1Alpha: return BlendingFactorSrc.Src1Alpha;
|
||||
case GalBlendFactor.OneMinusSrc1Alpha: return BlendingFactorSrc.OneMinusSrc1Alpha;
|
||||
}
|
||||
|
||||
throw new ArgumentException(nameof(BlendFactor));
|
||||
}
|
||||
|
||||
public static BlendingFactorDest GetBlendFactorDst(GalBlendFactor BlendFactor)
|
||||
{
|
||||
switch (BlendFactor)
|
||||
{
|
||||
default:
|
||||
case GalBlendFactor.Zero: return BlendingFactorDest.Zero;
|
||||
case GalBlendFactor.One: return BlendingFactorDest.One;
|
||||
case GalBlendFactor.SrcColor: return BlendingFactorDest.SrcColor;
|
||||
|
@ -211,6 +207,8 @@ namespace Ryujinx.Graphics.Gal.OpenGL
|
|||
case GalBlendFactor.Src1Alpha: return BlendingFactorDest.Src1Alpha;
|
||||
case GalBlendFactor.OneMinusSrc1Alpha: return BlendingFactorDest.OneMinusSrc1Alpha;
|
||||
}
|
||||
|
||||
throw new ArgumentException(nameof(BlendFactor));
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue