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

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

#include <FrameArena.h>

struct  Alloc
 

Public 成员函数

 ~FrameArena ()
 
 FrameArena (const FrameArena &)=delete
 
FrameArenaoperator= (const FrameArena &)=delete
 
 FrameArena ()=default
 
 FrameArena (FrameArena &&o) noexcept
 
FrameArenaoperator= (FrameArena &&o) noexcept
 
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.h18 行定义.

构造及析构函数说明

◆ ~FrameArena()

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

在文件 FrameArena.cpp5 行定义.

◆ FrameArena() [1/3]

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

◆ FrameArena() [2/3]

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

◆ FrameArena() [3/3]

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

在文件 FrameArena.h25 行定义.

成员函数说明

◆ 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.cpp50 行定义.

◆ buffer()

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

在文件 FrameArena.cpp66 行定义.

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

◆ capacity()

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

在文件 FrameArena.h43 行定义.

◆ 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.cpp28 行定义.

引用了 device.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

在文件 FrameArena.cpp13 行定义.

◆ reset()

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

在文件 FrameArena.cpp62 行定义.

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

◆ used()

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

在文件 FrameArena.h44 行定义.


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