0
0
Fork 0

Address PR feedback

Add TODO comment for GL_EXT_polygon_offset_clamp
This commit is contained in:
gdkchan 2020-01-05 22:04:37 -03:00 committed by Thog
parent 383452f5cf
commit 18814d44b2
16 changed files with 104 additions and 101 deletions

View file

@ -38,6 +38,7 @@ namespace Ryujinx.Common
using (var mem = new MemoryStream())
{
stream.CopyTo(mem);
return mem.ToArray();
}
}
@ -53,6 +54,7 @@ namespace Ryujinx.Common
using (var mem = new MemoryStream())
{
await stream.CopyToAsync(mem);
return mem.ToArray();
}
}

View file

@ -2,8 +2,8 @@ namespace Ryujinx.Graphics.GAL
{
public struct VertexAttribDescriptor
{
public int BufferIndex { get; }
public int Offset { get; }
public int BufferIndex { get; }
public int Offset { get; }
public Format Format { get; }

View file

@ -30,8 +30,8 @@ namespace Ryujinx.Graphics.Gpu.Shader
/// <param name="code">Maxwell binary shader code</param>
public CachedShader(ShaderProgram program, int[] code)
{
Program = program;
Code = code;
Program = program;
Code = code;
}
}
}

View file

@ -35,22 +35,22 @@ namespace Ryujinx.Graphics.Gpu.State
{
return type switch
{
PrimitiveType.Points => PrimitiveTopology.Points,
PrimitiveType.Lines => PrimitiveTopology.Lines,
PrimitiveType.LineLoop => PrimitiveTopology.LineLoop,
PrimitiveType.LineStrip => PrimitiveTopology.LineStrip,
PrimitiveType.Triangles => PrimitiveTopology.Triangles,
PrimitiveType.TriangleStrip => PrimitiveTopology.TriangleStrip,
PrimitiveType.TriangleFan => PrimitiveTopology.TriangleFan,
PrimitiveType.Quads => PrimitiveTopology.Quads,
PrimitiveType.QuadStrip => PrimitiveTopology.QuadStrip,
PrimitiveType.Polygon => PrimitiveTopology.Polygon,
PrimitiveType.LinesAdjacency => PrimitiveTopology.LinesAdjacency,
PrimitiveType.LineStripAdjacency => PrimitiveTopology.LineStripAdjacency,
PrimitiveType.TrianglesAdjacency => PrimitiveTopology.TrianglesAdjacency,
PrimitiveType.Points => PrimitiveTopology.Points,
PrimitiveType.Lines => PrimitiveTopology.Lines,
PrimitiveType.LineLoop => PrimitiveTopology.LineLoop,
PrimitiveType.LineStrip => PrimitiveTopology.LineStrip,
PrimitiveType.Triangles => PrimitiveTopology.Triangles,
PrimitiveType.TriangleStrip => PrimitiveTopology.TriangleStrip,
PrimitiveType.TriangleFan => PrimitiveTopology.TriangleFan,
PrimitiveType.Quads => PrimitiveTopology.Quads,
PrimitiveType.QuadStrip => PrimitiveTopology.QuadStrip,
PrimitiveType.Polygon => PrimitiveTopology.Polygon,
PrimitiveType.LinesAdjacency => PrimitiveTopology.LinesAdjacency,
PrimitiveType.LineStripAdjacency => PrimitiveTopology.LineStripAdjacency,
PrimitiveType.TrianglesAdjacency => PrimitiveTopology.TrianglesAdjacency,
PrimitiveType.TriangleStripAdjacency => PrimitiveTopology.TriangleStripAdjacency,
PrimitiveType.Patches => PrimitiveTopology.Patches,
_ => PrimitiveTopology.Triangles
PrimitiveType.Patches => PrimitiveTopology.Patches,
_ => PrimitiveTopology.Triangles
};
}
}

View file

