From c41a63370e54cc1e6e0c1b1dc20e219f3cac2845 Mon Sep 17 00:00:00 2001 From: quou Date: Sun, 29 Dec 2024 13:39:33 +1100 Subject: fix depth only render passes --- pipeline.cpp | 6 ++++-- video.cpp | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pipeline.cpp b/pipeline.cpp index c31ef69..8867a8d 100644 --- a/pipeline.cpp +++ b/pipeline.cpp @@ -93,8 +93,10 @@ void Pipeline_Builder::validate_rp() { d.fmt == texture_format_d24s8 || d.fmt == texture_format_d32 ); - assert(d.w == w); - assert(d.h == h); + if (c) { + assert(d.w == w); + assert(d.h == h); + } } } diff --git a/video.cpp b/video.cpp index ba6fd7c..5d88d0c 100644 --- a/video.cpp +++ b/video.cpp @@ -1522,17 +1522,17 @@ void Renderpass_Vk::init( ad.storeOp = VK_ATTACHMENT_STORE_OP_STORE; ad.stencilLoadOp = ad.loadOp; ad.stencilStoreOp = VK_ATTACHMENT_STORE_OP_STORE; - if (rpk.is_first) + if (rpk.is_first || rp.depth.mode == Clear_Mode::clear) ad.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; else - ad.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + ad.initialLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; ad.finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; dar.attachment = i; dar.layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; } sd.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS; - sd.colorAttachmentCount = 1; + sd.colorAttachmentCount = rp.colour_count; sd.pColorAttachments = &car; sd.pDepthStencilAttachment = has_depth? &dar: 0; -- cgit v1.2.3-54-g00ecf