Oculus Rift automatic down-sampling and Duplicated displays

A forum to discuss development for the Oculus Rift.

Oculus Rift automatic down-sampling and Duplicated displays

Postby joe » June 18th, 2013, 1:34 pm

This came up in the Half-Life thread, but it isn't specifically a Half-Life question, so I wanted to start a new thread for this issue.

The Rift exposes a bunch of different valid resolutions to Windows even the panel itself is 1280x800 and only 1280x800. It goes up to 1920x1200 (which is also 16:10). Not sure how far it goes down.

After some research (and measuring) it seems to us that the down-sampling occurs in the Rift converter box and that it doesn't introduce significant latency. The way we measure latency (with a high speed camera and some blinky LEDs) we have a minimum resolution of about 3ms, so a 0ms measurement means something less than 3ms. This is all just display latency and doesn't include any measurable rendering time or tracking. This was all under DX11, in case that's significant. (The Source games actually run under DX9.)

Full screen with the display extended to the Rift (not duplicated):
1280x800: 0ms
1920x1200: 0ms

Windowed without Aero and the display extended to the Rift:
1280x800: 10ms

When you switch to duplicating the desktop monitor and the Rift things get strange. The tester runs at something like 1000Hz, and it appears that Windows is actually dropping most of the frames and never sending them to the display at all. This happens in both Full-screen and Windowed, but the final swap in windowed is slow enough that fewer frames get dropped. It dropped so many frames that measuring the latency was actually hard to do.

So the verdict is:
1) Letting the Rift scale down the frames is more or less fine
2) I need to switch the Source games to use full screen instead of windowed to save 10ms
3) Cloning your main display is bad and is probably causing extra latency.
User avatar
joe
 
Posts: 96
Joined: February 19th, 2013, 11:28 am
Website: http://valvesoftware.com
Location: Seattle

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby craigotron » June 18th, 2013, 1:47 pm

Very helpful. Thank you for sharing this. Is this specific to Windows only, or will similar display tweaks also reduce latency on OX X/Linux?
User avatar
craigotron
 
Posts: 245
Joined: March 29th, 2013, 7:16 pm
Location: an island in the net, cyberspace, the metaverse, the matrix, oasis and a meat locker somewhere.

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby joe » June 18th, 2013, 1:50 pm

We only measured Windows. I'm sure the scaling in the Rift itself is the same on other platforms, but you would need to measure those platforms to be sure of the implications of cloning a display or running windowed.
User avatar
joe
 
Posts: 96
Joined: February 19th, 2013, 11:28 am
Website: http://valvesoftware.com
Location: Seattle

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby mrgreen72 » June 18th, 2013, 2:03 pm

Very interesting results. Glad to know that downscaling through the Rift doesn't introduce latency as it does look much better. I could have sworn the head tracking didn't feel as smooth though. I'm crazy apparently. :oops:

So no cloning eh?

Wasn't there other issues when you extended your desktop to your Rift? Some said to put the Rift as the primary display but how the hell am I supposed to use Windows that way?
User avatar
mrgreen72
 
Posts: 649
Joined: March 29th, 2013, 1:40 pm
Location: Québec, Canada

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby Pokey » June 18th, 2013, 2:11 pm

Someone said windows-P was a fast way to switch primary monitors in another thread. Just switch every time you take off / put on the Rift
User avatar
Pokey
 
Posts: 136
Joined: March 29th, 2013, 2:04 pm

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby joe » June 18th, 2013, 2:11 pm

mrgreen72 wrote:Wasn't there other issues when you extended your desktop to your Rift? Some said to put the Rift as the primary display but how the hell am I supposed to use Windows that way?

I've had my desktop extended to a Rift for about six months and haven't noticed any issue with either the the desktop or the games running on the Rift. I don't know if it has implications with different setups, though.
User avatar
joe
 
Posts: 96
Joined: February 19th, 2013, 11:28 am
Website: http://valvesoftware.com
Location: Seattle

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby mrgreen72 » June 18th, 2013, 3:21 pm

joe wrote:
mrgreen72 wrote:Wasn't there other issues when you extended your desktop to your Rift? Some said to put the Rift as the primary display but how the hell am I supposed to use Windows that way?

I've had my desktop extended to a Rift for about six months and haven't noticed any issue with either the the desktop or the games running on the Rift. I don't know if it has implications with different setups, though.


Great news. Thanks Joe.

Having a mirrored screen is pretty frickin convenient though. Anyone has recommendations on a splitter?
User avatar
mrgreen72
 
Posts: 649
Joined: March 29th, 2013, 1:40 pm
Location: Québec, Canada

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby Frito » June 18th, 2013, 3:46 pm

Just changed from duplicated to extended,
should I leave the res at 1280x800 and go maxres (1200/1080?)ingame, or directly set it at 1200?

Thanks for the tests Joe
Backer
"Have faith." -Palmer Luckey
User avatar
Frito
 
Posts: 895
Joined: June 4th, 2013, 11:39 am
Location: BuenosAires

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby joe » June 18th, 2013, 3:56 pm