@ -81,67 +81,67 @@ namespace Ryujinx.Graphics.Gpu.State
{
return format switch
{
RtFormat.D32Float => new FormatInfo(Format.D32Float, 1, 1, 4),
RtFormat.D16Unorm => new FormatInfo(Format.D16Unorm, 1, 1, 2),
RtFormat.D24UnormS8Uint => 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.S8Uint => new FormatInfo(Format.S8Uint, 1, 1, 1),
RtFormat.D32FloatS8Uint => new FormatInfo(Format.D32FloatS8Uint, 1, 1, 8),
RtFormat.D32Float => new FormatInfo(Format.D32Float, 1, 1, 4),
RtFormat.D16Unorm => new FormatInfo(Format.D16Unorm, 1, 1, 2),
RtFormat.D24UnormS8Uint => 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.S8Uint => new FormatInfo(Format.S8Uint, 1, 1, 1),
RtFormat.D32FloatS8Uint => new FormatInfo(Format.D32FloatS8Uint, 1, 1, 8),
RtFormat.R32G32B32A32Float => new FormatInfo(Format.R32G32B32A32Float, 1, 1, 16),
RtFormat.R32G32B32A32Sint => new FormatInfo(Format.R32G32B32A32Sint, 1, 1, 16),
RtFormat.R32G32B32A32Uint => new FormatInfo(Format.R32G32B32A32Uint, 1, 1, 16),
RtFormat.R32G32B32A32Sint => new FormatInfo(Format.R32G32B32A32Sint, 1, 1, 16),
RtFormat.R32G32B32A32Uint => new FormatInfo(Format.R32G32B32A32Uint, 1, 1, 16),
RtFormat.R32G32B32X32Float => new FormatInfo(Format.R32G32B32A32Float, 1, 1, 16),
RtFormat.R32G32B32X32Sint => new FormatInfo(Format.R32G32B32A32Sint, 1, 1, 16),
RtFormat.R32G32B32X32Uint => new FormatInfo(Format.R32G32B32A32Uint, 1, 1, 16),
RtFormat.R32G32B32X32Sint => new FormatInfo(Format.R32G32B32A32Sint, 1, 1, 16),
RtFormat.R32G32B32X32Uint => new FormatInfo(Format.R32G32B32A32Uint, 1, 1, 16),
RtFormat.R16G16B16X16Unorm => new FormatInfo(Format.R16G16B16A16Unorm, 1, 1, 8),
RtFormat.R16G16B16X16Snorm => new FormatInfo(Format.R16G16B16A16Snorm, 1, 1, 8),
RtFormat.R16G16B16X16Sint => new FormatInfo(Format.R16G16B16A16Sint, 1, 1, 8),
RtFormat.R16G16B16X16Uint => new FormatInfo(Format.R16G16B16A16Uint, 1, 1, 8),
RtFormat.R16G16B16X16Sint => new FormatInfo(Format.R16G16B16A16Sint, 1, 1, 8),
RtFormat.R16G16B16X16Uint => new FormatInfo(Format.R16G16B16A16Uint, 1, 1, 8),
RtFormat.R16G16B16A16Float => new FormatInfo(Format.R16G16B16A16Float, 1, 1, 8),
RtFormat.R32G32Float => new FormatInfo(Format.R32G32Float, 1, 1, 8),
RtFormat.R32G32Sint => new FormatInfo(Format.R32G32Sint, 1, 1, 8),
RtFormat.R32G32Uint => new FormatInfo(Format.R32G32Uint, 1, 1, 8),
RtFormat.R32G32Float => new FormatInfo(Format.R32G32Float, 1, 1, 8),
RtFormat.R32G32Sint => new FormatInfo(Format.R32G32Sint, 1, 1, 8),
RtFormat.R32G32Uint => new FormatInfo(Format.R32G32Uint, 1, 1, 8),
RtFormat.R16G16B16X16Float => new FormatInfo(Format.R16G16B16A16Float, 1, 1, 8),
RtFormat.B8G8R8A8Unorm => new FormatInfo(Format.B8G8R8A8Unorm, 1, 1, 4),
RtFormat.B8G8R8A8Srgb => new FormatInfo(Format.B8G8R8A8Srgb, 1, 1, 4),
RtFormat.R10G10B10A2Unorm => new FormatInfo(Format.R10G10B10A2Unorm, 1, 1, 4),
RtFormat.R10G10B10A2Uint => new FormatInfo(Format.R10G10B10A2Uint, 1, 1, 4),
RtFormat.R8G8B8A8Unorm => new FormatInfo(Format.R8G8B8A8Unorm, 1, 1, 4),
RtFormat.R8G8B8A8Srgb => new FormatInfo(Format.R8G8B8A8Srgb, 1, 1, 4),
RtFormat.R8G8B8X8Snorm => new FormatInfo(Format.R8G8B8A8Snorm, 1, 1, 4),
RtFormat.R8G8B8X8Sint => new FormatInfo(Format.R8G8B8A8Sint, 1, 1, 4),
RtFormat.R8G8B8X8Uint => new FormatInfo(Format.R8G8B8A8Uint, 1, 1, 4),
RtFormat.R16G16Unorm => new FormatInfo(Format.R16G16Unorm, 1, 1, 4),
RtFormat.R16G16Snorm => new FormatInfo(Format.R16G16Snorm, 1, 1, 4),
RtFormat.R16G16Sint => new FormatInfo(Format.R16G16Sint, 1, 1, 4),
RtFormat.R16G16Uint => new FormatInfo(Format.R16G16Uint, 1, 1, 4),
RtFormat.R16G16Float => new FormatInfo(Format.R16G16Float, 1, 1, 4),
RtFormat.R11G11B10Float => new FormatInfo(Format.R11G11B10Float, 1, 1, 4),
RtFormat.R32Sint => new FormatInfo(Format.R32Sint, 1, 1, 4),
RtFormat.R32Uint => new FormatInfo(Format.R32Uint, 1, 1, 4),
RtFormat.R32Float => new FormatInfo(Format.R32Float, 1, 1, 4),
RtFormat.B8G8R8X8Unorm => new FormatInfo(Format.B8G8R8A8Unorm, 1, 1, 4),
RtFormat.B8G8R8X8Srgb => new FormatInfo(Format.B8G8R8A8Srgb, 1, 1, 4),
RtFormat.B5G6R5Unorm => new FormatInfo(Format.B5G6R5Unorm, 1, 1, 2),
RtFormat.B5G5R5A1Unorm => new FormatInfo(Format.B5G5R5A1Unorm, 1, 1, 2),
RtFormat.R8G8Unorm => new FormatInfo(Format.R8G8Unorm, 1, 1, 2),
RtFormat.R8G8Snorm => new FormatInfo(Format.R8G8Snorm, 1, 1, 2),
RtFormat.R8G8Sint => new FormatInfo(Format.R8G8Sint, 1, 1, 2),
RtFormat.R8G8Uint => new FormatInfo(Format.R8G8Uint, 1, 1, 2),
RtFormat.R16Unorm => new FormatInfo(Format.R16Unorm, 1, 1, 2),
RtFormat.R16Snorm => new FormatInfo(Format.R16Snorm, 1, 1, 2),
RtFormat.R16Sint => new FormatInfo(Format.R16Sint, 1, 1, 2),
RtFormat.R16Uint => new FormatInfo(Format.R16Uint, 1, 1, 2),
RtFormat.R16Float => new FormatInfo(Format.R16Float, 1, 1, 2),
RtFormat.R8Unorm => new FormatInfo(Format.R8Unorm, 1, 1, 1),
RtFormat.R8Snorm => new FormatInfo(Format.R8Snorm, 1, 1, 1),
RtFormat.R8Sint => new FormatInfo(Format.R8Sint, 1, 1, 1),
RtFormat.R8Uint => new FormatInfo(Format.R8Uint, 1, 1, 1),
RtFormat.B5G5R5X1Unorm => new FormatInfo(Format.B5G5R5X1Unorm, 1, 1, 2),
RtFormat.R8G8B8X8Unorm => new FormatInfo(Format.R8G8B8A8Unorm, 1, 1, 4),
RtFormat.R8G8B8X8Srgb => new FormatInfo(Format.R8G8B8A8Srgb, 1, 1, 4),
_ => FormatInfo.Default
RtFormat.B8G8R8A8Unorm => new FormatInfo(Format.B8G8R8A8Unorm, 1, 1, 4),
RtFormat.B8G8R8A8Srgb => new FormatInfo(Format.B8G8R8A8Srgb, 1, 1, 4),
RtFormat.R10G10B10A2Unorm => new FormatInfo(Format.R10G10B10A2Unorm, 1, 1, 4),
RtFormat.R10G10B10A2Uint => new FormatInfo(Format.R10G10B10A2Uint, 1, 1, 4),
RtFormat.R8G8B8A8Unorm => new FormatInfo(Format.R8G8B8A8Unorm, 1, 1, 4),
RtFormat.R8G8B8A8Srgb => new FormatInfo(Format.R8G8B8A8Srgb, 1, 1, 4),
RtFormat.R8G8B8X8Snorm => new FormatInfo(Format.R8G8B8A8Snorm, 1, 1, 4),
RtFormat.R8G8B8X8Sint => new FormatInfo(Format.R8G8B8A8Sint, 1, 1, 4),
RtFormat.R8G8B8X8Uint => new FormatInfo(Format.R8G8B8A8Uint, 1, 1, 4),
RtFormat.R16G16Unorm => new FormatInfo(Format.R16G16Unorm, 1, 1, 4),
RtFormat.R16G16Snorm => new FormatInfo(Format.R16G16Snorm, 1, 1, 4),
RtFormat.R16G16Sint => new FormatInfo(Format.R16G16Sint, 1, 1, 4),
RtFormat.R16G16Uint => new FormatInfo(Format.R16G16Uint, 1, 1, 4),
RtFormat.R16G16Float => new FormatInfo(Format.R16G16Float, 1, 1, 4),
RtFormat.R11G11B10Float => new FormatInfo(Format.R11G11B10Float, 1, 1, 4),
RtFormat.R32Sint => new FormatInfo(Format.R32Sint, 1, 1, 4),
RtFormat.R32Uint => new FormatInfo(Format.R32Uint, 1, 1, 4),
RtFormat.R32Float => new FormatInfo(Format.R32Float, 1, 1, 4),
RtFormat.B8G8R8X8Unorm => new FormatInfo(Format.B8G8R8A8Unorm, 1, 1, 4),
RtFormat.B8G8R8X8Srgb => new FormatInfo(Format.B8G8R8A8Srgb, 1, 1, 4),
RtFormat.B5G6R5Unorm => new FormatInfo(Format.B5G6R5Unorm, 1, 1, 2),
RtFormat.B5G5R5A1Unorm => new FormatInfo(Format.B5G5R5A1Unorm, 1, 1, 2),
RtFormat.R8G8Unorm => new FormatInfo(Format.R8G8Unorm, 1, 1, 2),
RtFormat.R8G8Snorm => new FormatInfo(Format.R8G8Snorm, 1, 1, 2),
RtFormat.R8G8Sint => new FormatInfo(Format.R8G8Sint, 1, 1, 2),
RtFormat.R8G8Uint => new FormatInfo(Format.R8G8Uint, 1, 1, 2),
RtFormat.R16Unorm => new FormatInfo(Format.R16Unorm, 1, 1, 2),
RtFormat.R16Snorm => new FormatInfo(Format.R16Snorm, 1, 1, 2),
RtFormat.R16Sint => new FormatInfo(Format.R16Sint, 1, 1, 2),
RtFormat.R16Uint => new FormatInfo(Format.R16Uint, 1, 1, 2),
RtFormat.R16Float => new FormatInfo(Format.R16Float, 1, 1, 2),
RtFormat.R8Unorm => new FormatInfo(Format.R8Unorm, 1, 1, 1),
RtFormat.R8Snorm => new FormatInfo(Format.R8Snorm, 1, 1, 1),
RtFormat.R8Sint => new FormatInfo(Format.R8Sint, 1, 1, 1),
RtFormat.R8Uint => new FormatInfo(Format.R8Uint, 1, 1, 1),
RtFormat.B5G5R5X1Unorm => new FormatInfo(Format.B5G5R5X1Unorm, 1, 1, 2),
RtFormat.R8G8B8X8Unorm => new FormatInfo(Format.R8G8B8A8Unorm, 1, 1, 4),
RtFormat.R8G8B8X8Srgb => new FormatInfo(Format.R8G8B8A8Srgb, 1, 1, 4),
_ => FormatInfo.Default
};
}
}

