载入中...
搜索中...
未找到
eve::graphics::raytracing::DeviceAddressBuffer结构体 参考

Device-local buffer with shader device address (for AS builds / SBT). @ownership Owns the Vulkan buffer and memory; destroyed on release(). 更多...

#include <VulkanRayTracing.h>

Public 成员函数

 DeviceAddressBuffer ()=default
 Constructs a DeviceAddressBuffer.
 
 ~DeviceAddressBuffer ()
 Releases DeviceAddressBuffer resources.
 
 DeviceAddressBuffer (const DeviceAddressBuffer &)=delete
 
DeviceAddressBuffer & operator= (const DeviceAddressBuffer &)=delete
 
 DeviceAddressBuffer (DeviceAddressBuffer &&o) noexcept
 Constructs a DeviceAddressBuffer.
 
DeviceAddressBuffer & operator= (DeviceAddressBuffer &&o) noexcept
 Operator =.
 
void release ()
 Release.
 
void steal (DeviceAddressBuffer &o) noexcept
 Steal.
 
Result< void > allocate (vkb::Device &dev, vk::DeviceSize bytes, vk::BufferUsageFlags usage)
 Allocate a buffer usage that includes SHADER_DEVICE_ADDRESS.
 
Result< void > upload (vk::CommandPool pool, vk::Queue queue, const void *data, vk::DeviceSize bytes)
 Upload host bytes via a staging buffer (stalls the queue).
 

Public 属性

vk::Buffer buffer {}
 
vk::DeviceMemory memory {}
 
vk::DeviceSize size = 0
 
vk::DeviceAddress address = 0
 
vkb::Device * device = nullptr
 

详细描述

Device-local buffer with shader device address (for AS builds / SBT). @ownership Owns the Vulkan buffer and memory; destroyed on release().

在文件 VulkanRayTracing.h 第 28 行定义.

构造及析构函数说明

◆ DeviceAddressBuffer() [1/3]

eve::graphics::raytracing::DeviceAddressBuffer::DeviceAddressBuffer ( )
default

Constructs a DeviceAddressBuffer.

◆ ~DeviceAddressBuffer()

eve::graphics::raytracing::DeviceAddressBuffer::~DeviceAddressBuffer ( )
inline

Releases DeviceAddressBuffer resources.

在文件 VulkanRayTracing.h 第 38 行定义.

引用了 release().

◆ DeviceAddressBuffer() [2/3]

eve::graphics::raytracing::DeviceAddressBuffer::DeviceAddressBuffer ( const DeviceAddressBuffer &  )
delete

◆ DeviceAddressBuffer() [3/3]

eve::graphics::raytracing::DeviceAddressBuffer::DeviceAddressBuffer ( DeviceAddressBuffer &&  o)
inlinenoexcept

Constructs a DeviceAddressBuffer.

在文件 VulkanRayTracing.h 第 42 行定义.

引用了 steal().

成员函数说明

◆ allocate()

Result< void > eve::graphics::raytracing::DeviceAddressBuffer::allocate ( vkb::Device &  dev,
vk::DeviceSize  bytes,
vk::BufferUsageFlags  usage 
)

Allocate a buffer usage that includes SHADER_DEVICE_ADDRESS.

在文件 VulkanRayTracing.cpp 第 77 行定义.

引用了 address, buffer, bytes, device, eve::Diagnostic::error(), eve::Failed, eve::Result< T >::failure(), eve::InvalidArgument, memory, release(), size, eve::Result< T >::success() , 以及 usage.

◆ operator=() [1/2]

DeviceAddressBuffer & eve::graphics::raytracing::DeviceAddressBuffer::operator= ( const DeviceAddressBuffer &  )
delete

◆ operator=() [2/2]

DeviceAddressBuffer & eve::graphics::raytracing::DeviceAddressBuffer::operator= ( DeviceAddressBuffer &&  o)
inlinenoexcept

Operator =.

Release.

Steal.

在文件 VulkanRayTracing.h 第 44 行定义.

引用了 release() , 以及 steal().

◆ release()

void eve::graphics::raytracing::DeviceAddressBuffer::release ( )

◆ steal()

void eve::graphics::raytracing::DeviceAddressBuffer::steal ( DeviceAddressBuffer &  o)
noexcept

Steal.

在文件 VulkanRayTracing.cpp 第 64 行定义.

引用了 buffer, device, memory , 以及 size.

被这些函数引用 DeviceAddressBuffer() , 以及 operator=().

◆ upload()

Result< void > eve::graphics::raytracing::DeviceAddressBuffer::upload ( vk::CommandPool  pool,
vk::Queue  queue,
const void *  data,
vk::DeviceSize  bytes 
)

Upload host bytes via a staging buffer (stalls the queue).

在文件 VulkanRayTracing.cpp 第 114 行定义.

引用了 buffer, bytes, device, eve::Diagnostic::error(), eve::Failed, eve::Result< T >::failure(), eve::InvalidArgument, size , 以及 eve::Result< T >::success().

类成员变量说明

◆ address

vk::DeviceAddress eve::graphics::raytracing::DeviceAddressBuffer::address = 0

在文件 VulkanRayTracing.h 第 32 行定义.

被这些函数引用 allocate() , 以及 release().

◆ buffer

vk::Buffer eve::graphics::raytracing::DeviceAddressBuffer::buffer {}

在文件 VulkanRayTracing.h 第 29 行定义.

被这些函数引用 allocate(), release() , 以及 upload().

◆ device

vkb::Device* eve::graphics::raytracing::DeviceAddressBuffer::device = nullptr

在文件 VulkanRayTracing.h 第 33 行定义.

被这些函数引用 allocate(), release() , 以及 upload().

◆ memory

vk::DeviceMemory eve::graphics::raytracing::DeviceAddressBuffer::memory {}

在文件 VulkanRayTracing.h 第 30 行定义.

被这些函数引用 allocate() , 以及 release().

◆ size

vk::DeviceSize eve::graphics::raytracing::DeviceAddressBuffer::size = 0

在文件 VulkanRayTracing.h 第 31 行定义.

被这些函数引用 allocate(), release() , 以及 upload().


该结构体的文档由以下文件生成: