Is UE4 indicative of the sacrifices devs will have to make on consoles next gen?

In reality,when it comes to perceived graphics quality, God of War 3, Last of us, Gears of War 3, Uncharted 3 are more or less in the same ballpark as Crysis 3 on highend PC. Maybe it's all about art, not performance but the point still stands.

In the same way those games will be in the the same ball park as first generation PS4/Durango games perhaps.
 
Earlier in this thread, there was some discussion about DX11 multithreaded rendering. It doesn't actually reduce the driver overhead at all. It allows you to use several CPU cores record the draw calls to separate command buffers. This is kind of awkward, since one modern (Sandy/Ivy Bridge) PC CPU core is powerful enough to run all the processing that six x360 thread would do in a single frame. Usually x360 games use just one of those six threads to submit the draw calls. With DX11 you can now use two high performance PC cores in tandem to send as many draw calls as a single x360 thread... Brute force at it's finest. Not something to brag about :)

Thanks sebbbi, now we're getting into the real detail of the matter. So how do you see things developing in the upcoming generation? Should we expect draw call requirements to go up significantly compared to current generation console games? And thus are we looking at a situation were even say a dual haswell would be insufficient to deal with the draw call requirements, let alone the rest of the game code?

Edit: the more I learn about the next generation consoles the more I see PC's as having a massive over abundance of gpu resources while at the same time being hugely cpu limited (between compute requirements, draw call overhead and other general overheads) Could we be seeing a need for 6 or more core cpus finally? Or are there other ways around this rather than simply throwing more cores and ipc at the problem?
 
Last edited by a moderator:
When Laa-Yosh creates a photorealistic cutscene, he's adding photographic limits that our eyes don't have, and the results are damned impressive.

Just to be correct here, I don't create scenes :) I model characters as production work, and create face rigs, but most of my time is spent supervising my team - planning, scheduling and checking tasks, giving feedback and support, and communicating with the other departments.


Building a scene usually goes like this:
- director and his team put together a rough animatic scene with placeholder assets and animation but mostly final cameras
- shot TDs build the scene with final assets, trying to keep as much animation from the animatic as possible, and break it down into rendering layers
- animators do several passes on everything that moves
- in the mean time the asset team builds characters, sets, props, adds hair and shaders
- riggers run cloth and hair sims and cache out the results, then fix collisions and intersections and bad deformations and such
- FX guys work in parallel to do their particle and other stuff and either they render it out or (for stuff like water) cache out the results and transfer it into Maya
- compositors light the scene, render out layers into pre-defined passes (close to what a G-buffer is), project matte paintings to geometry where necessary, then put it all together and adjust lots of stuff like speculars, SSS layer intensities, add various lens effects, grade colors etc.

So there's a reason why I try to always indicate that our stuff is a team effort :)

Game stuff is actually getting closer and closer to the above, except there's no caching for FX and sims, everything has to be done on the fly and thus it cannot be fixed or tweaked.
 
Laa-Yosh, do you see any potential for breakthrough in the game development workflow due to the 8GB memory and other nextgen specs ?
 
So can we say the gpu in PS4 can perform like a 7870 or greater if taken into account of console architecture efficiencies etc?

Only if you are also willing to say the GPU in the PS4 can perform less than a 7850 as well due to architectural differences.

The real advantage of the consoles is the closed box: the exact balance of GPU resources, CPU resources, storage, and memory resources are all known. Likewise your feature set is consistent across the board. Finally your target medium (TV @ target resolution) is also fixed.

On the PC your game title is going to have to support 3 vendors (AMD, NV, and Intel) across a multitude of generations (on the AMD side at least pre- and post- GCN) that includes an array of supported features and significant differences in data processing. The memory footprint and bandwidth is different. And who knows how much system memory/bandwidth you will have as well as CPU type (outdated dual core w/o AVX or a new 6 core monster with AVX2). Does it have a laptop drive or some snazzy SSD? The user setup makes it even more difficult--are they targetting 3x 1080p displays or a 1280x800 screen?

