diff --git a/src/modules/graphics/metal/Graphics.mm b/src/modules/graphics/metal/Graphics.mm index 509bbcbfb..23aa90113 100644 --- a/src/modules/graphics/metal/Graphics.mm +++ b/src/modules/graphics/metal/Graphics.mm @@ -643,6 +643,11 @@ void Graphics::submitBlitEncoder() } } +static bool isClampOne(SamplerState::WrapMode w) +{ + return w == SamplerState::WRAP_CLAMP_ONE; +} + id Graphics::getCachedSampler(const SamplerState &s) { @autoreleasepool { uint64 key = s.toKey(); @@ -662,8 +667,11 @@ id Graphics::getCachedSampler(const SamplerState &s) desc.tAddressMode = getMTLSamplerAddressMode(s.wrapV); desc.rAddressMode = getMTLSamplerAddressMode(s.wrapW); - if (@available(macOS 10.12, iOS 10.14, *)) - desc.borderColor = MTLSamplerBorderColorOpaqueWhite; + if (isClampOne(s.wrapU) || isClampOne(s.wrapV) || isClampOne(s.wrapW)) + { + if (@available(macOS 10.12, iOS 10.14, *)) + desc.borderColor = MTLSamplerBorderColorOpaqueWhite; + } desc.lodMinClamp = s.minLod; desc.lodMaxClamp = s.maxLod;