Improving updateUniformBuffer and search paths
This commit is contained in:
parent
9dc142760f
commit
0bac428ad5
40 changed files with 458 additions and 363 deletions
|
|
@ -89,7 +89,7 @@ void HelloVulkan::setup(const vk::Instance& instance,
|
|||
//--------------------------------------------------------------------------------------------------
|
||||
// Called at each frame to update the camera matrix
|
||||
//
|
||||
void HelloVulkan::updateUniformBuffer()
|
||||
void HelloVulkan::updateUniformBuffer(const vk::CommandBuffer& cmdBuf)
|
||||
{
|
||||
const float aspectRatio = m_size.width / static_cast<float>(m_size.height);
|
||||
|
||||
|
|
@ -101,9 +101,15 @@ void HelloVulkan::updateUniformBuffer()
|
|||
// #VKRay
|
||||
ubo.projInverse = nvmath::invert(ubo.proj);
|
||||
|
||||
void* data = m_alloc.map(m_cameraMat);
|
||||
memcpy(data, &ubo, sizeof(ubo));
|
||||
m_alloc.unmap(m_cameraMat);
|
||||
|
||||
cmdBuf.updateBuffer<CameraMatrices>(m_cameraMat.buffer, 0, ubo);
|
||||
|
||||
// Making sure the matrix buffer will be available
|
||||
vk::MemoryBarrier mb{vk::AccessFlagBits::eTransferWrite, vk::AccessFlagBits::eShaderRead};
|
||||
cmdBuf.pipelineBarrier(vk::PipelineStageFlagBits::eTransfer,
|
||||
vk::PipelineStageFlagBits::eVertexShader
|
||||
| vk::PipelineStageFlagBits::eAccelerationStructureBuildKHR,
|
||||
vk::DependencyFlagBits::eDeviceGroup, {mb}, {}, {});
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
|
@ -288,8 +294,8 @@ void HelloVulkan::createUniformBuffer()
|
|||
using vkBU = vk::BufferUsageFlagBits;
|
||||
using vkMP = vk::MemoryPropertyFlagBits;
|
||||
|
||||
m_cameraMat = m_alloc.createBuffer(sizeof(CameraMatrices), vkBU::eUniformBuffer,
|
||||
vkMP::eHostVisible | vkMP::eHostCoherent);
|
||||
m_cameraMat = m_alloc.createBuffer(sizeof(CameraMatrices),
|
||||
vkBU::eUniformBuffer | vkBU::eTransferDst, vkMP::eDeviceLocal);
|
||||
m_debug.setObjectName(m_cameraMat.buffer, "cameraMat");
|
||||
}
|
||||
|
||||
|
|
@ -681,10 +687,10 @@ nvvk::RaytracingBuilderKHR::BlasInput HelloVulkan::objectToVkGeometryKHR(const O
|
|||
offset.setPrimitiveOffset(0);
|
||||
offset.setTransformOffset(0);
|
||||
|
||||
nvvk::RaytracingBuilderKHR::BlasInput blas;
|
||||
blas.asGeometry.emplace_back(asGeom);
|
||||
blas.asBuildOffsetInfo.emplace_back(offset);
|
||||
return blas;
|
||||
nvvk::RaytracingBuilderKHR::BlasInput input;
|
||||
input.asGeometry.emplace_back(asGeom);
|
||||
input.asBuildOffsetInfo.emplace_back(offset);
|
||||
return input;
|
||||
}
|
||||
|
||||
void HelloVulkan::createBottomLevelAS()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue