[VRWorks][Unreal] VRWorks in Unreal Engine 4.13 branch seems not to work well

Hello, I am developing a game demo on Unreal. In order to apply the new features in graphics card (I work on GTX 1060), I downloaded the unreal engine 4.13 with VRWorks branch (https://github.com/NvPhysX/UnrealEngine/tree/VRWorks-Graphics-4.13) and built the engine.
I turned the RealisticRendering project(in epic learn resources) into a VR setup and tested the GPU rendering features. However, the results were not I expected them to be.

In the test, I used a HTC Vive to look at this scene stilll in the project:
8249df8089de35cf935357610d4ce7e1aab9043b.jpeg

Before I turned the features(MultiRes Rendering, Lens Matched Rendering and SinglePassStereo) on:
a846418fb40bb62514541b5e715bdfea4ce8a61b.jpeg

After turned on…
6e9270954e0cb1d83e8a22fbc46d528ee3ff51b0.jpeg

You have to actually apply the different settings for them.

vr.multiresrendering 0-3
vr.lensmatchedshadingrendering 0-3

vr.multires and vr.lensmatchedshading just enabled support for them, the rendering postfixed commands set the level of them.

Also i’ll note that the full VRWorks branch is missing a ton of compatibility checks for AMD cards, specifically I had to fix them auto checking for SLI with an NVIDIA api call and causing instant crashes if the user had an AMD card (doesn’t implement the API). Also some of the rendering features are straight broken with AMD on that branch currently (shadow flicker, orientation based rendering artifacts).

The multiresrendering only branch works fine with AMD currently, you might want to consider sticking with that one if you want to use either of them at the moment.

Thanks! It works pretty well now! It’s kind of amazing~

BTW, may I ask the approximate date of the release of unreal 4.14 branch with VRWorks integrated? Cuz applying both VRWorks’ functions and forwarding rendering in 4.14 engine in demo will be really cool~

Settings confusion

from what i understood from the vrworks docs I thought Multi res and lens matched shading were exclusive options, either one or the other. Their demo enforces that as well. However in unreal I am allowed to tick both. Can somebody explain this ?
Also I have the same confusion related with instanced stereo ( which is from unreal) against single stereo pass (nvidia) which I also expect to conflict, but you can also choose them both. Help?

If you have lens matched on then the multires value does nothing. Lens matched is a derivative of multires and automatically uses it. They give you the option to just use multires by itself if you want.

comparing the results of gpuprofile

Thank you!
At the moment I am using the gpuprofile frame capture to see any changes. I do it while I am running this in the vrpreview mode. The window on my desktop screen is still open. Is this a good way to profile this ? I noticed that instanced stereo has a value of 0 ms for the base pass for one of the views. Then I tried the single pass stereo , both views are equal ms. When I have no option on, basepass for view one and view 2 are also equal.

I also got confused cause in the flex demo from the vrfunhouse (which is an older unreal version) has instanced stereo, multi res and lms turned on.
I’m trying to make some sense of it, so I can decide if this would help me on my project.
Also if anybody can give me any tips on how to properly profile the vr rendering I am all ears.
instanced stereo


nothing:

single pass stereo:

forgot to set the value as well

after calling the fc you suggested above to the other user, having single pass stereo on does give one view for 0 ms just like the instanced stereo. also multisample worked.

Take a look at SceneView.cpp SetupVRProjection, you can see if LensMatchedShading is On and is supported it will be used, otherwise MultiRes is checked. This is great as you can leave both on for Maxwell and Pascal cards and it will use the best features available