From 684bfb3e9e3c642b052f714cd67f179ab29448ba Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Sat, 2 Sep 2023 12:03:32 +0200 Subject: [PATCH] Fix misc typos --- .../vulkan/accelstructs/vk_lightmap.cpp | 24 +++++++------------ .../vulkan/accelstructs/vk_raytrace.cpp | 7 +++--- .../rendering/vulkan/vk_renderdevice.cpp | 5 +++- 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/src/common/rendering/vulkan/accelstructs/vk_lightmap.cpp b/src/common/rendering/vulkan/accelstructs/vk_lightmap.cpp index ba87bd42bb..855fc5ff9f 100644 --- a/src/common/rendering/vulkan/accelstructs/vk_lightmap.cpp +++ b/src/common/rendering/vulkan/accelstructs/vk_lightmap.cpp @@ -481,35 +481,27 @@ void VkLightmap::CreateRaytracePipeline() void VkLightmap::UpdateAccelStructDescriptors() { - auto nodesBuffer = fb->GetRaytrace()->GetNodeBuffer(); - auto tlAccelStruct = fb->GetRaytrace()->GetAccelStruct(); - auto vertexBuffer = fb->GetRaytrace()->GetVertexBuffer(); - auto indexBuffer = fb->GetRaytrace()->GetIndexBuffer(); - auto surfaceIndexBuffer = fb->GetRaytrace()->GetSurfaceIndexBuffer(); - auto surfaceBuffer = fb->GetRaytrace()->GetSurfaceIndexBuffer(); - auto portalBuffer = fb->GetRaytrace()->GetPortalBuffer(); - if (useRayQuery) { WriteDescriptors() - .AddAccelerationStructure(raytrace.descriptorSet1.get(), 0, tlAccelStruct) + .AddAccelerationStructure(raytrace.descriptorSet1.get(), 0, fb->GetRaytrace()->GetAccelStruct()) .Execute(fb->GetDevice()); } else { WriteDescriptors() - .AddBuffer(raytrace.descriptorSet1.get(), 0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, nodesBuffer) - .AddBuffer(raytrace.descriptorSet1.get(), 1, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, vertexBuffer) - .AddBuffer(raytrace.descriptorSet1.get(), 2, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, indexBuffer) + .AddBuffer(raytrace.descriptorSet1.get(), 0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, fb->GetRaytrace()->GetNodeBuffer()) + .AddBuffer(raytrace.descriptorSet1.get(), 1, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, fb->GetRaytrace()->GetVertexBuffer()) + .AddBuffer(raytrace.descriptorSet1.get(), 2, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, fb->GetRaytrace()->GetIndexBuffer()) .Execute(fb->GetDevice()); } WriteDescriptors() .AddBuffer(raytrace.descriptorSet0.get(), 0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, uniforms.Buffer.get(), 0, sizeof(Uniforms)) - .AddBuffer(raytrace.descriptorSet0.get(), 1, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, surfaceIndexBuffer) - .AddBuffer(raytrace.descriptorSet0.get(), 2, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, surfaceBuffer) - //.AddBuffer(raytrace.descriptorSet0.get(), 3, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, sceneLightBuffer.get()) // TODO !!!!!!!!! - .AddBuffer(raytrace.descriptorSet0.get(), 4, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, portalBuffer) + .AddBuffer(raytrace.descriptorSet0.get(), 1, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, fb->GetRaytrace()->GetSurfaceIndexBuffer()) + .AddBuffer(raytrace.descriptorSet0.get(), 2, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, fb->GetRaytrace()->GetSurfaceBuffer()) + .AddBuffer(raytrace.descriptorSet0.get(), 3, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, lights.Buffer.get()) + .AddBuffer(raytrace.descriptorSet0.get(), 4, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, fb->GetRaytrace()->GetPortalBuffer()) .Execute(fb->GetDevice()); } diff --git a/src/common/rendering/vulkan/accelstructs/vk_raytrace.cpp b/src/common/rendering/vulkan/accelstructs/vk_raytrace.cpp index 59ee21107b..00098ab42e 100644 --- a/src/common/rendering/vulkan/accelstructs/vk_raytrace.cpp +++ b/src/common/rendering/vulkan/accelstructs/vk_raytrace.cpp @@ -144,22 +144,21 @@ void VkRaytrace::CreateVertexAndIndexBuffers() surfaceBuffer = BufferBuilder() .Usage(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT) - .Size(Mesh->Surfaces.Size() * sizeof(SurfaceInfo)) + .Size(Mesh->surfaceInfo.Size() * sizeof(SurfaceInfo)) .DebugName("surfaceBuffer") .Create(fb->GetDevice()); portalBuffer = BufferBuilder() .Usage(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT) - .Size(Mesh->portals.Size() * sizeof(SurfaceInfo)) + .Size(Mesh->portalInfo.Size() * sizeof(PortalInfo)) .DebugName("portalBuffer") .Create(fb->GetDevice()); - transferBuffer = BufferTransfer() .AddBuffer(vertexBuffer.get(), vertices.data(), vertices.size() * sizeof(FVector4)) .AddBuffer(indexBuffer.get(), Mesh->MeshElements.Data(), (size_t)Mesh->MeshElements.Size() * sizeof(uint32_t)) .AddBuffer(nodesBuffer.get(), &nodesHeader, sizeof(CollisionNodeBufferHeader), nodes.data(), nodes.size() * sizeof(CollisionNode)) - .AddBuffer(surfaceIndexBuffer.get(), &nodesHeader, sizeof(int), Mesh->MeshSurfaces.Data(), Mesh->MeshSurfaces.Size() * sizeof(int)) + .AddBuffer(surfaceIndexBuffer.get(), Mesh->MeshSurfaces.Data(), Mesh->MeshSurfaces.Size() * sizeof(int)) .AddBuffer(surfaceBuffer.get(), Mesh->surfaceInfo.Data(), Mesh->surfaceInfo.Size() * sizeof(SurfaceInfo)) .AddBuffer(portalBuffer.get(), Mesh->portalInfo.Data(), Mesh->portalInfo.Size() * sizeof(PortalInfo)) .Execute(fb->GetDevice(), fb->GetCommands()->GetTransferCommands()); diff --git a/src/common/rendering/vulkan/vk_renderdevice.cpp b/src/common/rendering/vulkan/vk_renderdevice.cpp index f8259f099a..ebf994bb80 100644 --- a/src/common/rendering/vulkan/vk_renderdevice.cpp +++ b/src/common/rendering/vulkan/vk_renderdevice.cpp @@ -536,8 +536,11 @@ void VulkanRenderDevice::SetLevelMesh(hwrenderer::LevelMesh* mesh) { mRaytrace->SetLevelMesh(mesh); - if (mesh->Surfaces.Size() > 0) + static hwrenderer::LevelMesh* lastMesh = nullptr; // Temp hack; Since this function is called every frame we only want to do this once + if (lastMesh != mesh && mesh->Surfaces.Size() > 0) { + lastMesh = mesh; + #if 0 // To do: GetLightmap()->Raytrace should output directly to the lightmap texture instead of forcing us to download it to the CPU first GetTextureManager()->CreateLightmap(mesh->LMTextureSize, mesh->LMTextureCount);