Jump to content
Sign in to follow this  
Mejjo

P3D 5.3 Hotfix 2 released

Recommended Posts

2 hours ago, IAhawkeyeDDS said:

So I take it Hotfix 2 has cured the issue of the random severe FPS degradation?  Any reports on what was found to be the cause?

Yes and no (unfortunately).


Gigabyte Z97X-UD5H-BK, Blk Ed MB; Intel I7-4790K CPU (@4.5 Ghz); Deepcool 240 AIO Cooler; 16 Gb G.Skill RAM (F3-2400); Win10 Pro (P3D V5.3HF2); 2 Samsung 1Tb SSDs;Toshiba 3Tb hard drive; Gigabyte Aorus Extreme 1080ti 11Gb VRAM; Toshiba 43" LED TV @ 4k; Honeycomb Bravo.

 

Share this post


Link to post
3 hours ago, Alexx Pilot said:

So, final verdict, smoothing is definitely better with the exceptions of quick plane maneuvers. Test here: https://streamable.com/9mmx5p
Could it be related to views/smoothing and/or Chaseplane stuff?

Thank you very much for your help, really appreciated 😄

OK good job! There won't be anything else you can do with the CPU, I would leave the affinity stuff alone at this stage because I don't think you can get more out of it than you have now.

I would go further along the process of elimination. From what you say about Unlimited and uncapped makes me wonder that something seems to be consistently pausing the flow, that would be evident whether you capped the fps or not. Something is going on unrelated to the CPU side of things and I don't think it's P3D or the monitor refresh because you tried capped and unlimited.

You could do a quick test fly in another area with stock scenery to see if the problem is the same. Or maybe a certain add-on causes P3D a problem which should be easy to eliminate for a test. You can usually just uncheck the add-ons in the options, add-ons menu and restart P3D.

 

 

 

  • Like 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post
18 hours ago, SteveW said:

11,10,09,08,07,06,05,04,03,02,01,00=core number
1,1,1,1,11,11,11,11,11,01,01,01=AffinityMask = 1048533
1,1,1,1,11,11,11,11,11,01,01,01=P3DCoreAffinityMask = 1048533
0,0,0,0,00,00,00,00,00,00,00,01=MainThreadScheduler = 0
0,0,0,0,00,00,00,00,00,00,01,00=RenderThreadScheduler = 1
0,0,0,0,00,00,00,00,00,01,00,00=FrameWorkerThreadScheduler = 2

Hi Steve,

Really thought I had a handle on this, but the above appears to be at variance with my earlier conclusions:

07,06,05,04,03,02,01,00=core number

00,11,11,11,01,01,01,11=P3DCoreAffinityMask=16215
00,00,00,00,00,00,01,00=MainThreadScheduler=2 = LP2
00,00,00,00,00,01,00,00=RenderThreadScheduler=3 = LP4
00,00,00,00,01,00,00,00=FrameWorkerThreadScheduler=4 = LP6

I wrote: “Is it as simple as counting from Core 00=1, Core 01=2, Core 02=3 and Core 03=4 and the threads are placed on the Logical Processor of each of the three Cores as defined by the P3DCoreAffinityMask?”

MainThreadScheduler = 0
RenderThreadScheduler = 1
FrameWorkerThreadScheduler = 2

In your example with the 0, 1 and 2 ThreadScheduler Physical Core assignments, these are matching the core numbers as defined in your first line, i.e. Core 00 = 0. However, the ThreadScheduler Physical Core assignments in my example appear to be suggesting that Core 00 is in fact being designated as 1. You liked that post so my assumption was that this was correct. Now it seems that I was mistaken  😟

Hence my relapsing state of confusion...lol!

I’m afraid this numpty still needs your ever helpful hand to bring some further clarity, please.

Thanks.

Regards,

Mike

 

 

  • Like 1

My rig: ASUS ROG Rampage V Extreme, i7-5960X (Dynamic OC 4.6 GHz - all cores, HT=ON), Corsair H110i GT Cooler, G.SKILL Ripjaws 4 16GB (4 x 4GB) DDR4 3000, ASUS GTX 1080Ti ROG STRIX 11GB, (Drivers: 441.66 (Win7), 511.23 (Win10)), Samsung 850 EVO 1TB SSD x4, Samsung 970 EVO 2TB V-NAND M.2, EVGA 1200 P2 Watt PSU, Cooler Master HAF X, ASUS PG278Q (G-Sync) at 120Hz. Oculus Rift. Dual Boot: Windows 10 Pro 64bit (2004) / Prepar3D v5.3.17.28160, Windows 7 Pro 64bit / Prepar3D v4.5.12.30293.

