Address PR feedback
Add TODO comment for GL_EXT_polygon_offset_clamp
This commit is contained in:
parent
383452f5cf
commit
18814d44b2
16 changed files with 104 additions and 101 deletions
|
@ -38,6 +38,7 @@ namespace Ryujinx.Common
|
||||||
using (var mem = new MemoryStream())
|
using (var mem = new MemoryStream())
|
||||||
{
|
{
|
||||||
stream.CopyTo(mem);
|
stream.CopyTo(mem);
|
||||||
|
|
||||||
return mem.ToArray();
|
return mem.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -53,6 +54,7 @@ namespace Ryujinx.Common
|
||||||
using (var mem = new MemoryStream())
|
using (var mem = new MemoryStream())
|
||||||
{
|
{
|
||||||
await stream.CopyToAsync(mem);
|
await stream.CopyToAsync(mem);
|
||||||
|
|
||||||
return mem.ToArray();
|
return mem.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,8 @@ namespace Ryujinx.Graphics.GAL
|
||||||
{
|
{
|
||||||
public struct VertexAttribDescriptor
|
public struct VertexAttribDescriptor
|
||||||
{
|
{
|
||||||
public int BufferIndex { get; }
|
public int BufferIndex { get; }
|
||||||
public int Offset { get; }
|
public int Offset { get; }
|
||||||
|
|
||||||
public Format Format { get; }
|
public Format Format { get; }
|
||||||
|
|
||||||
|
|
|
@ -30,8 +30,8 @@ namespace Ryujinx.Graphics.Gpu.Shader
|
||||||
/// <param name="code">Maxwell binary shader code</param>
|
/// <param name="code">Maxwell binary shader code</param>
|
||||||
public CachedShader(ShaderProgram program, int[] code)
|
public CachedShader(ShaderProgram program, int[] code)
|
||||||
{
|
{
|
||||||
Program = program;
|
Program = program;
|
||||||
Code = code;
|
Code = code;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -35,22 +35,22 @@ namespace Ryujinx.Graphics.Gpu.State
|
||||||
{
|
{
|
||||||
return type switch
|
return type switch
|
||||||
{
|
{
|
||||||
PrimitiveType.Points => PrimitiveTopology.Points,
|
PrimitiveType.Points => PrimitiveTopology.Points,
|
||||||
PrimitiveType.Lines => PrimitiveTopology.Lines,
|
PrimitiveType.Lines => PrimitiveTopology.Lines,
|
||||||
PrimitiveType.LineLoop => PrimitiveTopology.LineLoop,
|
PrimitiveType.LineLoop => PrimitiveTopology.LineLoop,
|
||||||
PrimitiveType.LineStrip => PrimitiveTopology.LineStrip,
|
PrimitiveType.LineStrip => PrimitiveTopology.LineStrip,
|
||||||
PrimitiveType.Triangles => PrimitiveTopology.Triangles,
|
PrimitiveType.Triangles => PrimitiveTopology.Triangles,
|
||||||
PrimitiveType.TriangleStrip => PrimitiveTopology.TriangleStrip,
|
PrimitiveType.TriangleStrip => PrimitiveTopology.TriangleStrip,
|
||||||
PrimitiveType.TriangleFan => PrimitiveTopology.TriangleFan,
|
PrimitiveType.TriangleFan => PrimitiveTopology.TriangleFan,
|
||||||
PrimitiveType.Quads => PrimitiveTopology.Quads,
|
PrimitiveType.Quads => PrimitiveTopology.Quads,
|
||||||
PrimitiveType.QuadStrip => PrimitiveTopology.QuadStrip,
|
PrimitiveType.QuadStrip => PrimitiveTopology.QuadStrip,
|
||||||
PrimitiveType.Polygon => PrimitiveTopology.Polygon,
|
PrimitiveType.Polygon => PrimitiveTopology.Polygon,
|
||||||
PrimitiveType.LinesAdjacency => PrimitiveTopology.LinesAdjacency,
|
PrimitiveType.LinesAdjacency => PrimitiveTopology.LinesAdjacency,
|
||||||
PrimitiveType.LineStripAdjacency => PrimitiveTopology.LineStripAdjacency,
|
PrimitiveType.LineStripAdjacency => PrimitiveTopology.LineStripAdjacency,
|
||||||
PrimitiveType.TrianglesAdjacency => PrimitiveTopology.TrianglesAdjacency,
|
PrimitiveType.TrianglesAdjacency => PrimitiveTopology.TrianglesAdjacency,
|
||||||
PrimitiveType.TriangleStripAdjacency => PrimitiveTopology.TriangleStripAdjacency,
|
PrimitiveType.TriangleStripAdjacency => PrimitiveTopology.TriangleStripAdjacency,
|
||||||
PrimitiveType.Patches => PrimitiveTopology.Patches,
|
PrimitiveType.Patches => PrimitiveTopology.Patches,
|
||||||
_ => PrimitiveTopology.Triangles
|
_ => PrimitiveTopology.Triangles
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,67 +81,67 @@ namespace Ryujinx.Graphics.Gpu.State
|
||||||
{
|
{
|
||||||
return format switch
|
return format switch
|
||||||
{
|
{
|
||||||
RtFormat.D32Float => new FormatInfo(Format.D32Float, 1, 1, 4),
|
RtFormat.D32Float => new FormatInfo(Format.D32Float, 1, 1, 4),
|
||||||
RtFormat.D16Unorm => new FormatInfo(Format.D16Unorm, 1, 1, 2),
|
RtFormat.D16Unorm => new FormatInfo(Format.D16Unorm, 1, 1, 2),
|
||||||
RtFormat.D24UnormS8Uint => new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4),
|
RtFormat.D24UnormS8Uint => new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4),
|
||||||
RtFormat.D24Unorm => new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4),
|
RtFormat.D24Unorm => new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4),
|
||||||
RtFormat.S8UintD24Unorm => new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4),
|
RtFormat.S8UintD24Unorm => new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4),
|
||||||
RtFormat.S8Uint => new FormatInfo(Format.S8Uint, 1, 1, 1),
|
RtFormat.S8Uint => new FormatInfo(Format.S8Uint, 1, 1, 1),
|
||||||
RtFormat.D32FloatS8Uint => new FormatInfo(Format.D32FloatS8Uint, 1, 1, 8),
|
RtFormat.D32FloatS8Uint => new FormatInfo(Format.D32FloatS8Uint, 1, 1, 8),
|
||||||
RtFormat.R32G32B32A32Float => new FormatInfo(Format.R32G32B32A32Float, 1, 1, 16),
|
RtFormat.R32G32B32A32Float => new FormatInfo(Format.R32G32B32A32Float, 1, 1, 16),
|
||||||
RtFormat.R32G32B32A32Sint => new FormatInfo(Format.R32G32B32A32Sint, 1, 1, 16),
|
RtFormat.R32G32B32A32Sint => new FormatInfo(Format.R32G32B32A32Sint, 1, 1, 16),
|
||||||
RtFormat.R32G32B32A32Uint => new FormatInfo(Format.R32G32B32A32Uint, 1, 1, 16),
|
RtFormat.R32G32B32A32Uint => new FormatInfo(Format.R32G32B32A32Uint, 1, 1, 16),
|
||||||
RtFormat.R32G32B32X32Float => new FormatInfo(Format.R32G32B32A32Float, 1, 1, 16),
|
RtFormat.R32G32B32X32Float => new FormatInfo(Format.R32G32B32A32Float, 1, 1, 16),
|
||||||
RtFormat.R32G32B32X32Sint => new FormatInfo(Format.R32G32B32A32Sint, 1, 1, 16),
|
RtFormat.R32G32B32X32Sint => new FormatInfo(Format.R32G32B32A32Sint, 1, 1, 16),
|
||||||
RtFormat.R32G32B32X32Uint => new FormatInfo(Format.R32G32B32A32Uint, 1, 1, 16),
|
RtFormat.R32G32B32X32Uint => new FormatInfo(Format.R32G32B32A32Uint, 1, 1, 16),
|
||||||
RtFormat.R16G16B16X16Unorm => new FormatInfo(Format.R16G16B16A16Unorm, 1, 1, 8),
|
RtFormat.R16G16B16X16Unorm => new FormatInfo(Format.R16G16B16A16Unorm, 1, 1, 8),
|
||||||
RtFormat.R16G16B16X16Snorm => new FormatInfo(Format.R16G16B16A16Snorm, 1, 1, 8),
|
RtFormat.R16G16B16X16Snorm => new FormatInfo(Format.R16G16B16A16Snorm, 1, 1, 8),
|
||||||
RtFormat.R16G16B16X16Sint => new FormatInfo(Format.R16G16B16A16Sint, 1, 1, 8),
|
RtFormat.R16G16B16X16Sint => new FormatInfo(Format.R16G16B16A16Sint, 1, 1, 8),
|
||||||
RtFormat.R16G16B16X16Uint => new FormatInfo(Format.R16G16B16A16Uint, 1, 1, 8),
|
RtFormat.R16G16B16X16Uint => new FormatInfo(Format.R16G16B16A16Uint, 1, 1, 8),
|
||||||
RtFormat.R16G16B16A16Float => new FormatInfo(Format.R16G16B16A16Float, 1, 1, 8),
|
RtFormat.R16G16B16A16Float => new FormatInfo(Format.R16G16B16A16Float, 1, 1, 8),
|
||||||
RtFormat.R32G32Float => new FormatInfo(Format.R32G32Float, 1, 1, 8),
|
RtFormat.R32G32Float => new FormatInfo(Format.R32G32Float, 1, 1, 8),
|
||||||
RtFormat.R32G32Sint => new FormatInfo(Format.R32G32Sint, 1, 1, 8),
|
RtFormat.R32G32Sint => new FormatInfo(Format.R32G32Sint, 1, 1, 8),
|
||||||
RtFormat.R32G32Uint => new FormatInfo(Format.R32G32Uint, 1, 1, 8),
|
RtFormat.R32G32Uint => new FormatInfo(Format.R32G32Uint, 1, 1, 8),
|
||||||
RtFormat.R16G16B16X16Float => new FormatInfo(Format.R16G16B16A16Float, 1, 1, 8),
|
RtFormat.R16G16B16X16Float => new FormatInfo(Format.R16G16B16A16Float, 1, 1, 8),
|
||||||
RtFormat.B8G8R8A8Unorm => new FormatInfo(Format.B8G8R8A8Unorm, 1, 1, 4),
|
RtFormat.B8G8R8A8Unorm => new FormatInfo(Format.B8G8R8A8Unorm, 1, 1, 4),
|
||||||
RtFormat.B8G8R8A8Srgb => new FormatInfo(Format.B8G8R8A8Srgb, 1, 1, 4),
|
RtFormat.B8G8R8A8Srgb => new FormatInfo(Format.B8G8R8A8Srgb, 1, 1, 4),
|
||||||
RtFormat.R10G10B10A2Unorm => new FormatInfo(Format.R10G10B10A2Unorm, 1, 1, 4),
|
RtFormat.R10G10B10A2Unorm => new FormatInfo(Format.R10G10B10A2Unorm, 1, 1, 4),
|
||||||
RtFormat.R10G10B10A2Uint => new FormatInfo(Format.R10G10B10A2Uint, 1, 1, 4),
|
RtFormat.R10G10B10A2Uint => new FormatInfo(Format.R10G10B10A2Uint, 1, 1, 4),
|
||||||
RtFormat.R8G8B8A8Unorm => new FormatInfo(Format.R8G8B8A8Unorm, 1, 1, 4),
|
RtFormat.R8G8B8A8Unorm => new FormatInfo(Format.R8G8B8A8Unorm, 1, 1, 4),
|
||||||
RtFormat.R8G8B8A8Srgb => new FormatInfo(Format.R8G8B8A8Srgb, 1, 1, 4),
|
RtFormat.R8G8B8A8Srgb => new FormatInfo(Format.R8G8B8A8Srgb, 1, 1, 4),
|
||||||
RtFormat.R8G8B8X8Snorm => new FormatInfo(Format.R8G8B8A8Snorm, 1, 1, 4),
|
RtFormat.R8G8B8X8Snorm => new FormatInfo(Format.R8G8B8A8Snorm, 1, 1, 4),
|
||||||
RtFormat.R8G8B8X8Sint => new FormatInfo(Format.R8G8B8A8Sint, 1, 1, 4),
|
RtFormat.R8G8B8X8Sint => new FormatInfo(Format.R8G8B8A8Sint, 1, 1, 4),
|
||||||
RtFormat.R8G8B8X8Uint => new FormatInfo(Format.R8G8B8A8Uint, 1, 1, 4),
|
RtFormat.R8G8B8X8Uint => new FormatInfo(Format.R8G8B8A8Uint, 1, 1, 4),
|
||||||
RtFormat.R16G16Unorm => new FormatInfo(Format.R16G16Unorm, 1, 1, 4),
|
RtFormat.R16G16Unorm => new FormatInfo(Format.R16G16Unorm, 1, 1, 4),
|
||||||
RtFormat.R16G16Snorm => new FormatInfo(Format.R16G16Snorm, 1, 1, 4),
|
RtFormat.R16G16Snorm => new FormatInfo(Format.R16G16Snorm, 1, 1, 4),
|
||||||
RtFormat.R16G16Sint => new FormatInfo(Format.R16G16Sint, 1, 1, 4),
|
RtFormat.R16G16Sint => new FormatInfo(Format.R16G16Sint, 1, 1, 4),
|
||||||
RtFormat.R16G16Uint => new FormatInfo(Format.R16G16Uint, 1, 1, 4),
|
RtFormat.R16G16Uint => new FormatInfo(Format.R16G16Uint, 1, 1, 4),
|
||||||
RtFormat.R16G16Float => new FormatInfo(Format.R16G16Float, 1, 1, 4),
|
RtFormat.R16G16Float => new FormatInfo(Format.R16G16Float, 1, 1, 4),
|
||||||
RtFormat.R11G11B10Float => new FormatInfo(Format.R11G11B10Float, 1, 1, 4),
|
RtFormat.R11G11B10Float => new FormatInfo(Format.R11G11B10Float, 1, 1, 4),
|
||||||
RtFormat.R32Sint => new FormatInfo(Format.R32Sint, 1, 1, 4),
|
RtFormat.R32Sint => new FormatInfo(Format.R32Sint, 1, 1, 4),
|
||||||
RtFormat.R32Uint => new FormatInfo(Format.R32Uint, 1, 1, 4),
|
RtFormat.R32Uint => new FormatInfo(Format.R32Uint, 1, 1, 4),
|
||||||
RtFormat.R32Float => new FormatInfo(Format.R32Float, 1, 1, 4),
|
RtFormat.R32Float => new FormatInfo(Format.R32Float, 1, 1, 4),
|
||||||
RtFormat.B8G8R8X8Unorm => new FormatInfo(Format.B8G8R8A8Unorm, 1, 1, 4),
|
RtFormat.B8G8R8X8Unorm => new FormatInfo(Format.B8G8R8A8Unorm, 1, 1, 4),
|
||||||
RtFormat.B8G8R8X8Srgb => new FormatInfo(Format.B8G8R8A8Srgb, 1, 1, 4),
|
RtFormat.B8G8R8X8Srgb => new FormatInfo(Format.B8G8R8A8Srgb, 1, 1, 4),
|
||||||
RtFormat.B5G6R5Unorm => new FormatInfo(Format.B5G6R5Unorm, 1, 1, 2),
|
RtFormat.B5G6R5Unorm => new FormatInfo(Format.B5G6R5Unorm, 1, 1, 2),
|
||||||
RtFormat.B5G5R5A1Unorm => new FormatInfo(Format.B5G5R5A1Unorm, 1, 1, 2),
|
RtFormat.B5G5R5A1Unorm => new FormatInfo(Format.B5G5R5A1Unorm, 1, 1, 2),
|
||||||
RtFormat.R8G8Unorm => new FormatInfo(Format.R8G8Unorm, 1, 1, 2),
|
RtFormat.R8G8Unorm => new FormatInfo(Format.R8G8Unorm, 1, 1, 2),
|
||||||
RtFormat.R8G8Snorm => new FormatInfo(Format.R8G8Snorm, 1, 1, 2),
|
RtFormat.R8G8Snorm => new FormatInfo(Format.R8G8Snorm, 1, 1, 2),
|
||||||
RtFormat.R8G8Sint => new FormatInfo(Format.R8G8Sint, 1, 1, 2),
|
RtFormat.R8G8Sint => new FormatInfo(Format.R8G8Sint, 1, 1, 2),
|
||||||
RtFormat.R8G8Uint => new FormatInfo(Format.R8G8Uint, 1, 1, 2),
|
RtFormat.R8G8Uint => new FormatInfo(Format.R8G8Uint, 1, 1, 2),
|
||||||
RtFormat.R16Unorm => new FormatInfo(Format.R16Unorm, 1, 1, 2),
|
RtFormat.R16Unorm => new FormatInfo(Format.R16Unorm, 1, 1, 2),
|
||||||
RtFormat.R16Snorm => new FormatInfo(Format.R16Snorm, 1, 1, 2),
|
RtFormat.R16Snorm => new FormatInfo(Format.R16Snorm, 1, 1, 2),
|
||||||
RtFormat.R16Sint => new FormatInfo(Format.R16Sint, 1, 1, 2),
|
RtFormat.R16Sint => new FormatInfo(Format.R16Sint, 1, 1, 2),
|
||||||
RtFormat.R16Uint => new FormatInfo(Format.R16Uint, 1, 1, 2),
|
RtFormat.R16Uint => new FormatInfo(Format.R16Uint, 1, 1, 2),
|
||||||
RtFormat.R16Float => new FormatInfo(Format.R16Float, 1, 1, 2),
|
RtFormat.R16Float => new FormatInfo(Format.R16Float, 1, 1, 2),
|
||||||
RtFormat.R8Unorm => new FormatInfo(Format.R8Unorm, 1, 1, 1),
|
RtFormat.R8Unorm => new FormatInfo(Format.R8Unorm, 1, 1, 1),
|
||||||
RtFormat.R8Snorm => new FormatInfo(Format.R8Snorm, 1, 1, 1),
|
RtFormat.R8Snorm => new FormatInfo(Format.R8Snorm, 1, 1, 1),
|
||||||
RtFormat.R8Sint => new FormatInfo(Format.R8Sint, 1, 1, 1),
|
RtFormat.R8Sint => new FormatInfo(Format.R8Sint, 1, 1, 1),
|
||||||
RtFormat.R8Uint => new FormatInfo(Format.R8Uint, 1, 1, 1),
|
RtFormat.R8Uint => new FormatInfo(Format.R8Uint, 1, 1, 1),
|
||||||
RtFormat.B5G5R5X1Unorm => new FormatInfo(Format.B5G5R5X1Unorm, 1, 1, 2),
|
RtFormat.B5G5R5X1Unorm => new FormatInfo(Format.B5G5R5X1Unorm, 1, 1, 2),
|
||||||
RtFormat.R8G8B8X8Unorm => new FormatInfo(Format.R8G8B8A8Unorm, 1, 1, 4),
|
RtFormat.R8G8B8X8Unorm => new FormatInfo(Format.R8G8B8A8Unorm, 1, 1, 4),
|
||||||
RtFormat.R8G8B8X8Srgb => new FormatInfo(Format.R8G8B8A8Srgb, 1, 1, 4),
|
RtFormat.R8G8B8X8Srgb => new FormatInfo(Format.R8G8B8A8Srgb, 1, 1, 4),
|
||||||
_ => FormatInfo.Default
|
_ => FormatInfo.Default
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,14 +35,14 @@ namespace Ryujinx.Graphics.VDec
|
||||||
|
|
||||||
switch (method)
|
switch (method)
|
||||||
{
|
{
|
||||||
case VideoDecoderMeth.SetVideoCodec: SetVideoCodec(arguments); break;
|
case VideoDecoderMeth.SetVideoCodec: SetVideoCodec(arguments); break;
|
||||||
case VideoDecoderMeth.Execute: Execute(gpu); break;
|
case VideoDecoderMeth.Execute: Execute(gpu); break;
|
||||||
case VideoDecoderMeth.SetDecoderCtxAddr: SetDecoderCtxAddr(arguments); break;
|
case VideoDecoderMeth.SetDecoderCtxAddr: SetDecoderCtxAddr(arguments); break;
|
||||||
case VideoDecoderMeth.SetFrameDataAddr: SetFrameDataAddr(arguments); break;
|
case VideoDecoderMeth.SetFrameDataAddr: SetFrameDataAddr(arguments); break;
|
||||||
case VideoDecoderMeth.SetVpxCurrLumaAddr: SetVpxCurrLumaAddr(arguments); break;
|
case VideoDecoderMeth.SetVpxCurrLumaAddr: SetVpxCurrLumaAddr(arguments); break;
|
||||||
case VideoDecoderMeth.SetVpxRef0LumaAddr: SetVpxRef0LumaAddr(arguments); break;
|
case VideoDecoderMeth.SetVpxRef0LumaAddr: SetVpxRef0LumaAddr(arguments); break;
|
||||||
case VideoDecoderMeth.SetVpxRef1LumaAddr: SetVpxRef1LumaAddr(arguments); break;
|
case VideoDecoderMeth.SetVpxRef1LumaAddr: SetVpxRef1LumaAddr(arguments); break;
|
||||||
case VideoDecoderMeth.SetVpxRef2LumaAddr: SetVpxRef2LumaAddr(arguments); break;
|
case VideoDecoderMeth.SetVpxRef2LumaAddr: SetVpxRef2LumaAddr(arguments); break;
|
||||||
case VideoDecoderMeth.SetVpxCurrChromaAddr: SetVpxCurrChromaAddr(arguments); break;
|
case VideoDecoderMeth.SetVpxCurrChromaAddr: SetVpxCurrChromaAddr(arguments); break;
|
||||||
case VideoDecoderMeth.SetVpxRef0ChromaAddr: SetVpxRef0ChromaAddr(arguments); break;
|
case VideoDecoderMeth.SetVpxRef0ChromaAddr: SetVpxRef0ChromaAddr(arguments); break;
|
||||||
case VideoDecoderMeth.SetVpxRef1ChromaAddr: SetVpxRef1ChromaAddr(arguments); break;
|
case VideoDecoderMeth.SetVpxRef1ChromaAddr: SetVpxRef1ChromaAddr(arguments); break;
|
||||||
|
|
|
@ -23,9 +23,9 @@ namespace Ryujinx.Graphics.Vic
|
||||||
|
|
||||||
switch (method)
|
switch (method)
|
||||||
{
|
{
|
||||||
case VideoImageComposerMeth.Execute: Execute(gpu); break;
|
case VideoImageComposerMeth.Execute: Execute(gpu); break;
|
||||||
case VideoImageComposerMeth.SetConfigStructOffset: SetConfigStructOffset(arguments); break;
|
case VideoImageComposerMeth.SetConfigStructOffset: SetConfigStructOffset(arguments); break;
|
||||||
case VideoImageComposerMeth.SetOutputSurfaceLumaOffset: SetOutputSurfaceLumaOffset(arguments); break;
|
case VideoImageComposerMeth.SetOutputSurfaceLumaOffset: SetOutputSurfaceLumaOffset(arguments); break;
|
||||||
case VideoImageComposerMeth.SetOutputSurfaceChromaUOffset: SetOutputSurfaceChromaUOffset(arguments); break;
|
case VideoImageComposerMeth.SetOutputSurfaceChromaUOffset: SetOutputSurfaceChromaUOffset(arguments); break;
|
||||||
case VideoImageComposerMeth.SetOutputSurfaceChromaVOffset: SetOutputSurfaceChromaVOffset(arguments); break;
|
case VideoImageComposerMeth.SetOutputSurfaceChromaVOffset: SetOutputSurfaceChromaVOffset(arguments); break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,8 +15,8 @@ namespace Ryujinx.Graphics.OpenGL
|
||||||
public static bool SupportsAstcCompression => _supportsAstcCompression.Value;
|
public static bool SupportsAstcCompression => _supportsAstcCompression.Value;
|
||||||
public static bool SupportsNonConstantTextureOffset => _isNvidiaDriver.Value;
|
public static bool SupportsNonConstantTextureOffset => _isNvidiaDriver.Value;
|
||||||
|
|
||||||
public static int MaximumComputeSharedMemorySize => _maximumComputeSharedMemorySize.Value;
|
public static int MaximumComputeSharedMemorySize => _maximumComputeSharedMemorySize.Value;
|
||||||
public static int StorageBufferOffsetAlignment => _storageBufferOffsetAlignment.Value;
|
public static int StorageBufferOffsetAlignment => _storageBufferOffsetAlignment.Value;
|
||||||
|
|
||||||
private static bool HasExtension(string name)
|
private static bool HasExtension(string name)
|
||||||
{
|
{
|
||||||
|
|
|
@ -471,6 +471,7 @@ namespace Ryujinx.Graphics.OpenGL
|
||||||
}
|
}
|
||||||
|
|
||||||
GL.PolygonOffset(factor, units);
|
GL.PolygonOffset(factor, units);
|
||||||
|
// TODO: Enable when GL_EXT_polygon_offset_clamp is supported.
|
||||||
// GL.PolygonOffsetClamp(factor, units, clamp);
|
// GL.PolygonOffsetClamp(factor, units, clamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ namespace Ryujinx.Graphics.Shader.Decoders
|
||||||
|
|
||||||
public OpCodeBranchIndir BrIndir { get; set; }
|
public OpCodeBranchIndir BrIndir { get; set; }
|
||||||
|
|
||||||
public List<OpCode> OpCodes { get; }
|
public List<OpCode> OpCodes { get; }
|
||||||
public List<OpCodePush> PushOpCodes { get; }
|
public List<OpCodePush> PushOpCodes { get; }
|
||||||
|
|
||||||
public Block(ulong address)
|
public Block(ulong address)
|
||||||
|
|
|
@ -60,7 +60,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
|
||||||
|
|
||||||
if (intType == IntegerType.U64)
|
if (intType == IntegerType.U64)
|
||||||
{
|
{
|
||||||
// TODO: Warning. This instruction supports 64-bits integers, but it is not implemented.
|
context.Config.PrintLog("Unimplemented 64-bits F2I.");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -172,7 +172,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
|
||||||
|
|
||||||
if (srcType == IntegerType.U64 || dstType == IntegerType.U64)
|
if (srcType == IntegerType.U64 || dstType == IntegerType.U64)
|
||||||
{
|
{
|
||||||
// TODO: Warning. This instruction doesn't support 64-bits integers.
|
context.Config.PrintLog("Invalid I2I encoding.");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,10 +53,10 @@ namespace Ryujinx.Graphics.Shader.Instructions
|
||||||
}
|
}
|
||||||
else if (floatType == FPType.FP64)
|
else if (floatType == FPType.FP64)
|
||||||
{
|
{
|
||||||
// TODO.
|
// TODO: Double floating-point type support.
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Warn about invalid floating point type.
|
context.Config.PrintLog($"Invalid floating point type: {floatType}.");
|
||||||
|
|
||||||
return ConstF(0);
|
return ConstF(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -198,7 +198,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
|
||||||
|
|
||||||
if (!(emit || cut))
|
if (!(emit || cut))
|
||||||
{
|
{
|
||||||
// TODO: Warning.
|
context.Config.PrintLog("Invalid OUT encoding.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (emit)
|
if (emit)
|
||||||
|
|
|
@ -9,7 +9,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||||
public const int StorageDescSize = 4; // In words.
|
public const int StorageDescSize = 4; // In words.
|
||||||
public const int StorageMaxCount = 16;
|
public const int StorageMaxCount = 16;
|
||||||
|
|
||||||
public const int StorageDescsSize = StorageDescSize * StorageMaxCount;
|
public const int StorageDescsSize = StorageDescSize * StorageMaxCount;
|
||||||
|
|
||||||
public static bool UsesGlobalMemory(Instruction inst)
|
public static bool UsesGlobalMemory(Instruction inst)
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,8 +22,6 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||||
|
|
||||||
if (cfg == null)
|
if (cfg == null)
|
||||||
{
|
{
|
||||||
// TODO: Error.
|
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,11 +12,13 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
||||||
{
|
{
|
||||||
class NvHostChannelDeviceFile : NvDeviceFile
|
class NvHostChannelDeviceFile : NvDeviceFile
|
||||||
{
|
{
|
||||||
private uint _timeout;
|
private uint _timeout;
|
||||||
private uint _submitTimeout;
|
private uint _submitTimeout;
|
||||||
private uint _timeslice;
|
private uint _timeslice;
|
||||||
private GpuContext _gpu;
|
|
||||||
private ARMeilleure.Memory.MemoryManager _memory;
|
private GpuContext _gpu;
|
||||||
|
|
||||||
|
private ARMeilleure.Memory.MemoryManager _memory;
|
||||||
|
|
||||||
public NvHostChannelDeviceFile(ServiceCtx context) : base(context)
|
public NvHostChannelDeviceFile(ServiceCtx context) : base(context)
|
||||||
{
|
{
|
||||||
|
|
Reference in a new issue