From bc51acc98dc7ff82900eacb08667ee5b04a7b1ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Briano?= Date: Mon, 10 Aug 2026 15:02:28 -0700 Subject: [PATCH] [vulkan] build acceleration structures for compute and graphics pipelines The ray queries support missed this bit. --- src/vulkan/compute_pipeline.cc | 9 +++++++++ src/vulkan/graphics_pipeline.cc | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/src/vulkan/compute_pipeline.cc b/src/vulkan/compute_pipeline.cc index 2b4d84c2..1c821e8f 100644 --- a/src/vulkan/compute_pipeline.cc +++ b/src/vulkan/compute_pipeline.cc @@ -15,8 +15,10 @@ #include "src/vulkan/compute_pipeline.h" #include +#include "src/vulkan/blas.h" #include "src/vulkan/command_pool.h" #include "src/vulkan/device.h" +#include "src/vulkan/tlas.h" namespace amber { namespace vulkan { @@ -104,6 +106,13 @@ Result ComputePipeline::Compute(uint32_t x, return guard.GetResult(); } + for (auto& i : *blases_) { + i.second->BuildBLAS(GetCommandBuffer()); + } + for (auto& i : *tlases_) { + i.second->BuildTLAS(GetCommandBuffer()->GetVkCommandBuffer()); + } + BindVkDescriptorSets(pipeline_layout); r = RecordPushConstant(pipeline_layout); diff --git a/src/vulkan/graphics_pipeline.cc b/src/vulkan/graphics_pipeline.cc index 2f0f645b..af9e13ce 100644 --- a/src/vulkan/graphics_pipeline.cc +++ b/src/vulkan/graphics_pipeline.cc @@ -18,8 +18,10 @@ #include #include "src/command.h" +#include "src/vulkan/blas.h" #include "src/vulkan/command_pool.h" #include "src/vulkan/device.h" +#include "src/vulkan/tlas.h" namespace amber { namespace vulkan { @@ -927,6 +929,13 @@ Result GraphicsPipeline::Draw(const DrawArraysCommand* command, return cmd_buf_guard.GetResult(); } + for (auto& i : *blases_) { + i.second->BuildBLAS(GetCommandBuffer()); + } + for (auto& i : *tlases_) { + i.second->BuildTLAS(GetCommandBuffer()->GetVkCommandBuffer()); + } + r = SendVertexBufferDataIfNeeded(vertex_buffer); if (!r.IsSuccess()) { return r;