Initial tessellation shader support (#2534)
* Initial tessellation shader support * Nits * Re-arrange built-in table * This is not needed anymore * PR feedback
This commit is contained in:
parent
7603dbe3c8
commit
d512ce122c
42 changed files with 775 additions and 148 deletions
|
@ -349,6 +349,26 @@ namespace Ryujinx.Graphics.Gpu.Shader.Cache
|
|||
return flags;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Packs the tessellation parameters from the gpu accessor.
|
||||
/// </summary>
|
||||
/// <param name="gpuAccessor">The gpu accessor</param>
|
||||
/// <returns>The packed tessellation parameters</returns>
|
||||
private static byte GetTessellationModePacked(IGpuAccessor gpuAccessor)
|
||||
{
|
||||
byte value;
|
||||
|
||||
value = (byte)((int)gpuAccessor.QueryTessPatchType() & 3);
|
||||
value |= (byte)(((int)gpuAccessor.QueryTessSpacing() & 3) << 2);
|
||||
|
||||
if (gpuAccessor.QueryTessCw())
|
||||
{
|
||||
value |= 0x10;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a new instance of <see cref="GuestGpuAccessorHeader"/> from an gpu accessor.
|
||||
/// </summary>
|
||||
|
@ -364,6 +384,7 @@ namespace Ryujinx.Graphics.Gpu.Shader.Cache
|
|||
ComputeLocalMemorySize = gpuAccessor.QueryComputeLocalMemorySize(),
|
||||
ComputeSharedMemorySize = gpuAccessor.QueryComputeSharedMemorySize(),
|
||||
PrimitiveTopology = gpuAccessor.QueryPrimitiveTopology(),
|
||||
TessellationModePacked = GetTessellationModePacked(gpuAccessor),
|
||||
StateFlags = GetGpuStateFlags(gpuAccessor)
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue