Fix multimesh still drawing when visible instances is zero
This commit is contained in:
parent
19571c9c4b
commit
716e15cd26
3 changed files with 12 additions and 0 deletions
|
@ -334,6 +334,10 @@ void RenderForwardClustered::_render_list_template(RenderingDevice::DrawListID p
|
|||
const GeometryInstanceSurfaceDataCache *surf = p_params->elements[i];
|
||||
const RenderElementInfo &element_info = p_params->element_info[i];
|
||||
|
||||
if (surf->owner->instance_count == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
push_constant.base_index = i + p_params->element_offset;
|
||||
|
||||
RID material_uniform_set;
|
||||
|
|
|
@ -1821,6 +1821,10 @@ void RenderForwardMobile::_render_list_template(RenderingDevice::DrawListID p_dr
|
|||
const RenderElementInfo &element_info = p_params->element_info[i];
|
||||
const GeometryInstanceForwardMobile *inst = surf->owner;
|
||||
|
||||
if (inst->instance_count == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
uint32_t base_spec_constants = p_params->spec_constant_base_flags;
|
||||
|
||||
// GeometryInstanceForwardMobile::PushConstant push_constant = inst->push_constant;
|
||||
|
|
|
@ -758,6 +758,10 @@ void RendererCanvasRenderRD::_render_item(RD::DrawListID p_draw_list, RID p_rend
|
|||
|
||||
instance_count = storage->multimesh_get_instances_to_draw(multimesh);
|
||||
|
||||
if (instance_count == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
RID uniform_set = storage->multimesh_get_2d_uniform_set(multimesh, shader.default_version_rd_shader, TRANSFORMS_UNIFORM_SET);
|
||||
RD::get_singleton()->draw_list_bind_uniform_set(p_draw_list, uniform_set, TRANSFORMS_UNIFORM_SET);
|
||||
push_constant.flags |= 1; //multimesh, trails disabled
|
||||
|
|
Loading…
Reference in a new issue