Skip to content
This repository has been archived by the owner on Sep 14, 2021. It is now read-only.

Can we expect multithreaded rendering and higher frame rates in a future update? #141

Closed
ChristophGeske opened this issue Mar 14, 2018 · 17 comments

Comments

@ChristophGeske
Copy link

ChristophGeske commented Mar 14, 2018

Booth these features might solve the problems we encounter when trying to build a better GearVR/Daydream app using ARCore for tracking the head movement in 6DoF.

@pablisho
Copy link
Contributor

Hi, Thanks for the feature request. Multithreading rendering is a feature requested by many developers, but I cannot share any timelines right now.
If you need a higher frame rate, I believe you can change the configuration MatchCameraFramerate to false, that way you won't be stuck to 30 FPS for the rendering of your objects, animations, etc., although the background will still be updated at 30 FPS.
Stay tuned for future releases!

@ChristophGeske
Copy link
Author

Thanks for the reply.
Yes the background being updated every 30 FPS is the problem I can't solve on my own. 60 FPS for the background would be ideal for our project. Would be a nice feature to allow for 60 FPS updates by the ARCore Device/Camera.
You probably tested all kinds of resolution and frame rate settings to end up with your current settings. I am wondering why you choose 30 FPS instead of 60 FPS. Is doubling the FPS close to doubling the performance needed?

@eisenbruch
Copy link

Can confirm that multithreaded rendering would help dramatically to reliably run an AR session and record the device's screen at the same time. Some Galaxy S7s can't run my app smoothly when I have the recording capabilities baked in, and multithreaded rendering would solve this. The recording plugin (NatCorder) is built for multi threaded rendering anyway.

@ChristophGeske
Copy link
Author

ChristophGeske commented Apr 29, 2018

I build a workaround which improves the issue of only having 30fps and allows me to run games in 60fps even in VR.
For 60fps I do the following:
I record the position data I receive from the camera and spread it over two quicker frames. For that I use Vector3.Lerp(pos, goal ,0.5f); . This way I introduce half a frame of lag because I don't update to the final position immediately. It turns out this is not even noticeable in VR and does not need any extra resources which is great for my application which runs at it's thermal maximum anyway. :D
I would still prefer to get the full 60fps but for now I am happy with the improvements I got through this trick.
If someone needs the code, my project is open source.
https://github.com/ChristophGeske/ARCoreInsideOutTrackingGearVr

@andrelevi
Copy link

+1 Hoping for more information about multithreading and a 60fps camera.

@small-potatoes
Copy link

We heard your feedback! Multithreaded rendering is now supported with the ARCore SDK when using Unity 2017.4f9+ :)

@ChrisBeswick
Copy link

We heard your feedback! Multithreaded rendering is now supported with the ARCore SDK when using Unity 2017.4f9+ :)

Hey, Do you have any ETA on this?
Cheers!

@olokobayusuf
Copy link

olokobayusuf commented Dec 1, 2018

@small-potatoes Thank you! I'm the developer of NatCorder and I was just about to offer to help you all implement multithreaded rendering. Devs trying to record ARCore gameplay will significantly benefit from this.

@zeroregard
Copy link

@small-potatoes or @olokobayusuf Can you elaborate? On Unity 2018.1 with Unity ARCore SDK version 1.6, but still getting the same "ARCore Does Not Support Multi-threaded Rendering" error when trying to build with multi-threaded rendering enabled.

@olokobayusuf
Copy link

@mathiassiig Not too sure about this one, I was going off @small-potatoes announcement that they added support.

@mdurand42
Copy link

Mike from Unity here. We implemented support for multi-threaded rendering in 2018.2 and backported it to 2017.4 which is one of our Long Term Support (LTS) versions. We did not (and won't) backport it to 2018.1 since the expectation is that any user of 2018.1 would upgrade to 2018.2.

You can read more about how our releases work here: https://blogs.unity3d.com/2018/04/09/new-plans-for-unity-releases-introducing-the-tech-and-long-term-support-lts-streams/

@fredsa fredsa reopened this Feb 13, 2020
@uprealdigital
Copy link

Hi,

The multi-threading option still does not work in Unity 2020.2.3f1. The documentation still says to disable the Multi-threading option and when I tried to enable it, my phone (Samsung S7) says that it's not compatible anymore and the AR does not work.

Any update on this? I'm getting 13-18 fps when recording

@uprealdigital
Copy link

Any news on that?

@olokobayusuf
Copy link

Hi,

The multi-threading option still does not work in Unity 2020.2.3f1. The documentation still says to disable the Multi-threading option and when I tried to enable it, my phone (Samsung S7) says that it's not compatible anymore and the AR does not work.

Any update on this? I'm getting 13-18 fps when recording

How are you recording video if I may ask? If you use NatCorder, then there's a WIP extension package that provides async GPU readbacks on OpenGL ES, giving you recording performance comparable to that of Vulkan.

@mimming
Copy link

mimming commented Apr 23, 2021

This is fixed!

The multi-threading option still does not work in Unity 2020.2.3f1. The documentation still says to disable the Multi-threading option and when I tried to enable it, my phone (Samsung S7) says that it's not compatible anymore and the AR does not work.

I suspect something else may be going on. What version of the ARCore Unity SDK are you using? When it does not work, do you see any error messages or events in the app log?

@uprealdigital
Copy link

Your right! After testing again, it's working now!

@mimming
Copy link

mimming commented Apr 23, 2021

Your right! After testing again, it's working now!

Glad to hear!

@mimming mimming closed this as completed Apr 23, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests