载入中...
搜索中...
未找到
eve::graphics::vulkan::FrameArena类 参考

Per-frame GPU allocation arena (host-visible coherent). 更多...

#include <FrameArena.h>

类

struct  Alloc
 Alloc public API. 更多...
 

Public 成员函数

 ~FrameArena ()
 Releases FrameArena resources.
 
 FrameArena (const FrameArena &)=delete
 
FrameArena & operator= (const FrameArena &)=delete
 
 FrameArena ()=default
 Constructs a FrameArena.
 
 FrameArena (FrameArena &&o) noexcept
 Constructs a FrameArena.
 
FrameArena & operator= (FrameArena &&o) noexcept
 Operator =.
 
bool ensure (vkb::Device &device, vk::DeviceSize bytes, vk::BufferUsageFlags usage)
 Allocate or grow (before any recording) so bytes fit.
 
Alloc alloc (vk::DeviceSize bytes, vk::DeviceSize align=16)
 Allocate bytes (aligned). Returns empty Alloc on capacity overflow.
 
void reset ()
 
vk::Buffer buffer () const
 
vk::DeviceSize capacity () const
 
vk::DeviceSize used () const
 

详细描述

Per-frame GPU allocation arena (host-visible coherent).

One arena per swapchain frame slot. reset() at frame start; alloc() hands out monotonically increasing offsets until capacity. There is no free/realloc inside a frame: everything written here lives until the slot wraps around, which is exactly the lifetime the frame's command buffer needs.

在文件 FrameArena.h 第 18 行定义.

构造及析构函数说明

◆ ~FrameArena()

eve::graphics::vulkan::FrameArena::~FrameArena ( )

Releases FrameArena resources.

在文件 FrameArena.cpp 第 5 行定义.

◆ FrameArena() [1/3]

eve::graphics::vulkan::FrameArena::FrameArena ( const FrameArena &  )
delete

◆ FrameArena() [2/3]

eve::graphics::vulkan::FrameArena::FrameArena ( )
default

Constructs a FrameArena.

◆ FrameArena() [3/3]

eve::graphics::vulkan::FrameArena::FrameArena ( FrameArena &&  o)
inlinenoexcept

Constructs a FrameArena.

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

成员函数说明

◆ alloc()

FrameArena::Alloc eve::graphics::vulkan::FrameArena::alloc ( vk::DeviceSize  bytes,
vk::DeviceSize  align = 16 
)

Allocate bytes (aligned). Returns empty Alloc on capacity overflow.

在文件 FrameArena.cpp 第 50 行定义.

引用了 bytes.

◆ buffer()

vk::Buffer eve::graphics::vulkan::FrameArena::buffer ( ) const

在文件 FrameArena.cpp 第 66 行定义.

被这些函数引用 eve::graphics::vulkan::Graphics::gpuDrivenCullEmit().

◆ capacity()

vk::DeviceSize eve::graphics::vulkan::FrameArena::capacity ( ) const
inline

在文件 FrameArena.h 第 48 行定义.

◆ ensure()

bool eve::graphics::vulkan::FrameArena::ensure ( vkb::Device &  device,
vk::DeviceSize  bytes,
vk::BufferUsageFlags  usage 
)

Allocate or grow (before any recording) so bytes fit.

在文件 FrameArena.cpp 第 28 行定义.

引用了 bytes, device, target , 以及 usage.

◆ operator=() [1/2]

FrameArena & eve::graphics::vulkan::FrameArena::operator= ( const FrameArena &  )
delete

◆ operator=() [2/2]

FrameArena & eve::graphics::vulkan::FrameArena::operator= ( FrameArena &&  o)
noexcept

Operator =.

在文件 FrameArena.cpp 第 13 行定义.

◆ reset()

void eve::graphics::vulkan::FrameArena::reset ( )

在文件 FrameArena.cpp 第 62 行定义.

被这些函数引用 eve::graphics::vulkan::Graphics::begin3DFrame().

◆ used()

vk::DeviceSize eve::graphics::vulkan::FrameArena::used ( ) const
inline

在文件 FrameArena.h 第 49 行定义.


该类的文档由以下文件生成: