[Chore] (MG_Test/Backend/DirectVulkan/TestExec): get rid of now useless default renderpass

This commit is contained in:
2026-02-24 12:25:04 +08:00
parent 2502d32a2e
commit caa814e8f9
4 changed files with 2 additions and 28 deletions
@@ -21,9 +21,8 @@ namespace MobileGL::MG_Backend::DirectVulkan {
m_colorFormat = initInfo.colorFormat; m_colorFormat = initInfo.colorFormat;
m_depthStencilFormat = initInfo.depthStencilFormat; m_depthStencilFormat = initInfo.depthStencilFormat;
m_renderPassLoad = CreateDefaultRenderPass(VK_ATTACHMENT_LOAD_OP_LOAD); m_renderPassLoad = CreateDefaultRenderPass(VK_ATTACHMENT_LOAD_OP_LOAD);
m_renderPassClear = CreateDefaultRenderPass(VK_ATTACHMENT_LOAD_OP_CLEAR);
MGLOG_D("VkRenderPassManager: RenderPasses created (LOAD/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() { void VkRenderPassManager::Shutdown() {
@@ -34,15 +33,11 @@ namespace MobileGL::MG_Backend::DirectVulkan {
m_offscreenRenderTargets.clear(); m_offscreenRenderTargets.clear();
if (m_device != VK_NULL_HANDLE) { if (m_device != VK_NULL_HANDLE) {
if (m_renderPassClear != VK_NULL_HANDLE) {
vkDestroyRenderPass(m_device, m_renderPassClear, nullptr);
}
if (m_renderPassLoad != VK_NULL_HANDLE) { if (m_renderPassLoad != VK_NULL_HANDLE) {
vkDestroyRenderPass(m_device, m_renderPassLoad, nullptr); vkDestroyRenderPass(m_device, m_renderPassLoad, nullptr);
} }
} }
m_renderPassClear = VK_NULL_HANDLE;
m_renderPassLoad = VK_NULL_HANDLE; m_renderPassLoad = VK_NULL_HANDLE;
m_colorFormat = VK_FORMAT_UNDEFINED; m_colorFormat = VK_FORMAT_UNDEFINED;
m_depthStencilFormat = VK_FORMAT_UNDEFINED; m_depthStencilFormat = VK_FORMAT_UNDEFINED;
@@ -242,14 +237,6 @@ namespace MobileGL::MG_Backend::DirectVulkan {
vkCmdClearAttachments(commandBuffer, 1, &clearAttachment, 1, &clearRect); 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 { VkRenderPass VkRenderPassManager::CreateDefaultRenderPass(VkAttachmentLoadOp colorLoadOp) const {
MOBILEGL_ASSERT(m_device != VK_NULL_HANDLE, "VkRenderPassManager: device is null"); MOBILEGL_ASSERT(m_device != VK_NULL_HANDLE, "VkRenderPassManager: device is null");
MOBILEGL_ASSERT(m_colorFormat != VK_FORMAT_UNDEFINED, "VkRenderPassManager: color format is undefined"); MOBILEGL_ASSERT(m_colorFormat != VK_FORMAT_UNDEFINED, "VkRenderPassManager: color format is undefined");
@@ -52,9 +52,6 @@ namespace MobileGL::MG_Backend::DirectVulkan {
void RecordDepthStencilClear(VkCommandBuffer commandBuffer, VkExtent2D extent, GLbitfield mask, Float depth, void RecordDepthStencilClear(VkCommandBuffer commandBuffer, VkExtent2D extent, GLbitfield mask, Float depth,
Uint32 stencil, VkFormat depthStencilFormat) const; Uint32 stencil, VkFormat depthStencilFormat) const;
VkRenderPass GetLoadRenderPass() const;
VkRenderPass GetClearRenderPass() const;
private: private:
struct OffscreenRenderTarget { struct OffscreenRenderTarget {
Uint16 targetVersion = 0; Uint16 targetVersion = 0;
@@ -78,7 +75,6 @@ namespace MobileGL::MG_Backend::DirectVulkan {
VkFormat m_colorFormat = VK_FORMAT_UNDEFINED; VkFormat m_colorFormat = VK_FORMAT_UNDEFINED;
VkFormat m_depthStencilFormat = VK_FORMAT_UNDEFINED; VkFormat m_depthStencilFormat = VK_FORMAT_UNDEFINED;
VkRenderPass m_renderPassLoad = VK_NULL_HANDLE; VkRenderPass m_renderPassLoad = VK_NULL_HANDLE;
VkRenderPass m_renderPassClear = VK_NULL_HANDLE;
Vector<VkFramebuffer> m_defaultFramebuffers; Vector<VkFramebuffer> m_defaultFramebuffers;
VkExtent2D m_defaultExtent = {0, 0}; VkExtent2D m_defaultExtent = {0, 0};
UnorderedMap<Uint, OffscreenRenderTarget> m_offscreenRenderTargets; UnorderedMap<Uint, OffscreenRenderTarget> m_offscreenRenderTargets;
@@ -157,7 +157,7 @@ namespace MobileGL::MG_Backend::DirectVulkan {
payload.programHash = programHash; payload.programHash = programHash;
payload.vertexInputHash = vertexInputHash; payload.vertexInputHash = vertexInputHash;
payload.pipelineLayout = pipelineLayout; payload.pipelineLayout = pipelineLayout;
payload.renderPass = (m_activeRenderPass != VK_NULL_HANDLE) ? m_activeRenderPass : GetDefaultLoadRenderPass(); payload.renderPass = m_activeRenderPass;
payload.subpass = 0; payload.subpass = 0;
payload.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; payload.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
const Bool depthTestEnabled = MG_State::pGLContext->IsCapabilityEnabled(CapabilityInput::DepthTest); const Bool depthTestEnabled = MG_State::pGLContext->IsCapabilityEnabled(CapabilityInput::DepthTest);
@@ -2459,14 +2459,6 @@ namespace MobileGL::MG_Backend::DirectVulkan {
MGLOG_I("Command pool created"); 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, Bool VulkanRenderer::GetDefaultRenderTargetForCurrentImage(VkRenderPass& outRenderPass,
VkFramebuffer& outFramebuffer, VkExtent2D& outExtent, VkFramebuffer& outFramebuffer, VkExtent2D& outExtent,
VkFormat& outDepthStencilFormat) const { VkFormat& outDepthStencilFormat) const {
@@ -170,7 +170,6 @@ namespace MobileGL::MG_Backend::DirectVulkan {
void CreateFrameContexts(); void CreateFrameContexts();
void CreateDepthStencilResources(); void CreateDepthStencilResources();
void DestroyDepthStencilResources(); void DestroyDepthStencilResources();
VkRenderPass GetDefaultLoadRenderPass() const;
Bool GetDefaultRenderTargetForCurrentImage(VkRenderPass& outRenderPass, VkFramebuffer& outFramebuffer, Bool GetDefaultRenderTargetForCurrentImage(VkRenderPass& outRenderPass, VkFramebuffer& outFramebuffer,
VkExtent2D& outExtent, VkFormat& outDepthStencilFormat) const; VkExtent2D& outExtent, VkFormat& outDepthStencilFormat) const;
Bool EnsureOffscreenRenderTarget(Uint glFboExternalIndex, const MG_State::GLState::FramebufferObject& glFbo, Bool EnsureOffscreenRenderTarget(Uint glFboExternalIndex, const MG_State::GLState::FramebufferObject& glFbo,