Share this post


Link to post
50 minutes ago, Cruachan said:

“Is it as simple as counting...

Hi Mike,

To locate the three main tasks we count the ones (from right to left starting with zero on the right) in the "P3DCoreAffinityMask" which is the "container" for the P3D tasks, the "AffinityMask" is the "container" for add-ons launched from the sim and must contain the ones in the "P3DCoreAffinityMask".

So with your 8 core HT enabled you wanted to avoid the main task located on core 00?

So to do that I can write out a Logical Processor Map:

07,06,05,04,03,02,01,00=Core Number
.........98,76,54,32,10=LP Number
11,11,11,11,01,01,01,11=AffinityMask = 65367
11,11,11,11,01,01,01,11=P3DCoreAffinityMask = 65367
         65,-4,-3,-2,10 counting the "ones" in P3DCoreAffinityMask 
00,00,00,00,00,00,01,00=MainThreadScheduler = 2 = (is LP 2 of LP Number row, CPU 2 in Task Manager)
00,00,00,00,00,01,00,00=RenderThreadScheduler = 3 = (is LP 4 of LP Number row, CPU 4 in TM)
00,00,00,00,01,00,00,00=FrameWorkerThreadScheduler = 4 = (is LP 6 of LP Number row, CPU 6 in TM)

gives:

[JobScheduler]
AffinityMask=65367
P3DCoreAffinityMask=65367
MainThreadScheduler=2
RenderThreadScheduler=3
FrameWorkerThreadScheduler=4
 

I have checked this by booting up with 8 cores in HT and P3DCoreAffinityMask=65367 with Main=2, Render=3, FrameWorker=4 appear in the correct places CPUs 2, 4 and 6 in Task Manager graphs (Logical Processor View). The sim runs very well.

In Task Manager I can see there are scenery gatherers on CPU 0 and CPU 1, then on CPUs 8 to 15.

CPUs 3, 5 and 7 are empty.

I hope that helps with the alignment in the code window.

Best regards

Steve

 

  • Like 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post

Hi Mike,

I have been experimenting with 8 Cores HT Enabled and I thought to allow you to compare a similar setup using core zero for the main task which gives you (and everyone else) another example:

