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
That being said, I don't think your argument is lost on the console folks here.
Most visual options affect both the CPU and GPU to variable degrees. Hanging your entire argument on the premise that reflections affect both the CPU and GPU and thus are not excluded is senseless, and naive. In this case, Reflections affect the CPU because it needs to render multiple different viewpoints of the world at a specific frame rate and accuracy, it affects the GPU because it has to have a decent resolution/shading for the reflection, both elements are dependent on each other. You can't max out reflections on Scorpio because it has a massive CPU hog element, and that is irrelevant to whether Scorpio can handle the GPU element of that process or not.
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
Oles Shishkovstov: Let's put it that way - we have seen scenarios where a single CPU core was fully loaded just by issuing draw-calls on Xbox One (and that's surely on the 'mono' driver with several fast-path calls utilised). Then, the same scenario on PS4, it was actually difficult to find those draw-calls in the profile graphs, because they are using almost no time and are barely visible as a result.
In general - I don't really get why they choose DX11 as a starting point for the console. It's a console! Why care about some legacy stuff at all? On PS4, most GPU commands are just a few DWORDs written into the command buffer, let's say just a few CPU clock cycles. On Xbox One it easily could be one million times slower because of all the bookkeeping the API does.
Last edited: