From 1f38651ce7a6933ab888d8ab5446aee7b4345294 Mon Sep 17 00:00:00 2001 From: apistol78 Date: Tue, 11 Jun 2024 16:34:38 +0200 Subject: [PATCH] Traktor: Fixed Vulkan validation issues, one with gbuffer format and one in terrain culling. --- code/Terrain/TerrainComponent.cpp | 5 +++-- code/World/Shared/Passes/GBufferPass.cpp | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/code/Terrain/TerrainComponent.cpp b/code/Terrain/TerrainComponent.cpp index 6f1177e54..e9b81dfbd 100644 --- a/code/Terrain/TerrainComponent.cpp +++ b/code/Terrain/TerrainComponent.cpp @@ -647,6 +647,7 @@ bool TerrainComponent::createPatches() safeDestroy(m_indexBuffer); safeDestroy(m_vertexBuffer); safeDestroy(m_drawBuffer); + safeDestroy(m_culledDrawBuffer); safeDestroy(m_dataBuffer); const uint32_t heightfieldSize = m_heightfield->getSize(); @@ -844,7 +845,7 @@ bool TerrainComponent::createPatches() const uint32_t alignedPatchCount = alignUp((uint32_t)m_patches.size(), 16); m_drawBuffer = m_renderSystem->createBuffer( - render::BuIndirect, + render::BuStructured | render::BuIndirect, alignedPatchCount * sizeof(render::IndexedIndirectDraw), true ); @@ -852,7 +853,7 @@ bool TerrainComponent::createPatches() return false; m_culledDrawBuffer = m_renderSystem->createBuffer( - render::BuIndirect, + render::BuStructured | render::BuIndirect, alignedPatchCount * sizeof(render::IndexedIndirectDraw), false ); diff --git a/code/World/Shared/Passes/GBufferPass.cpp b/code/World/Shared/Passes/GBufferPass.cpp index 525ab1737..b86fcac8f 100644 --- a/code/World/Shared/Passes/GBufferPass.cpp +++ b/code/World/Shared/Passes/GBufferPass.cpp @@ -56,7 +56,7 @@ render::handle_t GBufferPass::setup( rgtd.targets[0].colorFormat = render::TfR16G16B16A16F; // (GBufferA) Depth (R), Normal (GBA) rgtd.targets[1].colorFormat = render::TfR8G8B8A8; // (GBufferB) Albedo (RGB) rgtd.targets[2].colorFormat = render::TfR8G8B8A8; // (GBufferC) Roughness (R), Metalness (G), Specular (B), Decal Response (A) - rgtd.targets[3].colorFormat = render::TfR10G10B10A2; // (GBufferD) Irradiance (RGB) + rgtd.targets[3].colorFormat = render::TfR8G8B8A8; // (GBufferD) Irradiance (RGB) auto gbufferTargetSetId = renderGraph.addTransientTargetSet(L"GBuffer", rgtd, outputTargetSetId, outputTargetSetId);