Description

Minimal RAII owner for Vulkan objects required by the Sensor RT backend.

This class deliberately owns only instance/device/queue state. Acceleration structures, descriptor sets, SBTs, and command buffers are layered above it.

#include <ChVulkanRTDevice.h>

Public Member Functions

 ChVulkanRTDevice (const ChVulkanRTDeviceConfig &config={})
 
 ChVulkanRTDevice (const ChVulkanRTDevice &)=delete
 
ChVulkanRTDeviceoperator= (const ChVulkanRTDevice &)=delete
 
VkInstance GetInstance () const
 
VkPhysicalDevice GetPhysicalDevice () const
 
VkDevice GetDevice () const
 
VkQueue GetQueue () const
 
uint32_t GetQueueFamilyIndex () const
 
const VkPhysicalDeviceProperties & GetPhysicalDeviceProperties () const
 
const ChVulkanRTCapabilitiesGetCapabilities () const
 
uint32_t FindMemoryType (uint32_t type_bits, VkMemoryPropertyFlags required_flags, VkMemoryPropertyFlags preferred_flags=0) const
 Choose a memory type carrying all required flags, preferring extra flags when available. More...
 

Public Attributes

PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = nullptr
 
PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = nullptr
 
PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = nullptr
 
PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = nullptr
 
PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = nullptr
 
PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = nullptr
 
PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = nullptr
 
PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = nullptr
 
PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = nullptr
 

Member Function Documentation

◆ FindMemoryType()

uint32_t chrono::sensor::ChVulkanRTDevice::FindMemoryType ( uint32_t  type_bits,
VkMemoryPropertyFlags  required_flags,
VkMemoryPropertyFlags  preferred_flags = 0 
) const

Choose a memory type carrying all required flags, preferring extra flags when available.

If no supported type also carries preferred_flags, retry with required_flags only.


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono_sensor/vulkan/ChVulkanRTDevice.h
  • /builds/uwsbel/chrono/src/chrono_sensor/vulkan/ChVulkanRTDevice.cpp