PDA

View Full Version : The real Problems with AC Unity



Wrath2Zero
11-15-2014, 03:56 AM
Let's put some things into context about Assassins Creed Unity, this might hurt some Intel and NVIDIA fanboys feelings.

ACU problems are at a fundamental level as it tries to do 50,000 draw calls while DX11 can only do peek 10,000, this is what Ubisoft said themselves. The other issues is that this game is highly optimised for Intel CPUs and nothing else, both AMD CPUs and GPus perform worse as usual in a TWIMTBP game title because yet again like Black Flag, Crysis 2 use loads of tessellation in areas you simple can't tell the difference. While AMD GPUs perform worse in tessellation, it's rather ironic that such games have loads of tessellation, prompting AMD to implement a driver level optimisation for tessellation levels in their Catalyst driver.

No amount of Intel CPU power or NVIDIA GPU power will get past the draw call DX11 bottleneck which Ubisoft seem to have just done it anyway and it shows in the horrible NPC problems. The fact that Intel CPUs multi-thread really well in this game means nothing when the engine itself is throwing draw calls that the API can't deal with. AMD have Mantle ,this solves the problem of draw calls, as Mantle can perform upto a theoretical 100,000 draw calls ,even more with optimisation according to AMD, even if it was half that number, that would still meet the 50,000 draw calls that AC unity supposed to be done, yet DX11 can only handle 10,000.

Now lets look at a game that does CPU multi-threading right on both Intel and AMD CPUs

http://i.imgur.com/v2WkM2F.jpg

Wow, look at this. AMD FX CPUs are known for being weak in single-thread performance but AMD multi-threading performance is extremely good here when done properly, hence Battlefield 4 does multi-threading very well indeed and on top of that, Mantle is supported, which is good for the weaker CPU bound systems. Maybe Ubisoft need to go visit DICE and learn something about CPU multi-threading instead of taking cash of Intel and recommending i7s, or go speak to AMD about how not to make a powerful GPU not suck because Ubisoft claim a GTX680 minimum and NVIDIA claim the GTX 680 should run 1080p all low settings with AO off. BF4, Sniper Elite 3 perform very well on all systems and configs on max settings. Ubisoft went for the money both ways, PS4 got stung as well, in fact both consoles don't perform well either with your broken game with a massive $ sign on and on top of that, don't even get me started on why AC Unity is not on UK Steam, probably because Ubisoft want to charge us UK customers 50 a copy like on UPlay and Origin, looks like Valve told that to get stuffed so it's not on UK Steam.

strigoi1958
11-15-2014, 03:59 AM
or valve got greedy again ?

Wrath2Zero
11-15-2014, 04:05 AM
No because Ubisoft and EA charge 50 in their store for their top games regardless. There is no game on Steam that's 50, COD MW is 40, The Witcher 3 is 40, Black Flag is 40.

strigoi1958
11-15-2014, 04:10 AM
You don't know why nor do I... only steam and ubi do and they're not telling... I bought at cdkeys.com for 24.99 my loyalty lies with me... not origin, not uplay and not with steam.

Carfax83
11-15-2014, 04:21 AM
No amount of Intel CPU power or NVIDIA GPU power will get past the draw call DX11 bottleneck which Ubisoft seem to have just done it anyway and it shows in the horrible NPC problems. The fact that Intel CPUs multi-thread really well in this game means nothing when the engine itself is throwing draw calls that the API can't deal with. AMD have Mantle ,this solves the problem of draw calls, as Mantle can perform upto a theoretical 100,000 draw calls ,even more with optimisation according to AMD, even if it was half that number, that would still meet the 50,000 draw calls that AC unity supposed to be done, yet DX11 can only handle 10,000.

If the game is draw call bottlenecked, how is it I and many others are getting 60 FPS maxed settings? Check the FPS count in the upper left hand of the screenshots. If the game were truly draw call limited, I would not be able to get such a high frame rate:

http://imageshack.com/a/img538/8189/ezlBLn.png
http://imageshack.com/a/img673/3008/UVNpJQ.png
http://imageshack.com/a/img743/5905/mHwfRB.png
http://imageshack.com/a/img538/1193/JExRih.png
http://imageshack.com/a/img901/7151/PMAuEd.png