View file

@ -35,14 +35,14 @@ namespace Ryujinx.Graphics.VDec
switch (method)
{
case VideoDecoderMeth.SetVideoCodec: SetVideoCodec(arguments); break;
case VideoDecoderMeth.Execute: Execute(gpu); break;
case VideoDecoderMeth.SetDecoderCtxAddr: SetDecoderCtxAddr(arguments); break;
case VideoDecoderMeth.SetFrameDataAddr: SetFrameDataAddr(arguments); break;
case VideoDecoderMeth.SetVpxCurrLumaAddr: SetVpxCurrLumaAddr(arguments); break;
case VideoDecoderMeth.SetVpxRef0LumaAddr: SetVpxRef0LumaAddr(arguments); break;
case VideoDecoderMeth.SetVpxRef1LumaAddr: SetVpxRef1LumaAddr(arguments); break;
case VideoDecoderMeth.SetVpxRef2LumaAddr: SetVpxRef2LumaAddr(arguments); break;
case VideoDecoderMeth.SetVideoCodec: SetVideoCodec(arguments); break;
case VideoDecoderMeth.Execute: Execute(gpu); break;
case VideoDecoderMeth.SetDecoderCtxAddr: SetDecoderCtxAddr(arguments); break;
case VideoDecoderMeth.SetFrameDataAddr: SetFrameDataAddr(arguments); break;
case VideoDecoderMeth.SetVpxCurrLumaAddr: SetVpxCurrLumaAddr(arguments); break;
case VideoDecoderMeth.SetVpxRef0LumaAddr: SetVpxRef0LumaAddr(arguments); break;
case VideoDecoderMeth.SetVpxRef1LumaAddr: SetVpxRef1LumaAddr(arguments); break;
case VideoDecoderMeth.SetVpxRef2LumaAddr: SetVpxRef2LumaAddr(arguments); break;
case VideoDecoderMeth.SetVpxCurrChromaAddr: SetVpxCurrChromaAddr(arguments); break;
case VideoDecoderMeth.SetVpxRef0ChromaAddr: SetVpxRef0ChromaAddr(arguments); break;
case VideoDecoderMeth.SetVpxRef1ChromaAddr: SetVpxRef1ChromaAddr(arguments); break;

View file

@ -23,9 +23,9 @@ namespace Ryujinx.Graphics.Vic
switch (method)
{
case VideoImageComposerMeth.Execute: Execute(gpu); break;
case VideoImageComposerMeth.SetConfigStructOffset: SetConfigStructOffset(arguments); break;
case VideoImageComposerMeth.SetOutputSurfaceLumaOffset: SetOutputSurfaceLumaOffset(arguments); break;
case VideoImageComposerMeth.Execute: Execute(gpu); break;
case VideoImageComposerMeth.SetConfigStructOffset: SetConfigStructOffset(arguments); break;
case VideoImageComposerMeth.SetOutputSurfaceLumaOffset: SetOutputSurfaceLumaOffset(arguments); break;
case VideoImageComposerMeth.SetOutputSurfaceChromaUOffset: SetOutputSurfaceChromaUOffset(arguments); break;
case VideoImageComposerMeth.SetOutputSurfaceChromaVOffset: SetOutputSurfaceChromaVOffset(arguments); break;
}

View file

@ -15,8 +15,8 @@ namespace Ryujinx.Graphics.OpenGL
public static bool SupportsAstcCompression => _supportsAstcCompression.Value;
public static bool SupportsNonConstantTextureOffset => _isNvidiaDriver.Value;
public static int MaximumComputeSharedMemorySize => _maximumComputeSharedMemorySize.Value;
public static int StorageBufferOffsetAlignment => _storageBufferOffsetAlignment.Value;
public static int MaximumComputeSharedMemorySize => _maximumComputeSharedMemorySize.Value;
public static int StorageBufferOffsetAlignment => _storageBufferOffsetAlignment.Value;
private static bool HasExtension(string name)
{

View file

@ -471,6 +471,7 @@ namespace Ryujinx.Graphics.OpenGL
}
GL.PolygonOffset(factor, units);
// TODO: Enable when GL_EXT_polygon_offset_clamp is supported.
// GL.PolygonOffsetClamp(factor, units, clamp);
}

