Jump to content
Sign in to follow this  
threexgreen

Trying to get more performance out of P3D

Recommended Posts

11 hours ago, w6kd said:

.Last, if you are seeing 100% utilization on Core 0 with frame rate unlimited and VSync on, it suggests to me that your monitor is not set to a 30 Hz refresh rate.  On my 8086K+2080Ti, unlimited plus VSync and 30Hz set in my Samsung TV usually yields something like 70-80% on Core 0 when flying.  100% is what I see when the monitor is set to 60Hz.  If you can't set 30Hz in the monitor, you can use the Rivatuner RTSS to constrain the video subsystem to 30 Hz and you should recover some CPU headroom that way.

Regards

Frankly, this is the first time I hear that 100% core0 utilization is a symptom of lacking CPU headroom, rather than P3D running normally. The latter is what I’ve always heard on these forums. In my case, core0 runs 100% nearly always, while all the other cores tend to run much lower, depending on what i fly and where I fly. Doesn’t even matter whether if fly around default areas or around LAX, for all I remember. Is that not supposed to be like that, then?


Benjamin van Soldt

Windows 10 64bit - i5-8600k @ 4.7GHz - ASRock Fatality K6 Z370 - EVGA GTX1070 SC 8GB VRAM - 16GB Corsair Vengeance LPX @ 3200MHz - Samsung 960 Evo SSD M.2 NVMe 500GB - 2x Samsung 860 Evo SSD 1TB (P3Dv4/5 drive) - Seagate Barracuda 2TB 7200RPM - Seasonic FocusPlus Gold 750W - Noctua DH-15S - Fractal Design Focus G (White) Case

Share this post


Link to post
14 minutes ago, Benjamin J said:

Frankly, this is the first time I hear that 100% core0 utilization is a symptom of lacking CPU headroom, rather than P3D running normally. The latter is what I’ve always heard on these forums. In my case, core0 runs 100% nearly always, while all the other cores tend to run much lower, depending on what i fly and where I fly. Doesn’t even matter whether if fly around default areas or around LAX, for all I remember. Is that not supposed to be like that, then?

If you use VSync into a 30Hz monitor with the internal limiter disabled (frame rate set to unlimited), core 0 should be something less than 100%.  If you are limiting frames with the internal limiter, it'll stay firewalled at 100% due to use of the remaining unused CPU time to attempt production of lookahead frames (which is apparently disabled when VSync controls frame rate).  I think this is likely key to why VSync to a 30 Hz monitor is so smooth.

  • Upvote 2

Bob Scott | President and CEO, AVSIM Inc
ATP Gulfstream II-III-IV-V

System1 (P3Dv5/v4): i9-13900KS @ 6.0GHz, water 2x360mm, ASUS Z790 Hero, 32GB GSkill 7800MHz CAS36, ASUS RTX4090
Samsung 55" JS8500 4K TV@30Hz,
3x 2TB WD SN850X 1x 4TB Crucial P3 M.2 NVME SSD, EVGA 1600T2 PSU, 1.2Gbps internet
Fiber link to Yamaha RX-V467 Home Theater Receiver, Polk/Klipsch 6" bookshelf speakers, Polk 12" subwoofer, 12.9" iPad Pro
PFC yoke/throttle quad/pedals with custom Hall sensor retrofit, Thermaltake View 71 case, Stream Deck XL button box

Sys2 (MSFS/XPlane): i9-10900K @ 5.1GHz, 32GB 3600/15, nVidia RTX4090FE, Alienware AW3821DW 38" 21:9 GSync, EVGA 1000P2
Thrustmaster TCA Boeing Yoke, TCA Airbus Sidestick, 2x TCA Airbus Throttle quads, PFC Cirrus Pedals, Coolermaster HAF932 case

Portable Sys3 (P3Dv4/FSX/DCS): i9-9900K @ 5.0 Ghz, Noctua NH-D15, 32GB 3200/16, EVGA RTX3090, Dell S2417DG 24" GSync
Corsair RM850x PSU, TM TCA Officer Pack, Saitek combat pedals, TM Warthog HOTAS, Coolermaster HAF XB case

Share this post


Link to post
2 hours ago, Benjamin J said:

