Search Issue Tracker

By Design

Votes

0

Found in

2017.4.0f1

2018.4.0f1

2018.4.2f1

2019.1.0a1

2019.2.0a1

Issue ID

1168683

Regression

No

[Metal][iOS] HDR and DepthOnly cause extra render passes

iOS

-

To reproduce:
1. Open attached project "mem-ref.zip"
2. Build for iOS
3. Deploy the Xcode project to an iOS device
4. After the project is loaded in Xcode menu bar press Debug > Capture GPU Frame
5. On the left column select FPS tab
6. Observe as there are three Blit operators (Hidden/BlitCopy, Final Blit, Hidden/BlitCopy)
7. In the same column observe that in CommandBuffer there are four RenderCommandEncoders

Expected: no extra RenderCommandEncoders and Bit operators can be seen
Actual: extra RenderCommandEncoders and Bit operators can be seen

Reproduced on:
2017.4.0f1 2017.4.30f1 2018.4.4f1 2019.1.10f1 2019.2.0b10

Notes:
- The button to take GPU capture is not available after building with 2019.3.0a10
- On 2019.1 - 2019.2 there are three RenderCommandEncoders in CommandBuffer
- Disabling HDR on the Mian Camera there is one RenderCommandEncoder in CommandBuffer
- Setting Camera Clear Flags to Skybox there is one Blit in the FPS tab and two RenderCommandEncoders in CommandBuffer
- Only reproduces on Metal. Getting very different GPU frame capture results on OpenGLES3.

  1. Resolution Note (2019.3.X):

    when the first camera in frame is rendered and clear flags are depth only it *might* happen that intent of the user was to actually preserve color (like, they did manual rendering before or smth), thats why there are extra passes in the beginning - to copy contents of current RT
    as for HDR: it will render to 11.11.10 RT which needs to be be blit to system backbuffer (hence one extra blit in the end)

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.