Jump to content
Sign in to follow this  
bbain1187

Dynamic Frame Rate Limiter?

Recommended Posts

Hi all,

Here's my dilemma: In V4, I was able to run unlimited frames/Vsync on/30hz with crisp textures on my aging i7 6700k @4.6. In V5 in this same configuration, I have blurry/slow-loading textures. I've tried turning on HT, lowering settings, config tweaks, etc, but the result is the same. But if I limit the FPS in-sim to 30, textures load perfectly and I still have very smooth, constant 30fps while airborne, even with TrackIR. The problem is when I'm on the ground with GSX, SODE, other aircraft in the area, I'll get the stutters that I don't get with unlimited FPS. So my question is, would it be possible for something like Dynamic FFTF, except with the FPS limiter? With Dynamic FFTF, I can set an AGL value for the FFTF setting to transition. If I could do the same with the in-sim FPS target, I could have it be unlimited on the ground and up to 1000 AGL to get my smooth FPS on the ground, and then at 1000 AGL have it switch to 30 fps to focus on texture loading. Would this be possible? I would gladly pay for such an addon. Maybe the FTFF developer could add it as a feature to their already-useful program, if others are in the same boat as me and there is demand for such a product?

Thanks,

Ben

Edited by bbain1187
  • Upvote 1

P3D 4.3, Windows 10/64 bit, Intel 6700k @ 4.7 air-cooled, NVidia 2080 Ti Founders Edition, ASUS Rog Maximus VIII Ranger, 16GB G.Skill Ripjaws DDR4 @3200, Phanteks Anthoo Pro Series Case, Samsung 950 Pro M.2 500GB, Sandisk 1TB SATA, Seagate 2TB Hybrid Drive, Cooler Master 700W, 40-inch Samsung 4k TV

Share this post


Link to post
36 minutes ago, bbain1187 said:

Hi all,

Here's my dilemma: In V4, I was able to run unlimited frames/Vsync on/30hz with crisp textures on my aging i7 6700k @4.6. In V5 in this same configuration, I have blurry/slow-loading textures. I've tried turning on HT, lowering settings, config tweaks, etc, but the result is the same. But if I limit the FPS in-sim to 30, textures load perfectly and I still have very smooth, constant 30fps while airborne, even with TrackIR. The problem is when I'm on the ground with GSX, SODE, other aircraft in the area, I'll get the stutters that I don't get with unlimited FPS. So my question is, would it be possible for something like Dynamic FFTF, except with the FPS limiter? With Dynamic FFTF, I can set an AGL value for the FFTF setting to transition. If I could do the same with the in-sim FPS target, I could have it be unlimited on the ground and up to 1000 AGL to get my smooth FPS on the ground, and then at 1000 AGL have it switch to 30 fps to focus on texture loading. Would this be possible? I would gladly pay for such an addon. Maybe the FTFF developer could add it as a feature to their already-useful program, if others are in the same boat as me and there is demand for such a product?

Thanks,

Ben

The FFTF dynamic with AGL configuration range from 0-3000ft and you set the FFTF from 0.01 to 0.33. By doing that you will get the same behavior as unlimited FPS at ground.


Ramon De Valencia

Intel i9 13900k @ stock / Windows 11 64 bit / 64GB DDR5 5600MHz CL36 RAM / GTX 4090 24GB VRAM / 1000 watt PSU

Share this post


Link to post
Just now, ttbq1 said:

The FFTF dynamic with AGL configuration range from 0-3000ft and you set the FFTF from 0.01 to 0.33. By doing that you will get the same behavior as unlimited FPS at ground.

I've tried that but it doesn't solve my blurry textures issue. The only thing that solves it is limiting my FPS to 30 in-sim.