So that is a huge advantage for the PS4. But alas if your game is strictly fillrate limited or ALU limited the 7870 has a lot more beef under the hood to push through these issues. Of course in such a scenario on the PC side that may mean a LOT of the system is sitting idle--on the console side if you were, say, fill rate limited you may go to a 1/4 size buffer for particles or whatnot so fill rate is no longer your bottleneck so you can push other parts of the game. Or seeing that you are fill rate limited but right at your target framerate you could task the idling portions of your GPU to up the IQ. There are far too many hardware targets on the PC side to do this sort of designing to get the most out of a PC GPU. When consumers on the PC want more they just buy it.
 
Draw call overhead on PC is considerably higher compared to consoles. On a console you can just write a few bytes (command header + data) directly to the ring buffer (existing in same unified memory system). That's just a few CPU cycles. You can just ignore all the CPU and GPU synchronization if you know what you are doing (you manage the life time of your data properly, and make sure you are not modifying the data while the GPU is accessing it - for example by manually double buffering the resources).

And of course you can even pre-build the command buffers on consoles if you really want to, which can bring the cost down even further. I'd suspect people are doing it less and less these days (especially compared to the PS2 era), but it's still an option.
 
Laa-Yosh, do you see any potential for breakthrough in the game development workflow due to the 8GB memory and other nextgen specs ?

I'm only marginally familiar even with the asset production side, but I'm not expecting anything radical. The amount of work required for that goes up on an exponential curve - the move from 2D sprites to 3D models was something so big that it can never really be reproduced in a single step. Maybe if someone invents holographic projection for the living room ;) Remember when Half-Life 1 was radically new in that the characters had mouths that were moving when they talked? Or when we first started to have full speech in a game instead of text boxes?

So the new generation won't offer such a big jump, most games on the current consoles have already maxed out on all aspects in general. The studios have learned to build high res assets for normal mapping, added proper lighting and shadows, the characters are voiced by professional actors, and so on. The increased resolution and quality in the assets will probably only be noticed by us enthusiasts.

New features like cloth simulations have appeared in Watch Dogs even on background characters, but they're still too crude to make a large visual impact. Advanced hair is still not looking like hair as seen in Tomb Raider. Neither the UE4 nor the BF4 demo did not have too much secondary dynamics on the characters or the environment. The constraints on that side have more to do with very high computational requirements and a lack of 100% robust solutions. We can always fix bad simulation results by either running it again or tweaking the results manually. In a realtime environment there's far less room for errors, you can't have exploding clothes or messed up hair ruining the immersion. So more memory won't help with this.

The extra memory should allow for much larger and more dynamic virtual words for RPG and sandbox type games but on that side the bottleneck has always been the budget and the schedule. I still wouldn't expect to be able to walk into any building in GTA VI even if the consoles had 32GB RAM. Back in Ultima 7 it was possible to do so, and the NPCs had daily schedules and you could even bake bread and such, because it was done at a far lower fidelity and thus at a low cost.

Probably some constraints will be removed from the programming side and different trade offs will become possible. Precalculating even more data will probably become more common. But the new systems aren't that much faster compared to the old, so


So if anything can be expected, it's more consolidation of the development force into large, publisher-run studios and even safer practices because of the even higher costs. For example if Watch Dogs is as successful as the first public reactions suggest, it would probably move to a yearly release schedule the way Assassin's Creed has done.


I think Sebbi should be a better one to ask about this stuff, he's much much more familiar with the issues and probably already has a lot of ideas on how to use the added memory and stuff...
 
Those are the same question. Yes they wouldn't have added them if they were not, but I doubt they are worth more than a couple CU's in best case. The advantage being peak power stays down over a brute force approach. So adding ACE's on a pc might not be as significant.
Yes, the questions are phrased differently. Eight ACEs doesn't automatically mean 64 cues and vice versa. In the context of the PS4, it does. That's what the different phrasing was suppose to impress upon the reader.

By saying that adding ACEs might not be as significant, you are also saying it might be as significant. So, we are saying the same thing.

