From 3c01881a6bd5cbc147130ec1dc5ba93ddbe7805b Mon Sep 17 00:00:00 2001 From: hyzboy Date: Tue, 20 Oct 2020 18:26:02 +0800 Subject: [PATCH] fix a but, it doesn't disable Depth AttachmentDescription at RenderPass --- CMSceneGraph | 2 +- example/Vulkan/OffscreenRender.cpp | 2 +- src/RenderDevice/Vulkan/VKDeviceRenderPass.cpp | 16 +++++++++++----- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/CMSceneGraph b/CMSceneGraph index 249c47d2..0178a443 160000 --- a/CMSceneGraph +++ b/CMSceneGraph @@ -1 +1 @@ -Subproject commit 249c47d242c2e8dc4994581720984e55c0cc0ebe +Subproject commit 0178a443b3d96f08f95c42b474f526bfd4e29389 diff --git a/example/Vulkan/OffscreenRender.cpp b/example/Vulkan/OffscreenRender.cpp index 1a898575..e385caf3 100644 --- a/example/Vulkan/OffscreenRender.cpp +++ b/example/Vulkan/OffscreenRender.cpp @@ -64,7 +64,7 @@ public: bool InitOffscreen() { - os.render_taget=device->CreateRenderTarget(OFFSCREEN_SIZE,OFFSCREEN_SIZE,UFMT_RGBA8,FMT_D16UN); + os.render_taget=device->CreateColorRenderTarget(OFFSCREEN_SIZE,OFFSCREEN_SIZE,UFMT_RGBA8); if(!os.render_taget)return(false); os.material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/VertexColor2D")); diff --git a/src/RenderDevice/Vulkan/VKDeviceRenderPass.cpp b/src/RenderDevice/Vulkan/VKDeviceRenderPass.cpp index 034dc7d0..814bb5d9 100644 --- a/src/RenderDevice/Vulkan/VKDeviceRenderPass.cpp +++ b/src/RenderDevice/Vulkan/VKDeviceRenderPass.cpp @@ -84,10 +84,13 @@ bool CreateAttachmentDescription(List &desc_list,const { const uint color_count=color_format.GetCount(); - desc_list.SetCount(color_count+1); + const uint count=(depth_format!=FMT_UNDEFINED)?color_count+1:color_count; + + desc_list.SetCount(count); + VkAttachmentDescription *desc=desc_list.GetData(); - for(uint i=0;iflags = 0; desc->samples = VK_SAMPLE_COUNT_1_BIT; @@ -111,9 +114,12 @@ bool CreateAttachmentDescription(List &desc_list,const ++cf; } - desc->finalLayout = depth_final_layout; - desc->format = depth_format; - desc->storeOp = VK_ATTACHMENT_STORE_OP_STORE; //swapchainRT最后"可能"是不需要保存深度的,,,,想想怎么最后弄成"DONT CARE" + if(depth_format!=FMT_UNDEFINED) + { + desc->finalLayout = depth_final_layout; + desc->format = depth_format; + desc->storeOp = VK_ATTACHMENT_STORE_OP_STORE; //swapchainRT最后"可能"是不需要保存深度的,,,,想想怎么最后弄成"DONT CARE" + } return(true); }