June 28, 20214 yr 1 hour ago, SteveW said: When using the NCP or other external limiter, it is best to use VSYNC=OFF in P3D Display Settings. To check that I set up Ideal Flight Professional to record fps and to start recording after a 30second delay so that the sim was settled. The flight was built with Paused=Off and to Pause after 1 minute. The sim was set up with Display Settings so that the Unlimited fps could reach well over 30 fps (50-80) and the NCP limit was set down at 30 FPS. In the 30 second graphs the fps was more stable with VSYNC=OFF. If I limit my FPS via Nvidia Control Panel, I get 30 fps, but I still see 100% core0 load (in-sim fps is set to unlimited with Vsync off). Is that normal? (Info: If I set everything to unlimited, I get almost 60fps in the test situation).
June 28, 20214 yr Author Moderator 13 minutes ago, Afterburner said: Here is my question: Is limiting the number of virtual processors for scenery loading not counterproductive? For example, on my system, VPs 3-12 work on scenery loading during flight, and I see very crisp textures and a lot of autogen even from an altitude of >10000 feet. VPs 2 6 and 10 are working quite hard but nowhere near maxed out. If they were I might ask the question. But everything seems fine. Ray (Cheshire, England). System: P3D v5.3HF2, Intel i9-13900K, MSI 4090 GAMING X TRIO 24G, Crucial T700 4Tb M.2 SSD, Asus ROG Maximus Z790 Hero, 32Gb Corsair Vengeance DDR5 6000Mhz RAM, Win 11 Pro 64-bit, BenQ PD3200U 32” UHD monitor, Fulcrum One yoke, Fulcrum Throttle Quadrant. Cheadle Hulme Weather website.
June 28, 20214 yr 3 hours ago, SteveW said: The slight variance of Unlimited + VSYNC is not so great as to cause proper stutters. When there is some variance in frames output interval then there will be some variance in the time each frame is displayed. This(!): Unlimited + VSYNC - I better turn VSYNC off in P3D then with my current NCP's 28 max fps test to have more variance. VSYNC On gave me 30 fps in windowed mode only, that was the main reason I used it, and I don't fly in windowed normally.
June 29, 20214 yr Commercial Member 20 hours ago, Afterburner said: If I limit my FPS via Nvidia Control Panel, I get 30 fps, but I still see 100% core0 load (in-sim fps is set to unlimited with Vsync off). Is that normal? (Info: If I set everything to unlimited, I get almost 60fps in the test situation). I am switching between full screen and windowed (ALT+ENTER) and the frame rate is limited to 28 in NCP on the Prepar3D.exe Profile, the monitor is 60Hz and Display Settings are Unlimited on the fps slider and VSYNC=OFF. I would say that is normal since the external limit does not rely on VSYNC frequency, but instead manages the interval between frames. With VSYNC=OFF you can get some minor tearing in a fast panning image, not so bad that it can be a problem, and that allows the frame to frame output to continue unhindered. With VSYNC=ON and an external limit, the VSYNC interferes with the flow of the limited output rate slightly to reduce the consistency and can produce micro stutters. Note: In Nvidia Control Panel Manage 3D Settings page, to make settings use the P3D Profile in the Program Settings page, not the Global Settings page. Before starting out with NCP, Manage 3D Settings page, or if you are not sure things are working right, first use the Restore/Apply button on the Global Settings page, then go to the Program Settings page and select the Prepar3D.exe Profile, make any change to it, doesn't matter what, because that is to get the Restore button to appear, then Restore/Apply to that Profile. Do that first to ensure the factory defaults are set correctly because some systems can continue with problems after updating the drivers. Now, going back to an aspect of Ray's great advice about monitors, it is possible to set up some monitors to VSYNC at 30Hz or a subdivision of the native refresh frequency, or set up a monitor profile in NCP Change Resolution page to VSYNC at a lower frequency. This can be a problem in Windows with smooth mouse behavior so it will need testing. With this method we need not limit externally but set VSYNC=On in P3D to limit the output to the selected refresh frequency of our monitor. Steve Waite: Engineer at codelegend.com
June 29, 20214 yr Commercial Member 21 hours ago, Afterburner said: If I limit my FPS via Nvidia Control Panel, I get 30 fps, but I still see 100% core0 load (in-sim fps is set to unlimited with Vsync off). Is that normal? (Info: If I set everything to unlimited, I get almost 60fps in the test situation). Regarding the 100% load on core0 or LP0: First set up NCP P3D profile as I recommended in my last post to be sure things are working right. Then set up the fps limit in the Prepar3D.exe profile to 28 or 29fps and apply, close NCP. In P3D choose very low settings and set the fps slider to Unlimited and VSYNC=OFF. With very low setting you should now see less than 100% on the first task. Raise settings a little at a time until you see 80-90%. Ensure you are using an Affinity Mask with HT enabled on the CPU, the first core should have the second LP masked. The first core is the Right-most digit in the binary value for the mask. 8 core + HT example, core zero is BOLD/UL '01' representing both LPs of core 0: 01,01,01,01,01,01,01,01 = 21845. Edited June 29, 20214 yr by SteveW Steve Waite: Engineer at codelegend.com
June 29, 20214 yr 16 minutes ago, SteveW said: Now, going back to an aspect of Ray's great advice about monitors, it is possible to set up some monitors to VSYNC at 30Hz or a subdivision of the native refresh frequency, or set up a monitor profile in NCP Change Resolution page to VSYNC at a lower frequency. This can be a problem in Windows with smooth mouse behavior so it will need testing. With this method we need not limit externally but set VSYNC=On in P3D to limit the output to the selected refresh frequency of our monitor. Do I understand correctly that it is possible to set up NCP so that P3D "thinks" that my monitor refresh rate is 30 Hz (so that it limits to 30 fps if I turn on Vsync), while the actual screen refresh rate is double (60 Hz), and each of the 30 frames is duplicated on the screen? This would be helpful for those not having a 30 Hz screen.
June 29, 20214 yr 13 minutes ago, SteveW said: The first core is the Right-most digit in the binary value for the mask. 8 core + HT example, core zero is BOLD/UL '01 representing both LPs of core 0': 01,01,01,01,01,01,01,01 = 21845. I will definitely try your suggested settings. I have an AMD CPU with 6 cores/12 threads, so what should the AM setting be? (I am always running with HT on) Edited June 29, 20214 yr by Afterburner
June 29, 20214 yr Commercial Member 4 minutes ago, Afterburner said: Do I understand correctly that it is possible to set up NCP so that P3D "thinks" that my monitor refresh rate is 30 Hz (so that it limits to 30 fps if I turn on Vsync), while the actual screen refresh rate is double (60 Hz), and each of the 30 frames is duplicated on the screen? This would be helpful for those not having a 30 Hz screen. Yes. Going back over what I posted you can set up your monitor to VSYNC at a lower rate than native: 27 minutes ago, SteveW said: it is possible to set up some monitors to VSYNC at 30Hz or a subdivision of the native refresh frequency, or set up a monitor profile in NCP Change Resolution page to VSYNC at a lower frequency. This can be a problem in Windows with smooth mouse behavior so it will need testing. With this method we need not limit externally but set VSYNC=On in P3D to limit the output to the selected refresh frequency of our monitor. Best thing to do is have a look at the Change Resolution page and see what you can do there, different monitors mean different settings available. 4 minutes ago, Afterburner said: I will definitely try your suggested settings. I have an AMD CPU with 6 cores/12 threads, so what should the AM setting be? A 6 core HT enabled AM can be 01,01,01,01,01,01 = 1365. Use the Windows Calculator in Programmer mode and enter the binary value in the BIN field, the DEC field will then show the decimal AffinityMask= value for the [JOBSCHEDULER] section of Prepar3D.cfg which must be manually added. Steve Waite: Engineer at codelegend.com
June 29, 20214 yr Commercial Member 21 hours ago, Afterburner said: I also have a 6-core AMD Ryzen CPU. Here is my question: Is limiting the number of virtual processors for scenery loading not counterproductive? For example, on my system, VPs 3-12 work on scenery loading during flight, and I see very crisp textures and a lot of autogen even from an altitude of >10000 feet. If I limit the number of VPs via affinity mask, the CPU will be limited in the number of VPs to render the scenery, which will make it harder for the CPU to do this work and lead to potential delayed autogen loading. Another way to set up the AM would be 11,11,11,11,11,01 = 4093, that still leaves all the LPs running the sim except the first core is dedicated to the time sensitive main task with the '01' on the right meaning that the main rendering task has the total bandwidth of core zero, otherwise it would be sharing with a 20% task leaving only 80%. Steve Waite: Engineer at codelegend.com
June 29, 20214 yr Commercial Member To understand how P3D uses terrain cores, watch to performance graphs in Task Manager, right-click on the right hand graph on the 'Performance' page and choose 'Change graph to', 'Logical Processors'. With the P3D setting to go right into the cockpit, go to 'Application' Settings, uncheck 'Show Scenario Startup Screen', start P3D from the desktop shortcut and watch the graphs. Let's say we apply an AffinityMask to P3D config to allow 4 LPs, start P3D and watch the graphs, see how long the graphs rise to 100%. Now apply an AM for 6 LPs and again watch those graphs, the time they hit 100% is shorter. This gets shorter as we add more LPs. If we measure the time to the same point when P3D is finished starting up, we notice the loading time decreases. So it is with increasing core count, or LP count, that the loading time decreases. That is because the terrain loading cores are working in parallel. The main task on the first core or LP is monolithic, meaning it is not paralleled and requires maximum use of that core. At some point after adding more and more cores, or LPs, the system cannot increase the file reading stage as it has a finite speed, but it can continue to assemble the terrain from the data it has read and the time to load continues to decrease at small increments. After more cores, or LPs, are added the load on the system draws performance away from the first task. Even though we are assembling terrain even more quickly, the finite bandwidth of the system is saturated by terrain loading and time sensitive main task of rendering is hampered. You may need 12 or more cores to see this. Edited June 29, 20214 yr by SteveW Steve Waite: Engineer at codelegend.com
June 29, 20214 yr Yes, I have noticed that using an AF with the 11,11,11,11,11,01 configuration loads the terrain faster than with 01,01,01,01,01,01. I see no reason to use the latter, and I agree that the first core should be "left alone" because it has to do the hardest work. As far as core0 load and NCP fps limiter, I still get 100% no matter how low my settings are. I followed your guide (restored the settings for P3D first, set fps limit to 28 in NCP, left Vsync at application controlled), and I switched between windowed mode and full screen, but to no avail. I have lowered the settings so much that if I deactivate the fps limit in NCP, I get 170+ fps. If I switch to 45Hz screen refresh rate and turn Vsync on in P3D, I get a core0 load of only 40%. So I wonder if the NCP FPS limiter simply takes the full unlimited fps and "chops" it into 28 frames per second without affecting the CPU load. It doesn't seem to "actively" limit the fps. I will check again, maybe I have overlooked something. Edited June 29, 20214 yr by Afterburner
June 29, 20214 yr Commercial Member 4 minutes ago, Afterburner said: As far as core0 load and NCP fps limiter, I still get 100% no matter how low my settings are. I followed your guide (restored the settings for P3D first, set fps limit to 28 in NCP, left Vsync at application controlled), and I switched between windowed mode and full screen, but to no avail. I have lowered the settings so much that if I deactivate the fps limit in NCP, I get 170+ fps. If I switch to 45Hz screen refresh rate and turn Vsync on in P3D, I get a core0 load of only 40%. So I wonder if the NCP FPS limiter simply takes the full unlimited fps and "chops" it into 28 frames per second without affecting the CPU load. It doesn't seem to "actively" limit the fps. I will check again, maybe I have overlooked something. You do see less than 100% with the 45Hz setting and VSYNC=ON in P3D Display Settings with Unlimited on the slider. So I would just go back again and check I set VSYNC=OFF in P3D and Unlimited on the slider, start with low settings, make sure the Prepar3D.exe Profile in NCP has been restored (and the general tab) and only change the fps limiter, in the NCP P3D profile with nothing else changed. However it is possible some monitors make different results with these techniques, that is why we have to test carefully. Steve Waite: Engineer at codelegend.com
June 29, 20214 yr 13 minutes ago, Afterburner said: If I switch to 45Hz screen refresh rate and turn Vsync on in P3D, I get a core0 load of only 40%. So I wonder if the NCP FPS limiter simply takes the full unlimited fps and "chops" it into 28 frames per second without affecting the CPU load. It doesn't seem to "actively" limit the fps. I will check again, maybe I have overlooked something. Why would you want to switch to 45Hz screen refresh? Where did it come from? Do you have a 60Hz monitor? Steve's guidance was based on the assumption that you had a 60Hz monitor, init?
June 29, 20214 yr I set 45Hz for experimental purpose, since it is easier for the sim to maintain 45 fps, reflecting in a lower CPU load than at 60 Hz/fps.
June 29, 20214 yr Steve, I have made a video of the experiment. It's 4 minutes - I cut short the loading of the sim and the scenery. I would appreciate if you could take a look. https://drive.google.com/file/d/1DDuZz0vXQu9ri2EZgZa5I32DkmyA2x7v/view?usp=sharing
Archived
This topic is now archived and is closed to further replies.