If you only mean to suggest that a console will outperform a 2TF PC, I don't think you will find much argument. The problem is when you try to suggest console hardware will punch twice its weight. Those days are gone. My year old PC will be running next gen titles with higher fps, resolution and AA.
It's not the consoles that are punching twice it's weight. It's more like PCs are punch at half it's weight, due to software and architectural differences. Console hardware operates at the peak ability of the hardware. It doesn't punch above it's weight. It punches AT it's weight.
 
Yes, the questions are phrased differently. Eight ACEs doesn't automatically mean 64 cues and vice versa. In the context of the PS4, it does. That's what the different phrasing was suppose to impress upon the reader.

By saying that adding ACEs might not be as significant, you are also saying it might be as significant. So, we are saying the same thing.


It's not the consoles that are punching twice it's weight. It's more like PCs are punch at half it's weight, due to software and architectural differences. Console hardware operates at the peak ability of the hardware. It doesn't punch above it's weight. It punches AT it's weight.

If all you want to do is argue semantics please don't bother replying.
 
Only if you are also willing to say the GPU in the PS4 can perform less than a 7850 as well due to architectural differences.

The real advantage of the consoles is the closed box: the exact balance of GPU resources, CPU resources, storage, and memory resources are all known. Likewise your feature set is consistent across the board. Finally your target medium (TV @ target resolution) is also fixed.

On the PC your game title is going to have to support 3 vendors (AMD, NV, and Intel) across a multitude of generations (on the AMD side at least pre- and post- GCN) that includes an array of supported features and significant differences in data processing. The memory footprint and bandwidth is different. And who knows how much system memory/bandwidth you will have as well as CPU type (outdated dual core w/o AVX or a new 6 core monster with AVX2). Does it have a laptop drive or some snazzy SSD? The user setup makes it even more difficult--are they targetting 3x 1080p displays or a 1280x800 screen?

So that is a huge advantage for the PS4. But alas if your game is strictly fillrate limited or ALU limited the 7870 has a lot more beef under the hood to push through these issues. Of course in such a scenario on the PC side that may mean a LOT of the system is sitting idle--on the console side if you were, say, fill rate limited you may go to a 1/4 size buffer for particles or whatnot so fill rate is no longer your bottleneck so you can push other parts of the game. Or seeing that you are fill rate limited but right at your target framerate you could task the idling portions of your GPU to up the IQ. There are far too many hardware targets on the PC side to do this sort of designing to get the most out of a PC GPU. When consumers on the PC want more they just buy it.
OK so it's a lot more task specific. I guess if developers (1st party) would design a game around console architecture advantage then we wont see any of the bottlenecks such as ALU or fillrate limitations thus punching above their weight class. And perhaps when you design a game with 8gig of gddr5 in mind?
 
OK so it's a lot more task specific. I guess if developers (1st party) would design a game around console architecture advantage then we wont see any of the bottlenecks such as ALU or fillrate limitations thus punching above their weight class. And perhaps when you design a game with 8gig of gddr5 in mind?

LucidDreamer is gonna love your wording there...
 
Draw call overhead on PC is considerably higher compared to consoles.
Yes, but it's not as much as some people are making it out to be, and it's hardly a big issue. Frankly some of the best looking games these days can do it in a few thousand draw calls... you simply don't need to change state as much since GPUs these days can dynamically index/branch a lot better than they used to.

FWIW I just tested in DX11/Win8... on an NVIDIA card/driver with no state changes (just params to draw), you can do north of 16 million draw calls in ~12ms (driver can just as easily set those few bits as app can) single threaded, so let's stop talking about "draw calls" - let's talk about state changes.

With a texture change in between, I can do 30k draws at 60fps. Changing a constant buffer reference, 60k. Updating and changing a constant buffer (map_discard, set), 35k. Of course you can do more multithreaded, but this sort of performance should be more than sufficient... This is all easily testable yourselves guys so stop making crap up.

With bindless stuff in GL on NVIDIA, I doubt you're very far off of peak performance.

And let's also forget you have probably 2-3x single-threaded performance on a desktop CPU to what the PS4 will have, so even if the overhead is lower (which it will be), probably it'll still get eaten by brute force.

