MayaFlux 0.4.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 220 of file VKBuffer.cpp.

221{
222 vk::BufferUsageFlags flags = vk::BufferUsageFlagBits::eTransferSrc | vk::BufferUsageFlagBits::eTransferDst;
223
224 switch (m_usage) {
225 case Usage::STAGING:
226 break;
227 case Usage::DEVICE:
228 case Usage::COMPUTE:
229 flags |= vk::BufferUsageFlagBits::eStorageBuffer;
230 break;
231 case Usage::VERTEX:
232 flags |= vk::BufferUsageFlagBits::eVertexBuffer | vk::BufferUsageFlagBits::eStorageBuffer;
233 break;
234 case Usage::INDEX:
235 flags |= vk::BufferUsageFlagBits::eIndexBuffer;
236 break;
237 case Usage::UNIFORM:
238 flags |= vk::BufferUsageFlagBits::eUniformBuffer;
239 break;
241 flags |= vk::BufferUsageFlagBits::eUniformBuffer
242 | vk::BufferUsageFlagBits::eShaderDeviceAddress;
243 break;
245 flags |= vk::BufferUsageFlagBits::eStorageBuffer
246 | vk::BufferUsageFlagBits::eShaderDeviceAddress;
247 break;
249 flags |= vk::BufferUsageFlagBits::eStorageBuffer;
250 }
251
252 return flags;
253}
@ STORAGE_BDA
Storage buffer with device address query support.
@ HOST_STORAGE
Host-visible storage buffer (eStorageBuffer + eHostVisible|eHostCoherent)
@ UNIFORM
Uniform buffer (host-visible)
@ COMPUTE
Storage buffer for compute shaders (device-local)
@ STAGING
Host-visible staging buffer (CPU-writable, eTransferSrc|Dst)
@ UNIFORM_BDA
Uniform buffer with device address query support.
@ DEVICE
Device-local GPU-only buffer.

References COMPUTE, DEVICE, HOST_STORAGE, INDEX, m_usage, STAGING, STORAGE_BDA, UNIFORM, UNIFORM_BDA, and VERTEX.