mrgreen72 wrote:Having a mirrored screen is pretty frickin convenient though. Anyone has recommendations on a splitter?


We use these: http://www.amazon.com/Aluratek-ADS02F-2-Port-Video-Splitter/dp/B001IYFZA2/ref=sr_1_2?ie=UTF8&qid=1371595282&sr=8-2

You have to connect the monitors in a particular order to get the PC to receive the right EDID from the Rift. That order is:
1) unplug everything
2) connect the Rift to one of the outputs
3) connect the input side from the PC
4) connect the monitor
5) Disconnect the input side and reconnect it

Annoying, but if you leave the splitter on you shouldn't need to redo it.
User avatar
joe
 
Posts: 96
Joined: February 19th, 2013, 11:28 am
Website: http://valvesoftware.com
Location: Seattle

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby joe » June 18th, 2013, 4:02 pm

Frito wrote:Just changed from duplicated to extended,
should I leave the res at 1280x800 and go maxres (1200/1080?)ingame, or directly set it at 1200?


I would set the Rift to 1280x800. The visual quality will suffer, but everything will work right.

There's a change in the pipeline for the Source games that will let it adapt to whatever you set the Rift resolution to, but it hasn't shipped yet.
User avatar
joe
 
Posts: 96
Joined: February 19th, 2013, 11:28 am
Website: http://valvesoftware.com
Location: Seattle

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby drash » June 18th, 2013, 7:18 pm

mrgreen72 wrote:Very interesting results. Glad to know that downscaling through the Rift doesn't introduce latency as it does look much better. I could have sworn the head tracking didn't feel as smooth though. I'm crazy apparently. :oops:


Maybe you're not crazy -- maybe in your case, the app you were running was fast at 1280x800, but at 1920x1080 broke below 60fps (or whatever fps you start to feel it not being smooth)?
User avatar
drash
 
Posts: 2628
Joined: March 29th, 2013, 2:53 pm
Website: http://www.drashvr.com
Location: Murrieta, CA

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby mrgreen72 » June 18th, 2013, 8:40 pm

drash wrote:
mrgreen72 wrote:Very interesting results. Glad to know that downscaling through the Rift doesn't introduce latency as it does look much better. I could have sworn the head tracking didn't feel as smooth though. I'm crazy apparently. :oops:


Maybe you're not crazy -- maybe in your case, the app you were running was fast at 1280x800, but at 1920x1080 broke below 60fps (or whatever fps you start to feel it not being smooth)?

Makes sense but that's not it.
User avatar
mrgreen72
 
Posts: 649
Joined: March 29th, 2013, 1:40 pm
Location: Québec, Canada

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby crespo80 » June 18th, 2013, 11:36 pm

joe wrote:When you switch to duplicating the desktop monitor and the Rift things get strange. The tester runs at something like 1000Hz, and it appears that Windows is actually dropping most of the frames and never sending them to the display at all. This happens in both Full-screen and Windowed, but the final swap in windowed is slow enough that fewer frames get dropped. It dropped so many frames that measuring the latency was actually hard to do.

This sounds really strange to me, are you sure you are setting the Rift as the Source of cloning? Because the strange behaviour you describe is exactly what I was perceiving the first time I tried the Rift, there was a really bad (and unusual) stuttering to the image; then I discovered I had to select the Rift as Source of the clone. After that I didn't notice any difference between cloning and extending.
User avatar
crespo80
 
Posts: 586
Joined: March 29th, 2013, 2:16 pm
Location: Bologna, Italy

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby LordJuanlo » June 19th, 2013, 12:46 am

joe wrote:1) Letting the Rift scale down the frames is more or less fine


That's great! I've specially noticed how much better it is in Titans of Space, the text is way easier to read with the Rift downscaling from 1080p.

joe wrote:3) Cloning your main display is bad and is probably causing extra latency.


What about cloning using the graphic card driver instead of Windows desktop properties? I'm using a Catalyst Control Center option that creates an "Eyefinity group" of cloned displays, I've tried up to 3. Setting the Rift as preferred display gets rid of the tearing on it, but can see the main monitor tearing. I haven't noticed any latency, but I have no way to measure it.
Image
Comunidad española de RV / Spanish VR Community
User avatar
LordJuanlo
 
Posts: 232
Joined: March 29th, 2013, 4:59 pm
Website: http://www.realovirtual.com
Location: Spain

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby PostHuman » June 19th, 2013, 6:10 am

joe wrote:
mrgreen72 wrote:Having a mirrored screen is pretty frickin convenient though. Anyone has recommendations on a splitter?


We use these: http://www.amazon.com/Aluratek-ADS02F-2-Port-Video-Splitter/dp/B001IYFZA2/ref=sr_1_2?ie=UTF8&qid=1371595282&sr=8-2


I see that the splitter supports 1900 x 1200. 1920x1200 is not mentioned, is that going to be a problem when running full res ?
PostHuman
 
Posts: 6
Joined: April 2nd, 2013, 3:45 am

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby tomf » June 19th, 2013, 8:59 am