Frankly, this is the first time I hear that 100% core0 utilization is a symptom of lacking CPU headroom, rather than P3D running normally. The latter is what I’ve always heard on these forums. 

Don't want to sound contrarian Benjamin, but the former has been discussed quite a lot here at AVSIM.  Didn't you see all the threads on RTSS last year?  Maybe it has been mostly discussed in the hardware forum and you did not notice.   Sometimes golden threads get buried in there.

Core0 pegged at 100% can easily happen if you refresh at 60hz, or run unlimited with no vsync.  A lot of people do refresh at 60hz.  A lot of people use P3D's internal frame limiter.  Hence "that is p3d running normally" phrase appears.   It may be "normal" for many, but it is not "ideal" for smoothness with most hardware setups.  30hz / vsync ON / unlimited frame rate slider -- those are key settings, and vsync on is a defacto frame rate limiter.  

  • Upvote 1

Rhett

7800X3D ♣ 32 GB G.Skill TridentZ  Gigabyte 4090  Crucial P5 Plus 2TB 

Share this post


Link to post
5 hours ago, w6kd said:

If you are limiting frames with the internal limiter, it'll stay firewalled at 100% due to use of the remaining unused CPU time to attempt production of lookahead frames

I don’t find that to be the case with FPS set to 26 and TFTT set to 0.10. My core 0-1 run around 80%

Might be because I run at 120Hz but running P3D seems always very different from PC to PC.

Edited by Nyxx

David Murden  MSFS   Fenix A320  PMDG 737 • MG Honda Jet • 414 / TDS 750Xi •  FS-ATC Chatter • FlyingIron Spitfire & ME109G • MG Honda Jet 

 Fenix A320 Walkthrough PDF   Flightsim.to •

DCS  A10c II  F-16c  F/A-18c • F-14 • (Others in hanger) • Supercarrier  Terrains = • Nevada NTTR  Persian Gulf  Syria • Marianas • 

• 10900K@4.9 All Cores HT ON   32GB DDR4  3200MHz RTX 3080  • TM Warthog HOTAS • TM TPR • Corsair Virtuoso XT with Dolby Atmos®  Samsung G7 32" 1440p 240Hz • TrackIR 5 & ProClip

Share this post


Link to post

hey Bob,

i have a question to the Riva Tuner, i use three 24'' monitors and there is no possibility to set the frequenz to 30 hz.

I've download the latest Riva Tuner StatisticServer, where can i set the video subsystem to 30 Hz?

 

Joachim


Regards Joachim

Share this post


Link to post

I've found that the more I add to my sim (add-ons) the less performance I get.


A pilot is always learning and I LOVE to learn.

Share this post


Link to post

I didn't get to fly and test today. I'll report back in a few days.


Microsoft Flight Simulator | PMDG 737 for MSFS | Fenix A320 | www.united-virtual.com | www.virtual-aal.com | Ryzen 9 7950X3D | Kingston Fury Renegade 32 GB | RTX 3090 MSI Suprim X | Windows 11 Pro | HP Reverb G2 VR HMD

Share this post


Link to post
14 hours ago, w6kd said:

If you use VSync into a 30Hz monitor with the internal limiter disabled (frame rate set to unlimited), core 0 should be something less than 100%.  If you are limiting frames with the internal limiter, it'll stay firewalled at 100% due to use of the remaining unused CPU time to attempt production of lookahead frames (which is apparently disabled when VSync controls frame rate).  I think this is likely key to why VSync to a 30 Hz monitor is so smooth.

Very interesting, thanks for explaining again!

12 hours ago, Mace said:

Don't want to sound contrarian Benjamin, but the former has been discussed quite a lot here at AVSIM.  Didn't you see all the threads on RTSS last year?  Maybe it has been mostly discussed in the hardware forum and you did not notice.   Sometimes golden threads get buried in there.

Core0 pegged at 100% can easily happen if you refresh at 60hz, or run unlimited with no vsync.  A lot of people do refresh at 60hz.  A lot of people use P3D's internal frame limiter.  Hence "that is p3d running normally" phrase appears.   It may be "normal" for many, but it is not "ideal" for smoothness with most hardware setups.  30hz / vsync ON / unlimited frame rate slider -- those are key settings, and vsync on is a defacto frame rate limiter.  

