Skip to content
View in the app

A better way to browse. Learn more.

The AVSIM Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

A Frame-Time Analysis of P3D v3 -- Effects of CPU Affinity, Frame Lock, and HT

Featured Replies

Hi, I read in the Prepar3D Tunning Guide that the TextureMaxLoad setting could induce sttuters. Daniel Moser in his BTW excellent work says that he "borrowed" these settings from FSX:SE. Has anyone a experience to share from using these settings in P3Dv3?.

 


[DISPLAY]

TextureMaxLoad=30

TEXTURE_BANDWIDTH_MULT=160

 

Thanks,

Edward

Cheers, Ed

MSFS2020 Steam  // Rig: Corsair Graphite 760T Full Tower - ASUS MBoard Maximus XII Hero Z490 - CPU Intel i9-10900K - 64GB RAM - MSI RTX2080 Super 8GB - [1xNVMe M.2 1TB + 1xNVMe M.2 2TB (Samsung)] + [1xSSD 1TB + 1xSSD 2TB (Crucial)] + [1xSSD 1TB (Samsung)] + 1 HDD Seagate 2TB + 1 HDD Seagate External 4TB - Monitor LG 29UC97C UWHD Curved - PSU Corsair RM1000x // Thrustmaster FCS & MS XBOX Controllers

  • Replies 596
  • Views 171.1k
  • Created
  • Last Reply
  • Commercial Member

Using a profiling tool that records fps over a repeatable scenario is best to work out these values:

 

[Display]

TEXTURE_BANDWIDTH_MULT=180 (Smoother texture handling with medium+ autogen.)

TEXTURE_BANDWIDTH_MULT=10 (Smoother frame rate with very low or no autogen.)

 

(default TextureMaxLoad)

Steve Waite: Engineer at codelegend.com

Hi Steve, I use FRAPS to record frametimes and the setting TEXTURE_BANDWITH_MULT=180 with default TextureMaxLoad works well, but for me it seems it's better to keep both of them to their default value. As far as you know, is there any limit in the setting of 180, or you can go as high as you need, or it's just a compromise between texture handling and complexity of the autogen?.

Thanks,

Edward

Cheers, Ed

MSFS2020 Steam  // Rig: Corsair Graphite 760T Full Tower - ASUS MBoard Maximus XII Hero Z490 - CPU Intel i9-10900K - 64GB RAM - MSI RTX2080 Super 8GB - [1xNVMe M.2 1TB + 1xNVMe M.2 2TB (Samsung)] + [1xSSD 1TB + 1xSSD 2TB (Crucial)] + [1xSSD 1TB (Samsung)] + 1 HDD Seagate 2TB + 1 HDD Seagate External 4TB - Monitor LG 29UC97C UWHD Curved - PSU Corsair RM1000x // Thrustmaster FCS & MS XBOX Controllers

  • Commercial Member

Best to experiment with different scenery, airports, and texture resolutions. If you go too high or low the default will preside over your setting.

Steve Waite: Engineer at codelegend.com

  • 1 month later...

4 cores HT enabled. With core zero saved for other tasks, and 4 LPs allocated with AM=116. The sim spreads across four processors, dividing out into four parts, importantly, three of which, 1, 3, and 4, utilise maximum throughput when loading terrain. Since we're really only running on three cores, it makes more sense to allocate the four threads in this way if we have intense terrain loading. During other times the threads 2 and 3 combined are not maxing the core (2). There are some processes on core 0 to avoid, but can be seen getting maximum throughput with terrain loading:

 

3_core_scenery_load_HT_P3Dv3.jpg

 

As shown in your Loading Terrain Data graph above I find that no matter what AF (allocating 4 cores only)

I use the second allocated core always shows less activity in the Resource Monitor graph than cores 3 and 4.

 

There is a post here on AVSIM and also over at LM showing how just opening Resource Manager, right clicking on prepard3d.exe (in details tab) to bring up the set affinity dialog box and then clicking OK without changing anything (although good place to check your AF in p3d.cfg is activated here) will get that core 2 now showing as much activity as cores 3 and 4.

For me this procedure definitely works.

Big question is does it actually make a difference to sim performance.

 

Thought you might be interested in running a few of those tests/graphs you did a few pages back to see if this improves delta frame rate at all?

 

gb.

YSSY. Win 10, [email protected], Corsair H115i Cooler, RTX 4070Ti, 32GB G.Skill Trident Z F4-3200, Samsung 960 EVO M.2 256GB, ASUS Maximus VIII Ranger, Corsair HX850i 850W, Thermaltake Core X31 Case, Samsung 4K 65" TV.

  • Commercial Member

In that configuration we have deliberately squeezed 4 LPs out of three cores to leave core zero free. We have organised four threads, or jobs, to occupy 4 LPs over three cores while avoiding threads, that more often require maximum throughput, running against each other on the same core.

 

The example groups jobs 2 and 3 since most of the time they don't compete for maximum throughput. We could instead use AM=212=(11,01,01,00), but with that configuration, jobs 3 and 4 competed more for higher throughput of the fourth core and was less efficient in the tests.

 

The top half of the image is taken during loading terrain, where threads 1 3 and 4 are Maxed, all have a core of their own, except job 3 but job 2 is nearly idle anyway.

 

In the lower half, the sim is running freely, and shows the second sim thread running at greater throughput than 3 and 4. But when the sim is freely running, it shows threads 2 and 3 on LPs 4 and 5 are not maxing out (reaching a limit together) on that core (2).

 

However, with the four core CPU, it might be better overall to allocate 4 LPs over 4 cores with AM=85=(01,01,01,01) or 170, and make sure all our exe addons and other stuff only utilise cores 1,2,3 avoiding 0.

 