P3D 4.3, Windows 10/64 bit, Intel 6700k @ 4.7 air-cooled, NVidia 2080 Ti Founders Edition, ASUS Rog Maximus VIII Ranger, 16GB G.Skill Ripjaws DDR4 @3200, Phanteks Anthoo Pro Series Case, Samsung 950 Pro M.2 500GB, Sandisk 1TB SATA, Seagate 2TB Hybrid Drive, Cooler Master 700W, 40-inch Samsung 4k TV

Share this post


Link to post
14 minutes ago, bbain1187 said:

I've tried that but it doesn't solve my blurry textures issue. The only thing that solves it is limiting my FPS to 30 in-sim.

Yes, but you need to limit the FPS inside P3D graphic menu, that way you will avoid blurries while flying and on the ground FFTF dynamic will give the same experience as unlimited. I limit P3D at 33 , 1/2 vsync on NVI.

You need to make sure FFTF dynamic is running as administrator.

Edited by ttbq1

Ramon De Valencia

Intel i9 13900k @ stock / Windows 11 64 bit / 64GB DDR5 5600MHz CL36 RAM / GTX 4090 24GB VRAM / 1000 watt PSU

Share this post


Link to post
22 minutes ago, ttbq1 said:

Yes, but you need to limit the FPS inside P3D graphic menu, that way you will avoid blurries while flying and on the ground FFTF dynamic will give the same experience as unlimited. I limit P3D at 33 , 1/2 vsync on NVI.

You need to make sure FFTF dynamic is running as administrator.

I don't have FFTF dynamic installed for HF2 yet, but even that didn't give me the smoothness I would get with FPS unlimited when I used it before. There is no replacement for the smoothness I get with FPS set to unlimited, which is why I want a way for this to be set dynamically in the sim for when I'm on the ground.


P3D 4.3, Windows 10/64 bit, Intel 6700k @ 4.7 air-cooled, NVidia 2080 Ti Founders Edition, ASUS Rog Maximus VIII Ranger, 16GB G.Skill Ripjaws DDR4 @3200, Phanteks Anthoo Pro Series Case, Samsung 950 Pro M.2 500GB, Sandisk 1TB SATA, Seagate 2TB Hybrid Drive, Cooler Master 700W, 40-inch Samsung 4k TV

Share this post


Link to post
1 hour ago, bbain1187 said:

I don't have FFTF dynamic installed for HF2 yet, but even that didn't give me the smoothness I would get with FPS unlimited when I used it before. There is no replacement for the smoothness I get with FPS set to unlimited, which is why I want a way for this to be set dynamically in the sim for when I'm on the ground.

Have you tried adding an FFTF value in your prepar3d.cfg file?

[MAIN]
FIBER_FRAME_TIME_FRACTION=0.20

Try values from 0.15 to 0.33.

Leave the in-sim setting at unlimited.

 


Bert

Share this post


Link to post

Your hardware should run v5 better than v4, so there's something off.

In your shoes, here's what I'd try:

Turn hyperthreading on.

Delete the prepar3d.cfg file, launch P3D and let it rebuild clean.

Close P3D and set an AM in your prepar3d.cfg file of 245

[JOBSCHEDULER]
AffinityMask=245

Leave FIBER_FRAME_TIME_FRACTION out of the cfg file for now.

If you're at 30hz, then set framerate unlimited, vsync on and triple buffering on to start with.

In Nvidia Control Panel, the only modifications I make to the defaults are to set prefer maximum performance and I also set vsync and triple buffering ON in NCP.

I'd start there and see what performance is like. Should be good, or at least better.

Then, if you want, you can introduce some FFTF adjustments as Bert is suggesting. I haven't needed to adjust that in v5, but if anything, if you're getting blurries, you need a higher FFTF value (default is 0.33 I believe) to give P3D more cpu time for terrain/scenery rendering.

 

  • Like 1

5800X3D | Radeon RX 6900XT

Share this post


Link to post
17 hours ago, Bert Pieke said:

Have you tried adding an FFTF value in your prepar3d.cfg file?