View file

@ -13,7 +13,7 @@ namespace Ryujinx.Graphics.Shader.Decoders
public OpCodeBranchIndir BrIndir { get; set; }
public List<OpCode> OpCodes { get; }
public List<OpCode> OpCodes { get; }
public List<OpCodePush> PushOpCodes { get; }
public Block(ulong address)

View file

@ -60,7 +60,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
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;
}
@ -172,7 +172,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
if (srcType == IntegerType.U64 || dstType == IntegerType.U64)
{
// TODO: Warning. This instruction doesn't support 64-bits integers.
context.Config.PrintLog("Invalid I2I encoding.");
return;
}

View file

@ -53,10 +53,10 @@ namespace Ryujinx.Graphics.Shader.Instructions
}
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);
}

View file

@ -198,7 +198,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
if (!(emit || cut))
{
// TODO: Warning.
context.Config.PrintLog("Invalid OUT encoding.");
}
if (emit)

View file

@ -9,7 +9,7 @@ namespace Ryujinx.Graphics.Shader.Translation
public const int StorageDescSize = 4; // In words.
public const int StorageMaxCount = 16;
public const int StorageDescsSize = StorageDescSize * StorageMaxCount;
public const int StorageDescsSize = StorageDescSize * StorageMaxCount;
public static bool UsesGlobalMemory(Instruction inst)
{

View file

@ -22,8 +22,6 @@ namespace Ryujinx.Graphics.Shader.Translation
if (cfg == null)
{
// TODO: Error.
return code;
}

View file

@ -12,11 +12,13 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
{
class NvHostChannelDeviceFile : NvDeviceFile
{
private uint _timeout;
private uint _submitTimeout;
private uint _timeslice;
private GpuContext _gpu;
private ARMeilleure.Memory.MemoryManager _memory;
private uint _timeout;
private uint _submitTimeout;
private uint _timeslice;
private GpuContext _gpu;
private ARMeilleure.Memory.MemoryManager _memory;
public NvHostChannelDeviceFile(ServiceCtx context) : base(context)
{