Niagara mesh renderer ignores WPO in Wireframe view (regression in 5.8)

Summary

Niagara Mesh Renderer draws meshes without World Position Offset in the editor Wireframe view mode (regression 5.7 → 5.8)

What Type of Bug are you experiencing?

Rendering (Graphics / Niagara)

Steps to Reproduce

  1. New blank project in 5.8.
  2. Create a material. World Position Offset = Make Vector3(0, 0, Sine(Time) * 100). In Material Details tick “Used
    with Niagara Mesh Particles”. Apply.
  3. Create a Niagara System from an Empty emitter: Spawn Burst Instantaneous (Spawn Count 1), Particle State with “Kill
    Particles When Lifetime Has Elapsed” unticked, add a Mesh Renderer with Mesh = /Engine/BasicShapes/Plane and Override
    Materials = the material from step 2.
  4. Place the system in the level. In Lit view the plane bobs up and down.
  5. Switch the viewport to Wireframe.

Expected Result

The plane keeps bobbing in Wireframe (it does in 5.7, and a Static Mesh or Instanced Static Mesh with the same material does in 5.8).

Observed Result

The plane is drawn flat and static in Wireframe. WPO is ignored.

Affects Versions

5.8

Platform(s)

Windows

Additional Notes

Suggested fix:
Only use the wireframe index buffer path when the section material does not modify mesh position
(Material.MaterialModifiesMeshPosition_RenderThread() == false), the same check FStaticMeshSceneProxy already does
(StaticMeshSceneProxy.cpp:1754-1756). Otherwise use the triangle list with bWireframe = true so ApplyViewModeOverrides
keeps the material.