From e3f204a17bf08639dde512a79a74b285fe495419 Mon Sep 17 00:00:00 2001 From: Vanessa Karolek <vaka1997@uni-koblenz.de> Date: Fri, 3 Sep 2021 15:40:39 +0200 Subject: [PATCH] [#92] resolve todo: convert uint8_t data into uint16_t data --- modules/rtx/src/vkcv/rtx/ASManager.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/rtx/src/vkcv/rtx/ASManager.cpp b/modules/rtx/src/vkcv/rtx/ASManager.cpp index d4e3dbd9..42ec2656 100644 --- a/modules/rtx/src/vkcv/rtx/ASManager.cpp +++ b/modules/rtx/src/vkcv/rtx/ASManager.cpp @@ -74,7 +74,7 @@ namespace vkcv::rtx { dld ); - // Allocate the AS TODO: which type do we need for the buffer?? + // Allocate the AS TODO: which type do we need for the buffer?? !!! Buffer<vk::AccelerationStructureKHR> asBuffer = m_core->createBuffer<vk::AccelerationStructureKHR>(BufferType::RT_ACCELERATION_VERTEX, asBuildSizesInfo.accelerationStructureSize, BufferMemoryType::DEVICE_LOCAL); // core->createBuffer<>() @@ -104,12 +104,17 @@ namespace vkcv::rtx { } vk::Buffer ASManager::makeBuffer(std::vector<uint8_t> &data) { - // make vk::Buffer of type uint16_t + // convert uint8_t data into unit16_t + std::vector<uint16_t> data_converted; + for (size_t i=0; i<data.size(); i++) { + data_converted.push_back((uint16_t)data[i]); + } + // now create a vk::Buffer of type uint16_t for the data vk::Device device = m_core->getContext().getDevice(); // first: Staging Buffer creation - vk::DeviceSize deviceSize = sizeof(data[0]) * data.size(); + vk::DeviceSize deviceSize = sizeof(data_converted[0]) * data_converted.size(); vk::BufferUsageFlags bufferUsageFlagBits = vk::BufferUsageFlagBits::eTransferSrc; vk::BufferCreateInfo bufferCreateInfo( vk::BufferCreateFlags(), // vk::BufferCreateFlags @@ -149,7 +154,7 @@ namespace vkcv::rtx { // fill staging buffer void* mapped = device.mapMemory(deviceMemory, memoryOffset, deviceSize); - std::memcpy(mapped, data.data(), deviceSize); + std::memcpy(mapped, data_converted.data(), deviceSize); device.unmapMemory(deviceMemory); // second: GPU Buffer creation -- GitLab