The root of this issue is that FLocalVertexFactory is doing manual vertex fetch in the shader. In HLSL, this relies on SV_VertexId. In GLSL, it's gl_VertexId. HLSL does not include the base vertex index and SV_VertexId always starts at zero. GLSL, on the other hand, does include the base vertex index.

As a result, this works correctly in OpenGL / Vulkan, and incorrectly on DirectX.

Steps to Reproduce

Run attached project and notice the four triangles in the upper left corner. All four triangles should have unique vertex colors; instead, the second column of triangles mirrors the first. This is because the second column of triangles is using a BaseVertexIndex !=[Image Removed]


Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-74848 in the post.

Login to Vote

ComponentRendering - RHI
Affects Versions4.22
Target Fix4.23
Fix Commit6597932
Main Commit6944849
Release Commit6955818
CreatedMay 20, 2019
ResolvedMay 21, 2019
UpdatedJul 30, 2019