mirror of
https://git.citron-emu.org/citron/emulator
synced 2025-12-19 10:43:33 +00:00
fix(vulkan): implement MirrorOnceClampOGL wrap mode
Adds support for wrap mode 7 (MirrorOnceClampOGL) in the Vulkan renderer's WrapMode function. This mode is mapped to VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE as Vulkan doesn't have a direct equivalent to OpenGL's GL_MIRROR_CLAMP. Fixes assertion failure: "Unimplemented wrap mode=7" Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2025 citron Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
@@ -78,6 +79,10 @@ VkSamplerAddressMode WrapMode(const Device& device, Tegra::Texture::WrapMode wra
|
|||||||
case Tegra::Texture::WrapMode::MirrorOnceBorder:
|
case Tegra::Texture::WrapMode::MirrorOnceBorder:
|
||||||
UNIMPLEMENTED();
|
UNIMPLEMENTED();
|
||||||
return VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
|
return VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
|
||||||
|
case Tegra::Texture::WrapMode::MirrorOnceClampOGL:
|
||||||
|
// Vulkan doesn't have a direct equivalent to GL_MIRROR_CLAMP, so we use
|
||||||
|
// MIRROR_CLAMP_TO_EDGE as a fallback (similar to OpenGL when extension isn't available)
|
||||||
|
return VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
|
||||||
default:
|
default:
|
||||||
UNIMPLEMENTED_MSG("Unimplemented wrap mode={}", wrap_mode);
|
UNIMPLEMENTED_MSG("Unimplemented wrap mode={}", wrap_mode);
|
||||||
return {};
|
return {};
|
||||||
|
|||||||
Reference in New Issue
Block a user