Jump to content
  • 0

Vsync in ENBoost not working


Domiel

Question

I've tried everything getting it to kick in, CCC setting "always off"(as per STEP guide), CCC "Always off, unless application specifies".

Tried all combinations of ForceBorderlessFullscreen=

I'm stuck with the framelimiter(EnableFPSLimit=true) which does cause a bit of tearing. Mostly I'm just incredibly annoyed it doesn't work and can't explain why. 

I'm on an AMD RADEON HD 6800, and iPresentInterval = 0 of course. 

Anyone know why it wouldn't work?

Heres my Enblocal.ini

 

 

 

[PROXY]EnableProxyLibrary=falseInitProxyFunctions=trueProxyLibrary=other_d3d9.dll[GLOBAL]UsePatchSpeedhackWithoutGraphics=trueUseDefferedRendering=falseForceFakeVideocard=falseIgnoreCreationKit=true[PERFORMANCE]SpeedHack=trueEnableOcclusionCulling=true[MULTIHEAD]ForceVideoAdapterIndex=falseVideoAdapterIndex=0[MEMORY]ExpandSystemMemoryX64=trueReduceSystemMemoryUsage=trueDisableDriverMemoryManager=falseDisablePreloadToVRAM=falseEnableUnsafeMemoryHacks=falseReservedMemorySizeMb=256VideoMemorySizeMb=2048//VideoMemorySizeMb=1536 was somewhat stable//VideoMemorySizeMb=5120 highest with EnableUnsafeMemoryHacks=true og DisablePreloadToVRAM=trueEnableCompression=trueAutodetectVideoMemorySize=true[WINDOW]ForceBorderless=falseForceBorderlessFullscreen=true//Can't adjust brightness with it on true, but alt-tab works much better[ENGINE]//ENBoost-ONLY users (NOT ENB graphics users!) should NOT use AF in enblocal.ini (set ForceAnisotropicFiltering to false ).ForceAnisotropicFiltering=falseMaxAnisotropy=8EnableVSync=falseAddDisplaySuperSamplingResolutions=falseForceLodBias=falseLodBias=0.0VSyncSkipNumFrames=0[LIMITER]WaitBusyRenderer=falseEnableFPSLimit=trueFPSLimit=60.0[iNPUT]//shiftKeyCombination=16//f12KeyUseEffect=123//homeKeyFPSLimit=36//num *KeyShowFPS=106//print screenKeyScreenshot=45//enterKeyEditor=13//f4KeyFreeVRAM=115[ADAPTIVEQUALITY]Enable=falseQuality=1DesiredFPS=20.0[ANTIALIASING]EnableEdgeAA=falseEnableTemporalAA=falseEnableSubPixelAA=falseEnableTransparencyAA=false[FIX]FixGameBugs=trueFixParallaxBugs=trueFixAliasedTextures=trueIgnoreLoadingScreen=falseIgnoreInventory=trueFixSsaoWaterTransparency=trueFixSsaoHairTransparency=trueFixTintGamma=trueRemoveBlur=trueFixSubSurfaceScattering=trueFixSkyReflection=trueFixCursorVisibility=true[WINDOWLIGHT]CurveDay=1.0CurveSunset=1.0CurveNight=1.0CurveInteriorDay=1.0CurveInteriorNight=1.0[VOLUMETRICFOG]IntensitySunrise=1.0IntensityDay=1.0IntensitySunset=1.0IntensityNight=1.0IntensityInteriorDay=1.0IntensityInteriorNight=1.0CurveSunrise=1.0CurveDay=1.0CurveSunset=1.0CurveNight=1.0CurveInteriorDay=1.0CurveInteriorNight=1.0LightingInfluenceSunrise=1.0LightingInfluenceDay=1.0LightingInfluenceSunset=1.0LightingInfluenceNight=1.0[bLOOM]AmountSunrise=1.0AmountDay=1.0AmountSunset=1.0AmountNight=1.0AmountInteriorDay=1.0AmountInteriorNight=1.0BlueShiftAmountSunrise=1.0BlueShiftAmountDay=1.0BlueShiftAmountSunset=1.0

 

Setting EnableVSync=true here does absolutely nothing in-game my fps easily hits 100 indoors without the framelimiter

Edited by Domiel
Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0

There is no need to use the frame limiter with vsync. I also can not fathom any reason why enblocal.ini vsync would not be working.

 

