Jump to content

DCS PD is crushing on the CPU!


GhastlyTT

Recommended Posts

I'm not assuming that. I'm pointing out that the task performed by the CPU at .5 and at 1.0 pixel density (or even 1080p and 4k) is the same. The scene is decided and set. It doesn't decide how many pixels it's drawn across. That's the GPUs job.

 

again thats your view, but that is not how DirectX works...

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

An analogy:

1. Teacher (CPU) tells student (GPU) to write a 2 page paper

2. Teacher (CPU) tells student (GPU) to write a 9 page paper

 

In both instances, the teacher's workload is constant

 

Only if the teacher does not check the student's work.

Bad analogy.

Hardware: VPForce Rhino, FSSB R3 Ultra, Virpil T-50CM, Hotas Warthog, Winwing F15EX, Slaw Rudder, GVL224 Trio Throttle, Thrustmaster MFDs, Saitek Trim wheel, Trackir 5, Quest Pro

Link to comment
Share on other sites

Can you point me in the right direction? I love learning. This is unique to DCS in the handful of titles I've tried.

 

i would start with the directx api and go from there:

 

https://docs.microsoft.com/en-us/windows/win32/direct3d11/dx-graphics-overviews

https://docs.microsoft.com/en-us/windows/win32/directx

https://docs.microsoft.com/en-us/windows/win32/direct3d11/overviews-direct3d-11-resources-buffers-constant-how-to

https://devblogs.microsoft.com/directx/cpu-and-gpu-boundedness/

 

even when creating a buffer in DX you will make CPU calls

 

// Fill in a buffer description.
D3D11_BUFFER_DESC cbDesc;
cbDesc.ByteWidth = sizeof( VS_CONSTANT_BUFFER );
cbDesc.Usage = D3D11_USAGE_DYNAMIC;
cbDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
cbDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
cbDesc.MiscFlags = 0;
cbDesc.StructureByteStride = 0;

as a simple example

 

in some ways the differences between Directx11 and DirectX12 will illustrate

 

https://www.maketecheasier.com/directx11-directx12-differences/

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

Only if the teacher does not check the student's work.

 

Bad analogy.

Does the CPU verify what's written to the screen? Or does it just present the next thing to write to the screen when the GPU is able?

 

Sent from my SM-N970U1 using Tapatalk

Link to comment
Share on other sites

Does the CPU verify what's written to the screen? Or does it just present the next thing to write to the screen when the GPU is able?

 

I'm not saying the CPU checks on GPU, it's just that your analogy with teacher is nonsensical.

 

We have no idea what's tied to display resolution in DCS. Could be additional effects calculated by CPU, postprocessing based on previous frames, heck, even the way the game performs cursor-clickspots interaction in 3D space. Many things in the game engine may still depend on display resolution, not just the basic DirectX pipeline.

Hardware: VPForce Rhino, FSSB R3 Ultra, Virpil T-50CM, Hotas Warthog, Winwing F15EX, Slaw Rudder, GVL224 Trio Throttle, Thrustmaster MFDs, Saitek Trim wheel, Trackir 5, Quest Pro

Link to comment
Share on other sites

I'm not saying the CPU checks on GPU, it's just that your analogy with teacher is nonsensical.

 

We have no idea what's tied to display resolution in DCS. Could be additional effects calculated by CPU, postprocessing based on previous frames, heck, even the way the game performs cursor-clickspots interaction in 3D space. Many things in the game engine may still depend on display resolution, not just the basic DirectX pipeline.

 

yep this is also true...

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

well whatever it is in the engine, with doing the .8 and 300% in steam vr comparing that to 1.0pd and 180% super sampling in steam vr, the .8 pd has so much more efficient cpu frametimes that i run the high settings i run on my rift s now on the OD+ in Normandy and the Warbirds.

Very interesting and hope it leads to a path forward.

Intel 8700k @5ghz, 32gb ram, 1080ti, Rift S

Link to comment
Share on other sites

Snake oil, snake oil, snake oil ........

 

it is not!

 

Holy Cow PD 0.8 && 300% SteamVR Supersampling are the sweet spot on my system. Thanks a lot for sharing.

 

(Try it also with the other sim at your home. Amazing in IL2 as well.)


Edited by Motomouse

VIC-20@1.108 MHz, onboard GPU, 5KB RAM, μυωπία goggles, Competition Pro HOTAS

Link to comment
Share on other sites

[ATTACH]235199[/ATTACH]I'm not saying its snake oil i am saying its pretty much expected behaviour

It's because the value in DCS is the one-dimensional scalar, whereas the SteamVR resolution is total 2D.

i.e. say for 1920 x 1080 (total of 2,073,600 pixels), with DCS SS = 1.5, it would be using 1.5*1920 x 1.5*1080 = 2880 x 1620 rendered resolution (so total of 4,665,600 pixels) = 2.25x the total rendered pixels over normal rendering with no SS.

But when you set 150% rendering in SteamVR, it backs out the dimensions to scale to to end up with 1.5x the normal total rendered pixels.

So essentially, whatever setting you use in DCS has the square of the performance cost, where SteamVR would be typical linear (2.0 SS in DCS would be 2.0^2 = 4x as performance expensive as 1.0, whereas 200% scaling in SteamVR would be 2.0x as performance expensive as 100%).

 

