Jump to content

Sign in to follow this  
threegreen

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 | AVSIM Forums Administrator | AVSIM Board of Directors
ATP Gulfstream II-III-IV-V

System: i9-10900K @ 5.2GHz on custom water loop, ASUS Maximus XII Hero, 32GB GSkill 3600MHz CAS15, EVGA RTX3090 XC3 Ultra
Samsung 55" JS8500 4K TV@30Hz,
3x NVME 2x SATA Samsung SSD, EVGA 1KW PSU, 1Gbps internet
SoundBlaster XFi Titanium, TOSLINK to Yamaha RX-V467 HT Rcvr, Polk/Klipsch 6" bookshelf spkrs, Polk 12" subwoofer, 12.9" iPad Pro
PFC yoke/throttle quad/pedals with custom Hall sensors, Coolermaster HAF932 case, Stream Deck XL button box

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

i7-8700k @ 5.0 ghz, 32 GB G.Skill TridentZ, 1080Ti, 32" BenQ, 4K res

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 • M20 JF PA-28R  CJ4WT  CRJ700 • Milviz FG-1D  FI Spitfire   DCS  F-14A/B  F-16C  F/A-18C 

10900K@4.9 All Cores HT ON  Asus ROG Strix Z490-E  32GB DDR4 CL14 3200MHz RTX 3080  Corsair iCUE H150i Pro XT 360mm 

Corsair HX850i Platinum Plus 2x 1TB Samsung EVO Plus M.2  Phanteks Enthoo Evolo X Case  Thrustmaster Warthog HOTAS & TPR 

                             TrackIR • Samsung G7 32" 1440p 240Hz • Internet BT 75 Mbps Unlimited • Flight siming since 1993 

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.

Share this post


Link to post

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


Prepar3D v5 | PMDG 737NGXu/777 | FSLabs A320/A321 | www.united-virtual.com | www.deltava.org | ASUS Maximus XI Code Z390 | i9 9900K 5 GHz | Corsair Vengeance RGB Pro 32 GB DDR4 3600 MHz | GeForce RTX 3090 24 GB GDDR6X MSI Suprim X | Windows 10 Pro 64 bit | Samsung 850 EVO 1 TB | Samsung 43'' 4K curved TV | HP Reverb G2 VR HMD | Agronn 737 Captain's Yoke | VKB Gladiator NXT Stick | FSC 737 Throttle Quadrant | Saitek Pro Flight Rudder Pedals

 

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

-Alex 

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

Host PC - 9700K @ 4.8GHz, 32GB DDR-3200, 512GB NVMe + 2TB NVMe storage, RTX 2080 SUPER primary + GTX 980Ti secondary GPU, AIO cooling
Client PC - 8700K @ 5GHz, 32GB DDR-3200, 512GB NVMe + 2TB NVMe storage, GTX 1080Ti GPU, AIO cooling
Software: Win10, P3D 5.1 HF1, tons of ORBX, ASP3D / FSGRW, SPAD.neXt, Immersive Display Pro and just too many others to mention...

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 Maximus XII Hero Z490, i9 10900k @ 5.3Ghz, RTX2080ti, 55" Samsung Q80T, 32GB DDR4 3600 RAM, EVGA CLC 280mm AIO Cooler, Brunner CLS-E NG Yoke, Thrustmaster Warthog HOTAS, VirtualFly Ruddo+ and TQ6+

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 Maximus XII Hero Z490, i9 10900k @ 5.3Ghz, RTX2080ti, 55" Samsung Q80T, 32GB DDR4 3600 RAM, EVGA CLC 280mm AIO Cooler, Brunner CLS-E NG Yoke, Thrustmaster Warthog HOTAS, VirtualFly Ruddo+ and TQ6+

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?


9700k | Maximus XI Hero| 32gb DDR4 3000 |EVGA FTW3 3090 | 1tb EVO Plus 970 and 500GB M2+3TB HDD | 43" Samsung X60R 4k and 2  22" monitors | Corsair RM1000x |  240MM AIO.| MFG Crosswind | T16000M Stick | Saitek Throttle Quad | Skalarki MCDU and FCU | Saitek Radio Panel

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.
  • Donation Goals

    AVSIM's 2020 Fundraising Goal

    Donate to our annual general fundraising goal. This donation keeps our doors open and providing you service 24 x 7 x 365. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. We reset this goal every new year for the following year's goal.


    47%
    $11,800.00 of $25,000.00 Donate Now
×
×
  • Create New...