We have decided to phase out the Mixed Reality Forums over the next few months in favor of other ways to connect with us.
The first way we want to connect with you is our mixed reality developer program, which you can sign up for at https://aka.ms/IWantMR.
The plan between now and the beginning of May is to clean up old, unanswered questions that are no longer relevant. The forums will remain open and usable.
On May 1st we will be locking the forums to new posts and replies. They will remain available for another three months for the purposes of searching them, and then they will be closed altogether on August 1st.
So, where does that leave our awesome community to ask questions? Well, there are a few places we want to engage with you. For technical questions, please use Stack Overflow, and tag your questions using either hololens or windows-mixed-reality. If you want to join in discussions, please do so in the HoloDevelopers Slack, which you can join by going to https://aka.ms/holodevelopers. And always feel free to hit us up on Twitter @MxdRealityDev.
How to achieve constant 60 fps?
I work in a company which is developing for HoloLens since 2nd wave (it is not our main project - working like 3h per week) and one of my main dificulties since then is the fact that I cannot guarantee 60 fps on any scene that I created so far (keep in mind that I'm not - and none of our developers are - game developers).
Our project consist in taking some .OBJ / .FBX / .SKP 3D-modeled files, get a 3D designer to do some mesh reducing work and bring it into HoloLens into a scene.
On Unity we change all shaders to use the HoloToolkit shaders, the toolkit's camera, toolkit's FPSCounter and Unity is set to fastest quality settings.
After researching (a lot) about Unity shaders and Hololens performance issues, I ended up trying to address those performance problems with Unity's frame debugger and Visual Studio's GPU debugging.
With Unity frame debugger:
- It seems to be nothing wrong with rendering order for objects on the scene. Is there any more useful data that I can parse on this tool?
With Visual Studio GPU debugging:
- This amount of debugging data is overwhelming! I just tried to understand what all that data means...
- Got 1 60 fps capable frame and pressed the "capture frame" button.
- Then I found a object that makes my frame time drop and captured that frame.
- In a comparison between the frames I ended up with a higher amount of "Draw Calls" on the problematic frame. But I just don't know what I can do to make it better.
- The "Camera.ImageEffects" call is always the most long call in the frame (about 1~1.8ms), twice per frame - on both good and problematic frames.
- Is there any more data that I'm missing at this tool?
Can any of you share experiences or tips for the resolution of this issue?
Some data for you guys:
- One of the problematic objects have 498 triangles, 810 verts. I think the problem has nothing to do with poly count... Some of other objects are more complex and they're ok.
- When disabling all of my scripts the behaviour won't change.
- I'm using Unity 5.6.0b1. I used to try Unity's special edition for HoloLens with the same issues.
- HoloLens emulator is not able to reproduce the issue. It happens only on the device.
- GPU debugging makes the app run at 30fps but the frames still drops.