2#include <UnCompute/Backend/BufferBase.h>
3#include <UnCompute/Backend/IDeviceMemory.h>
4#include <UnCompute/Memory/Memory.h>
5#include <UnCompute/VulkanBackend/VulkanInclude.h>
9 class VulkanDeviceMemory;
13 VkBuffer m_NativeBuffer = VK_NULL_HANDLE;
14 VkMemoryRequirements m_MemoryRequirements = {};
19 ResultCode InitInternal(
const BufferDesc& desc)
override;
27 void Reset()
override;
29 [[nodiscard]]
inline VkBuffer GetNativeBuffer()
const
31 return m_NativeBuffer;
34 [[nodiscard]]
inline const VkMemoryRequirements& GetMemoryRequirements()
const
36 return m_MemoryRequirements;
41 *ppBuffer = AllocateObject<VulkanBuffer>(pDevice);
42 (*ppBuffer)->AddRef();
43 return ResultCode::Success;
Definition: BufferBase.h:8
A slice of device memory.
Definition: IDeviceMemory.h:89
An interface for backend-specific buffers that store the data on the device.
Definition: IBuffer.h:26
Interface for all backend-specific compute devices.
Definition: IComputeDevice.h:38
This class holds a handle to backend-specific memory.
Definition: IDeviceMemory.h:31
Shared smart pointer implementation that uses reference counting.
Definition: Ptr.h:44
Definition: VulkanBuffer.h:12
ResultCode BindMemory(const DeviceMemorySlice &deviceMemory) override
Bind device memory to the buffer.
Definition: VulkanBuffer.cpp:12
void Reset() override
Reset the object to uninitialized state.
Definition: VulkanBuffer.cpp:34
Buffer descriptor.
Definition: IBuffer.h:8