optimized MaterialRenderList, removed last_vil(pipeline already include vil), don't create assign_buffer if material don't include assign

This commit is contained in:
2023-10-12 02:24:58 +08:00
parent 255c7859f1
commit 317635877b
8 changed files with 46 additions and 70 deletions

View File

@@ -25,15 +25,12 @@ VkBuffer RenderAssignBuffer::GetAssignVBO()const
return vbo_assigns->GetBuffer();
}
void RenderAssignBuffer::Bind(MaterialInstance *mi)const
void RenderAssignBuffer::Bind(Material *mtl)const
{
const VIL *vil=mi->GetVIL();
if(!mtl)return;
const uint assign_binding_count=vil->GetCount(VertexInputGroup::Assign);
if(assign_binding_count<=0)return;
Material *mtl=mi->GetMaterial();
if(!mtl->hasAssign())
return;
mtl->BindUBO(DescriptorSetType::PerFrame,mtl::SBS_LocalToWorld.name,ubo_l2w);
mtl->BindUBO(DescriptorSetType::PerMaterial,mtl::SBS_MaterialInstance.name,ubo_mi);