supported SSBAlign in ArrayBuffer

This commit is contained in:
2023-03-24 22:14:05 +08:00
parent 8363275b36
commit 19a20411d8
4 changed files with 20 additions and 6 deletions

View File

@@ -25,16 +25,16 @@ namespace hgl
VKMemoryAllocator *vk_ma;
uint32_t ubo_offset_alignment;
uint32_t offset_alignment;
Collection *coll;
public:
GPUArrayBuffer(GPUDevice *dev,VkBufferUsageFlags flags,const uint il);
GPUArrayBuffer(GPUDevice *dev,VkBufferUsageFlags flags,const uint il,VkDescriptorType dt);
virtual ~GPUArrayBuffer();
const uint32_t GetOffsetAlignment()const{return ubo_offset_alignment;}
const uint32_t GetOffsetAlignment()const{return offset_alignment;}
const uint32_t GetUnitSize()const;
DeviceBuffer * GetBuffer();

View File

@@ -140,6 +140,7 @@ public: //Buffer相关
IndexBuffer * CreateIBO32 ( uint32_t count, SharingMode sm=SharingMode::Exclusive){return CreateIBO(IndexType::U32, count,nullptr,sm);}
const VkDeviceSize GetUBOAlign();
const VkDeviceSize GetSSBOAlign();
#define CREATE_BUFFER_OBJECT(LargeName,type) DeviceBuffer *Create##LargeName( VkDeviceSize size,void *data, SharingMode sm=SharingMode::Exclusive) {return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size ,size,data, sm);} \
DeviceBuffer *Create##LargeName( VkDeviceSize size, SharingMode sm=SharingMode::Exclusive) {return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size ,size,nullptr, sm);} \