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
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.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Game view renders artifacts when Camera's Component "Post Anti-aliasing" is set to "TAA" and Dynamic Resolution's "Forced Screen Percentage" is changed
- A deactivated Prefab's name color becomes white when a GameObject in the scene is deactivated
- The Game view becomes blank when using Frame Debugger with MSAA and Texture binding enabled in Play Mode
- Crash on dynamixel_sdk.dynamixel:groupSyncReadTxRxPacket when entering Play Mode after updating path to Dynamixel SDK in script
- NullReferenceException is thrown when changing the Inspector preview selection
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)