Now that you mention it, I do remember a thread that mentioned RTSS, and looking for a download. For some reason I ultimately decided not to bother, though... I also vaguely remember trying to switch to 30Hz before, but it's an interlace dmode that came was terrible vibrations of the display image, and so I stuck with 60Hz. Overall though, the connection between 60Hz display and 100% Core0 is a new thing to me that I generally don't remember hearing until now. But then again, I also tend to stay out of these sorts of twekaing threads... call it 'tweaking fatigue'. I might try RTSS out though.


Benjamin van Soldt

Windows 10 64bit - i5-8600k @ 4.7GHz - ASRock Fatality K6 Z370 - EVGA GTX1070 SC 8GB VRAM - 16GB Corsair Vengeance LPX @ 3200MHz - Samsung 960 Evo SSD M.2 NVMe 500GB - 2x Samsung 860 Evo SSD 1TB (P3Dv4/5 drive) - Seagate Barracuda 2TB 7200RPM - Seasonic FocusPlus Gold 750W - Noctua DH-15S - Fractal Design Focus G (White) Case

Share this post


Link to post

I use RTSS and the scanline sync trick to halve my monitor's lowest refresh rate, which is 60hz. My core 0 is pegged at 100% all the time in P3D, so I don't think you should expect to see lower CPU usage.

On a side note, the fact that you need a 30hz monitor to get the most out of P3D is really pathetic. That's just bad design.

  • Like 1
  • Upvote 1

Share this post


Link to post
5 minutes ago, Chapstick said:

On a side note, the fact that you need a 30hz monitor to get the most out of P3D is really pathetic. That's just bad design.

Truth!

Greg

Share this post


Link to post

I know it's been said before, but it bears repeating: Prepar3d, like FSX before it, does the majority of the work preparing each frame on a single core. Where work being done depends on the result of work done before it, it cannot be started until that previous work is finished. Most of the work rendering the scene happens in a serial fashion like this, and so can only happen on a single thread running on a single core of the CPU. That means that it's single-threaded CPU speed that is the most important determinant of performance with P3D, all other things being equal. 

The reason many people see 100% use of Core 0 (I certainly do) is that P3D has more than enough work to do to saturate the core - and it's the fact that the core cannot complete the work quickly enough (since single-core speed has improved maybe 15% in the last 10 years) that usually leads to low FPS, dropped frames and stutters in heavy areas. The CPU is doing as much work as it can, but it's not enough to keep the FPS up. The only time I see my CPU usage on Core 0 drop below 100% is if the GPU is saturated - and that never happens on my system unless there's a problem with the GPU, but on lower-end GPUs with high sliders, it might happen more often. In that case, the CPU is waiting for the GPU, not the other way around as it usually is.

If you could offload some of that rendering work to other cores you might get a speed-up, but as soon as you parallelise work like that, you enter tricky programming territory where you have to start caring about things like multiple threads contending for access to shared memory, I/O devices etc. Suffice to say it's a hard problem. I'm a software developer in RL (not in games programming, admittedly) and the limited amount of multi-threaded code I've had to write has been some of the most challenging. 

That's not to say that other work doesn't get done on other threads in the simulator. As you see from Task Manager, P3D does use multiple cores. That's because it's using the other threads for things like loading textures. But the main job - putting together the next frame for the GPU to render - is inherently single-threaded. 

It certainly wouldn't be impossible to design a rendering engine to more effectively use multiple cores, but it's an area of rapidly diminishing returns. ISTR one of the X-Plane devs posting a blog about this very issue. If you're holding out hope that a 6-core machine could mean 6x the FPS, even theoretically, then I'm afraid that's just not going to happen. I'm sure a ground-up rewrite of the rendering engine with modern architecture and multi-threading in mind could perform substantially better on the same hardware. But that's a huge job and I doubt LM would ever do it for P3D. It does rather look like MSFS has a new rendering engine, though, and the performance looks pretty good for the levels of detail. 

For me, I run with vsync on and my displays at 30Hz and most sliders right except for detail and autogen. Detail I habitually run Sparse or Normal, because I have two outside views on two projectors and it's the only way I can get anything approaching flyable FPS in the London area, which is where I tend to fly. I've learned to live with it. That's an 8700K clocked at 5GHz with GTX1080Ti. 