I will take a look at your Task Manager thing and get back with some results later.

Steve Waite: Engineer at codelegend.com

However, with the four core CPU, it might be better overall to allocate 4 LPs over 4 cores with AM=85=(01,01,01,01) or 170, and make sure all our exe addons and other stuff only utilise cores 1,2,3 avoiding 0.

 

I will take a look at your Task Manager thing and get back with some results later.

 

Ok, thanks Steve.

 

gb.

YSSY. Win 10, [email protected], Corsair H115i Cooler, RTX 4070Ti, 32GB G.Skill Trident Z F4-3200, Samsung 960 EVO M.2 256GB, ASUS Maximus VIII Ranger, Corsair HX850i 850W, Thermaltake Core X31 Case, Samsung 4K 65" TV.

  • Commercial Member

P3D v3.1, stock scenery and B58, heavy settings, no AA, no vsync, unlimited. Using a 6 core 4.1GHz HT enabled, keeping all processes off the first 5 cores and testing various AMs, putting the top scorer at the top with 100% and marking the rest against that. Making the tests carefully so they are repeatable. Several runs are needed before the PC settles into repeatable results. Tests compared framerate reduced by rate of change in framerate, fps - delta:

 

100% - 4 LPs on 4 cores AM=85=(01,01,01,01), one per core

99% - 4 LPs on 3 cores AM=116=(01,11,01,00), bunch jobs 2 and 3 on core 2 (LP4 and LP5)

97% - 4 LPs on 3 cores AM=212=(11,01,01,00), bunch jobs 3 and 4 on core 3 (LP6 and LP7)

96% - 3 LPs on 3 cores AM=84=(01,01,01,00), one per core

96% - 5 LPs on 5 cores AM=341=(01, 01,01,01,01), one per core

 

Adding the fifth core definitely overburdened it and performed the worst, 3 cores performed better than 5 and almost kept up with 4 cores. fps is always close since it is governed by the single thread throughput of one LP.

 

Having said that, this is only a 4.1GHz CPU, a 5+GHz CPU may utilise 5 or 6 cores efficiently as it gets into its stride.

 

On the subject of going into Task Manager and selecting the Set Affinity menu item and pressing OK, so it would seem to re-affirm the current AM; other than the short increase in activity after un-pausing, did nothing. Tried a few AMs and got nothing like you describe. Activity patterns remained the same.

Steve Waite: Engineer at codelegend.com

  • Commercial Member

I uploaded the graphs:

4v5jobs.jpg

Steve Waite: Engineer at codelegend.com

Thanks for this.  I had been running "tweakless" since about 2.5.  But, I added the AF back in and was quite surprised by a very nice increase in frame rates!

Rick Abshier

5900X | RTX 5070 Ti  OC| 64 GB@3600 | India Pale Ale

 

 

  • Commercial Member

Thanks for this.  I had been running "tweakless" since about 2.5.  But, I added the AF back in and was quite surprised by a very nice increase in frame rates!

Any time! Glad to hear your system's running well.

 

Had some fb on 116, seems that's a really sweet number if you've only got 3 cores left for the sim. I still think on a 4 core HT enabled, 85 would work better if addons or exe's can be kept off core zero. Jobs 2 3 4 queueing up data for main thread 1 would compete for core time with those addons. As long as the main thread is left undisturbed, the background sim stuff will smooth itself out.

Steve Waite: Engineer at codelegend.com

Any time! Glad to hear your system's running well.

 

Had some fb on 116, seems that's a really sweet number if you've only got 3 cores left for the sim. I still think on a 4 core HT enabled, 85 would work better if addons or exe's can be kept off core zero. Jobs 2 3 4 queueing up data for main thread 1 would compete for core time with those addons. As long as the main thread is left undisturbed, the background sim stuff will smooth itself out.

 

Right now, with 4 cores and HT enabled, I have AF set to 84. But will give 85 a try as well - thanks!

Rick Abshier

5900X | RTX 5070 Ti  OC| 64 GB@3600 | India Pale Ale

 

 

  • Commercial Member

If you are happy with the performance of 84, then check the graphs red line, the logical thing to do next is try 116, and compare that against 85, either should be better than 84 (should be, hehe).

 

...I forgot to include the graph of 84, it was practically the same as the lowest of the graphs (341).

Steve Waite: Engineer at codelegend.com

I uploaded the graphs:

 

 

 

 

Thanks for all that work Steve.

 

One good thing is that P3D obviously does not mind being excluded from cores 0 and 1

which can hopefully be left for addons.

 

Excluding addons from cores 0,1 I think could be more problematical. ?

Eventually you are going to run into an addon that demands cores 0,1.

 

gb.

YSSY. Win 10, [email protected], Corsair H115i Cooler, RTX 4070Ti, 32GB G.Skill Trident Z F4-3200, Samsung 960 EVO M.2 256GB, ASUS Maximus VIII Ranger, Corsair HX850i 850W, Thermaltake Core X31 Case, Samsung 4K 65" TV.

  • Commercial Member

Yes, you got it. Most stuff runs at under 1%. Even an addon weather engine might only spring into life every 15 minutes or so. If it's on the same core as the sim main thread then it may be noticed. But when the sim sorts out the weather after each injection it'll stutter a few times anyway. From the graphs can be seen we're not talking about much difference between those, as a starting point any should be good enough. But it was clear that 3 or 5 cores were not as good as 4, 4 is best with my 4.1GHz 3960x+GTX680 and stock P3D v3.1.

Steve Waite: Engineer at codelegend.com

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.