To say that SSR brings your scene from 400 fps to 40 leads me to believe that maybe you don’t know some stuff about the Rift. With Vsync on, the Oculus Rift only has two possible frame rates: 37.5 fps (sometimes looks like 40) and 75 fps. The screen inside runs at 75hz, which is why that is the magical number that DK2 developers are trying to hit (and 37.5 is exactly half, of course) If your frame rate fails to exceed 75, then the Vsync will kick it down to your 40. So you could be getting 74 fps (if Vsync were off), but the Oculus software is limiting it more dramatically than you would like. To see what your “true” FPS is, type the console command ‘hmd vsync off’. And sometimes you may need to type ‘t.maxFPS [insert framerate here]’ if you have some frame rate smoothing set in your project settings. Standalone non-Oculus at 1920x1080 should be approximately double the FPS of an Oculus game.
If you already knew all of that, please forgive me for assuming. I’ve recently made a DK2 project and it ran at 90+ fps on a GTX 970 with (tweaked) SSR and a screen percentage ("hmd sp XXX) of 150. And it used those shiny wood panels that I think you may be referencing It was an ArchViz scene, so it needed to be shiny and realistic.
To make sure you are getting accurate tests, always test in a standalone game and make sure the resolution is consistent. If your regular game is played at 1280x720, but the Oculus plays at 1920x1080, then the test isn’t fair. And ProfileGPU is your new best friend. Just type that into the console command of a standalone game to get a breakdown of almost every rendering feature that your scene is using. It will pinpoint certain blindspots for things that you totally didn’t know about. For example, when I switched my project from 4.6 to 4.7, my scene took a huge performance hit in the Oculus. ProfileGPU revealed that a glitch had set my directional sunlight to movable instead of static. Also make sure that you are using the correct Oculus and Unreal version pairs. UE4 4.7 is specifically designed around OVR 0.4.4. Going a version newer or older should work, but I would recommend playing it safe.
With ProfileGPU, you can see what the actual cost of SSR is down to the milliseconds. If you come back and show me that SSR is taking 30 ms, then I will admit defeat. Until then, let’s try some settings. If you haven’t already, I would recommend watching this talk about UE4 in the Oculus Rift. Lots of awesome advice and insight. Oculus Connect: Integrating the Oculus Rift into Unreal Engine 4 - YouTube
In that video and on the VR forums, you can find a list of settings to try for good performance. I’ll show you what I used to get awesome performance while maintaining lots of SHINY. I went through and tested each of these one by one to see how many FPS I gained, so I know they’re good. They can be made through a console command Blueprint node at the start of game, or they can be put in a few different config files.
hmd sp 150 [setting this to 100 or less will make a blurry picture, but this is by far the easiest way to squeeze extra frames out of anything. 150 is pretty high, so start at 110]
r.FinishCurrentFrame 1
sg.ShadowQuality 1
sg.AntiAliasingQuality 3
sg.PostProcessQuality 2
sg.TextureQuality 3
r.MaxAnisotropy 8
**r.SSR.Quality 3
**r.RefractionQuality 0
r.SeparateTranslucency 0
r.EyeAdaptationQuality 0
r.RHICMDbypass 0
showflag.DynamicShadows 0
r.HZBOcclusion 0
r.BloomQuality 4
r.SceneColorFormat 3
r.TranslucencyVolumeBlur 0
r.TranslucencyLightingVolume 0
r.SSR.Temporal 0 [gets rid of Temporal AA’s grainy dithering]
I’m curious what your Profile GPU spits out. I’d love to come back and help troubleshoot. Sometimes there are genuine glitches and you may have already tried this advice.