Wow, look at this. AMD FX CPUs are known for being weak in single-thread performance but AMD multi-threading performance is extremely good here when done properly, hence Battlefield 4 does multi-threading very well indeed and on top of that, Mantle is supported, which is good for the weaker CPU bound systems..

Comparing BF4 to ACU is a non starter. ACU is a gigantic single player game with THOUSANDS of A.I entities, plus seamless loading. BF4 is an online multiplayer game with 64 player max. Now both games are heavily CPU dependent, but for different reasons.

BF4 is CPU heavy because of the online related stuff that requires the CPU to track a lot of status related data during gameplay. Plus, on 64 player maps, the physics and all of the stuff going on is also CPU heavy.

ACU on the other hand is CPU heavy because of the massive amounts of A.I entities, plus the decompression of the lighting data. Then there's the draw calls, but since developers can use instancing and batching to reduce the draw call count, I don't suspect that's problematic.

Now, the A.I is by far the biggest consumer of CPU cycles. And the thing is, A.I is not friendly to low IPC CPUs, which is what AMD CPUs are. Being multithreaded is great and dandy, but single thread performance still matters a great deal, and that's where Intel CPUs completely dominate AMD CPUs.

So the reason for AMD CPU's low performance in ACU isn't related to draw calls, it's related to their weak IPC. A.I code is inherently branchy, so it's extremely difficult, if not impossible to multithread with a high degree of efficiency. That's why the consoles are struggling so mightily too by the way.. Their CPUs are just weak, no ifs ands or buts about it.

AbundantCores
11-15-2014, 04:40 AM
Mantle vs DirectX split screen, BF4 Multilayer map Shanghai. FPS top right on both sides.

https://www.youtube.com/watch?v=vPxyVesz2Ps&feature=autoshare

seriously, Ubi need to look at Mantle. it will solve a lot of their problems.

naumaan
11-15-2014, 04:45 AM
Mantle vs DirectX split screen, BF4 Multilayer map Shanghai. FPS top right on both sides.

https://www.youtube.com/watch?v=vPxyVesz2Ps&feature=autoshare

seriously, Ubi need to look at Mantle. it will solve a lot of their problems.

wow ...

Wrath2Zero
11-15-2014, 04:47 AM
If the game is draw call bottlenecked, how is it I and many others are getting 60 FPS maxed settings? Check the FPS count in the upper left hand of the screenshots. If the game were truly draw call limited, I would not be able to get such a high frame rate:

http://imageshack.com/a/img538/8189/ezlBLn.png
http://imageshack.com/a/img673/3008/UVNpJQ.png
http://imageshack.com/a/img743/5905/mHwfRB.png
http://imageshack.com/a/img538/1193/JExRih.png
http://imageshack.com/a/img901/7151/PMAuEd.png



Comparing BF4 to ACU is a non starter. ACU is a gigantic single player game with THOUSANDS of A.I entities, plus seamless loading. BF4 is an online multiplayer game with 64 player max. Now both games are heavily CPU dependent, but for different reasons.

BF4 is CPU heavy because of the online related stuff that requires the CPU to track a lot of status related data during gameplay. Plus, on 64 player maps, the physics and all of the stuff going on is also CPU heavy.

ACU on the other hand is CPU heavy because of the massive amounts of A.I entities, plus the decompression of the lighting data. Then there's the draw calls, but since developers can use instancing and batching to reduce the draw call count, I don't suspect that's problematic.

Now, the A.I is by far the biggest consumer of CPU cycles. And the thing is, A.I is not friendly to low IPC CPUs, which is what AMD CPUs are. Being multithreaded is great and dandy, but single thread performance still matters a great deal, and that's where Intel CPUs completely dominate AMD CPUs.

So the reason for AMD CPU's low performance in ACU isn't related to draw calls, it's related to their weak IPC. A.I code is inherently branchy, so it's extremely difficult, if not impossible to multithread with a high degree of efficiency. That's why the consoles are struggling so mightily too by the way.. Their CPUs are just weak, no ifs ands or buts about it.

