neurogears / vestibular-vr

Closed-loop VR setup for Rancz Lab
2 stars 0 forks source link

Video wall benchmarks #23

Closed RoboDoig closed 6 months ago

RoboDoig commented 1 year ago

We need to test latency, jitter and synchronisation across screens with the matrox video wall.

ederancz commented 10 months ago

Photodiodes set up with ONIX. Ready to assist with this anytime.

RoboDoig commented 8 months ago

Datasets for synchronisation and round trip collected. Need to extract jitter as well. Acceptable jitter is on order of 10-15ms

ederancz commented 7 months ago

Hey Andrew, can we close this or are you still analysing the data? Report the results here and then we can close it.

RoboDoig commented 7 months ago

Yes we should be able to soon, I'll upload the benchmark results here.

Do you have any kind of permanent cloud storage for lab data? Would be better to store raw data there rather than on the git repo.

ederancz commented 7 months ago

Good idea!

We have a lab google drive, but I am not sure what is the easiest way for you to upload other than through the setup computer (Chrome should be logged in to ranczlab).

On 22 Nov 2023, at 11:39, RoboDoig @.***> wrote:

Yes we should be able to soon, I'll upload the benchmark results here.

Do you have any kind of permanent cloud storage for lab data? Would be better to store raw data there rather than on the git repo.

— Reply to this email directly, view it on GitHub https://github.com/neurogears/vestibular-vr/issues/23#issuecomment-1822517508, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIRGCCPFSQJZ7VEST4ZCDM3YFXI7HAVCNFSM6AAAAAAZHTYH6KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMRSGUYTONJQHA. You are receiving this because you commented.

RoboDoig commented 7 months ago

Synchronisation between screens looks good, sub-millisecond

image

RoboDoig commented 7 months ago

For latency and jitter, picture is a bit weirder. Hangs around 100ms latency. Jitter is mostly low but there are these higher latency events that pushes it up.

I would definitely expect these values to be lower, would be good to try this experiment again, also with a direct screen connection (not via Matrox) to compare.

Might also want to check which mode the monitors themselves are running in, some display modes use additional processing that can push up the display latency.

image

RoboDoig commented 7 months ago

Poking around in the NVIDIA settings just now I also notice that there are a few options enabled that might slow down the display latency, let me know when available to repeat the test, I guess preferably after the rig has been moved.

ederancz commented 7 months ago

Cool, the setup won’t move before end of Jan, so Nora can set it up.-----------Sent from my phone, please excuse typos and brevity.On 22 Nov 2023, at 16:15, RoboDoig @.***> wrote: Poking around in the NVIDIA settings just now I also notice that there are a few options enabled that might slow down the display latency, let me know when available to repeat the test, I guess preferably after the rig has been moved.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

RoboDoig commented 6 months ago

Datasets for second round of benchmarks:

RoboDoig commented 6 months ago

Benchmarks with matrox only, NVIDIA ultra low latency mode, shader window focused on rig screens:

Screen_Sync: image

Round_Trip: image

I just noticed after doing this that the resolution set for the Matrox was at 7680x1080, at which the max refresh rate is 30Hz. Makes sense for the round-trip data where we are getting 1-2 frame delay at 30Hz. Will test at lower resolution with the full 60Hz, but will need someone to see what this physically looks like in the rig!

At 60Hz: Screen_Sync: image

Round_Trip: image

ederancz commented 6 months ago

Good idea for lower resolution and 60Hz! 3840x540 should be plenty from a mouse visual acuity point of view, and if that is still only 30 Hz, feel free to go lower.

On 30 Nov 2023, at 12:27, RoboDoig @.***> wrote:

Benchmarks with matrox only, NVIDIA ultra low latency mode, shader window focused on rig screens:

Screen_Sync: image.png (view on web) https://github.com/neurogears/vestibular-vr/assets/11314305/81edf5f5-a0cd-4a0f-84b4-765798e4cea6 Round_Trip: image.png (view on web) https://github.com/neurogears/vestibular-vr/assets/11314305/873625fb-bb2d-49d1-ba2b-0f373cd7a06b I just noticed after doing this that the resolution set for the Matrox was at 7680x1080, at which the max refresh rate is 30Hz. Makes sense for the round-trip data where we are getting 1-2 frame delay at 30Hz. Will test at lower resolution with the full 60Hz, but will need someone to see what this physically looks like in the rig!

— Reply to this email directly, view it on GitHub https://github.com/neurogears/vestibular-vr/issues/23#issuecomment-1833577856, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIRGCCJ6WSWQSVC3NBEK5ETYHBUQPAVCNFSM6AAAAAAZHTYH6KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZTGU3TOOBVGY. You are receiving this because you commented.

RoboDoig commented 6 months ago

Redid benchmarks with all monitors connected and latency jumped back up to ~100ms. @EleonoraAmbrad noticed that this was caused by Windows auto-selecting the Intel GPU as default when monitors are connected there. Fixed by forcing GPU choice to NVIDIA for the Bonsai exectuable in Windows graphics settings, Latency back down to 25-40ms.

RoboDoig commented 6 months ago

Added PR #34 which implements the benchmark workflows. I will merge the analysis scripts in a separate pull request, but closing this issue for now as desired latency / sync metrics achieved.