vulkan: Use closest available equivalent to missing clamp modes. ()

This commit is contained in:
squidbus 2024-09-22 05:07:05 -07:00 committed by GitHub
parent a18419dd73
commit bfe2e1e57c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 0 deletions
src/video_core/renderer_vulkan

View file

@ -199,8 +199,17 @@ vk::SamplerAddressMode ClampMode(AmdGpu::ClampMode mode) {
return vk::SamplerAddressMode::eMirroredRepeat; return vk::SamplerAddressMode::eMirroredRepeat;
case AmdGpu::ClampMode::ClampLastTexel: case AmdGpu::ClampMode::ClampLastTexel:
return vk::SamplerAddressMode::eClampToEdge; return vk::SamplerAddressMode::eClampToEdge;
case AmdGpu::ClampMode::MirrorOnceHalfBorder:
case AmdGpu::ClampMode::MirrorOnceBorder:
LOG_WARNING(Render_Vulkan, "Unimplemented clamp mode {}, using closest equivalent.",
static_cast<u32>(mode));
[[fallthrough]];
case AmdGpu::ClampMode::MirrorOnceLastTexel: case AmdGpu::ClampMode::MirrorOnceLastTexel:
return vk::SamplerAddressMode::eMirrorClampToEdge; return vk::SamplerAddressMode::eMirrorClampToEdge;
case AmdGpu::ClampMode::ClampHalfBorder:
LOG_WARNING(Render_Vulkan, "Unimplemented clamp mode {}, using closest equivalent.",
static_cast<u32>(mode));
[[fallthrough]];
case AmdGpu::ClampMode::ClampBorder: case AmdGpu::ClampMode::ClampBorder:
return vk::SamplerAddressMode::eClampToBorder; return vk::SamplerAddressMode::eClampToBorder;
default: default:

View file

@ -310,6 +310,7 @@ bool Instance::CreateDevice() {
.separateDepthStencilLayouts = vk12_features.separateDepthStencilLayouts, .separateDepthStencilLayouts = vk12_features.separateDepthStencilLayouts,
.hostQueryReset = vk12_features.hostQueryReset, .hostQueryReset = vk12_features.hostQueryReset,
.timelineSemaphore = vk12_features.timelineSemaphore, .timelineSemaphore = vk12_features.timelineSemaphore,
.samplerMirrorClampToEdge = vk12_features.samplerMirrorClampToEdge,
}, },
vk::PhysicalDeviceMaintenance4FeaturesKHR{ vk::PhysicalDeviceMaintenance4FeaturesKHR{
.maintenance4 = true, .maintenance4 = true,