You don't understand the difference between something getting 60fps and the API getting bottlenecked. No setup can hold a solid 60fps at peek NPC areas and that's a fact and also the NPCs get bugged because of the mass draw calls having to wait to be processed. About AMD CPUs, I said that AMD CPUs are weak in single-thread, yet BF4 shows how multi-threading done well can do well for AMD. Sorry to tell you but it's not AMD fault, it's the fact that this game is optimised for Intel CPUs because an i3 dual core can beat a 8 core AMD which means is highly single-threaded not AMD multi-threaded

I can show random 60fps shots with my FX 6300 and R9 280 on very high in Black Flag, so what? I mean are you seriously tell me now a dual-core i3 can deal with all those NPcs better than a multi-threaded 8 core AMD, regardless of whether they're not true 6-8 cores cpus because that doesn't make sense and there are other games that show otherwise when they're not single-thread bound.

naumaan
11-15-2014, 04:51 AM
If the game is draw call bottlenecked, how is it I and many others are getting 60 FPS maxed settings? Check the FPS count in the upper left hand of the screenshots. If the game were truly draw call limited, I would not be able to get such a high frame rate:

http://imageshack.com/a/img538/8189/ezlBLn.png
http://imageshack.com/a/img673/3008/UVNpJQ.png
http://imageshack.com/a/img743/5905/mHwfRB.png
http://imageshack.com/a/img538/1193/JExRih.png
http://imageshack.com/a/img901/7151/PMAuEd.png



Comparing BF4 to ACU is a non starter. ACU is a gigantic single player game with THOUSANDS of A.I entities, plus seamless loading. BF4 is an online multiplayer game with 64 player max. Now both games are heavily CPU dependent, but for different reasons.

BF4 is CPU heavy because of the online related stuff that requires the CPU to track a lot of status related data during gameplay. Plus, on 64 player maps, the physics and all of the stuff going on is also CPU heavy.

ACU on the other hand is CPU heavy because of the massive amounts of A.I entities, plus the decompression of the lighting data. Then there's the draw calls, but since developers can use instancing and batching to reduce the draw call count, I don't suspect that's problematic.

Now, the A.I is by far the biggest consumer of CPU cycles. And the thing is, A.I is not friendly to low IPC CPUs, which is what AMD CPUs are. Being multithreaded is great and dandy, but single thread performance still matters a great deal, and that's where Intel CPUs completely dominate AMD CPUs.

So the reason for AMD CPU's low performance in ACU isn't related to draw calls, it's related to their weak IPC. A.I code is inherently branchy, so it's extremely difficult, if not impossible to multithread with a high degree of efficiency. That's why the consoles are struggling so mightily too by the way.. Their CPUs are just weak, no ifs ands or buts about it.

i ve been noticing that you give screenshots of your gameplay .. man .. is that your own machine ... tell me which card you have .. i am looking for different options for upgrading my rig these days ..

