From 4648e37a31966b254919f38b9cb4d91f0035d69c Mon Sep 17 00:00:00 2001 From: gdk Date: Sat, 9 Apr 2022 21:00:02 -0300 Subject: [PATCH] Use ClampToEdge for Clamp sampler address mode on Vulkan (fixes Hollow Knight) Clamp is unsupported on Vulkan, but ClampToEdge behaves almost the same. ClampToBorder on the other hand (which was being used before) is pretty different --- Ryujinx.Graphics.Vulkan/EnumConversion.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ryujinx.Graphics.Vulkan/EnumConversion.cs b/Ryujinx.Graphics.Vulkan/EnumConversion.cs index 944818388..023051373 100644 --- a/Ryujinx.Graphics.Vulkan/EnumConversion.cs +++ b/Ryujinx.Graphics.Vulkan/EnumConversion.cs @@ -35,15 +35,15 @@ namespace Ryujinx.Graphics.Vulkan switch (mode) { case AddressMode.Clamp: - return SamplerAddressMode.ClampToBorder; // TODO: Should be clamp + return SamplerAddressMode.ClampToEdge; // TODO: Should be clamp. case AddressMode.Repeat: return SamplerAddressMode.Repeat; case AddressMode.MirrorClamp: - return SamplerAddressMode.ClampToBorder; // TODO: Should be mirror clamp + return SamplerAddressMode.ClampToEdge; // TODO: Should be mirror clamp. case AddressMode.MirrorClampToEdge: return SamplerAddressMode.MirrorClampToEdgeKhr; case AddressMode.MirrorClampToBorder: - return SamplerAddressMode.ClampToBorder; // TODO: Should be mirror clamp to border + return SamplerAddressMode.ClampToBorder; // TODO: Should be mirror clamp to border. case AddressMode.ClampToBorder: return SamplerAddressMode.ClampToBorder; case AddressMode.MirroredRepeat: @@ -54,7 +54,7 @@ namespace Ryujinx.Graphics.Vulkan Logger.Debug?.Print(LogClass.Gpu, $"Invalid {nameof(AddressMode)} enum value: {mode}."); - return SamplerAddressMode.ClampToBorder; // TODO: Should be clamp + return SamplerAddressMode.ClampToEdge; // TODO: Should be clamp. } public static Silk.NET.Vulkan.BlendFactor Convert(this GAL.BlendFactor factor)