Browse Source

GLES3: Skip batches with zero instance count while rendering

(cherry picked from commit 51dcb388409095133261fb98c8822fbc6bb55c8e)
HolySkyMin 1 year ago
parent
commit
fc15ffed1e
1 changed files with 5 additions and 0 deletions
  1. 5 0
      drivers/gles3/rasterizer_canvas_gles3.cpp

+ 5 - 0
drivers/gles3/rasterizer_canvas_gles3.cpp

@@ -661,6 +661,11 @@ void RasterizerCanvasGLES3::_render_items(RID p_to_render_target, int p_item_cou
 	state.current_tex = RID();
 	state.current_tex = RID();
 
 
 	for (uint32_t i = 0; i <= state.current_batch_index; i++) {
 	for (uint32_t i = 0; i <= state.current_batch_index; i++) {
+		// Skipping when there is no instances.
+		if (state.canvas_instance_batches[i].instance_count == 0) {
+			continue;
+		}
+
 		//setup clip
 		//setup clip
 		if (current_clip != state.canvas_instance_batches[i].clip) {
 		if (current_clip != state.canvas_instance_batches[i].clip) {
 			current_clip = state.canvas_instance_batches[i].clip;
 			current_clip = state.canvas_instance_batches[i].clip;