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 250 of file VKBuffer.cpp.

251{
252 vk::BufferUsageFlags flags = vk::BufferUsageFlagBits::eTransferSrc | vk::BufferUsageFlagBits::eTransferDst;
253
254 switch (m_usage) {
255 case Usage::STAGING:
256 break;
257 case Usage::DEVICE:
258 case Usage::COMPUTE:
259 flags |= vk::BufferUsageFlagBits::eStorageBuffer;
260 break;
261 case Usage::VERTEX:
262 flags |= vk::BufferUsageFlagBits::eVertexBuffer | vk::BufferUsageFlagBits::eStorageBuffer;
263 break;
264 case Usage::INDEX:
265 flags |= vk::BufferUsageFlagBits::eIndexBuffer;
266 break;
267 case Usage::UNIFORM:
268 flags |= vk::BufferUsageFlagBits::eUniformBuffer;
269 break;
271 flags |= vk::BufferUsageFlagBits::eUniformBuffer
272 | vk::BufferUsageFlagBits::eShaderDeviceAddress;
273 break;
275 flags |= vk::BufferUsageFlagBits::eStorageBuffer
276 | vk::BufferUsageFlagBits::eShaderDeviceAddress;
277 break;
278 }
279
280 return flags;
281}
@ STORAGE_BDA
Storage buffer with device address query support.
@ UNIFORM
Uniform buffer (host-visible)
@ COMPUTE
Storage buffer for compute shaders.
@ STAGING
Host-visible staging buffer (CPU-writable)
@ UNIFORM_BDA
Uniform buffer with device address query support.
@ DEVICE
Device-local GPU-only buffer.

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