Description

On PowerVR GE8xxx devices (e.g., GE8320), running with GPUScene enabled on the OpenGL ES path, point/local Lights render nothing or significantly weak result. Withouy GPUScene(UniformView/UBO path), rendering results correctly. 

  • Issue: On PowerVR GE8xxx, local/point Light contribution is largely missing during the BasePass (mobile forward) when GPUScene is enabled.
  • *Suspected cause: *The pixel shader appears to read PrimitiveData.Flags (used to build the LightingChannelMask) using a mismatched layout/index, causing it to decode as 0 or invalid. So the light loop’s channel test skips most lights.
  • Evidence
  • RenderDoc captures show the problematic pixel’s primitiveMask is 0/invalid; turning GPUScene OFF restores correct lighting.
  • In the GPUScene layout, Flags is bit-cast into primitive data slot 0.x and must match the shader’s GetPrimitiveData(...) layout; a path/ID-layout mismatch can lead to misreads. (Reference file: PrimitiveUniformShaderParameters.cpp.)
  • Attachments: [Internal link: see comments]
Steps to Reproduce

1\. Package the attached sample project for OpenGL ES.

2. Run the packaged build on any mobile device using PowerVR GE8xxx. (the reported version is GE8320)

3. Observe that point Lights render incorrectly. 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-328252 in the post.

0
Login to Vote

Unresolved
ComponentUE - Platform - Mobile
Affects Versions5.5
CreatedSep 17, 2025
UpdatedSep 18, 2025
View Jira Issue