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
This commit is contained in:
gdk 2022-04-09 21:00:02 -03:00 committed by riperiperi
parent 7c32e4a3fe
commit 4648e37a31

View file

@ -35,15 +35,15 @@ namespace Ryujinx.Graphics.Vulkan
switch (mode) switch (mode)
{ {
case AddressMode.Clamp: case AddressMode.Clamp:
return SamplerAddressMode.ClampToBorder; // TODO: Should be clamp return SamplerAddressMode.ClampToEdge; // TODO: Should be clamp.
case AddressMode.Repeat: case AddressMode.Repeat:
return SamplerAddressMode.Repeat; return SamplerAddressMode.Repeat;
case AddressMode.MirrorClamp: case AddressMode.MirrorClamp:
return SamplerAddressMode.ClampToBorder; // TODO: Should be mirror clamp return SamplerAddressMode.ClampToEdge; // TODO: Should be mirror clamp.
case AddressMode.MirrorClampToEdge: case AddressMode.MirrorClampToEdge:
return SamplerAddressMode.MirrorClampToEdgeKhr; return SamplerAddressMode.MirrorClampToEdgeKhr;
case AddressMode.MirrorClampToBorder: 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: case AddressMode.ClampToBorder:
return SamplerAddressMode.ClampToBorder; return SamplerAddressMode.ClampToBorder;
case AddressMode.MirroredRepeat: case AddressMode.MirroredRepeat:
@ -54,7 +54,7 @@ namespace Ryujinx.Graphics.Vulkan
Logger.Debug?.Print(LogClass.Gpu, $"Invalid {nameof(AddressMode)} enum value: {mode}."); 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) public static Silk.NET.Vulkan.BlendFactor Convert(this GAL.BlendFactor factor)