My host PC (this is a Wideview setup) is a 9700K with 8 cores @ 5.2GHz. I use Process Lasso to dedicate 4 cores to P3D and its in-process add-ons, and reserve the other four for the system and out-of-process add-ons, notably the F1Tech G1000 software which eats CPU for breakfast and so gets two cores all to itself. Performance on that machine with a single outside view is pretty good at anything up to 40FPS at ORBX EGLC in TrueEarth GB South. 

At this point, I know there's nothing I can do that will magically get me an extra 10FPS. It's all about managing performance so it's as balanced as it can be and I get a decent experience wherever I fly. 

  • Like 2
  • Upvote 1

Temporary sim: 9700K @ 5GHz, 2TB NVMe SSD, RTX 3080Ti, MSFS + SPAD.NeXT

Share this post


Link to post

Interesting thread, thanks all who contributed.  Can anyone point me toward a short tutorial on how to set up RivaTuner to change my monitor to 30hz refresh when I launch P3D, or otherwise explain it to me?  I've been fooling around with the program but I really can't figure it out, there's not much documentation that comes with it.

Thanks for any help!


Dave

Current System (Running at 4k): ASUS ROG STRIX X670E-F, Ryzen 7800X3D, RTX 4080, 55" Samsung Q80T, 32GB DDR5 6000 RAM, EVGA CLC 280mm AIO Cooler, HP Reverb G2, Brunner CLS-E NG Yoke, Thrustmaster Warthog HOTAS & Stick, Thrustmaster TCA Quadrant & Add-on, VirtualFly Ruddo+, TQ6+ and Yoko+, GoFlight MCP-PRO and EFIS, Skalarki FCU and MCDU

Share this post


Link to post

Download RTSS here

1BHDXJM.jpg

First step... click on the "ADD" button in the lower left corner, and then browse to the Prepar3d.exe on your hard drive.  Click on the exe to create a new RTSS Application Profile for the sim.

Next, click on the word "Scanline" to change the setting as shown above.  Make sure it shows "Scanline sync x/2".  The value in the box to the right ("1" in the example) sets the height of the scanline on your screen.  Which is of little consequence if you next...

Go to the Prepar3d.exe (in the Prepar3d folder) and right click on it.  Click on "Properties", then the "Compatibility" tab.  Check on "Disable fullscreen optimizations" (don't worry, it's just an MS oxymoron... nothing gets broken :biggrin:) and while you're there make sure "Run this program as an administrator" is checked.

Obviously, the "Scanline sync x/2" setting halves the refresh rate of your monitor (whatever that may be).  For more features of the app itself click on "Setup" at the bottom.

HTH,

Greg

  • Like 1
  • Upvote 1

Share this post


Link to post

Thanks so much Greg!  It turns out I had actually downloaded the wrong program at first (an older version of Riva Tuner) so no wonder I was fumbling around confused!  

Your instructions have me up and running, thanks again!

  • Upvote 1

Dave

Current System (Running at 4k): ASUS ROG STRIX X670E-F, Ryzen 7800X3D, RTX 4080, 55" Samsung Q80T, 32GB DDR5 6000 RAM, EVGA CLC 280mm AIO Cooler, HP Reverb G2, Brunner CLS-E NG Yoke, Thrustmaster Warthog HOTAS & Stick, Thrustmaster TCA Quadrant & Add-on, VirtualFly Ruddo+, TQ6+ and Yoko+, GoFlight MCP-PRO and EFIS, Skalarki FCU and MCDU

Share this post


Link to post

helpful thread.  I'm curious.  I am running in 4k.  Native display is 3840x2160 and 60hz.  That's how I have it set in windows.  Right now I use nvidia CP to change refresh to 30hz when flying.  Then have it go back to 60 when I close the program.  This all happens automatically.  But here is my question.  Is there and pro/con to keeping the way I have it vs doing this RIVA /2 method?


5800X3D, Gigabyte X570S MB, 4090FE, 32GB DDR4 3600 CL14, EVO 970 M.2's, Alienware 3821DW  and 2  22" monitors,  Corsair RM1000x PSU,  360MM MSI MEG, MFG Crosswind, T16000M Stick, Boeing TCA Yoke/Throttle, Skalarki MCDU and FCU, Saitek Radio Panel/Switch Panel, Spad.Next

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