September 23, 20232 yr I'm running P3dv6 Patch 5 (latest) and used the Affinity Mask Calculator site to find the settings... My CPU is a Ryzen 5600x, 6 cores, SMT enabled so 12 virtual cores. By default P3d sets: [JobScheduler] AffinityMask=4095 P3DCoreAffinityMask=4095 MainThreadScheduler=6 (a) RenderThreadScheduler=2 FrameWorkerThreadScheduler=4 So, I opted for "First Core Free" and got: [JobScheduler] AffinityMask=4095 P3DCoreAffinityMask=4092 MainThreadScheduler=0 RenderThreadScheduler=2 FrameWorkerThreadScheduler=4 (a) Wonder why MainThreadScheduler was set to "6" in the default CFG? Then and since my monitor only does 60 Hz or 50 Hz, I have set Vsync OFF in P3d v6 GRAPHIC settings, and limited FPS to 30 there too. NCP is almost default with just the Power option set to max performance. I read that if you can set your monitor to 30 Hz than that is better than setting FPS to max 30 in simor through NCP, but if I set VSync ON only I get 60 fps, which decay under more complex rendering / processing situations, and I'd rather st it for 30 instead. I don't see the CPU temps going above 72ºC. OTOH GPU never goes above 50+ º C and it is an RTX 3060 Ti so I would rather prefer to handle it more stuff to do... Any suggestions really welcomed ... Flying gliders since 1980 Flightsimming since 1992 AMD Ryzen 5600x, 32GB RAM, GPU Nvidia RTX 3060 Ti 8 GB, 1 TB and 500 GB nvme2 SSD drives, HP 27" 60Hz LED monitor @ 1920x1080, T16000, Hotas from old X52 Pro, Saitek Combat Rudder Pro (2010 model)
September 23, 20232 yr Commercial Member Think of Prepar3D operating in a simplified way: P3D starts and basically sets up four main tasks consisting of the three thread schedulers and the fourth task of collecting scenery and objects etc. from storage and arranging all the data ready for the GPU. Expanding on that, the first three tasks (the jobscheduler ThreadScheduler entries in Prepar3D.cfg as Main, Render and FrameWorker) work optimally one per core because these three tasks require the best possible throughput from their cores to operate on a frame by frame basis. These work best if other P3D tasks and other processing use of those cores is avoided. The fourth task (collecting and processing sim data) is split up into a number of parallel processing sub-tasks spread out across the remaining cores and is not bound to frame times. As more cores are added this task increases in performance but after a certain number of cores the system can no longer improve the performance for collection of data from storage as that limit is reached. However, adding more cores can continue to speed up processing the sim data collected a little more quickly but eventually there is no gain from adding cores. So Prepar3D now provides a way for us to organise these tasks with the additional items in the jobscheduler section of Prepar3D.cfg: [JobScheduler] AffinityMask= P3DCoreAffinityMask= MainThreadScheduler= RenderThreadScheduler= FrameWorkerThreadScheduler= Where "AffinityMask" defines the entire window onto the CPU which allows P3D to use any cores enabled in this mask for any process spawned by P3D and the four main tasks. "P3DCoreAffinityMask" defines the window onto the CPU which allows P3D to use any cores enabled in this mask for the four main tasks only. The cores enabled in this mask must be included in "AffinityMask". And the three thread schedulers Main, Render and FrameWorker are placed onto a chosen core from those enabled in P3DCoreAffinityMask. The count includes zero as the first enabled core and we only count the enabled cores for these locations. On HT Enabled systems, this leads to a simple rule to keep in mind when setting up the jobscheduler section in Prepar3D.cfg: Do not allow any other tasks or processes to share/occupy a core when a Logical Processor (LP) of that core is hosting a main Thread Scheduler task. To do that we simply leave one LP disabled in each of those three chosen cores in both "AffinityMask" and "P3DCoreAffinityMask". For some systems we might want to restrict P3D from using an excessive core count as this might adversely affect temperatures. This will require testing because there's no "best affinity setting" per CPU as it depends heavily on sim settings and possibly system cooling. Every system is different. Remember that if the CPU is getting hotter it is because it is processing more data in the same time. So let's look at an example for an HT Enabled 8 core 16 LP CPU: HT Enabled 8 core 16 LP 07,06,05,04,03,02,01,00=core number 11,11,11,11,11,01,01,01=AffinityMask = 65493 11,11,11,11,11,01,01,01=P3DCoreAffinityMask = 65493 I've disabled one LP per core for the three thread schedulers Main, Render and FrameWorker on cores 0, 1 and 2 in both "AffinityMask" and "P3DCoreAffinityMask". Adding the three thread schedulers: HT Enabled 8 core 16 LP 07,06,05,04,03,02,01,00=core number 11,11,11,11,11,01,01,01=AffinityMask = 65493 11,11,11,11,11,01,01,01=P3DCoreAffinityMask = 65493 00,00,00,00,00,00,00,01=MainThreadScheduler = 0 00,00,00,00,00,00,01,00=RenderThreadScheduler = 1 00,00,00,00,00,01,00,00=FrameWorkerThreadScheduler = 2 Giving: [JobScheduler] AffinityMask=65493 P3DCoreAffinityMask=65493 MainThreadScheduler=0 RenderThreadScheduler=1 FrameWorkerThreadScheduler=2 On a system with no HyperThreading Prepar3D does fine setting up the jobscheduler entries, so we can leave it as-is. However we may want to disable some cores if we have very many. Example using 6 cores of 8 no HT: HT Enabled 8 core no HT using 6 cores of 8 7,6,5,4,3,2,1,0=core number 0,1,1,1,1,1,1,0=AffinityMask = 126 0,1,1,1,1,1,1,0=P3DCoreAffinityMask = 126 0,0,0,0,0,0,1,0=MainThreadScheduler = 0 0,0,0,0,1,0,0,0=RenderThreadScheduler = 2 0,0,1,0,0,0,0,0=FrameWorkerThreadScheduler = 4 Giving: [JobScheduler] AffinityMask=126 P3DCoreAffinityMask=126 MainThreadScheduler=0 RenderThreadScheduler=2 FrameWorkerThreadScheduler=4 Use these and the other examples I have shown in this thread to experiment to find a good setup for your system. I hope by using this guide you can get the best out of your system with P3D. Edited September 23, 20232 yr by SteveW Steve Waite: Engineer at codelegend.com
September 25, 20232 yr On 9/23/2023 at 5:06 AM, jcomm said: My CPU is a Ryzen 5600x, 6 cores, SMT enabled so 12 virtual cores. Any reason for coming back to SMT on? Since you have the same CPU, GPU and RAM as I do, I'm very curious 😉 Best regards,Luis Hernández Main rig: self built, AMD Ryzen 7 5700X3D (with SMT off and CO -50 mV), 2x16 GB DDR4-3200 RAM, Nvidia RTX 5060Ti 16GB, 256 GB M.2 SSD (OS+apps) + 2x1 TB SATA III SSD (sims) + 1 TB 7200 rpm HDD (storage), ID-Cooling SE-224-XTS air cooler, Viewsonic VX2458-MHD 1920x1080@120-144 Hz (G-sync compatible), Windows 11. Running P3D v5.4 (with v4.5 scenery objects as an additional library, just in case), FSX-SE, MSFS2020, MSFS2024 and even FS9! Lossless Scaling for all my sims. What a godsend...Mobile rig: ASUS Zenbook UM425QA (AMD Ryzen 7 5800H APU @3.2 GHz and boost disabled, 1 TB M.2 SSD, 16 GB RAM, Windows 11 Pro). Running FS9 there .VKB Gladiator NXT Premium Left + GNX THQ as primary controllers. Xbox Series X|S wireless controller as standby/mobile.
September 25, 20232 yr 4 hours ago, Luis Hernandez said: Any reason for coming back to SMT on? Since you have the same CPU, GPU and RAM as I do, I'm very curious 😉 Well, Luis, I used my most objective observation of the simulator running, and installed MSI Afterburner + Riva in order totry to access the CPU and GPU performance too. Overall I feel that the sim runs even smoother with SMT enabled. I am on Win 11, RAM is 32 GB, simrunning from nvme M2 , 1 TB SSD. OS runs on a separate nvme M2 , 500 GB SSD. Monitor is a vanilla 1920x1080 60 Hz, 0,5 ms latency. My only addons in v6 are Active Sky P3dv6, PMDG 777 200 LR, the A2A C172 and Comanche, and since yesterday alsoMkStudios LPPT / Lisbon scenery 🙂 (really like it !!!). I had disabled SMT because I feared it could cause much higher temps, but the higher my CPU reached was 74ºC Flying gliders since 1980 Flightsimming since 1992 AMD Ryzen 5600x, 32GB RAM, GPU Nvidia RTX 3060 Ti 8 GB, 1 TB and 500 GB nvme2 SSD drives, HP 27" 60Hz LED monitor @ 1920x1080, T16000, Hotas from old X52 Pro, Saitek Combat Rudder Pro (2010 model)
September 25, 20232 yr 8 hours ago, jcomm said: Overall I feel that the sim runs even smoother with SMT enabled. Thanks, jcomm! With "the sim" you mean v6, right? I find almost no issues in v5 (now with frames uncapped), but I'm finding sometimes MSFS doesn't react to my keyboard inputs. It's as if my cores were too busy with MSFS for dealing with the keyboard. How do you do for limiting framerate? I'm still in the tweaking phase, just because my test case is using the FSL buses at KJFK (Ray Smith AFCAD for FSX, adapted for v5) while using the GSX jetways and 50% AI, and I stll can't make v5 run smoothly there. Maybe I'm asking too much. Edited September 25, 20232 yr by Luis Hernandez Best regards,Luis Hernández Main rig: self built, AMD Ryzen 7 5700X3D (with SMT off and CO -50 mV), 2x16 GB DDR4-3200 RAM, Nvidia RTX 5060Ti 16GB, 256 GB M.2 SSD (OS+apps) + 2x1 TB SATA III SSD (sims) + 1 TB 7200 rpm HDD (storage), ID-Cooling SE-224-XTS air cooler, Viewsonic VX2458-MHD 1920x1080@120-144 Hz (G-sync compatible), Windows 11. Running P3D v5.4 (with v4.5 scenery objects as an additional library, just in case), FSX-SE, MSFS2020, MSFS2024 and even FS9! Lossless Scaling for all my sims. What a godsend...Mobile rig: ASUS Zenbook UM425QA (AMD Ryzen 7 5800H APU @3.2 GHz and boost disabled, 1 TB M.2 SSD, 16 GB RAM, Windows 11 Pro). Running FS9 there .VKB Gladiator NXT Premium Left + GNX THQ as primary controllers. Xbox Series X|S wireless controller as standby/mobile.
September 25, 20232 yr 9 minutes ago, Luis Hernandez said: Thanks, jcomm! With "the sim" you mean v6, right? I find almost no issues in v5 (now with frames uncapped), but I'm finding sometimes MSFS doesn't react to my keyboard inputs. It's as if my cores were too busy with MSFS for dealing with the keyboard. How do you do for limiting framerate? I'm still in the tweaking phase, just because my test case is using the FSL buses at KJFK (Ray Smith AFCAD for FSX, adapted for v5) while using the GSX jetways and 50% AI, and I stll can't nail it. Maybe I'm asking too much. Luis, yes P3d v6... I am no longer using MFS 2020... Will see what 2024 brings and then decide if I should give it a try, but I am honestly rather convinced I will not... Anyway, just as a guess, that problem you describe might well be related to one I had posted about a few times, including here at AVSIM ( sorry for the link to a foreign forum... ) Loss of "Control Focus" when hovering pop out screens ... - Microsoft Flight Simulator (2020) - The AVSIM Community Edited September 25, 20232 yr by jcomm Flying gliders since 1980 Flightsimming since 1992 AMD Ryzen 5600x, 32GB RAM, GPU Nvidia RTX 3060 Ti 8 GB, 1 TB and 500 GB nvme2 SSD drives, HP 27" 60Hz LED monitor @ 1920x1080, T16000, Hotas from old X52 Pro, Saitek Combat Rudder Pro (2010 model)
September 25, 20232 yr Understood. Then my issue may not be SMT related but something else. Gotta give SMT another try. The last time I had it on, I only had 16 GB RAM. To @SteveW, if I understood correctly, would this work for a Ryzen 5 5600X CPU with SMT on (such as Jcomm's or mine)? HT Enabled 6 core 12 LP 05,04,03,02,01,00=core number 11,11,11,01,01,01=AffinityMask = 4053 11,11,11,01,01,01=P3DCoreAffinityMask = 4053 00,00,00,00,00,01=MainThreadScheduler = 0 00,00,00,00,01,00=RenderThreadScheduler = 1 00,00,00,01,00,00=FrameWorkerThreadScheduler = 2 Edited September 25, 20232 yr by Luis Hernandez Best regards,Luis Hernández Main rig: self built, AMD Ryzen 7 5700X3D (with SMT off and CO -50 mV), 2x16 GB DDR4-3200 RAM, Nvidia RTX 5060Ti 16GB, 256 GB M.2 SSD (OS+apps) + 2x1 TB SATA III SSD (sims) + 1 TB 7200 rpm HDD (storage), ID-Cooling SE-224-XTS air cooler, Viewsonic VX2458-MHD 1920x1080@120-144 Hz (G-sync compatible), Windows 11. Running P3D v5.4 (with v4.5 scenery objects as an additional library, just in case), FSX-SE, MSFS2020, MSFS2024 and even FS9! Lossless Scaling for all my sims. What a godsend...Mobile rig: ASUS Zenbook UM425QA (AMD Ryzen 7 5800H APU @3.2 GHz and boost disabled, 1 TB M.2 SSD, 16 GB RAM, Windows 11 Pro). Running FS9 there .VKB Gladiator NXT Premium Left + GNX THQ as primary controllers. Xbox Series X|S wireless controller as standby/mobile.
September 26, 20232 yr Luís, my best results on Ryzen 5600x + RTX 3060 Ti were achieved with: [JobScheduler] AffinityMask=4095 P3DCoreAffinityMask=4095 MainThreadScheduler=6 RenderThreadScheduler=2 FrameWorkerThreadScheduler=4 this is the default set by P3d v6 in my system, In NCP I use only "Prefer maximum performance" under "Power management mode" In sim I use TAA, VSync OFF and frames capped to 30 FPS. Flying gliders since 1980 Flightsimming since 1992 AMD Ryzen 5600x, 32GB RAM, GPU Nvidia RTX 3060 Ti 8 GB, 1 TB and 500 GB nvme2 SSD drives, HP 27" 60Hz LED monitor @ 1920x1080, T16000, Hotas from old X52 Pro, Saitek Combat Rudder Pro (2010 model)
September 26, 20232 yr Commercial Member 15 hours ago, Luis Hernandez said: Understood. Then my issue may not be SMT related but something else. Gotta give SMT another try. The last time I had it on, I only had 16 GB RAM. To @SteveW, if I understood correctly, would this work for a Ryzen 5 5600X CPU with SMT on (such as Jcomm's or mine)? HT Enabled 6 core 12 LP 05,04,03,02,01,00=core number 11,11,11,01,01,01=AffinityMask = 4053 11,11,11,01,01,01=P3DCoreAffinityMask = 4053 00,00,00,00,00,01=MainThreadScheduler = 0 00,00,00,00,01,00=RenderThreadScheduler = 1 00,00,00,01,00,00=FrameWorkerThreadScheduler = 2 Six core is the most problematic to get the best results but that should be a good place to start especially with heavy scenery and traffic since it is not sharing any main cores with scenery loaders. Steve Waite: Engineer at codelegend.com
September 26, 20232 yr Commercial Member ...Here I have increased file loading by enabling a couple more LP'S and moved the ThreadScheduler off of core zero - might help on some systems but will probably seem about the same: HT Enabled 6 core 05,04,03,02,01,00=core number 11,11,11,11,01,11=AffinityMask = 4087 11,11,11,11,01,11=P3DCoreAffinityMask = 4087 00,00,00,00,01,00=MainThreadScheduler = 2 00,00,00,01,00,00=RenderThreadScheduler = 3 00,00,01,00,00,00=FrameWorkerThreadScheduler = 5 Steve Waite: Engineer at codelegend.com
September 26, 20232 yr Steve, I don't have other than a couple mkstudios airports, orbx global, active sky and a couple a2a plus the PMDG 777. Haven't yet ventured into either AI Traffic or ATC, but i'll try to notice any differences from using your suggestions! Thx! Edited September 26, 20232 yr by jcomm Flying gliders since 1980 Flightsimming since 1992 AMD Ryzen 5600x, 32GB RAM, GPU Nvidia RTX 3060 Ti 8 GB, 1 TB and 500 GB nvme2 SSD drives, HP 27" 60Hz LED monitor @ 1920x1080, T16000, Hotas from old X52 Pro, Saitek Combat Rudder Pro (2010 model)
September 26, 20232 yr Oops, sorry double post... Edited September 26, 20232 yr by jcomm Flying gliders since 1980 Flightsimming since 1992 AMD Ryzen 5600x, 32GB RAM, GPU Nvidia RTX 3060 Ti 8 GB, 1 TB and 500 GB nvme2 SSD drives, HP 27" 60Hz LED monitor @ 1920x1080, T16000, Hotas from old X52 Pro, Saitek Combat Rudder Pro (2010 model)
September 26, 20232 yr Commercial Member 1 hour ago, jcomm said: Steve, I don't have other than a couple mkstudios airports, orbx global, active sky and a couple a2a plus the PMDG 777. Haven't yet ventured into either AI Traffic or ATC, but i'll try to notice any differences from using your suggestions! Thx! Understood. The main worry with: HT Enabled 6 core 05,04,03,02,01,00=core number 11,11,11,11,11,11=AffinityMask = 4095 11,11,11,11,11,11=P3DCoreAffinityMask = 4095 00,00,X1,00,00,00=MainThreadScheduler = 6 00,00,00,00,01,00=RenderThreadScheduler = 2 00,00,00,01,00,00=FrameWorkerThreadScheduler = 4 is that LP7 (shown with X) enabled can possibly allow a file loading task operate on that same core 03 which will bring down the performance (sawtooth fluctuation of fps) of LP6 MainThreadScheduler as new scenery is encountered along the flight. I would try disabling LP7 on core 03 like this: HT Enabled 6 core 05,04,03,02,01,00=core number 11,11,01,11,11,11=AffinityMask = 3967 11,11,01,11,11,11=P3DCoreAffinityMask = 3967 00,00,01,00,00,00=MainThreadScheduler = 6 00,00,00,00,01,00=RenderThreadScheduler = 2 00,00,00,01,00,00=FrameWorkerThreadScheduler = 4 [JobScheduler] AffinityMask=3967 P3DCoreAffinityMask=3967 MainThreadScheduler=6 RenderThreadScheduler=2 FrameWorkerThreadScheduler=4 Which reduces the file loading performance by just one logical processor but ensures the MainThreadScheduler full unshared use of core 03. As I mentioned before, with six cores+HT it is problematic as we want to increase file loading but not decrease the maximum throughput of the LPs hosting the three thread schedulers. Steve Waite: Engineer at codelegend.com
September 26, 20232 yr Commercial Member On 9/23/2023 at 4:03 AM, Moath Sayel said: Hi @SteveW I have p3d V5.4 I'm facing very high CPU usage and temps. Also I have Ryzen 9 5950x with SMB off so physical cores is 16 My pc: R9 5950x SMB off RTX3090 RAM32 What is the best JobScheduler for my CPU ? and in the task manger I noticed my 2 and 6 core being 100% used. I use my pc mostly for media content so I'm sorry I'm not that expert how to handle p3d coding. Thanks in advance Sorry for the delay in answering your enquiry. If you are leaving SMT disabled, P3D does a good job with the stock jobscheduler setting it makes for you although you might not need all 16 cores enabled. With SMT enabled you have 32LPs and this should improve the performance of the PC overall. However, you will need to set up your P3D jobscheduler section manually for best results. Here for example I have used 16 cores for P3D jobs and P3D spawned processes but allowed P3D jobs to use 14 cores. As usual the thread schedulers are using unshared cores and I have avoided core zero for thread schedulers: HT Enabled 16 core 32LP 14 cores for main jobs and 2 more cores for P3D spawned processes 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00=core number 11,11,11,11,11,11,11,11,11,11,01,11,01,11,01,11=AffinityMask = 4294965111 00,00,11,11,11,11,11,11,11,11,01,11,01,11,01,11=P3DCoreAffinityMask = 268433271 00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00=MainThreadScheduler = 2 00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00=RenderThreadScheduler = 5 00,00,00,00,00,00,00,00,00,00,01,00,00,00,00,00=FrameWorkerThreadScheduler = 8 [JobScheduler] AffinityMask=4294965111 P3DCoreAffinityMask=268433271 MainThreadScheduler=2 RenderThreadScheduler=5 FrameWorkerThreadScheduler=8 Steve Waite: Engineer at codelegend.com
September 27, 20232 yr 19 hours ago, SteveW said: Which reduces the file loading performance by just one logical processor but ensures the MainThreadScheduler full unshared use of core 03. As I mentioned before, with six cores+HT it is problematic as we want to increase file loading but not decrease the maximum throughput of the LPs hosting the three thread schedulers. Dear Steve, just a short follow-up to say that I tested this alternative JobScheduler parameters and it works great. In the above reply to my last post you say 6 cores + HT is more subtle to deal with. Do you think turning off SMT would be a better option then? Flying gliders since 1980 Flightsimming since 1992 AMD Ryzen 5600x, 32GB RAM, GPU Nvidia RTX 3060 Ti 8 GB, 1 TB and 500 GB nvme2 SSD drives, HP 27" 60Hz LED monitor @ 1920x1080, T16000, Hotas from old X52 Pro, Saitek Combat Rudder Pro (2010 model)
Archived
This topic is now archived and is closed to further replies.