Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Buffer RayTracing::createScratchBuffer(vk::AccelerationStructureKHR& accelerationStructure) {
- vk::AccelerationStructureMemoryRequirementsInfoKHR memoryInfo;
- memoryInfo.type = vk::AccelerationStructureMemoryRequirementsTypeKHR::eBuildScratch;
- memoryInfo.buildType = vk::AccelerationStructureBuildTypeKHR::eDevice;
- memoryInfo.accelerationStructure = accelerationStructure;
- vk::MemoryRequirements memoryRequirements =
- m_context->m_logicalDevice->getAccelerationStructureMemoryRequirementsKHR(memoryInfo).memoryRequirements;
- return Buffer(
- *m_context->m_logicalDevice,
- memoryRequirements.size,
- vk::BufferUsageFlagBits::eRayTracingKHR
- | vk::BufferUsageFlagBits::eShaderDeviceAddress,
- vk::MemoryPropertyFlagBits::eDeviceLocal,
- vk::MemoryAllocateFlagBits::eDeviceAddress,
- memoryRequirements);
- }
- and
- void CmdBufferAllocator::submitBuffer(vk::CommandBuffer& cmdBuffer, vk::Queue& queue, bool wait) {
- vk::SubmitInfo submitInfo;
- submitInfo.commandBufferCount = 1;
- submitInfo.pCommandBuffers = &cmdBuffer;
- queue.submit(submitInfo, nullptr);
- if (wait) {
- m_context.lock()->m_logicalDevice->waitIdle();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement