MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ get_usage_flags()

vk::BufferUsageFlags MayaFlux::Buffers::VKBuffer::get_usage_flags ( ) const

Get appropriate VkBufferUsageFlags for creation based on Usage.

Returns
VkBufferUsageFlags to be used when creating VkBuffer.

Definition at line 225 of file VKBuffer.cpp.

226{
227 vk::BufferUsageFlags flags = vk::BufferUsageFlagBits::eTransferSrc | vk::BufferUsageFlagBits::eTransferDst;
228
229 switch (m_usage) {
230 case Usage::STAGING:
231 break;
232 case Usage::DEVICE:
233 case Usage::COMPUTE:
234 flags |= vk::BufferUsageFlagBits::eStorageBuffer;
235 break;
236 case Usage::VERTEX:
237 flags |= vk::BufferUsageFlagBits::eVertexBuffer | vk::BufferUsageFlagBits::eStorageBuffer;
238 break;
239 case Usage::INDEX:
240 flags |= vk::BufferUsageFlagBits::eIndexBuffer;
241 break;
242 case Usage::UNIFORM:
243 flags |= vk::BufferUsageFlagBits::eUniformBuffer;
244 break;
245 }
246
247 return flags;
248}
@ UNIFORM
Uniform buffer (host-visible when requested)
@ COMPUTE
Storage buffer for compute shaders.
@ STAGING
Host-visible staging buffer (CPU-writable)
@ DEVICE
Device-local GPU-only buffer.

References COMPUTE, DEVICE, INDEX, m_usage, STAGING, UNIFORM, and VERTEX.