Search Issue Tracker
[GPUInstancing][Player] Shadow instancing doesn't work with primitive gameobject groups having different instanced materials
You'll need to have Unity Editor along with Android and iOS players installed.
Steps to repro:
1. Open attached project;
2. Open '01_SimpleMultipleLights' scene;
3. Launch the scene;
4. Open FrameDebugger (Window -> FrameDebugger);
5. Click Enable button;
6. Observe draw calls, issued under Shadows.RenderJobDir pass;
7. Notice that there is Draw Mesh (instanced) call (see attached Editor.png screenshot).
8. Exit Play mode;
9. Deploy the scene either to standalone player or to mobile device (either Android or iOS);
10. Open FrameDebugger (Window -> FrameDebugger);
11. Expand 'Connected Player' dropdown list;
12. Select mobile device that you've just built your project for;
13. Click Enable button;
14. Observe draw calls, issued under Shadows.RenderJobDir.
Draw Mesh (instanced) calls in Shadows.RenderJobDir should be issued for standalone player.
Lots of Draw Mesh calls are issued (see attached Mobile.png screenshot). This behaviour is inconsistent with instancing on standalone platforms.
Frame Debugger tells that objects have different shadow casters (which isn't correct, since all shadow casters per-object group are similar) and Dynamic batching is off (note that instancing should still work when it's turned off).
- Reproducible in 2017.1.0b1, 5.6.0p2;
- Reproducible in Standalone player;
- Reproducible for both Android and iOS (Samsung Galaxy S7 Edge and iPhone 5s);
- Not reproducible for scene with instanced Speedtrees.
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
- Members section in Services window does not open when Invite Teammate button is pressed in Collab window
- Can't enter "Manual Activation" screen after already exiting from it to the main menu
- Visual artifacts appear when rendering to render texture which uses a specific shader
- [IL2CPP] UnityEngine.Ping thread leak
- Unity crashes when calling GameObject.Destroy() on an "empty" GameObject