[MAIN]
FIBER_FRAME_TIME_FRACTION=0.20

Try values from 0.15 to 0.33.

Leave the in-sim setting at unlimited.

 

I did install FFTF Dynamic again last night and it helped, however I still got a few stutters in the gate area with GSX on the taxi-in.

17 hours ago, cwburnett said:

Your hardware should run v5 better than v4, so there's something off.

In your shoes, here's what I'd try:

Turn hyperthreading on.

Delete the prepar3d.cfg file, launch P3D and let it rebuild clean.

Close P3D and set an AM in your prepar3d.cfg file of 245


[JOBSCHEDULER]
AffinityMask=245

Leave FIBER_FRAME_TIME_FRACTION out of the cfg file for now.

If you're at 30hz, then set framerate unlimited, vsync on and triple buffering on to start with.

In Nvidia Control Panel, the only modifications I make to the defaults are to set prefer maximum performance and I also set vsync and triple buffering ON in NCP.

I'd start there and see what performance is like. Should be good, or at least better.

Then, if you want, you can introduce some FFTF adjustments as Bert is suggesting. I haven't needed to adjust that in v5, but if anything, if you're getting blurries, you need a higher FFTF value (default is 0.33 I believe) to give P3D more cpu time for terrain/scenery rendering.

 

My performance in every regard besides texture loading has been vastly improved in V5. I've seen numerous posts about the texture loading issue so I do not think my system is the culprit, other than having an older CPU. I did try HT on a few weeks ago and it helped the texture loading somewhat, but the temp increase wasn't acceptable. I'd have to back off on my overclock to make it work which I think would negate the benefits.

The only NCP setting I've changed is Prefer Maximum Performance. What would be the benefit of setting VSync/Triple Buffering in NCP if I also set it in the sim? Wouldn't that be redundant?

I've tried setting .50 in FFTF Dynamic but I read somewhere that in V5 there is no benefit beyond .33 and I also saw no benefit when I tried it myself.


P3D 4.3, Windows 10/64 bit, Intel 6700k @ 4.7 air-cooled, NVidia 2080 Ti Founders Edition, ASUS Rog Maximus VIII Ranger, 16GB G.Skill Ripjaws DDR4 @3200, Phanteks Anthoo Pro Series Case, Samsung 950 Pro M.2 500GB, Sandisk 1TB SATA, Seagate 2TB Hybrid Drive, Cooler Master 700W, 40-inch Samsung 4k TV

Share this post


Link to post
18 hours ago, cwburnett said:

Then, if you want, you can introduce some FFTF adjustments as Bert is suggesting. I haven't needed to adjust that in v5, but if anything, if you're getting blurries, you need a higher FFTF value (default is 0.33 I believe) to give P3D more cpu time for terrain/scenery rendering.

 

Default is 0.33 if you are setting your fps value inside the sim.

If you have fps set to unlimited that does not apply as best I know.

Edited by Bert Pieke

Bert

Share this post


Link to post

For whatever its worth, I had blurry textures for a minute while I was testing some settings...specifically when I was limiting my framerate outside of P3D. I had half refresh adaptive vsync and a frame limiter setup in Nvidia Control Panel, but unlimited framerate/vsync off in P3D and my texture+autogen loading was slow/bad. As soon as I clicked vsync back on ON in P3D, everything went back to normal.

As I understand it, blurry textures can either be caused by (a) the main thread not having enough time to calculate WHAT to request from the terrain loading threads or (b) not enough processing capacity in the terrain loading threads themselves.  FFTF addresses (a) and Affinity Mask can help address (b).  We can't tell which is your case, so it is probably worth considering both options...or looking more closely at your per-core CPU usage when you're seeing blurries....

On FFTF:

