From 03ec23140b8de7ce8839aa84b3f186e58e8fc7f5 Mon Sep 17 00:00:00 2001 From: Samuliak Date: Thu, 9 Jan 2025 16:09:02 +0100 Subject: [PATCH] don't bind textures when framebuffer fetched --- src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.cpp b/src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.cpp index d9850f07..176ae6df 100644 --- a/src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.cpp +++ b/src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.cpp @@ -1926,6 +1926,11 @@ void MetalRenderer::BindStageResources(MTL::RenderCommandEncoder* renderCommandE { const auto relative_textureUnit = shader->resourceMapping.getTextureUnitFromBindingPoint(i); auto hostTextureUnit = relative_textureUnit; + + // Don't bind textures that are accessed with a framebuffer fetch + if (shader->textureRenderTargetIndex[relative_textureUnit] != 255) + continue; + auto textureDim = shader->textureUnitDim[relative_textureUnit]; auto texUnitRegIndex = hostTextureUnit * 7; switch (shader->shaderType)