Toothless Spoon
11-15-2014, 04:59 AM
I'm wondering if this 50K draw calls problem would be the cause for the random pop-ins I'm getting everywhere in relation to crowd clothing etc. I can stand there and move the camera slowly and have npcs in my vision changing outfits rapidly before finally settling down. It's weird as, and I'm wondering if it's causing unnecessary cpu/gpu use? DISCLAIMER: I know nothing about anything, so excuse my ramblings if this has nothing to do with it :P I'm using 2x Titans btw, and although I play across 3 screens (which the extra FOV would normally cause issues kinda like what I've described) it also occurs why playing single screen.

Blackred689
11-15-2014, 05:00 AM
What is DX12 maximum draw calls. Seems like 50k will be fine but haven't looked into it and its coming fairly soon so I guess devs are looking for that in future?

Wrath2Zero
11-15-2014, 05:02 AM
It is.


The game (in its current state) is issuing approximately 50,000 draw calls on the DirectX 11 API. Problem is, DX11 is only equipped to handle ~10,000 peak draw calls. What happens after that is a severe bottleneck with most draw calls culled or incorrectly rendered, resulting in texture/NPCs popping all over the place. On the other hand, consoles have to-the-metal access and almost non-existent API Overhead but significantly underpowered hardware which is not able to cope with the stress of the multitude of polygons.




This won’t be the case for the Mantle API. AMD have boasted that they are targeting a rather astounding figure of 100,000 draw calls, at what they consider to be “reasonable frame rates”. They believe that the figure of 100,000 draw calls can also be improved upon with more optimization! That’s an astounding figure, and the increase in graphical detail in PC games would be astounding.

Blackred689
11-15-2014, 05:19 AM
It is.

Nevermind, I was asking about what DX12 is aiming for (think it should do 50k fine). Didn't need a repost of your DX11 and mantle stuff.

I--Skeptik--I
11-15-2014, 05:21 AM
If the game is draw call bottlenecked, how is it I and many others are getting 60 FPS maxed settings? Check the FPS count in the upper left hand of the screenshots. If the game were truly draw call limited, I would not be able to get such a high frame rate:

http://imageshack.com/a/img538/8189/ezlBLn.png
http://imageshack.com/a/img673/3008/UVNpJQ.png
http://imageshack.com/a/img743/5905/mHwfRB.png
http://imageshack.com/a/img538/1193/JExRih.png
http://imageshack.com/a/img901/7151/PMAuEd.png



Carfax83, these shots look really good, is that just vanilla ACU? or is that with SweetFX or something?

Wrath2Zero
11-15-2014, 05:30 AM
Nevermind, I was asking about what DX12 is aiming for (think it should do 50k fine). Didn't need a repost of your DX11 and mantle stuff.

Well you did because Mantle can do 50,000 drawn calls now and AC Unity is now. DX12 being low level API would really target 50,000 draw calls or more but it's irrelevant because DX12 is over a year away from release anyway.

Wrath2Zero
11-15-2014, 05:52 AM
While I'm at it, something for you guys to chew on.


Ubisoft made snide remarks about consoles, implying that ACU's AI was "too much" for Jaguar to handle. So I also tested the game on Intel's latest octa-core Haswell chips.

Performance is unchanged.

Think about that for a second. Granted, consoles have low-level APIs and better hardware access, but Haswell is probably 30-50% faster than Kabini, clock for clock. Then you toss in the fact that it runs at 4GHz (I overclocked) instead of 1.6GHz. That's a cumulative total of 3.75x faster *before* we toss on having more cores to work with (eight, not seven, as the OS reserves a core for its own work).

Clearly, raw horsepower on the PC side isn't the problem. That implies one of two things:

1).The console APIs are very good, thus giving Ubisoft all the headroom it reasonably needed to implement its design (since we see Kabini evidently matching eight-core, 4GHz Haswell with no great benefit to the higher-end chip on the computation side of things).

2). The game is hideously unoptimized for PCs.

It's not like the game's AI code should've required enormous amounts of rework. It's not like the old days, when Cell was unlike anything on the PC side and you had to start basically from scratch if you wanted to port a title. Jaguar runs x86 code. It supports almost all the same SIMD sets as Haswell. I'm not saying there's no difference, but there's less difference this generation than at any previous point.

The common thread between poor performance on consoles and poor performance on PCs is Ubisoft.

Carfax83
11-15-2014, 11:24 AM
You don't understand the difference between something getting 60fps and the API getting bottlenecked. No setup can hold a solid 60fps at peek NPC areas and that's a fact and also the NPCs get bugged because of the mass draw calls having to wait to be processed.

Oh it's a fact is it? I took some additional screenshots in crowded areas and guess what, I'm still getting 60 FPS!

http://imageshack.com/a/img537/4821/H4DaLc.png
http://imageshack.com/a/img538/9721/Z3rlzT.png

Again, the game isn't draw call limited.


About AMD CPUs, I said that AMD CPUs are weak in single-thread, yet BF4 shows how multi-threading done well can do well for AMD. Sorry to tell you but it's not AMD fault, it's the fact that this game is optimised for Intel CPUs because an i3 dual core can beat a 8 core AMD which means is highly single-threaded not AMD multi-threaded

Some things can be multithreaded fairly easily, and some things cannot. A.I code for the most part is pretty much impossible to multithread effectively, because it's branchy and cannot be parallelized. So yeah, an i3 dual core can beat an 8 core AMD CPU in single threaded code. The benchmarks reflect that.