if you want to make sure you are comparing apples with apples, i created a handy dandy calculator in excel to help in terms of working out exactly how many pixels you are driving, all you have to do is punch in the resolution per eye, and your respective values for pd and ss

PDSSCalc.zip


Edited by speed-of-heat

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

It's not expected. Not in the sense that i was trying to convey. Everyone got hung up that I mentioned Steam Supersampling in the first post.

 

Play something else at low resolution. Anything else. Decrease all details so that your CPU is the bottleneck. Now, increase your resolution. CPU doesn't slow down generating handing the frame to draw to the GPU until the GPU can no longer keep up. Now GPU is maxed out and CPU can't work because it's waiting for GPU to request info. DCS doesn't work the way I expected. CPU is doing something behind the scenes, whether it's intentional or not I do not know, that is HIGHLY affected by resolution. The higher the resolution, the harder it is for the CPU to generate the scene for the GPU to then render. BOTH CPU and GPU get hammered by higher resolution which is not the status quo. 2 gentleman explained to me that I don't understand and DCS is unique so I'll accept that until I'm smarter on the topic and agree or disagree.

 

In the meantime, if you're in VR, reducing PD reduces load on CPU thus generating more frames for our starved GPUs. You don't lose detail. You only lose clarity. Everything will still be there. The scene is the same. Find a compromise and benefit.

 

edit to add: I started this because every guide i found says to leave PD at 1.0 . There's real world benefit to high resolution HMD owners by reducing PD, especially in the current state of the OB.


Edited by GhastlyTT
Link to comment
Share on other sites

Sorry. If you actually do the numbers and compare like for like you get exactly the same results... the graphs in FPSVr are the same both for cpu and gpu utilisations for a given total number of pixels. if your revelation is that driving less pixels is less work ... then I’m sorry this was not your previous understanding...


Edited by speed-of-heat

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

We shouldn't forget that DCS's PD option is a remnant from the 2016 VR generation. It's not wrong to suspect it to be a cause of performance problems. Today it shouldn't be necessary, because the VR compositor of each VR driver requests the needed resolution for it's HMD and manages super resolution settings on it's own. The PD value leads to the very first implementations of Oculus SDK, i guess this was the first HMD that ED started to work on. If you look in the bin folder, you will find no trace of an Oculus related dll, there is only openvr_api.dll and VarjoLib.dll. This could mean that DCS hooks natively into Oculus SDK if drivers are present in your OS.

If you are playing over SteamVR, PD acts like a third SS multiplicator, i suspect it to be an internal downsampling pass within DCS, before the game hands the rendertarget over to the VR compositor.

i9 13900K @5.5GHz, Z790 Gigabyte Aorus Master, RTX4090 Waterforce, 64 GB DDR5 @5600, Pico 4, HOTAS & Rudder: all Virpil with Rhino FFB base made by VPforce, DCS: all modules

Link to comment
Share on other sites

I just recommend it anybody to try it yourself. In the HP Reverb this produces an outstanding image quality combined with high and smooth framerates.

VIC-20@1.108 MHz, onboard GPU, 5KB RAM, μυωπία goggles, Competition Pro HOTAS

Link to comment
Share on other sites

Important to consider:

 

SteamVR changes how it handles Render Resolution all the time.

I am talking about 3816x3740 per Eye (SteamVR 1.11.11).

VIC-20@1.108 MHz, onboard GPU, 5KB RAM, μυωπία goggles, Competition Pro HOTAS

Link to comment
Share on other sites

I don't find this to be the panacea that this thread is making it out to be. I'm not seeing any great performance uplift versus my normal settings, and am in fact noticing that textures appear to be somewhat blurrier.

Link to comment
Share on other sites

My cockpit looks nicer and I get 60 FPS instead of 40 FPS . Not bad in my book.

 

Works for me in DCS, IL2 and Unreal Engine (Assetto Corsa Competizione). ACC was unplayable in VR for me prior to this combination. But I also think it is very system related.

VIC-20@1.108 MHz, onboard GPU, 5KB RAM, μυωπία goggles, Competition Pro HOTAS

Link to comment
Share on other sites

Its not just about FPS, more importantly its about the CPU frametimes, and this does Great work on that specifically. It works sure depends on your system but if you have a good one should notice it immediately especially if your tracking data with FPSVR:thumbup:

Intel 8700k @5ghz, 32gb ram, 1080ti, Rift S

Link to comment
Share on other sites

Tried with an O+, PD to .8 able to put MSAA on 2, SteamVR set to 212%, makes up for the loss of quality, and most important has eliminated all my game crashes. It would crash consistently whenever changing modules and randomly once in a while during a sortie. Just flew the longest session sampling various freebies without any problems, mostly over Vegas, even in a lightning storm. Much smoother, not quite as sharp an image in or out of the pit, but the difference is very subtle. Vegas was doable, but not a very pleasant experience with PD previously 1.2 and Steams SS slider at 100%. Feels more like flying. Using a 2070Super, 6700K @4.8, 16 x 4100mhz.

Link to comment
Share on other sites

Windows Insider Build 19624 (fast ring) fixes the 60hz WMR distortion bug.

 

I go one step further and use 0.6 PD / 300% with the new mode to maintain 60 FPS in every situation. Very good experience, just do not put your textures on low, use high or medium textures and the cockpit markings are still perfectly readable.

VIC-20@1.108 MHz, onboard GPU, 5KB RAM, μυωπία goggles, Competition Pro HOTAS

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...