Skip to content

Commit 68317ef

Browse files
[Rendering] Handle differing mesh topologies better;
1 parent aac32e3 commit 68317ef

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

Engine/Core/Rendering/Animation/SkinnedMeshRenderSystem.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ public void Submit()
222222
int lastMeshAsset = 0;
223223
SkinnedMeshAnimator lastAnimator = null;
224224
MaterialLighting lastLighting = MaterialLighting.Unlit;
225+
MeshTopology lastTopology = MeshTopology.Triangles;
225226

226227
bgfx.discard((byte)bgfx.DiscardFlags.All);
227228

@@ -244,14 +245,16 @@ public void Submit()
244245
var needsChange = assetGuid != lastMeshAsset ||
245246
material.GuidHash != (lastMaterial?.GuidHash ?? 0) ||
246247
lastAnimator != animator ||
247-
lastLighting != renderer.lighting;
248+
lastLighting != renderer.lighting ||
249+
lastTopology != renderer.mesh.MeshTopology;
248250

249251
if (needsChange)
250252
{
251253
lastMeshAsset = assetGuid;
252254
lastMaterial = material;
253255
lastAnimator = animator;
254256
lastLighting = renderer.lighting;
257+
lastTopology = renderer.mesh.MeshTopology;
255258

256259
bgfx.discard((byte)bgfx.DiscardFlags.All);
257260

@@ -301,6 +304,8 @@ public void Submit()
301304
bgfx.submit(pair.viewID, program, 0, (byte)flags);
302305
}
303306
}
307+
308+
bgfx.discard((byte)bgfx.DiscardFlags.All);
304309
}
305310

306311
/// <summary>

Engine/Core/Rendering/Mesh/MeshRenderSystem.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,5 +340,7 @@ public void Submit()
340340
contents.Clear();
341341
}
342342
}
343+
344+
bgfx.discard((byte)bgfx.DiscardFlags.All);
343345
}
344346
}

0 commit comments

Comments
 (0)