Search Issue Tracker

Won't Fix

Votes

0

Found in

5.6.0b9

Issue ID

886294

Regression

No

[OSX][iOS] If OpenGL is used, InstanceID always runs from 0 regardless of start instance location in DrawMeshInstancedIndirect

Graphics - General

-

Reproduction Steps:
1. Import attached project.
2. Open "MainScene" scene.
3. Select OpenGL as the Graphics API.
4. Select "TestObject" in Hierarchy.
5. Set the I Arg Offset property to 1.
6. Enter Play Mode.
7. Observe the color of the meshes.
8. Set the I Arg Offset property to 0.
9. Observe the color of the meshes.

Expected result: With iArgOffset set to 0, there should be a green and a red mesh, whereas 1 should produce a green and a cyan mesh. (Image attached)
Actual result: In both cases, a green and a red mesh is produced.

Note #1: If the Graphics API is set to Metal, the expected results are produced.
Note #2: If the Graphics API is set to OpenGL on iOS, in both cases no meshes are produced.

Reproducible with: 5.6.0b10, 2017.1.0a3
Machine used: MacBook Pro (OS X 10.11.4)

Note: Feature does not appear in previous versions.

Comments (1)

  1. aveva_pag001

    Jul 04, 2017 10:04

    While I understand the difficulty of fixing the issue as described performantly, the lack of resolution does mean that DrawMeshInstancedIndirect cannot be used in the same way as DrawInstancedIndexedIndirect in DX (the original issue was reported for DX incidentally). In fact there would appear to be no option available in Unity that would allow for the use of instance data at any other offset than 0. In DX this is addressed by the use of the D3D11_INPUT_PER_INSTANCE_DATA input slot class. Are there any plans to implement something similar in Unity in future?

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.