8 Core HT Enabled using core zero for the main task
07,06,05,04,03,02,01,00=Core Number
.........98,76,54,32,10=LP Number (CPU # in Task Manager)
11,11,11,11,11,01,01,01=AffinityMask = 65493
11,11,11,11,11,01,01,01=P3DCoreAffinityMask = 65493
.........65,43,-2,-1,-0 counting the "ones" in P3DCoreAffinityMask 
00,00,00,00,00,00,00,01=MainThreadScheduler = 0 = (is LP 0 of LP Number row, CPU 0 in Task Manager)
00,00,00,00,00,00,01,00=RenderThreadScheduler = 1 = (is LP 2 of LP Number row, CPU 2 in TM)
00,00,00,00,00,01,00,00=FrameWorkerThreadScheduler = 2 = (is LP 4 of LP Number row, CPU 4 in TM)

[JobScheduler]
AffinityMask=65493
P3DCoreAffinityMask=65493
MainThreadScheduler=0
RenderThreadScheduler=1
FrameWorkerThreadScheduler=2
 

Checking this again the three main tasks appear on the correct CPU # in Task Manager. This allows you some comparison to make things clearer hopefully. This worked just as well.

While messing around, with lower P3D Display Settings to distances of objects I can see that the RenderThreadScheduler and the FrameWorkerThreadScheduler are only taking up 40% and 30%. So I thought to throw in another example whereby RenderThreadScheduler and FrameWorkerThreadScheduler are on the same HT Core one on each Logical Processor:

8 Core HT Enabled using core zero LP0 for the main task and using core 1  LP2 and LP3 for Render and FrameWorker: This basically adds two LPs for scenery gathering and those hit 100% a little less often on the same flight. However when ramping up the settings those two main tasks will start to compete for core bandwidth as they are on each LP of core 1.

07,06,05,04,03,02,01,00=Core Number
.........98,76,54,32,10=LP Number (CPU # in Task Manager)
11,11,11,11,11,11,11,01=AffinityMask = 65533
11,11,11,11,11,11,11,01=P3DCoreAffinityMask = 65533
...............43,21,-0 counting the "ones" in P3DCoreAffinityMask 
00,00,00,00,00,00,00,01=MainThreadScheduler = 0 = (is LP 0 of LP Number row, CPU 0 in Task Manager)
00,00,00,00,00,00,01,00=RenderThreadScheduler = 1 = (is LP 2 of LP Number row, CPU 2 in TM)
00,00,00,00,00,00,10,00=FrameWorkerThreadScheduler = 2 = (is LP 3 of LP Number row, CPU 3 in TM)

[JobScheduler]
AffinityMask=65533
P3DCoreAffinityMask=65533
MainThreadScheduler=0
RenderThreadScheduler=1
FrameWorkerThreadScheduler=2
 

Checking this again the three main tasks appear on the correct CPU # in Task Manager. This works really well so long as settings are not maxed.

I also noted how much bandwidth the system is using when the sim is running and it is next to nothing. Then close the sim and several LPs have activity with a browser open. So in fact Windows is doing a good job of lowering other processes while the sim runs.

 

 

  • Like 1
  • Upvote 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post
4 hours ago, Cruachan said:

I wrote: “Is it as simple as counting from Core 00=1, Core 01=2, Core 02=3 and Core 03=4 and the threads are placed on the Logical Processor of each of the three Cores as defined by the P3DCoreAffinityMask?”

MainThreadScheduler = 0
RenderThreadScheduler = 1
FrameWorkerThreadScheduler = 2

In your example with the 0, 1 and 2 ThreadScheduler Physical Core assignments, these are matching the core numbers as defined in your first line, i.e. Core 00 = 0. However, the ThreadScheduler Physical Core assignments in my example appear to be suggesting that Core 00 is in fact being designated as 1. You liked that post so my assumption was that this was correct. Now it seems that I was mistaken  😟

Hence my relapsing state of confusion...lol!

I’m afraid this numpty still needs your ever helpful hand to bring some further clarity, please.

If you don't want to worry about how to count up these cores (they are relative to the P3DCoreAffinityMask), just use this tool.  It will handle all the binary stuff and the relative calc for the ThreadScheduler cores.  Click to edit the masks for your various cores/hyperthreaded logical processors, and the [JobScheduler] entry will be generated at the bottom for you.

Here's a link to the last config that SteveW posted for your 8 core, 16 thread processor:

https://izn-flightsim.s3.amazonaws.com/affinity.html?cores=8&threads=16&affinity=65493&coreAffinity=65493&mainThread=0&renderThread=1&frameThread=2#presetAnchor

  • Like 3
  • Upvote 1

Share this post


Link to post
14 hours ago, SteveW said:

I would go further along the process of elimination. From what you say about Unlimited and uncapped makes me wonder that something seems to be consistently pausing the flow, that would be evident whether you capped the fps or not. Something is going on unrelated to the CPU side of things and I don't think it's P3D or the monitor refresh because you tried capped and unlimited.

You could do a quick test fly in another area with stock scenery to see if the problem is the same. Or maybe a certain add-on causes P3D a problem which should be easy to eliminate for a test. You can usually just uncheck the add-ons in the options, add-ons menu and restart P3D.

I will test more regarding addons, here is a quick screen about CPU usage during my previous test: https://imgur.com/IkiHf9x
Thank you very much again for your help!

  • Like 1

Share this post


Link to post
10 minutes ago, MammyJammy said:

If you don't want to worry...

Very nice. I tested it out and it seems to work well. Very helpful, thank you!

The problem I have seen is that unfortunately some users are having a hard time understanding where to actually put the threads and then not getting useful results they desire. Hopefully with my AVSIM posts they are having less trouble.

 

On the subject; in the next update coming soon to Ideal Flight I have included a new function that observes the CPU and HT mode and calculates a decent set of values and if the user agrees the function will also enter the values into Prepar3D.cfg for them.

 

  • Like 2
  • Upvote 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post
15 minutes ago, Alexx Pilot said:

I will test more regarding addons, here is a quick screen about CPU usage during my previous test: https://imgur.com/IkiHf9x
Thank you very much again for your help!

Thanks for the picture of the CPUs in Task Manager you posted - looks all good there, nothing more to do on that side of things.

Hopefully you might find something in the add-ons, it is possible that something has been affected by the new version updates to P3D and something can be done. I am assuming you started to see this problem since updating?

  • Like 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post
38 minutes ago, SteveW said:

I am assuming you started to see this problem since updating?

Yes, that's correct! That's the first time I'm having this. 
I completely removed everything before installing V5.3 HF2 coming from V5.2 (since I skipped the previous 5.3 version). 
 

Edited by Alexx Pilot
  • Like 1

Share this post


Link to post
32 minutes ago, Alexx Pilot said:

Yes, that's correct! That's the first time I'm having this. 
I completely removed everything before installing V5.3 HF2 coming from V5.2 (since I skipped the previous 5.3 version). 
 

OK. See if disabling add-ons changes anything.

Also we might look into how you go about removing an older P3D before installing. Hopefully all the old stuff was out of the way when you installed HF2 version.

  • Like 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post
2 hours ago, SteveW said:

OK. See if disabling add-ons changes anything.

Just did a quick test without add-ons but there are no differences. 

2 hours ago, SteveW said:

Also we might look into how you go about removing an older P3D before installing. Hopefully all the old stuff was out of the way when you installed HF2 version.

I followed the steps deleting Client, content, scenery and after that, manually deleting all the remaining folders on %appdata% etc. including the main P3D folder.
The only thing I did not delete was the "Prepar3D v5 Add-ons" outside the main directory (on my second SSD).

Edited by Alexx Pilot
  • Like 1

Share this post


Link to post
3 hours ago, MammyJammy said:

If you don't want to worry about how to count up these cores (they are relative to the P3DCoreAffinityMask), just use this tool.  It will handle all the binary stuff and the relative calc for the ThreadScheduler cores

Hi @MammyJammy,

I’m afraid you don’t know me very well 😀 Steve, on the other hand.... really don’t know where he gets his patience when it comes to helping ageing idiots like me. 

Some would say that I’m my own worst enemy when it comes to obsessing over how things work. Yes, I could take the easy way out, but where’s the satisfaction..lol!

BTW, I have been using your tool, including the presets, to help towards my understanding of the various outcomes. Thank you, the excellent design of the interface makes these calculations a doddle for the user who is motivated to experiment.

Regards,

Mike

  • Like 1

My rig: ASUS ROG Rampage V Extreme, i7-5960X (Dynamic OC 4.6 GHz - all cores, HT=ON), Corsair H110i GT Cooler, G.SKILL Ripjaws 4 16GB (4 x 4GB) DDR4 3000, ASUS GTX 1080Ti ROG STRIX 11GB, (Drivers: 441.66 (Win7), 511.23 (Win10)), Samsung 850 EVO 1TB SSD x4, Samsung 970 EVO 2TB V-NAND M.2, EVGA 1200 P2 Watt PSU, Cooler Master HAF X, ASUS PG278Q (G-Sync) at 120Hz. Oculus Rift. Dual Boot: Windows 10 Pro 64bit (2004) / Prepar3D v5.3.17.28160, Windows 7 Pro 64bit / Prepar3D v4.5.12.30293.

Share this post


Link to post
5 hours ago, Alexx Pilot said:

Just did a quick test without add-ons but there are no differences. 

I followed the steps deleting Client, content, scenery and after that, manually deleting all the remaining folders on %appdata% etc. including the main P3D folder.
The only thing I did not delete was the "Prepar3D v5 Add-ons" outside the main directory (on my second SSD).

I've been playing around with settings and so on but not really been able to recreate the issue. Did you say it happened before? if so do you remember anything about that?

  • Like 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post
On 1/26/2022 at 12:37 AM, Rob_Ainscough said:

Times have changed since P3D V3.4 and P3D V5.3 ... you might find some benefits with these 5 affinity settings.  I'm not an FPS chaser, what I look for in consistency in timeframe deltas (smooth) ... being careful with thread/core assignments can help smooth out those timeframe deltas and this has benefited many users and hence why you see a lot of posts about v5.3 being so "smooth".

Cheers, Rob.

It is good that LM has improved the finetuning capabilities by expanding the AM settings in the cfg, but isn't smoothness a matter of maintaining a consistent FPS that is in sync with the screen refresh rate (for which the frame rate limiter, whether internal or external, is responsible)?  Of course, if a user runs a lot of other programs alongside P3D on core0 that chew CPU power, it may cause stutters, and putting P3D on a different core can mitigate the problem. But isn't it recommended to not run such programs to begin with?

I am not denying that using certain AM settings can't help improve the simulation under certain circumstances, but it is all dependent on one's system (hardware- and software wise) and situation. The problem I see is that some users, without having tested anything or figured out if a change in AM settings is needed to begin with, ask in an outright manner "what is the best setting for me" without having spent enough time playing around with the display settings. Then you see other users chime in and provide different values for what they thing works best for them, thus creating an avalanche of different suggestions, which may be good on the one hand, but may lead to an obsession.

  • Upvote 1

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...