Your enblocal.ini is atypical as well ... lots of settings that don't belong in there and comments that are not typical. I have seen strange things happen with character encoding in text files too. I recommend updating to latest enbseries and using a fresh enblocal.ini.

Link to comment
Share on other sites

  • 0

What is your monitor refresh rate? My dear old LED is 72, though Windows says 60...if you have one of the newer models with a higher than average reported/recognized refresh...that could explain the results. VSYNC ideally only caps FPS to the monitor's rate...if that rate can be achieved. If it can't be achieved, it drops it.

 

Quote

Higher is obviously better. However, during a fast paced game, your FPS rarely stays the same all the time. It moves around as the complexity of the image the video card has to draw changes based on what you are seeing. This is where tearing comes in.

Tearing is a phenomenon that gives a disjointed image. The idea is as if you took a photograph of something, then rotated your vew maybe just 1 degree to the left and took a photograph of that, then cut the two pictures in half and taped the top half of one to the bottom half of the other. The images would be similar but there would be a notable difference in the top half from the bottom half. This is what is called tearing on a visual display. It doesn't always have to be cut right in the middle. It can be near the top or the bottom and the separation point can actually move up or down the screen, or seem to jump back and forth between two points.

Why does this happen? Lets take a specific example. Let's say your monitor is set to a refresh rate of 75Hz. You're playing your favorite game and you're getting 100FPS right now. That means that the mointor is updating itself 75 times per second, but the video card is updating the display 100 times per second, that's 33% faster than the mointor. So that means in the time between screen updates, the video card has drawn one frame and a third of another one. That third of the next frame will overwrite the top third of the previous frame and then get drawn on the screen. The video card then finishes the last 2 thirds of that frame, and renders the next 2 thirds of the next frame and then the screen updates again. As you can see this would cause this tearing effect as 2 out of every 3 times the screen updates, either the top third or bottom third is disjointed from the rest of the display. This won't really be noticeable if what is on the screen isn't changing much, but if you're looking around quickly or what not this effect will be very apparant.

Now this is where the common misconception comes in. Some people think that the solution to this problem is to simply create an FPS cap equal to the refresh rate. So long as the video card doesn't go faster than 75 FPS, everything is fine, right? Wrong.

Before I explain why, let me talk about double-buffering. Double-buffering is a technique that mitigates the tearing problem somewhat, but not entirely. Basically you have a frame buffer and a back buffer. Whenever the monitor grabs a frame to refresh with, it pulls it from the frame buffer. The video card draws new frames in the back buffer, then copies it to the frame buffer when it's done. However the copy operation still takes time, so if the monitor refreshes in the middle of the copy operation, it will still have a torn image.

VSync solves this problem by creating a rule that says the back buffer can't copy to the frame buffer until right after the monitor refreshes. With a framerate higher than the refresh rate, this is fine. The back buffer is filled with a frame, the system waits, and after the refresh, the back buffer is copied to the frame buffer and a new frame is drawn in the back buffer, effectively capping your framerate at the refresh rate.

That's all well and good, but now let's look at a different example. Let's say you're playing the sequel to your favorite game, which has better graphics. You're at 75Hz refresh rate still, but now you're only getting 50FPS, 33% slower than the refresh rate. That means every time the monitor updates the screen, the video card draws 2/3 of the next frame. So lets track how this works. The monitor just refreshed, and frame 1 is copied into the frame buffer. 2/3 of frame 2 gets drawn in the back buffer, and the monitor refreshes again. It grabs frame 1 from the frame buffer for the first time. Now the video card finishes the last third of frame 2, but it has to wait, because it can't update until right after a refresh. The monitor refreshes, grabbing frame 1 the second time, and frame 2 is put in the frame buffer. The video card draws 2/3 of frame 3 in the back buffer, and a refresh happens, grabbing frame 2 for the first time. The last third of frame 3 is draw, and again we must wait for the refresh, and when it happens, frame 2 is grabbed for the second time, and frame 3 is copied in. We went through 4 refresh cycles but only 2 frames were drawn. At a refresh rate of 75Hz, that means we'll see 37.5FPS. That's noticeably less than 50FPS which the video card is capable of. This happens because the video card is forced to waste time after finishing a frame in the back buffer as it can't copy it out and it has nowhere else to draw frames.

