Fix wrong face culling once and for all (#1277)
* Viewport swizzle support on NV and clip origin * Initialize default viewport swizzle state, emulate viewport swizzle on shaders when not supported * Address PR feedback
This commit is contained in:
parent
83d94b21d0
commit
a15b951721
16 changed files with 202 additions and 53 deletions
|
@ -416,5 +416,32 @@ namespace Ryujinx.Graphics.OpenGL
|
|||
|
||||
return TextureTarget.Texture2D;
|
||||
}
|
||||
|
||||
public static NvViewportSwizzle Convert(this ViewportSwizzle swizzle)
|
||||
{
|
||||
switch (swizzle)
|
||||
{
|
||||
case ViewportSwizzle.PositiveX:
|
||||
return NvViewportSwizzle.ViewportSwizzlePositiveXNv;
|
||||
case ViewportSwizzle.PositiveY:
|
||||
return NvViewportSwizzle.ViewportSwizzlePositiveYNv;
|
||||
case ViewportSwizzle.PositiveZ:
|
||||
return NvViewportSwizzle.ViewportSwizzlePositiveZNv;
|
||||
case ViewportSwizzle.PositiveW:
|
||||
return NvViewportSwizzle.ViewportSwizzlePositiveWNv;
|
||||
case ViewportSwizzle.NegativeX:
|
||||
return NvViewportSwizzle.ViewportSwizzleNegativeXNv;
|
||||
case ViewportSwizzle.NegativeY:
|
||||
return NvViewportSwizzle.ViewportSwizzleNegativeYNv;
|
||||
case ViewportSwizzle.NegativeZ:
|
||||
return NvViewportSwizzle.ViewportSwizzleNegativeZNv;
|
||||
case ViewportSwizzle.NegativeW:
|
||||
return NvViewportSwizzle.ViewportSwizzleNegativeWNv;
|
||||
}
|
||||
|
||||
Logger.PrintDebug(LogClass.Gpu, $"Invalid {nameof(ViewportSwizzle)} enum value: {swizzle}.");
|
||||
|
||||
return NvViewportSwizzle.ViewportSwizzlePositiveXNv;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue