Forum Discussion
Welby
11 years agoAdventurer
37.5 stable FPS (DX11 and Direct Mode) [0.4.3.1]
I've this weird issues.. actually i'm using DX11 with Vsync set to "EveryVblank".
If i try to play my own game with the Direct Mode everytime i was under the 60-65fps my framerate drops down to a stable 37-38 fps that's really similar to what actually do the Vsync.
But if i get more than 65-70fps i got stable 75fps.
This not happen in Extended Mode where i just have the really framerate i should have.
Some helps?
If i try to play my own game with the Direct Mode everytime i was under the 60-65fps my framerate drops down to a stable 37-38 fps that's really similar to what actually do the Vsync.
But if i get more than 65-70fps i got stable 75fps.
This not happen in Extended Mode where i just have the really framerate i should have.
Some helps?
14 Replies
Replies have been turned off for this discussion
- WelbyAdventurerAlright guys.. i've a big question.
Actually i've understand that the Vsync half the fps to 37.5 if you're under 70fps.
Since i don't understand how disable the Vsync(I've tried with the Catalyst Control,RadeonPro etc,and of course i've an HD Radeon),is it possible to disabe it while using the Direct Mode?
Also.. why in Extended Mode the vsync don't seems to works like that? I mean.. i can't go up to the 75fps but if i drops down(60-65fps) i've no issues at all. That's not happen with the Direct Mode..
So i've another question,the Triple Buffering can help with the Vsync in Direct Mode? There is a way,however,to disable it in Direct Mode? and finally.. if not,there is a way to remove the dialog windows of Untiy that said to me that "the current Unity version support only the DirectMode with the DX11) so i need to press "Enter" everytime but to be honest it seems to works.. it's just annoying to press "enter" everytime it spawn this dialog window..
Thanks. - FredzExplorer
"welby" wrote:
Also.. why in Extended Mode the vsync don't seems to works like that?
Because Aero takes care of vsync and double buffering, but at the cost of added latency."welby" wrote:
So i've another question,the Triple Buffering can help with the Vsync in Direct Mode?
It'll add latency as well, read this about triple buffering : http://www.gamedev.net/topic/649174-why-directx-doesnt-implement-triple-buffering/"welby" wrote:
There is a way,however,to disable it in Direct Mode?
You'll get tearing if you disable vsync in Direct to Rift mode. And you'll loose accurate prediction and Pixel Luminance Overdrive. - WelbyAdventurer
"Fredz" wrote:
"welby" wrote:
Also.. why in Extended Mode the vsync don't seems to works like that?
Because Aero takes care of vsync and double buffering, but at the cost of added latency."welby" wrote:
So i've another question,the Triple Buffering can help with the Vsync in Direct Mode?
It'll add latency as well, read this about triple buffering : http://www.gamedev.net/topic/649174-why-directx-doesnt-implement-triple-buffering/"welby" wrote:
There is a way,however,to disable it in Direct Mode?
You'll get tearing if you disable vsync in Direct to Rift mode. And you'll loose accurate prediction and Pixel Luminance Overdrive.
Well.. there is something still weird.. If with the Extended Mode the Vsync doesn't work at all because the Aereo takes care of vsync,why it's almost impossible to have MORE tha 75fps(like when you've vsync enabled) but if you go down nothing happens?
I mean.. actually this is what happens:
DirectMode = With 75fps,you'll get solid 75fps,with 72fps you'll get 37.5fps with so much blur headtracking
ExtendedMode= With 75fps,you'll get solid 75fps,with 72fps you'll get 72fps... without any visibile issues at all.
This is what i've experienced during my testing and developing,and also if the Direct Mode works better with less latency etc,i still find the ExtededMode MUCH more stable and useful.
Yes maybe if the game runs at 100+fps all the time,the DirectMode+ Vsync works well,and i know that sometimes is the best solution to have,but i'm just saying that it's weird but also already tested that a lot of other time the Extended mode works so much better and stable. - FredzExplorer
"welby" wrote:
Well.. there is something still weird.. If with the Extended Mode the Vsync doesn't work at all because the Aereo takes care of vsync,why it's almost impossible to have MORE tha 75fps
Because Aero is bound to vsync I guess. It's a compositor, it takes care of copying the content of the different front buffers to the screen. That's when rendering windows, from what I understand it doesn't interfere with fullscreen windows. But are you rendering to a fullscreen window or a borderless maximized window ? I think using Direct to Rift mode for an app uses a borderless window, if you run it in extended mode it could be the reason. - WelbyAdventurer
"Fredz" wrote:
"welby" wrote:
Well.. there is something still weird.. If with the Extended Mode the Vsync doesn't work at all because the Aereo takes care of vsync,why it's almost impossible to have MORE tha 75fps
Because Aero is bound to vsync I guess. It's a compositor, it takes care of copying the content of the different front buffers to the screen. That's when rendering windows, from what I understand it doesn't interfere with fullscreen windows. But are you rendering to a fullscreen window or a borderless maximized window ? I think using Direct to Rift mode for an app uses a borderless window, if you run it in extended mode it could be the reason.
I think that using the DirectToRift in Extended Mode run the game in fullscreen,honestly i'm quite sure about that. - FredzExplorerYes it appears in fullscreen but I don't think it's a real fullscreen window.
vrdaveb said this about Direct mode :
"The main function of "DirectToRift.exe" is to load the direct mode driver before Unity initializes D3D. You can accomplish that with the "naked" executable by loading our driver instead of the usual D3D DLLs. However, you'll have to ensure the app starts at 1920x1080 and in the right full-screen state. That means passing the "-window" argument in direct mode and the "-fullscreen" argument in extended mode."
Does it work exactly the same when not using the "_DirectToRift.exe" executable when choosing "Extended Desktop to the HMD" in the "Rift Display Mode" utility ? - vrdavebOculus Staff
"welby" wrote:
i'm using DX11 with Vsync set to "EveryVblank".
You should leave Unity's vsync off for D3D11. We do that automatically in OVRManager. VSync is built into TimeWarp and you wouldn't want to wait twice for each vblank.
Several people have seen 37.5FPS due to CPU power savings. This is probably because TimeWarp sleeps for a few milliseconds at the end of each frame so it can update the image immediately before it is shown. If you disable TimeWarp and vsync and set Application.targetFrameRate = -1, the frame rate should go very high, but you will see tearing in VR. A better solution is to go to Control Panel => Hardware and Sound => Power Options and set "High Performance". - CubicleNinjasProtege
Several people have seen 37.5FPS due to CPU power savings. This is probably because TimeWarp sleeps for a few milliseconds at the end of each frame so it can update the image immediately before it is shown. If you disable TimeWarp and vsync and set Application.targetFrameRate = -1, the frame rate should go very high, but you will see tearing in VR. A better solution is to go to Control Panel => Hardware and Sound => Power Options and set "High Performance".
Used all previous builds, but for the first time ever seeing the 37.5fps in two scenes in 0.4.4. Changing the power options to high performance doesn't have an impact on this on my end. Any ideas? - WelbyAdventurer
"CubicleNinjas" wrote:
Several people have seen 37.5FPS due to CPU power savings. This is probably because TimeWarp sleeps for a few milliseconds at the end of each frame so it can update the image immediately before it is shown. If you disable TimeWarp and vsync and set Application.targetFrameRate = -1, the frame rate should go very high, but you will see tearing in VR. A better solution is to go to Control Panel => Hardware and Sound => Power Options and set "High Performance".
Used all previous builds, but for the first time ever seeing the 37.5fps in two scenes in 0.4.4. Changing the power options to high performance doesn't have an impact on this on my end. Any ideas?
I've make a fast tried too and doesn't help a lot.. I'm hoping for some other helps.
Ps: I've disabled the Vsync from Unity but that's haven't changed the issue. - andrewtekMemberI ran into a similar scenario in my Unreal Engine baseline scene; but it was user-error on my part. The scene would play 200FPS on my desktop, but would drop to 37.5 in the Rift. The reason turned out to be a lighting issue. Once I made my light static and rebuilt lighting, the Rift framerate stayed locked at 75.
Edit: I did not realize this was a unity thread before posting. I don't know if my experience has any corollary in Unity.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 2 years ago