Advertisement
Guest User

interesting functions

a guest
Mar 28th, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. Buffer RayTracing::createScratchBuffer(vk::AccelerationStructureKHR& accelerationStructure) {
  2.     vk::AccelerationStructureMemoryRequirementsInfoKHR memoryInfo;
  3.     memoryInfo.type = vk::AccelerationStructureMemoryRequirementsTypeKHR::eBuildScratch;
  4.     memoryInfo.buildType = vk::AccelerationStructureBuildTypeKHR::eDevice;
  5.     memoryInfo.accelerationStructure = accelerationStructure;
  6.  
  7.     vk::MemoryRequirements memoryRequirements =
  8.         m_context->m_logicalDevice->getAccelerationStructureMemoryRequirementsKHR(memoryInfo).memoryRequirements;
  9.  
  10.     return Buffer(
  11.         *m_context->m_logicalDevice,
  12.         memoryRequirements.size,
  13.         vk::BufferUsageFlagBits::eRayTracingKHR
  14.         | vk::BufferUsageFlagBits::eShaderDeviceAddress,
  15.         vk::MemoryPropertyFlagBits::eDeviceLocal,
  16.         vk::MemoryAllocateFlagBits::eDeviceAddress,
  17.         memoryRequirements);
  18. }
  19.  
  20. and
  21.  
  22. void CmdBufferAllocator::submitBuffer(vk::CommandBuffer& cmdBuffer, vk::Queue& queue, bool wait) {
  23.     vk::SubmitInfo submitInfo;
  24.     submitInfo.commandBufferCount = 1;
  25.     submitInfo.pCommandBuffers = &cmdBuffer;
  26.  
  27.     queue.submit(submitInfo, nullptr);
  28.  
  29.     if (wait) {
  30.         m_context.lock()->m_logicalDevice->waitIdle();
  31.     }
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement