From caa814e8f9c1101a6650c1c4c4eaeb84e4d09f46 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Tue, 24 Feb 2026 12:25:04 +0800 Subject: [PATCH] [Chore] (MG_Test/Backend/DirectVulkan/TestExec): get rid of now useless default renderpass --- .../DirectVulkan/Renderer/VkRenderPassManager.cpp | 15 +-------------- .../DirectVulkan/Renderer/VkRenderPassManager.h | 4 ---- .../DirectVulkan/Renderer/VulkanRenderer.cpp | 10 +--------- .../DirectVulkan/Renderer/VulkanRenderer.h | 1 - 4 files changed, 2 insertions(+), 28 deletions(-) diff --git a/MobileGL/MG_Backend/DirectVulkan/Renderer/VkRenderPassManager.cpp b/MobileGL/MG_Backend/DirectVulkan/Renderer/VkRenderPassManager.cpp index cde021ba..4571b817 100644 --- a/MobileGL/MG_Backend/DirectVulkan/Renderer/VkRenderPassManager.cpp +++ b/MobileGL/MG_Backend/DirectVulkan/Renderer/VkRenderPassManager.cpp @@ -21,9 +21,8 @@ namespace MobileGL::MG_Backend::DirectVulkan { m_colorFormat = initInfo.colorFormat; m_depthStencilFormat = initInfo.depthStencilFormat; m_renderPassLoad = CreateDefaultRenderPass(VK_ATTACHMENT_LOAD_OP_LOAD); - m_renderPassClear = CreateDefaultRenderPass(VK_ATTACHMENT_LOAD_OP_CLEAR); MGLOG_D("VkRenderPassManager: RenderPasses created (LOAD/CLEAR)."); - return m_renderPassLoad != VK_NULL_HANDLE && m_renderPassClear != VK_NULL_HANDLE; + return m_renderPassLoad != VK_NULL_HANDLE; } void VkRenderPassManager::Shutdown() { @@ -34,15 +33,11 @@ namespace MobileGL::MG_Backend::DirectVulkan { m_offscreenRenderTargets.clear(); if (m_device != VK_NULL_HANDLE) { - if (m_renderPassClear != VK_NULL_HANDLE) { - vkDestroyRenderPass(m_device, m_renderPassClear, nullptr); - } if (m_renderPassLoad != VK_NULL_HANDLE) { vkDestroyRenderPass(m_device, m_renderPassLoad, nullptr); } } - m_renderPassClear = VK_NULL_HANDLE; m_renderPassLoad = VK_NULL_HANDLE; m_colorFormat = VK_FORMAT_UNDEFINED; m_depthStencilFormat = VK_FORMAT_UNDEFINED; @@ -242,14 +237,6 @@ namespace MobileGL::MG_Backend::DirectVulkan { vkCmdClearAttachments(commandBuffer, 1, &clearAttachment, 1, &clearRect); } - VkRenderPass VkRenderPassManager::GetLoadRenderPass() const { - return m_renderPassLoad; - } - - VkRenderPass VkRenderPassManager::GetClearRenderPass() const { - return m_renderPassClear; - } - VkRenderPass VkRenderPassManager::CreateDefaultRenderPass(VkAttachmentLoadOp colorLoadOp) const { MOBILEGL_ASSERT(m_device != VK_NULL_HANDLE, "VkRenderPassManager: device is null"); MOBILEGL_ASSERT(m_colorFormat != VK_FORMAT_UNDEFINED, "VkRenderPassManager: color format is undefined"); diff --git a/MobileGL/MG_Backend/DirectVulkan/Renderer/VkRenderPassManager.h b/MobileGL/MG_Backend/DirectVulkan/Renderer/VkRenderPassManager.h index fa01bffb..d7329761 100644 --- a/MobileGL/MG_Backend/DirectVulkan/Renderer/VkRenderPassManager.h +++ b/MobileGL/MG_Backend/DirectVulkan/Renderer/VkRenderPassManager.h @@ -52,9 +52,6 @@ namespace MobileGL::MG_Backend::DirectVulkan { void RecordDepthStencilClear(VkCommandBuffer commandBuffer, VkExtent2D extent, GLbitfield mask, Float depth, Uint32 stencil, VkFormat depthStencilFormat) const; - VkRenderPass GetLoadRenderPass() const; - VkRenderPass GetClearRenderPass() const; - private: struct OffscreenRenderTarget { Uint16 targetVersion = 0; @@ -78,7 +75,6 @@ namespace MobileGL::MG_Backend::DirectVulkan { VkFormat m_colorFormat = VK_FORMAT_UNDEFINED; VkFormat m_depthStencilFormat = VK_FORMAT_UNDEFINED; VkRenderPass m_renderPassLoad = VK_NULL_HANDLE; - VkRenderPass m_renderPassClear = VK_NULL_HANDLE; Vector m_defaultFramebuffers; VkExtent2D m_defaultExtent = {0, 0}; UnorderedMap m_offscreenRenderTargets; diff --git a/MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp b/MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp index 880e511c..8e3fbaed 100644 --- a/MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp +++ b/MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp @@ -157,7 +157,7 @@ namespace MobileGL::MG_Backend::DirectVulkan { payload.programHash = programHash; payload.vertexInputHash = vertexInputHash; payload.pipelineLayout = pipelineLayout; - payload.renderPass = (m_activeRenderPass != VK_NULL_HANDLE) ? m_activeRenderPass : GetDefaultLoadRenderPass(); + payload.renderPass = m_activeRenderPass; payload.subpass = 0; payload.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; const Bool depthTestEnabled = MG_State::pGLContext->IsCapabilityEnabled(CapabilityInput::DepthTest); @@ -2459,14 +2459,6 @@ namespace MobileGL::MG_Backend::DirectVulkan { MGLOG_I("Command pool created"); } - VkRenderPass VulkanRenderer::GetDefaultLoadRenderPass() const { - MOBILEGL_ASSERT(m_renderPassManager != nullptr, "GetDefaultLoadRenderPass: render pass manager is null"); - const VkRenderPass renderPass = m_renderPassManager->GetLoadRenderPass(); - MOBILEGL_ASSERT(renderPass != VK_NULL_HANDLE, - "GetDefaultLoadRenderPass: default load render pass is unavailable"); - return renderPass; - } - Bool VulkanRenderer::GetDefaultRenderTargetForCurrentImage(VkRenderPass& outRenderPass, VkFramebuffer& outFramebuffer, VkExtent2D& outExtent, VkFormat& outDepthStencilFormat) const { diff --git a/MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h b/MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h index 7a0349e8..24d9b22d 100644 --- a/MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h +++ b/MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h @@ -170,7 +170,6 @@ namespace MobileGL::MG_Backend::DirectVulkan { void CreateFrameContexts(); void CreateDepthStencilResources(); void DestroyDepthStencilResources(); - VkRenderPass GetDefaultLoadRenderPass() const; Bool GetDefaultRenderTargetForCurrentImage(VkRenderPass& outRenderPass, VkFramebuffer& outFramebuffer, VkExtent2D& outExtent, VkFormat& outDepthStencilFormat) const; Bool EnsureOffscreenRenderTarget(Uint glFboExternalIndex, const MG_State::GLState::FramebufferObject& glFbo,