and we're back to square one. The polls represent our dilemma well. On CPU we're having a hard time guessing where the hardware will land. There's just too much support on both sides of the argument.
So I was doing some research into Execute Indirect again. I know, I know, obsessive. And GPUs being able to spawn their own draw calls is a big deal, even if in a limited fashion. I know we talked about how XBO has customizations to make Execute Indirect more flexible, but as I continued to do some research I had to ask why it wasn't used.
my thought process was the following:
a) there was enough CPU available in the console space such that there was no reason to offload draw calls to the Command Processor
b) it is coming but will be the final bit of optimization that will happen over the course of this generation
c) it's not available on every platform
a) didn't seem interesting to me, reason being, MS engineers noted their biggest failure point was the CPU for them, which is why they clocked XBO higher. They really needed that boost to get their frame rate higher. Long story short, Xbox OS is heavier and they needed more lift. And that was all they could give it. A majority of the games on XBOX are probably GPU limited, but that's not to say there are probably instances where they may hit CPU bottlenecks from time to time. Considering how weak the GPU is on XBO, being CPU limited before GPU limited is likely not frequent.
b) this is a possibility because we are now starting to see this feature show up in slide decks in GDC. Perhaps it's true that 2-3 years from now we will see it in games, I'm not sure... but that leads me to dealing with (c)
c) I went to check if execute Indirect as per function, available on every platform. It's not. It's actually _not_ available on Vulkan. They require a nvidia extension to support it and I imagine that only applies to nvidia cards. Looking at the forums for Vulkan there is demand for this feature, but from what I've been reading, this feature would require a big lift for them to support and that demand is noted but expectations on delivery of this feature soon is unlikely. that got me thinking, GNM is apparently modelled very close to Vulkan, what if GNM doesn't support execute indirect either -- that a very large change to the API would need to be done to support it. So if Vulkan and PS4 don't support execute indirect, why would any 3P support it?
Summarizing that up, the biggest feature that would offload CPU work, just won't be a thing for this generation. And that to me is a big strike against keeping with Jaguar. You've got 4K resolution as a marketing goal, but that's just one aspect. As DF folks have alluded to, the rate in power differential between generations will lessen because we're slowing down in terms of how many transistors we can fit. So the new game is how to use that power, and there's going to be a lot more focus on hardware features supporting new rendering techniques. But this generation doesn't yet align in supporting that, so brute forcing the solution with more CPU seems to make more sense now.