add GPUMemory::Flush functions.
This commit is contained in:
parent
6a678287d0
commit
b3789bca21
@ -11,18 +11,13 @@ class GPUMemory
|
|||||||
uint32_t index;
|
uint32_t index;
|
||||||
uint32_t properties;
|
uint32_t properties;
|
||||||
|
|
||||||
|
VkMappedMemoryRange memory_range;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
friend class GPUDevice;
|
friend class GPUDevice;
|
||||||
|
|
||||||
GPUMemory(VkDevice dev,VkDeviceMemory dm,const VkMemoryRequirements &mr,const uint32 i,const uint32_t p)
|
GPUMemory(VkDevice dev,VkDeviceMemory dm,const VkMemoryRequirements &mr,const uint32 i,const uint32_t p);
|
||||||
{
|
|
||||||
device=dev;
|
|
||||||
memory=dm;
|
|
||||||
req=mr;
|
|
||||||
index=i;
|
|
||||||
properties=p;
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -48,6 +43,9 @@ public:
|
|||||||
|
|
||||||
bool BindBuffer (VkBuffer buffer);
|
bool BindBuffer (VkBuffer buffer);
|
||||||
bool BindImage (VkImage image);
|
bool BindImage (VkImage image);
|
||||||
|
|
||||||
|
void Flush (VkDeviceSize,VkDeviceSize);
|
||||||
|
void Flush (VkDeviceSize size){Flush(0,size);}
|
||||||
};//class GPUMemory
|
};//class GPUMemory
|
||||||
VK_NAMESPACE_END
|
VK_NAMESPACE_END
|
||||||
#endif//HGL_GRAPH_VULKAN_MEMORY_INCLUDE
|
#endif//HGL_GRAPH_VULKAN_MEMORY_INCLUDE
|
||||||
|
@ -24,6 +24,19 @@ GPUMemory *GPUDevice::CreateMemory(const VkMemoryRequirements &req,uint32_t prop
|
|||||||
return(new GPUMemory(attr->device,memory,req,index,properties));
|
return(new GPUMemory(attr->device,memory,req,index,properties));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GPUMemory::GPUMemory(VkDevice dev,VkDeviceMemory dm,const VkMemoryRequirements &mr,const uint32 i,const uint32_t p)
|
||||||
|
{
|
||||||
|
device=dev;
|
||||||
|
memory=dm;
|
||||||
|
req=mr;
|
||||||
|
index=i;
|
||||||
|
properties=p;
|
||||||
|
|
||||||
|
memory_range.sType =VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
|
||||||
|
memory_range.pNext =nullptr;
|
||||||
|
memory_range.memory =memory;
|
||||||
|
}
|
||||||
|
|
||||||
GPUMemory::~GPUMemory()
|
GPUMemory::~GPUMemory()
|
||||||
{
|
{
|
||||||
vkFreeMemory(device,memory,nullptr);
|
vkFreeMemory(device,memory,nullptr);
|
||||||
@ -57,6 +70,14 @@ void GPUMemory::Unmap()
|
|||||||
vkUnmapMemory(device,memory);
|
vkUnmapMemory(device,memory);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GPUMemory::Flush(VkDeviceSize offset,VkDeviceSize size)
|
||||||
|
{
|
||||||
|
memory_range.offset =offset;
|
||||||
|
memory_range.size =size;
|
||||||
|
|
||||||
|
vkFlushMappedMemoryRanges(device,1,&memory_range);
|
||||||
|
}
|
||||||
|
|
||||||
bool GPUMemory::Write(const void *ptr,VkDeviceSize start,VkDeviceSize size)
|
bool GPUMemory::Write(const void *ptr,VkDeviceSize start,VkDeviceSize size)
|
||||||
{
|
{
|
||||||
if(!ptr)return(false);
|
if(!ptr)return(false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user