Carfax83
11-15-2014, 11:25 AM
i ve been noticing that you give screenshots of your gameplay .. man .. is that your own machine ... tell me which card you have .. i am looking for different options for upgrading my rig these days ..

Yeah it's on my own PC. I have two Gigabyte G1 GTX 970s in SLI, with an overclocked 4930K driving them..

naumaan
11-15-2014, 11:34 AM
Yeah it's on my own PC. I have two Gigabyte G1 GTX 970s in SLI, with an overclocked 4930K driving them..

i wish i could reach there .. but as my budget goes .. i feel very poor right now ... nice to see your results man ...

Carfax83
11-15-2014, 11:41 AM
Carfax83, these shots look really good, is that just vanilla ACU? or is that with SweetFX or something?

Thanks man, no it's just plain vanilla ACU. :) It's a beautiful game though, so you shouldn't be surprised..

Carfax83
11-15-2014, 11:49 AM
i wish i could reach there .. but as my budget goes .. i feel very poor right now ... nice to see your results man ...

Thanks. The GTX 960 will be hitting the deck soon. That will probably be the best card to get if you're on a budget. Should be very overclockable as well..

Cygnifick
11-15-2014, 01:56 PM
Allways funny to read topics made by "experts" who think they know exactly how a game is made and what it uses and how to solve a problem. What game did you make yourself? Most of you dont even have a clue, and just repeat the mistakes or false info others tell.

Wrath2Zero
11-16-2014, 07:55 AM
What do you expect, all the derps with a Intel i7 and 970 and upwards are ok because Ubisoft got paid to optimise it for them and deny problems like they live in their own world. Most of these people don't understand what going on with the software, it's all fine and dandy to them, even though they should actually get more performance.

Good luck wait for DX12 games, Mantle is already here, it's just a shame you're losing out on more performance and need to wait 2 years for DX12 and random performance. NVIDIA probably won't use Mantle ,bad for NVIDIA users, missing out on potentially quite a lot of performance, especially on SLI setups

USAdystopia
11-16-2014, 08:21 AM
What do you expect, all the derps with a Intel i7 and 970 and upwards are ok because Ubisoft got paid to optimise it for them and deny problems like they live in their own world. Most of these people don't understand what going on with the software, it's all fine and dandy to them, even though they should actually get more performance.

Good luck wait for DX12 games, Mantle is already here, it's just a shame you're losing out on more performance and need to wait 2 years for DX12 and random performance. NVIDIA probably won't use Mantle ,bad for NVIDIA users, missing out on potentially quite a lot of performance, especially on SLI setups

Wow! You used a large number of words to say...NOTHING AT ALL!

Zylkito
11-17-2014, 09:41 AM
Let's put some things into context about Assassins Creed Unity, this might hurt some Intel and NVIDIA fanboys feelings.

ACU problems are at a fundamental level as it tries to do 50,000 draw calls while DX11 can only do peek 10,000, this is what Ubisoft said themselves. The other issues is that this game is highly optimised for Intel CPUs and nothing else, both AMD CPUs and GPus perform worse as usual in a TWIMTBP game title because yet again like Black Flag, Crysis 2 use loads of tessellation in areas you simple can't tell the difference. While AMD GPUs perform worse in tessellation, it's rather ironic that such games have loads of tessellation, prompting AMD to implement a driver level optimisation for tessellation levels in their Catalyst driver.

No amount of Intel CPU power or NVIDIA GPU power will get past the draw call DX11 bottleneck which Ubisoft seem to have just done it anyway and it shows in the horrible NPC problems. The fact that Intel CPUs multi-thread really well in this game means nothing when the engine itself is throwing draw calls that the API can't deal with. AMD have Mantle ,this solves the problem of draw calls, as Mantle can perform upto a theoretical 100,000 draw calls ,even more with optimisation according to AMD, even if it was half that number, that would still meet the 50,000 draw calls that AC unity supposed to be done, yet DX11 can only handle 10,000.

Hey, don't forget what Ubisoft told, it will bring Mantle-like Performence. Well they did it, the opposite of better performence.