Revert "Shader: skip initialization of all clip distances on macOS."

This reverts commit f764ae2d58.
This commit is contained in:
KeatonTheBot
2026-05-27 17:41:47 -05:00
parent 30dba1ed36
commit 31d0bc5915
6 changed files with 3 additions and 22 deletions
-3
View File
@@ -10,7 +10,6 @@ namespace Ryujinx.Graphics.GAL
public readonly bool HasFrontFacingBug;
public readonly bool HasVectorIndexingBug;
public readonly bool HasClipDistanceInitBug;
public readonly bool NeedsFragmentOutputSpecialization;
public readonly bool ReduceShaderPrecision;
@@ -82,7 +81,6 @@ namespace Ryujinx.Graphics.GAL
SystemMemoryType memoryType,
bool hasFrontFacingBug,
bool hasVectorIndexingBug,
bool hasClipDistanceInitBug,
bool needsFragmentOutputSpecialization,
bool reduceShaderPrecision,
bool supportsAstcCompression,
@@ -147,7 +145,6 @@ namespace Ryujinx.Graphics.GAL
MemoryType = memoryType;
HasFrontFacingBug = hasFrontFacingBug;
HasVectorIndexingBug = hasVectorIndexingBug;
HasClipDistanceInitBug = hasClipDistanceInitBug;
NeedsFragmentOutputSpecialization = needsFragmentOutputSpecialization;
ReduceShaderPrecision = reduceShaderPrecision;
SupportsAstcCompression = supportsAstcCompression;
@@ -201,8 +201,6 @@ namespace Ryujinx.Graphics.Gpu.Shader
public bool QueryHostHasVectorIndexingBug() => _context.Capabilities.HasVectorIndexingBug;
public bool QueryHostHasClipDistanceInitBug() => _context.Capabilities.HasClipDistanceInitBug;
public int QueryHostStorageBufferOffsetAlignment() => _context.Capabilities.StorageBufferOffsetAlignment;
public int QueryHostSubgroupSize() => _context.Capabilities.ShaderSubgroupSize;
@@ -152,7 +152,6 @@ namespace Ryujinx.Graphics.OpenGL
memoryType: SystemMemoryType.BackendManaged,
hasFrontFacingBug: intelWindows,
hasVectorIndexingBug: amdWindows,
hasClipDistanceInitBug: false,
needsFragmentOutputSpecialization: false,
reduceShaderPrecision: false,
supportsAstcCompression: HwCapabilities.SupportsAstcCompression,
@@ -207,15 +207,6 @@ namespace Ryujinx.Graphics.Shader
return false;
}
/// <summary>
/// Queries host about the presence of the clip distance initialization bug.
/// </summary>
/// <returns>True if the bug is present on the host device used, false otherwise</returns>
bool QueryHostHasClipDistanceInitBug()
{
return false;
}
/// <summary>
/// Queries host storage buffer alignment required.
/// </summary>
@@ -259,14 +259,11 @@ namespace Ryujinx.Graphics.Shader.Translation
context.Store(StorageKind.Output, IoVariable.Position, null, Const(c), ConstF(c == 3 ? 1f : 0f));
}
if (!context.TranslatorContext.GpuAccessor.QueryHostHasClipDistanceInitBug())
if (context.Program.ClipDistancesWritten != 0)
{
if (context.Program.ClipDistancesWritten != 0)
for (int i = 0; i < 8; i++)
{
for (int i = 0; i < 8; i++)
{
context.Store(StorageKind.Output, IoVariable.ClipDistance, null, Const(i), ConstF(0f));
}
context.Store(StorageKind.Output, IoVariable.ClipDistance, null, Const(i), ConstF(0f));
}
}
}
@@ -742,7 +742,6 @@ namespace Ryujinx.Graphics.Vulkan
memoryType: memoryType,
hasFrontFacingBug: IsIntelWindows,
hasVectorIndexingBug: IsQualcommProprietary,
hasClipDistanceInitBug: IsMoltenVk,
needsFragmentOutputSpecialization: IsMoltenVk,
reduceShaderPrecision: IsMoltenVk,
supportsAstcCompression: features2.Features.TextureCompressionAstcLdr && supportsAstcFormats,