Nebula
Loading...
Searching...
No Matches
vkbuffer.cc File Reference
#include "vkgraphicsdevice.h"
#include "vkcommandbuffer.h"
#include "vkbuffer.h"
#include "util/bit.h"

Namespaces

namespace  Vulkan
 Vulkan implementation of GPU acceleration structure.
 
namespace  CoreGraphics
 Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH.
 

Functions

VkBuffer Vulkan::BufferGetVk (const CoreGraphics::BufferId id)
 get buffer object
 
VkDeviceMemory Vulkan::BufferGetVkMemory (const CoreGraphics::BufferId id)
 get buffer memory
 
VkDevice Vulkan::BufferGetVkDevice (const CoreGraphics::BufferId id)
 get buffer device
 
 CoreGraphics::_IMPL_ACQUIRE_RELEASE (BufferId, bufferAllocator)
 
const BufferId CoreGraphics::CreateBuffer (const BufferCreateInfo &info)
 create buffer
 
void CoreGraphics::DestroyBuffer (const BufferId id)
 destroy buffer
 
const BufferUsageFlags CoreGraphics::BufferGetType (const BufferId id)
 get type of buffer
 
const SizeT CoreGraphics::BufferGetSize (const BufferId id)
 get buffer size, which is the number of elements
 
const SizeT CoreGraphics::BufferGetElementSize (const BufferId id)
 get buffer element size, this is the size of a single element, like a vertex or index, and is multiplied with the size
 
const SizeT CoreGraphics::BufferGetByteSize (const BufferId id)
 get buffer total byte size
 
const SizeT CoreGraphics::BufferGetUploadMaxSize ()
 get maximum size of upload for BufferUpload
 
void * CoreGraphics::BufferMap (const BufferId id)
 map memory
 
void CoreGraphics::BufferUnmap (const BufferId id)
 unmap memory
 
void CoreGraphics::BufferUpdate (const BufferId id, const void *data, const uint size, const uint offset=0)
 update buffer data
 
void CoreGraphics::BufferUpload (const CoreGraphics::CmdBufferId cmdBuf, const BufferId id, const void *data, const uint size, const uint offset)
 update buffer directly on command buffer during frame update, asserts if size is too big
 
void CoreGraphics::BufferFill (const CoreGraphics::CmdBufferId cmdBuf, const BufferId id, char pattern)
 fill buffer with data much like memset
 
void CoreGraphics::BufferFlush (const BufferId id, IndexT offset=0, SizeT size=NEBULA_WHOLE_BUFFER_SIZE)
 flush any changes done to the buffer on the CPU side so they are visible on the GPU
 
void CoreGraphics::BufferInvalidate (const BufferId id, IndexT offset=0, SizeT size=NEBULA_WHOLE_BUFFER_SIZE)
 invalidate buffer CPU side, such that any GPU changes will be made visible
 
void CoreGraphics::BufferSparseEvict (const BufferId id, IndexT pageIndex)
 Evict a page.
 
void CoreGraphics::BufferSparseMakeResident (const BufferId id, IndexT pageIndex)
 Make a page resident.
 
IndexT CoreGraphics::BufferSparseGetPageIndex (const BufferId id, SizeT offset)
 Get the page index given an offset.
 
SizeT CoreGraphics::BufferSparseGetPageSize (const BufferId id)
 Get the buffer page size.
 
void CoreGraphics::BufferSparseCommitChanges (const BufferId id)
 Commit sparse bindings.
 
CoreGraphics::DeviceAddress CoreGraphics::BufferGetDeviceAddress (const BufferId id)
 Get buffer device address.
 
void CoreGraphics::BufferCopyWithStaging (const CoreGraphics::BufferId dest, const uint offset, const void *data, const uint size)
 Shortcut for creating a staging buffer and copy.
 

Variables

VkBufferAllocator Vulkan::bufferAllocator
 
VkBufferSparseExtensionAllocator Vulkan::bufferSparseExtensionAllocator