New to the forums? Click here to read the How To guide. -- Developers click here.

an idea for how to reduce cpu load

hoppingbunny123hoppingbunny123 Posts: 354
Nexus 6
edited November 28 in General
take the full amount of pixels, reduce the resolution by half, upscale the picture by 2 adding sharpening before resizing, repeat picture similar to the vive asw.

the result is 45 fps doubled to 90 fps, and the 45 fps is half the resolution.

to repeat this process, reduce the original pixel resolution by 4 times, then do 2 resizing steps. the 1/4 pixels is sharpened then resized by 2x, then sharpened and resized 2x again. this way your lowering the amount of pixels to process by 4 times. I showed in my how to upscale dvd the process, and in my tests this is how to resize correctly.

don't do any msaa. lower the super sampling or use no super sampling.

https://uploadvr.com/htc-vive-motion-smoothing-specification/

"Motion Smoothing works very much like ASW. When you’re not meeting (or near) 90FPS in VR, Motion Smoothing will kick in automatically. Motion Smoothing will force the running game/app to render at 45FPS, then generate a synthetic frame in between each real frame, extrapolating from image and the headset tracking data for a total of 90FPS. Half the frames will be “real” and half “synthetic”. Whenever your graphics card has enough free resources to achieve 90FPS normally, Motion Smoothing will automatically disengage and you will return to true 90FPS."

Comments

  • kojackkojack Posts: 4,650 Volunteer Moderator
    Reducing resolution has no effect on cpu load though, that's a gpu pixel pipeline optimisation.

    The cpu reduction in the above would be part of the 45fps benefit (game logic still has to run at the same rate regardless, but gfx api/driver overhead is reduced a bit), which is what ASW 1 is already doing.

  • hoppingbunny123hoppingbunny123 Posts: 354
    Nexus 6
    yes that's right its a gpu optimization mainly. the idea that reducing the number of pixels by half has no effect on cpu load seems like bs though tbh.
  • kojackkojack Posts: 4,650 Volunteer Moderator
    yes that's right its a gpu optimization mainly. the idea that reducing the number of pixels by half has no effect on cpu load seems like bs though tbh.
    Well, you are free to say that my comment is bullshit if you want, it's not like my day job is teaching how modern graphics engines render.
    Oh wait, IT IS.

  • hoppingbunny123hoppingbunny123 Posts: 354
    Nexus 6
    edited November 28
    https://forums.oculusvr.com/community/discussion/comment/583136/#Comment_583136

    Today I did some more tests in assetto corsa and dirt rally.

    Dirt rally in tv view uses the same amount of gpu and cpu. And in vr mode it uses mostly cpu, its something like 35 percent cpu in tv mode and 96 percent in vr mode ultra low graphics. But in vr mode the cpu used to gpu used is barely any gpu, ir is at a gpu core used of 60 percent low to 69 percent high. gpu memory controller low 38 percent gpu memory controller high 42 percent. gpu memory used low 2274, gpu memory used high 3065.

    So dirt rally vr can use the gpu a lot more to balance the gpu cpu usage.

    For assetto corsa I didn't use vr mode only tv mode, and it used 35 percent cpu to 88 percent gpu.

    What this tells me is assetto corsa barely uses the cpu and dirt rally barely uses the gpu and that brings my performance headroom in the oculus tray tool widget to bare minimum performance headroom and 90 fps.

    So for dirt rally you really need a good cpu, fortunately I have one. But for assetto corsa you can use a better gpu than my gtx 1060 6gb.


    that's a quote from a previous thread I made showing the cpu is used a lot more in vr for the same game, the bulk of cpu to gpu use shifts to cpu when in vr mode.

    dirt rally uses a lot more cpu than gpu. that indicates im supposing the graphics quality setting is being sent to the cpu more than the gpu, then if that's true the cpu has something to do with powering the graphics quality which processes pixels, and therefore reducing the total number of pixels by half would reduce the amount of processing done by the cpu sending it to the gpu for sharpening and resizing.

    I think its fair to say the game uses graphics quality (processing pixels), and depending on the graphics quality the amount of cpu used varies.
  • YoLolo69YoLolo69 Posts: 1,059
    Wintermute
    In VR, you have to compute 2 different views to get the stereo effect. Compute with a "C", like the "C" you find in Cpu. The scene must be computed 2 times whatever resolution you'll have as output. Reducing resolution by half will have a very low impact on CPU AFAIK...

    “Dreams feel real while we are in them, it's only when we wake up that we realize something was strange.” - Dom Cobb

    "Be careful, if you are killed in real life you die in VR too." - TD_4242

    I7 3770K OC 4.6GHz, GTX1080 OC 10%, 16GB DDR3 2448  OC, Oculus Rift CV1

  • hoppingbunny123hoppingbunny123 Posts: 354
    Nexus 6
    the cpu affects how well the frame rate goes, and frames are made of pixels.

    if you increase the amount of pixels in the frame, the cpu can go less fps.



    therefore, the frame sum of pixels affects cpu performance to go a fps.

    a 4k frame goes a lot less fps from the same cpu than a 1080p frame on the same cpu. what the rift needs is to go more fps so it needs to reduce the amount of pixels in the frame, which will work the same as going from a 4k frame to a 1080p frame, the cpu will be able to do more fps.


  • MAC_MAN86MAC_MAN86 Posts: 1,063
    Neo
    edited December 1
    Supersampling is Upscaling surely. I used to use DSR x2 but instead now use HMD SS=1.5 but with SMAA (when until my Rift stopped working that is). Rift needs full FOV in CV2 else most of us would just carry on until it does so. The competition will force this to happen. True, we need higher fps than more RES. 4K is just daft.
  • HiThere_HiThere_ Posts: 1,248
    3Jane
    What I'd like to see, is a dedicated low latency VR Graphic card, that uses one GPU per eye.

    And since directX applications are typically bottlenecked by the main CPU thread : An asymmetrical CPU, where one main core has a much bigger cache and a higher frequency then the other cores. This would benefit any and every version of DirectX, and even single threaded non-DirectX related applications.
Sign In or Register to comment.