Essentially this means that with double-buffered VSync, the framerate can only be equal to a discrete set of values equal to Refresh / N where N is some positive integer. That means if you're talking about 60Hz refresh rate, the only framerates you can get are 60, 30, 20, 15, 12, 10, etc etc. You can see the big gap between 60 and 30 there. Any framerate between 60 and 30 your video card would normally put out would get dropped to 30.

 

 

Arkalius Limp Gawd
 
Status: Posted Image
 
 
  • +1 1
Link to comment
Share on other sites

  • 0

Indeed, that post is one I link users to as well. Here is another useful reference.

 

Tri buffering is key, and vsync is not bad with it enabled ... I suspect that ENBoost includes tri-biffering with supported cards (at least that is what my frame rates are saying to me, since I typically get around 35-50 outdoors with ENBoost vsync enabled).

Link to comment
Share on other sites

  • 0

Driver settings is the only thing that can override ENB.. assuming you do not have any other weird 3rd party software that controls drivers or directx features installed. 

 

As long as your driver settings are set to application controlled then ENB´s value should be used if enabled. 

Link to comment
Share on other sites

  • 0

@ Kuldebar: great linked explanation, I'm gonna take a look at my settings when I get back to the PC and check to see if I've created a bottleneck by overthinking the ENB FPS limiter and vsync (wow, iPhone had some creative autocorrects for that) settings in the Nvidia control panel.

Link to comment
Share on other sites

  • 0

I opened up nVidia Inspector's STEP instructions and vsync is 'Use the 3D application setting'. Should I instead use the Nvidia control panel and set vsync to On instead of Use the 3D application setting? Would that (hopefully) solve the issue?

 

On another note should I also enable triple buffering via the Nvidia control panel? It seems like a good idea through the guide that was posted up.

Link to comment
Share on other sites

  • 0

Verify that the given profile is actually used ingame.. you can try to force AA and then start the game. If ENB acts up and says deffered rendering is disabled then the profile works. If it does not then something is wrong with a settings somewhere in the inspector. 

 

Try to force it though the global profile since there it should work without a doubt. 

 

If it still does not then just get rid of inspector and use the control panel. Unless you play many many different games that absolutely cannot play on the same settings then there is not much point in using the inspector anyways. At least I have yet to see a compelling reason to use it at all. 

Link to comment
Share on other sites

  • 0

Forcing vsync on through nvidia inspector seems to put my frame rates back at 60 max. I turned on triple buffering as well and the game seems to run better than before (Well, before the insane frame rates...) but I only played Skyrim for a little bit just to check to see if things were back to normal. It's weird the ENBoost  won't use vsync even though the settings are true for it. Never did that before.

 

Barring anything else it seems like things are relatively back to normal. Thanks for the help.

 

Edit: I'll set it to application controlled again and set iPresentInterval to 1 and see if that also works.

Edited by Crimson13
Link to comment
Share on other sites

  • 0

Interesting. I quit verifying vsync/FPS long ago as the STEP/enbseries method has worked across several versions and game installs. I had the enbseries FPS display on the other day in Bits and Pieces in Solitude after checking out some out-door texture changes. I wasn't really watching it anymore, until I approached the door on the way out and it kicked way up to triple digits. Then, paying attention to it, I checked out my FPS and discovered vsync was not functioning, much like the OP's experience.

 

I'm also on a .254 enbseries, but have an AMD card and CCC. At the moment, it seems only iPresentInterval=1 or a CCC  "Always ON" or "On, unless" setting limits my in-game FPS. (I have a 60Hz monitor) I haven't had any obvious physics issues indoors, but the mod load I'm playing right now is fairly self-limiting for FPS indoors and out, unless I find a "quiet" scene to render.

 

I'll fire up an external FPS counter and check things out methodically, but I can't seem to get enblocal settings to limit FPS, either.

 

EDIT: Do any other enblocal settings impact the functioning of EnableVsync?

Edited by Searcher7
Link to comment
Share on other sites

  • 0

UPDATE: Nevermind, sorry. I apparently have a system/driver issue; the ONLY setting that impacts Skyrim FPS is iPresentInterval. No CCC vsync setting impacts game FPS, with or without enbseries installed, with or without Application Profile settings. Only iPresentInterval=0 or 1 impacts Skyrim FPS according to FRAPS or enbseries. Am checking other games now, but this issue does not seem to apply to Skyrim.

 

EDIT: Indeed, my system is running full-bore on other games as well. Looks like an ATI driver install glitch.

Edited by Searcher7
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.