Is E : D actually a Rift Direct Mode application?

Feel free to ignore this post if you're not a techie with some understanding of the way the Rift is supported in Direct vs Extended mode...

Does anyone know of the actual status of E : D "Direct Mode" support?

I think there is a lot of confusion in the forums and I think the E : D code is still programmed to use in-application distortion, i.e. what was previously called the 'extended mode' code path (or indeed the only code path).

Note that the code path is *different* for an application to use the Direct Mode driver, which only arrived in late July with Rift SDK 0.4.0. and simply re-compiling E : D to be compatible with the 0.4.x SDK is not the same as writing a 'direct mode' application.

Fundamentally 'extended mode' is trivially simple in concept but has a slew of compatibility issues with your current DESKTOP setup, even though you can work around those on a case-by-case basis (with my multi-monitor multi-gpu rig it's impossible), direct mode makes the Rift a device separate from your desktop so those issues should go away.

So I really need E : D operating in 'direct mode' but a half- application implementation probably isn't going to cut it.

UPDATE: 19-Dec-2014:
E : D production (1.02) is currently effectively 'Extended Mode' only. You can launch it with the DK2 set in Direct Mode but firstly you get a warning about extended mode being needed, and the game fails to run in any sensible way. I'll edit a new update if FD put development effort into the 'Direct Mode' codepath and the situation changes.
 
Last edited:
Well my first Blue Screen of Death on Windows 8 happened yesterday when I tried to run ED with the Rift set to Direct Mode. So whatever it is, the ATI drivers don't like it.

I don't think Oculus are quite there yet with the SDK.
 
I don't believe it is an ATI problem. I have had a lot of success with Direct mode on my rig in this game and iRacing where others have complained about Direct mode problems as well. I wish I had more to offer on why my system seems to like direct mode. It seems to vary from rig to rig without rhyme or reason. The only trend I have noticed is that I am on 8.1 and many of the folks I've seen having troubles are on Win7. But, even that hasn't been absolute.
 
The reason I said that is because that's the module the BSOD happened in according to Windows. AFAIK DirectMode bypasses the graphics stack completely doesn't it. So something isn't right somewhere.
 
"Direct Mode" doesn't bypass the graphics stack...

Extended Mode: the Rift is 'trivially' added to your Windows Desktop as an additional 1920x1080 monitor, windows thinks it's just a monitor and consequently tries to shuffle everything about and set timings as if it *was* part of your desktop, and, from a hardware standpoint, applications just display their graphics on that particular monitor using Direct3D or OpenGL or whatever. You should be able to unplug the Rift and plug in a real 1920x1080 monitor and you'd see what the Rift is getting (i.e. your desktop icons, among other things...). The Oculus display SDK is effectively 'passive' in that it provides a library the application developer uses to distort the final pair of rendered images and put them side-by-side on the 1920x1080 display so it looks 'normal' to the Rift.

Direct Mode: The Rift is still a HDMI-connected 1920x1080 display, but it is *not* configured as part of the Windows desktop. Applications still write Direct3D/OpenGL/whatever to this display but do *not* use the Oculus SDK to pre-distort the images. Instead they make a call to the Oculus code to display what the application thinks is a pair of undistorted views, and the Oculus SDK takes care of telling the GPU how to distort the views and display them. So in "Direct Mode" the Oculus driver takes over the final stage of the image display pipeline, but is still driving the GPU like any other graphics app.

Really, Direct Mode should be the strategic way to go, as Oculus know that adding their HMD to the Windows Desktop started off as a convenient simple way of getting a 1920x1080 image to appear on the Rift but it brings a lot of desktop compatibility baggage with the other monitors you happen to have connected and, for future-proofing, the distortion algorithms should be in the *driver* not compiled into the end-user code (it's conceivable that Oculus could one day embed the distortion algorithm into the actual headset).

So I'm guessing an AMD driver crash was caused (in order of likelihood IMHO) by either (a) a bug in E : D from using the Oculus driver, (b) a bug in the Oculus Driver or (c) a less likely bug in the AMD driver.

I'm still not sure E : D actually uses Direct Mode at all - it could be the game is still doing all the same graphics processing (e.g. distortion) it was doing before the Oculus SDK 0.4 came out, and the same code has been re-compiled with the new SDK. I'm not sure... it's just that a re-design of the E : D Rift support internals for the Direct Mode support would have warranted more publicity I think, as opposed to a simple re-compile with the new SDK.
 
Last edited:
I can run it in Direct mode but get terrible judder. In Extended mode at 60 FPS - and supersampling from 2560 X 1440, it's smooth on medium preset. I'm going to tweak the quality settings tonight, starting with switching off any AA.
 
Last edited:
I tried direct mode tonight and while it does work, I was getting a "flashing" effect. The entire display would flash every second or so and drive me nuts.

Also found the following:

- I could not change the refresh rate to 75 hz (EDIT: This appears to be due to sharing the same video card with the monitor).
- Desktop monitor was mirroring the DK2 even though I did not have mirroring/cloning setup

So the flashing might be related to the forced 60hz or possibly due to displaying the game on both the DK2 and the desktop monitor.

EDIT: Picked up a GTX 980 yesterday and it does not have the flashing issue. So that is gone. However the 60hz issue is still there and so is mirroring/cloning to the desktop monitor.
 
Last edited:
Back
Top Bottom