Search Issue Tracker

Won't Fix

Votes

0

Found in

2017.4.0f1

2018.2.15f1

Issue ID

1103997

Regression

No

[Metal][iOS] Rendering Material with GrabPass into RenderTexture results Black Image other than GrabPass Material Mesh

Metal

-

To reproduce:

1. Download attached project “iOSTest.zip" and open in Unity
2. Open “Sample” scene
3. Set Graphics API to Metal
4. Build for iOS
5. Deploy the Xcode project to iPhone 6 or iPhone 5s
6. Observe that there is Black Image but not GrabPass Material Mesh

Notes:
- This issue does not appear on Windows, macOS, and Android - OpenGLES2 and OpenGLES3
- This issue appears only on iOS - Metal
- Results are shared in the Comments section

Tested with:
- iPod Touch 5th Gen, iOS: 9.3.5 - Not Reproduced
- iPhone 5, iOS: 10.1.1 - Not Reproduced
- iPhone 5C, iOS: 9.3.2 - Not Reproduced
- iPhone 5s, iOS: 9.3.3 - Reproduced
- iPhone 6, iOS: 10.3.3 - Reproduced
- iPhone 6 Plus, iOS: 12.0.1 - Reproduced
- iPhone 6 Plus, iOS: 8 - Reproduced
- iPhone 6s Plus, iOS: 11.4.1 - Not Reproduced
- iPhone 7s Plus, iOS: 12.0 - Not Reproduced
- iPhone X, iOS: 11.3.1 - Not Reproduced

Reproduced on Unity 2017.4.0f1, 2017.4.17f1, 2018.1.9f2, 2018.2.19f1, 2018.3.0f2 and 2019.1.0a11

  1. Resolution Note (2019.1.X):

    you cannot have grabpass + MSAA unless you run on A9+ and iOS10+, because it is impossible to
    1. store render target AND resolve it at the same time (you need store to continue rendering and resolve to get texture you can sample)
    2. you cannot delay this decision - you must specify this upfront when setting render target, and this obviously dont quite work with GrabPass

    I will add some sort of warning/error for that but we wont be able to make it work (The workaround is to NOT do grabpass but rather render what you need separately and then use this texture)

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.