Skip to content

Commit 66f8be3

Browse files
authoredNov 13, 2021
Merge pull request #54934 from briansemrau/multimesh-zero-visible
Fix multimesh still drawing when visible instances is zero
2 parents 19571c9 + 716e15c commit 66f8be3

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed
 

‎servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,10 @@ void RenderForwardClustered::_render_list_template(RenderingDevice::DrawListID p
334334
const GeometryInstanceSurfaceDataCache *surf = p_params->elements[i];
335335
const RenderElementInfo &element_info = p_params->element_info[i];
336336

337+
if (surf->owner->instance_count == 0) {
338+
continue;
339+
}
340+
337341
push_constant.base_index = i + p_params->element_offset;
338342

339343
RID material_uniform_set;

‎servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -1821,6 +1821,10 @@ void RenderForwardMobile::_render_list_template(RenderingDevice::DrawListID p_dr
18211821
const RenderElementInfo &element_info = p_params->element_info[i];
18221822
const GeometryInstanceForwardMobile *inst = surf->owner;
18231823

1824+
if (inst->instance_count == 0) {
1825+
continue;
1826+
}
1827+
18241828
uint32_t base_spec_constants = p_params->spec_constant_base_flags;
18251829

18261830
// GeometryInstanceForwardMobile::PushConstant push_constant = inst->push_constant;

‎servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -758,6 +758,10 @@ void RendererCanvasRenderRD::_render_item(RD::DrawListID p_draw_list, RID p_rend
758758

759759
instance_count = storage->multimesh_get_instances_to_draw(multimesh);
760760

761+
if (instance_count == 0) {
762+
break;
763+
}
764+
761765
RID uniform_set = storage->multimesh_get_2d_uniform_set(multimesh, shader.default_version_rd_shader, TRANSFORMS_UNIFORM_SET);
762766
RD::get_singleton()->draw_list_bind_uniform_set(p_draw_list, uniform_set, TRANSFORMS_UNIFORM_SET);
763767
push_constant.flags |= 1; //multimesh, trails disabled

0 commit comments

Comments
 (0)
Please sign in to comment.