aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/surface.cpp
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2026-05-15 22:08:09 +0200
committercrueter <crueter@eden-emu.dev>2026-05-15 22:08:09 +0200
commit4d49341918981a782395fe379a8e6846e1fd11b2 (patch)
tree6d09831d70ef4898dd5da9db4e1bf72200c504da /src/video_core/surface.cpp
parent2f0f8a979c88b1ded8b5cce9f9bee1a59bb2508c (diff)
[vk, opengl] recognize and use ETC2 (if available) textures natively (#3237)
this makes it so VK and OGL backends map the NVIDIA's ETC2 into VK_FORMAT_ETC-whatever and GL_ETC-whatever remaps, instead of using the default fallback for AR8G8B8. in short, just make the ETC2 textures be submitted as ETC2 instead of being submit as A8R8G8B8. Signed-off-by: lizzie lizzie@eden-emu.dev Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3237 Reviewed-by: Ghost <> Reviewed-by: crueter <crueter@eden-emu.dev>
Diffstat (limited to 'src/video_core/surface.cpp')
-rw-r--r--src/video_core/surface.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/video_core/surface.cpp b/src/video_core/surface.cpp
index 1998849e84..69c1720943 100644
--- a/src/video_core/surface.cpp
+++ b/src/video_core/surface.cpp
@@ -1,4 +1,4 @@
-// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
@@ -336,6 +336,20 @@ bool IsPixelFormatBCn(PixelFormat format) {
}
}
+bool IsPixelFormatETC2(PixelFormat format) {
+ switch (format) {
+ case PixelFormat::ETC2_RGB_UNORM:
+ case PixelFormat::ETC2_RGBA_UNORM:
+ case PixelFormat::ETC2_RGB_PTA_UNORM:
+ case PixelFormat::ETC2_RGB_SRGB:
+ case PixelFormat::ETC2_RGBA_SRGB:
+ case PixelFormat::ETC2_RGB_PTA_SRGB:
+ return true;
+ default:
+ return false;
+ }
+}
+
bool IsPixelFormatSRGB(PixelFormat format) {
switch (format) {
case PixelFormat::A8B8G8R8_SRGB:
@@ -344,6 +358,9 @@ bool IsPixelFormatSRGB(PixelFormat format) {
case PixelFormat::BC2_SRGB:
case PixelFormat::BC3_SRGB:
case PixelFormat::BC7_SRGB:
+ case PixelFormat::ETC2_RGB_SRGB:
+ case PixelFormat::ETC2_RGBA_SRGB:
+ case PixelFormat::ETC2_RGB_PTA_SRGB:
case PixelFormat::ASTC_2D_4X4_SRGB:
case PixelFormat::ASTC_2D_8X8_SRGB:
case PixelFormat::ASTC_2D_8X5_SRGB: