aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSssnowyyy <78863999+Sssnowyyy@users.noreply.github.com>2026-10-30 20:47:12 -0400
committerSssnowyyy <78863999+Sssnowyyy@users.noreply.github.com>2026-10-31 18:16:44 -0400
commitf61ea2a62d92c2a1d7ec740b34eb7491cac36215 (patch)
treea5503968722b754bcceacb7ac006b1bf92622e51 /src
parentb8813c6797fc9cb00caa834b112668a7161e2b10 (diff)
vk_pipeline_cache: skip unused colour targets when picking MoltenVK output types
The MoltenVK output-type loop converted all eight colour formats, including unbound ones (NONE), which logged 'Unimplemented format=0' for each empty slot. Assisted-by: Claude Opus 5.5 (code changes, debugging and commit message)
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index 2c64f3375b..05511c10e1 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -256,6 +256,10 @@ Shader::RuntimeInfo MakeRuntimeInfo(std::span<const Shader::IR::Program> program
if (device.IsMoltenVK()) {
for (size_t i = 0; i < 8; ++i) {
const auto format = static_cast<Tegra::RenderTargetFormat>(key.state.color_formats[i]);
+ if (format == Tegra::RenderTargetFormat::NONE) {
+ info.color_output_types[i] = Shader::AttributeType::Float;
+ continue;
+ }
const auto pixel_format = VideoCore::Surface::PixelFormatFromRenderTargetFormat(format);
if (VideoCore::Surface::IsPixelFormatInteger(pixel_format)) {
if (VideoCore::Surface::IsPixelFormatSignedInteger(pixel_format)) {