added buffer_hash value at VKRenderableInstance

This commit is contained in:
2021-06-10 18:54:53 +08:00
parent 91fd78a22c
commit 40784b7bdf
2 changed files with 14 additions and 1 deletions

View File

@@ -22,6 +22,8 @@ class RenderableInstance
VkBuffer * buffer_list;
VkDeviceSize * buffer_size;
uint32_t buffer_hash;
private:
friend RenderableInstance *CreateRenderableInstance(Renderable *,MaterialInstance *,Pipeline *);
@@ -44,6 +46,8 @@ public:
const uint32_t GetIndexBufferOffset()const{return render_obj->GetIndexBufferOffset();}
const uint32_t GetDrawCount ()const{return render_obj->GetDrawCount();}
const uint32_t GetBufferHash ()const{return buffer_hash;}
DescriptorSets * GetMIDescSets ()const{return mat_inst->GetDescriptorSets();}
DescriptorSets * GetRIDescSets ()const{return descriptor_sets;}

View File

@@ -2,8 +2,12 @@
#include<hgl/graph/VKMaterialInstance.h>
#include<hgl/graph/VKMaterial.h>
#include<hgl/graph/VKVertexAttribBuffer.h>
#include<hgl/util/hash/Hash.h>
VK_NAMESPACE_BEGIN
using namespace util;
RenderableInstance::RenderableInstance(Renderable *r,MaterialInstance *mi,Pipeline *p,const uint32_t count,VkBuffer *bl,VkDeviceSize *bs)
{
render_obj=r;
@@ -15,6 +19,11 @@ RenderableInstance::RenderableInstance(Renderable *r,MaterialInstance *mi,Pipeli
buffer_count=count;
buffer_list=bl;
buffer_size=bs;
if(buffer_count>0)
CountHash<HASH::Adler32>(buffer_list,buffer_count*sizeof(VkBuffer),(void *)&buffer_hash);
else
buffer_hash=0;
}
RenderableInstance::~RenderableInstance()