So yeah, I'm not buying the argument that you can't do pretty much whatever you want already on PC. Like I said, some of the best looking stuff (Frostbite, etc) uses a few thousand draw calls, and you could use 10x more and still be fine. Sure the overhead will be lower on consoles, but prove to me that it matters.

And no, Uncharted and God of War 3, while impressive on the PS3, do not look anywhere close to a modern high end PC game. If you disagree on that, let's just stop talking now because we're beyond the point where facts are relevant.
 
Cheers Andy, some great specific details there. This is what makes B3D so much better than any other forum, guys like you and sebbbi can actually add true technical value to a discussion that elsewhere is nothing more than an uninformed shouting match.
 
hardware is not the problem, pc will always be much more powerful but who is going to have the budget and time to make a pc exclusive aaa title? The biggest advantage consoles have are publishers are willing to spend more.
 
hardware is not the problem, pc will always be much more powerful but who is going to have the budget and time to make a pc exclusive aaa title? The biggest advantage consoles have are publishers are willing to spend more.

Looking at how much PC like are next gen consoles, I think this time "console ports" will go better on Pc that this generation ones.
 
Is Vita development similar ? If the port cost is low or there is no need to port, then we may get more cross-buy deals between PC, console and mobile.


Looking at how much PC like are next gen consoles, I think this time "console ports" will go better on Pc that this generation ones.

Yes, I think consoles may "define" PC gaming nextgen if they gain significant adoption. The middleware folks should be able to hide PS4 optimization.
 
Draw call overhead on PC is considerably higher compared to consoles. On a console you can just write a few bytes (command header + data) directly to the ring buffer (existing in same unified memory system). That's just a few CPU cycles. You can just ignore all the CPU and GPU synchronization if you know what you are doing (you manage the life time of your data properly, and make sure you are not modifying the data while the GPU is accessing it - for example by manually double buffering the resources).

DirectX/OpenGL doesn't know enough about your data usage pattern to skip unneeded synchronization. And on PC there's always other applications (and the OS) using the GPU as well. So the API calls (draw, map, state change) needs to be always properly synchronized. A simple mutex lock costs over 1000 cycles. There's multiple driver layers (user, kernel) and some parts are shared between all applications (and OS). So you should expect DirectX/driver to have multiple synchronization points (locks) for each draw call. And then of course the data must be transferred over PCI express bus to the GPU's memory, since there's no shared memory that both CPU and GPU can access. So the 10x overhead discussed in this thread is likely a conservative guess. I would expect the CPU cycle overhead to be much higher.

Earlier in this thread, there was some discussion about DX11 multithreaded rendering. It doesn't actually reduce the driver overhead at all. It allows you to use several CPU cores record the draw calls to separate command buffers. This is kind of awkward, since one modern (Sandy/Ivy Bridge) PC CPU core is powerful enough to run all the processing that six x360 thread would do in a single frame. Usually x360 games use just one of those six threads to submit the draw calls. With DX11 you can now use two high performance PC cores in tandem to send as many draw calls as a single x360 thread... Brute force at it's finest. Not something to brag about :)

Sebbi, could you give some examples of what could be done on a GPU, like the PS4, in 1000 cycles? How often would you have to use a mutex lock per frame, in a PC game you have developed?
 
Sebbi, could you give some examples of what could be done on a GPU, like the PS4, in 1000 cycles? How often would you have to use a mutex lock per frame, in a PC game you have developed?

Andy already debunked that (not to mention that your question is ill-formed). Not in a made up hand-wavy bullshit nature, as seems to be the case with this dumb "magical consoles have magical to-the-metal benefits" nonsense meme that will not die, but rather with numbers. Are you purposefully being dense?
 
hardware is not the problem, pc will always be much more powerful but who is going to have the budget and time to make a pc exclusive aaa title? The biggest advantage consoles have are publishers are willing to spend more.

Pretty much. It will be the same story as this gen. Uprezzed console ports on PC, but this time assets shouldn't be as disappointing.

Looking forward to buying on PS4 and enjoying HQ 3D versions with Oculus 2.0 on PC later on.
 
Back
Top