Trying to replicate Forza Tech Demo on PC for Reasons *spawn*

Discussion in 'PC Gaming' started by pjbliverpool, Apr 16, 2017.

  1. iroboto

    iroboto Daft Funk
    Legend Regular Subscriber

    Joined:
    Mar 6, 2014
    Messages:
    7,896
    Likes Received:
    6,179
    I guess before I begin, I agree with the sentiment about the personal attacks here; as people we should always attack the argument and not the person making the argument, it keeps things at a neutral level without animosity.

    That being said, I don't think your argument is lost on the console folks here.
    I think you've actually made this argument more clear for me, is that PCs in general suffer greatly more during the render block of code than consoles do. In particular, previously with DX11 this becomes more and more apparent, CPU is overloaded due to death by draw calls/API overhead. So when we talk about doing reflections, where effectively we are re-drawing the screen multiple times at different angles and viewpoints, then, I can actually see this being a CPU killer; on PC.

    But with Scorpio and its command processor customization (additional 50% reduction), the lower level DX12 API, and general baseline of technology (HUMA, executeIndirect, async compute etc), there are a variety of options available for Scorpio to reduce this CPU overhead during render() down significantly. Generally speaking, I'm pretty positive these options together are how this generation of consoles have been keeping up in the CPU scene despite it's anemic CPU capabilities, and I'm confident enough to feel that this applies across the board here with that statement (XBO + PS4). While it may be possible that PS4 may not have all the command processor changes XBO Family has, it's still got most of it.

    It's difficult for me to prove anything here, but if we agree that render() makes up a majority of the CPU processing power, and reflections are just more render() call blocks, there's no reason to suggest that consoles would not be able to handle it (just because they're weaker); these consoles are designed to deal with draw calls. That's a big part of the difference between a dedicated gaming hardware versus high performance general hardware.

    edit: some developer notes from a long time ago on PS4 and XBO
     
    #41 iroboto, Apr 20, 2017
    Last edited: Apr 20, 2017
    Silent_Buddha and DavidGraham like this.
  2. DavidGraham

    Veteran

    Joined:
    Dec 22, 2009
    Messages:
    2,781
    Likes Received:
    2,567
    True, despite that however, Reflections have never been a strong point for consoles, they usually have them on low/medium compared to the PC version of multi-platform games. Forza 6 also utilizes DX12 (as the only API) on PC so it is able to relieve the CPU hit as well. This helps the PC version achieve an even higher quality of reflection than previously possible.

    And there other factors to reflections other than draw calls that makes them such a huge CPU hog. These factors depend on the methodology used for rendering the reflections (Planar/Cubemaps/SSR/Voxel Cone Tracing), each method has it's own relative CPU/GPU limitation.
     
  3. iroboto

    iroboto Daft Funk
    Legend Regular Subscriber

    Joined:
    Mar 6, 2014
    Messages:
    7,896
    Likes Received:
    6,179
    agreed, there are limitations to where I was going with my argument lol. It's clear they need more CPU, otherwise they would never had bothered to continue to beef up the CPU for Scorpio if the consoles were never close to reaching a bottleneck on the CPU side of things.

    I do agree its all going to be about how it's implemented. On a side note, this discussion point may be resolved by asking the developers directly (via twitter etc). It doesn't seem like sensitive information.
     
    DavidGraham and RancidLunchmeat like this.
  4. mosen

    Regular

    Joined:
    Mar 30, 2013
    Messages:
    452
    Likes Received:
    152
    Well, Richard Leadbetter said this:

    However this is ForzTech not APEX. It has more features (like dynamic weather) and further optimizations.

    My entire argument is what I read in this article. If you think believing in what Leadbetter reported means being naive or senseless, then that's okay.
     
    RootKit likes this.
  5. sebbbi

    Veteran

    Joined:
    Nov 14, 2007
    Messages:
    2,924
    Likes Received:
    5,288
    Location:
    Helsinki, Finland
    Yes, consoles still have significantly cheaper draw calls than PC, and more direct GPU hardware access. DirectX 12 (PC version) and Vulkan need to support multiple different GPU vendors. Commands still need to be translated and API can't be perfect fit for any IHV, as it must suit them all. All commands and data (constant buffers, dynamic resources) need to be transferred from CPU memory over PCI-express to GPU memory every frame. On a console, a resource binding is basically just a raw memory pointer.

    But the biggest difference is simply the fact that games are specially tailored for the console hardware. If reflections have a CPU bottleneck, then you optimize that bottleneck in one way or another. If something else has a GPU bottleneck, then you optimize that bottleneck. No game is perfectly optimized for any PC configuration, since there's so many of them and all have different bottlenecks. On consoles you will analyze the bottlenecks and analyze what resources aren't perfectly utilized. Often you find ways to shift the bottlenecks and utilize the underutilized resources better. If you don't find a way to fit some technique to your performance budget, you redesign the technique until it fits. This targeted developer effort is the biggest advantage that consoles have. And it is bigger than any advantages you get from cheaper draw calls and more direct GPU access.
     
  6. RancidLunchmeat

    Veteran

    Joined:
    May 11, 2005
    Messages:
    3,044
    Likes Received:
    630
    Location:
    In your closet
    Okay, so PC's have too much variation to target specific bottlenecks because they are unknown, so developers simply count on the "brute force" of the CPU and GPU in order to get the job done. Right? On the consoles, the bottlenecks are specific and known so they can be targeted by the developer and avoided. If the games are being designed on PC's, isn't it a great deal of work for the developers to then "redesign their techniques until they fit" for consoles? Especially if by virtue of both systems being W10 and DX, the games would already run on the XB but not as well as on the PC because of the XB bottlenecks and lack of "brute force"?
     
  7. Silent_Buddha

    Legend

    Joined:
    Mar 13, 2007
    Messages:
    16,146
    Likes Received:
    5,082
    Most if not all AAA titles are designed with consoles in mind first and foremost. PC is secondary.

    Functionally this means that for most AAA games, the console versions will get extensive optimizations while the PC version just has to run. Sometimes some of those console optimizations will also benefit the PC version (Doom for example).

    Gears of War 4 is an interesting side note in this. Since Microsoft were in the process of developing Project Scorpio they took the opportunity to develop it slightly differently than the norm. Instead of a bottom up approach (develop to console and scale up for PC), they took a top down approach. IE - Develop with high end PCs in mind and then scale down and optimize for console (XBO). It sounds like they may have taken a similar approach with Forza Horizons 3. In both cases however, this was more WRT to asset creation than the base engines (which started development before Project Scorpio was a thing).

    Forza Apex is part of that as well, but obviously has no console counterpart (at least publicly). It's just an engine test for PC and high end development.

    What's interesting is that instead of using Forza Horizon 3 for their Project Scorpio test, they instead used Forza 6. Which makes sense as Forza Horizon 3 wasn't done by Turn 10. It was also important as it represented how easy or difficult it would be for a developer to take a title with an XBO codebase and make it work on Project Scorpio. And not just make it work, but make it work at higher resolutions and with increased graphics IQ.

    Regards,
    SB
     
    #47 Silent_Buddha, Apr 21, 2017
    Last edited: Apr 21, 2017
    RancidLunchmeat likes this.
  8. iroboto

    iroboto Daft Funk
    Legend Regular Subscriber

    Joined:
    Mar 6, 2014
    Messages:
    7,896
    Likes Received:
    6,179
    FH3 may have been too optimized for console I feel. the game seems to have issues operating outside of 30fps, but locked at 30fps on PC, the game can run without hiccups, 4K/Ultra on my 1070 setup. Though its tight ;)
     
    DavidGraham likes this.
  9. DavidGraham

    Veteran

    Joined:
    Dec 22, 2009
    Messages:
    2,781
    Likes Received:
    2,567
    I feel this is a bit late, but it is interesting never the less.

    So I tried Forza 6 on PC on my non OC'ed 1070, @4K and 4X MSAA, rainy tracks, 16 cars, Max settings. The game can't achieve locked 60fps indeed, it often drops to 50fps. But then I noticed these drops occur in the same spots, even if only my car is on the screen, and only in the third person camera (behind the car). if I switch to the cockpit camera, the game will lock to 100fps no matter what! If I switch to the "look back" camera (front of the car), it locks to 80~90fps. Which is a huge difference simply by switching cameras.

    So I load these tracks again, this time with only one opponent, and to my surprise, the same drops in fps happen again, even with only my car on the track. This leads to the conclusion that the game suffers an optimization issue in these tracks. I confirmed this once and for all by arriving through the spots where the drops to 50 happen, then switching to the look back and cockpit camera, and watching my fps skyrocket to ~90 and 100fps respectively.

    It's quite obvious the DF's experiment was a quick one just to get a glimpse of the situation, they didn't investigate the issue further, they should have though, considering the game runs amazingly well @4K (90+ fps) in any daylight crowded track with 16 cars on screen, doesn't make sense for it to drop below 60 in rainy tracks. The issue is an optimization problem limited to the third person camera, and only the one behind the car.
     
    #49 DavidGraham, Aug 20, 2017
    Last edited: Aug 20, 2017
Loading...

Share This Page

  • About Us

    Beyond3D has been around for over a decade and prides itself on being the best place on the web for in-depth, technically-driven discussion and analysis of 3D graphics hardware. If you love pixels and transistors, you've come to the right place!

    Beyond3D is proudly published by GPU Tools Ltd.
Loading...