In this thread (https://www.prepar3d.com/forum/viewtopic.php?f=6312&t=120133) Beau explains the behavior of FFTF pretty specifically. If you have a fixed framerate inside P3D, then P3D will use all extra available CPU time to build scenery.  Because it knows, in advance, how many frames it needs to produce, it can dedicate a specific amount of resource to the loading of terrain. However, if you are on unlimited frames, then it has no way to do this so it needs to be told  - and that's what FFTF does as I read Beau's explanation.

He specifically says: "If you internally limit, these jobs get however much time is left. 30fps = 33ms, so if the main work is done in 23ms, then these jobs get 10ms to play with which is ok. If your main frame work takes 31ms, they only get 2ms, and you may see delays. With unlimited, the jobs time slice is determined by a percentage of the frame which is configurable in the Prepar3D.cfg"

On Affinity Mask:

The reason I suggested the AM, though, is that P3D v5 appears to use cores somewhat differently than v4.5. There's a discussion here at avsim (https://www.avsim.com/forums/topic/574471-p3dv5x-core-usage-notes/) and one on the prepar3d forum as well in which Beau also commented (https://www.prepar3d.com/forum/viewtopic.php?f=6312&t=137087). It looks like additional cores are dedicated to the main thread, which means fewer cores for scenery/terrain loading. They seem to work like 'overflow' cores that, on my system, sit usually below 50%, so compared with v4.5 where I had 4 cores working full time on terrain/scenery loading, in v5 I only have two.

I have an i5 9600k, so I have 6 cores with no hyperthreading. On my system, cores 0,1,2 and 4 seem to be dedicated to the main thread or admin tasks, and only cores 3 and 5 are working on terrain. (you can see what I mean here: https://i.imgur.com/3dKBsNv.jpg)

With your CPU, you have four physical cores which means that if the pattern holds, you only have one core for scenery/terrain loading. If you were to try hyperthreading, but block off the first two cores from using hyperthreading, you may get more scenery/terrain loading throughput AND you may not have the heat problems that could be induced by not using an AM.  You could also try 253, which would add one more LP by allowing P3D to use both LPs on core 1, only blocking off an LP on core 0.

It might be worth the 15 minutes it would take to test; could be helpful to others as well.

 

  • Like 1

5800X3D | Radeon RX 6900XT

Share this post


Link to post

253 works best for me also.. 4770K Quad core CPU with HT on.

  • Like 1

Bert

Share this post


Link to post
8 hours ago, cwburnett said:

For whatever its worth, I had blurry textures for a minute while I was testing some settings...specifically when I was limiting my framerate outside of P3D. I had half refresh adaptive vsync and a frame limiter setup in Nvidia Control Panel, but unlimited framerate/vsync off in P3D and my texture+autogen loading was slow/bad. As soon as I clicked vsync back on ON in P3D, everything went back to normal.

As I understand it, blurry textures can either be caused by (a) the main thread not having enough time to calculate WHAT to request from the terrain loading threads or (b) not enough processing capacity in the terrain loading threads themselves.  FFTF addresses (a) and Affinity Mask can help address (b).  We can't tell which is your case, so it is probably worth considering both options...or looking more closely at your per-core CPU usage when you're seeing blurries....

On FFTF:

In this thread (https://www.prepar3d.com/forum/viewtopic.php?f=6312&t=120133) Beau explains the behavior of FFTF pretty specifically. If you have a fixed framerate inside P3D, then P3D will use all extra available CPU time to build scenery.  Because it knows, in advance, how many frames it needs to produce, it can dedicate a specific amount of resource to the loading of terrain. However, if you are on unlimited frames, then it has no way to do this so it needs to be told  - and that's what FFTF does as I read Beau's explanation.

He specifically says: "If you internally limit, these jobs get however much time is left. 30fps = 33ms, so if the main work is done in 23ms, then these jobs get 10ms to play with which is ok. If your main frame work takes 31ms, they only get 2ms, and you may see delays. With unlimited, the jobs time slice is determined by a percentage of the frame which is configurable in the Prepar3D.cfg"

On Affinity Mask:

The reason I suggested the AM, though, is that P3D v5 appears to use cores somewhat differently than v4.5. There's a discussion here at avsim (https://www.avsim.com/forums/topic/574471-p3dv5x-core-usage-notes/) and one on the prepar3d forum as well in which Beau also commented (https://www.prepar3d.com/forum/viewtopic.php?f=6312&t=137087). It looks like additional cores are dedicated to the main thread, which means fewer cores for scenery/terrain loading. They seem to work like 'overflow' cores that, on my system, sit usually below 50%, so compared with v4.5 where I had 4 cores working full time on terrain/scenery loading, in v5 I only have two.

I have an i5 9600k, so I have 6 cores with no hyperthreading. On my system, cores 0,1,2 and 4 seem to be dedicated to the main thread or admin tasks, and only cores 3 and 5 are working on terrain. (you can see what I mean here: https://i.imgur.com/3dKBsNv.jpg)

With your CPU, you have four physical cores which means that if the pattern holds, you only have one core for scenery/terrain loading. If you were to try hyperthreading, but block off the first two cores from using hyperthreading, you may get more scenery/terrain loading throughput AND you may not have the heat problems that could be induced by not using an AM.  You could also try 253, which would add one more LP by allowing P3D to use both LPs on core 1, only blocking off an LP on core 0.

It might be worth the 15 minutes it would take to test; could be helpful to others as well.

 

Thanks for the response. Are you saying I should block off the first two cores from hyperthreading, and use an affinity mask of 253, or to leave HT off with affinity mask=253?

My first two cores are the ones that get the hottest so that might work if only cores 3 and 4 are hyperthreading.

Edited by bbain1187

P3D 4.3, Windows 10/64 bit, Intel 6700k @ 4.7 air-cooled, NVidia 2080 Ti Founders Edition, ASUS Rog Maximus VIII Ranger, 16GB G.Skill Ripjaws DDR4 @3200, Phanteks Anthoo Pro Series Case, Samsung 950 Pro M.2 500GB, Sandisk 1TB SATA, Seagate 2TB Hybrid Drive, Cooler Master 700W, 40-inch Samsung 4k TV

Share this post


Link to post
2 hours ago, bbain1187 said:

Thanks for the response. Are you saying I should block off the first two cores from hyperthreading, and use an affinity mask of 253, or to leave HT off with affinity mask=253?

My first two cores are the ones that get the hottest so that might work if only cores 3 and 4 are hyperthreading.

Back up... you cannot block off individual cores from HT... it is all or nothing, on or off.  😉

You CAN however, designate which logical processors (LPs) that P3D is allowed to run on.

AM=253 blocks off the second LP from any p3D use, with HT on.

  • Like 2

Bert

Share this post


Link to post
18 hours ago, cwburnett said:

For whatever its worth, I had blurry textures for a minute while I was testing some settings...specifically when I was limiting my framerate outside of P3D. I had half refresh adaptive vsync and a frame limiter setup in Nvidia Control Panel, but unlimited framerate/vsync off in P3D and my texture+autogen loading was slow/bad. As soon as I clicked vsync back on ON in P3D, everything went back to normal.

 

That is what I've discovered here as well. No matter how exactly you limit fps externally - be it adaptive half refresh, or a set number in NCP/NI, the key is to turn that vsync option in P3D On. Thanks to mikeymike who pointed me in this direction in one of his posts.

Thanks.

Edited by Dirk98
  • Like 2

Share this post


Link to post
9 hours ago, Bert Pieke said:

Back up... you cannot block off individual cores from HT... it is all or nothing, on or off.  😉

OP’s 6700K you can’t.

10th Gen Intel you can.

  • Like 1

Kyle Weber (Private Pilot, ASEL; Flight Test Engineer)
Check out my repaints and downloads, all right here on AVSIM

Share this post


Link to post

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
Sign in to follow this  
  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
×
×
  • Create New...