joe wrote:
mrgreen72 wrote:Wasn't there other issues when you extended your desktop to your Rift? Some said to put the Rift as the primary display but how the hell am I supposed to use Windows that way?

I've had my desktop extended to a Rift for about six months and haven't noticed any issue with either the the desktop or the games running on the Rift. I don't know if it has implications with different setups, though.

The one bizarre issue I had was that one of the P4V screens (File Diff?) would insist on popping up on the secondary monitor (i.e. the Rift). No other program did this. I got used to hitting the magic key combo to retrieve my window: Alt+Space, M, Down cursor, then move the mouse.

The other solution to this is using a DVI or HMDI splitter to duplicate the Rift screen on a monitor. Also makes for a simpler debugging cycle.

Remember the Rift SDK does tell you which monitor the Rift is on, so if you're writing apps, please do query it and create the screen on the correct monitor. That way people don't have to set the Rift as the primary.
User avatar
tomf
Team Oculus Team Oculus
 
Posts: 86
Joined: May 24th, 2013, 2:24 pm
Website: http://oculusvr.com/
Location: Seattle

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby tomf » June 19th, 2013, 9:02 am

PostHuman wrote:I see that the splitter supports 1900 x 1200. 1920x1200 is not mentioned, is that going to be a problem when running full res ?

Almost certainly a typo - "1900" is not any resolution I know of.
Tom Forsyth - OculusVR coder
User avatar
tomf
Team Oculus Team Oculus
 
Posts: 86
Joined: May 24th, 2013, 2:24 pm
Website: http://oculusvr.com/
Location: Seattle

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby tomf » June 19th, 2013, 9:15 am

joe wrote:Full screen with the display extended to the Rift (not duplicated):
1280x800: 0ms
1920x1200: 0ms

Windowed without Aero and the display extended to the Rift:
1280x800: 10ms

When you switch to duplicating the desktop monitor and the Rift things get strange. The tester runs at something like 1000Hz, and it appears that Windows is actually dropping most of the frames and never sending them to the display at all. This happens in both Full-screen and Windowed, but the final swap in windowed is slow enough that fewer frames get dropped. It dropped so many frames that measuring the latency was actually hard to do.

So the verdict is:
1) Letting the Rift scale down the frames is more or less fine
2) I need to switch the Source games to use full screen instead of windowed to save 10ms
3) Cloning your main display is bad and is probably causing extra latency.

Random theories:

#1: makes sense. The scaling chip is tiny and has only a few scanlines of memory, so it couldn't buffer even if it wanted to. Good to know it's working.

#2: I think this is still the Windows Presentation Manager (or whatever it's called these days) - the window has to be blitted to the screen, and it only does that at VBLANK. But if you have two monitors connected, *which* VBLANK is the WPM synced to? It might be the first one (your primary), not the second one (the Rift). So maybe "10ms" is actually an average of half of 16.7ms (because the two are not in sync) plus 2ms for the blit? Did you check if the Aero timings were any different?

#3: The GPUs have lots of different ways of doing the cloning under the hood. Sometimes it's just a blit triggered by the driver (e.g. it's an elegant way of doing rescaling for modes the RAMDAC/scaler doesn't natively support). So maybe that blit is only happening at VBLANK as well, which is why you're seeing dropped frames. IIRC there's some options you can play with in some AMD control panels which might affect this ("Enable GPU scaling")
Tom Forsyth - OculusVR coder
User avatar
tomf
Team Oculus Team Oculus
 
Posts: 86
Joined: May 24th, 2013, 2:24 pm
Website: http://oculusvr.com/
Location: Seattle

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby joe » June 19th, 2013, 10:40 am

PostHuman wrote:I see that the splitter supports 1900 x 1200. 1920x1200 is not mentioned, is that going to be a problem when running full res ?


From the Amazon listing: Supports DVI monitor resolutions up to 1900 x 1200

Mine is set to 1920x1200. I think they just mentioned "widescreen up to 1920x1080" because people don't understand the difference between 16:9 and 16:10 aspect ratios.
User avatar
joe
 
Posts: 96
Joined: February 19th, 2013, 11:28 am
Website: http://valvesoftware.com
Location: Seattle

Re: Oculus Rift automatic down-sampling and Duplicated displ

Postby joe » June 19th, 2013, 10:42 am

joe wrote:
PostHuman wrote:I see that the splitter supports 1900 x 1200. 1920x1200 is not mentioned, is that going to be a problem when running full res ?


From the Amazon listing: Supports DVI monitor resolutions up to 1900 x 1200

Mine is set to 1920x1200. I think they just mentioned "widescreen up to 1920x1080" because people don't understand the difference between 16:9 and 16:10 aspect ratios.


Turns out I can't read. Yes, it supports 1920x1200. The Amazon listing has a typo.
User avatar
joe
 
Posts: 96
Joined: February 19th, 2013, 11:28 am
Website: http://valvesoftware.com
Location: Seattle


Return to “Oculus General Development”


Who is online

Users browsing this forum: gaelhonorez, lamour42, MasterShadow, PiMuRho, pixelminer, roadwar and 2 guests