Jump to content
  • Sign Up

Finally New engine!


Recommended Posts

Client Performance Optimization

We’ve heard you loud and clear—Guild Wars 2 needs better frame rates. We agree. We’re actively working on upgrading our engine to DirectX 11, and we expect to be able to roll it out in an opt-in beta later this year. An important note is that the upgrade to DX11 itself isn’t a magical fix for frame rates on its own. Some players may not notice a difference at all. However, upgrading to DX11 opens a lot of doors for improving performance—CPU multithreading for instance. It also paves the way for some potential graphics upgrades down the road.

We’re investing in our infrastructure, engine, and graphics because we’re looking to the future. This is a long-term effort.

 

https://www.guildwars2.com/en/news/arenanet-studio-update-july-2021/?fbclid=IwAR0gEZdZ6EnlaL1heY6a94pUSy7RnrHmz_PyiyFBbs2I1JyvCgz35t-LYeA

  • Like 15
Link to comment
Share on other sites

7 minutes ago, Dawdler.8521 said:

An upgrade to DX11 is not a "new engine". It's an upgrade to DX11. They probably picked DX11 over DX12 because it's easier to translate DX9 with less changes.

Exactly what I was going to say. There's a lot more to a games engine than which version/s of Direct X it's compatible with.

 

Still if that's all they need to do to get people saying they've upgraded the whole engine I'll take it. 

 

(Not that I think upgrading to DX11 is trivial, but it's a tiny change compared to a new engine and much less likely to break things.) 

  • Like 3
  • Sad 1
Link to comment
Share on other sites

They did not say new. They said updated, more specifically for performance and DX11. Don't overhype. This community overhypes itself so much they set themselves up for disappointment.

I know some people who firmly believe we're getting underwater raids in Cantha and I personally feel like if that's true, it's absolutely missing the mark. Not that I don't want UW combat fixed, but I feel like there's so much this game needs that's literally the last thing it needs.

  • Like 7
  • Thanks 3
Link to comment
Share on other sites

I wouldn't overhype this as even the post itself cautions that there may be no performance improvements from the API change itself. DX9/DX11 suffer from the same threading issues except DX11 has less of it (scales to ~4 cores) because it is capable of multi-threading although still relies on a main thread.

DX11 was likely chosen as an incremental update while figuring out how to handle memory management / core client threading for any future improvements. In addition, it is probable a significant portion of the playerbase is not on Windows 10 or possibly not owning DX12/VK capable GPUs.

  • Like 2
  • Confused 1
Link to comment
Share on other sites

theyre being modest on their statement, CPU multithreading is a huge improvment and surely players will notice a difference, i wish best luck. also both DX-11 and game client on 64 bits will make a difference, but less noticiable.

Edited by ugrakarma.9416
  • Like 9
  • Confused 1
Link to comment
Share on other sites

3 minutes ago, GalenWolffit.3842 said:

Umm, ANet...  Dx 11.2 came out in 2013, Dx 12 came out in 2015 and was most recently updated in 2019.  Why "upgrade" to a graphics API almost as old as GW2 itself?  Why not just go for the latest?

im myself sofware develeper with experience in api upgrades, i dont advice skip versions , the best path, is go to dx11 then try dx12, once they get enough "know how" about upgrades, they can risk more far steps.

Edited by ugrakarma.9416
  • Like 11
  • Thanks 2
Link to comment
Share on other sites

28 minutes ago, Infusion.7149 said:

...

except DX11 has less of it (scales to ~4 cores) because it is capable of multi-threading although still relies on a main thread.

 

The main thing that makes DX11 multithreaded is the ability for the engine to build command lists in seperate threads, and then merge+dispatch them from the main thread. Then the main thread doesn't need to spend alot of time building a complete command list, but merely merge all the thread-built command lists into one and send it to the GPU. It isn't limited to four cores, that's entirely up to the engine architecture, not DirectX.. But you reach a point where you cannot split the render work into more threads and gain more performance, it's all up to the individual engine.
But it allows for GW2 engine to (for example) build map render data in one thread, players in another, enemies in a third, shadowmaps in a fourth and so on...

DX11 has also got a much better math library, which utilises newer CPU technology, thus making vector and matrix transforms and such a good deal faster than DX9.

  • Like 13
Link to comment
Share on other sites

37 minutes ago, GalenWolffit.3842 said:

Umm, ANet...  Dx 11.2 came out in 2013, Dx 12 came out in 2015 and was most recently updated in 2019.  Why "upgrade" to a graphics API almost as old as GW2 itself?  Why not just go for the latest?

I'm not a graphics programming expert, but I'm going to guess it's because a significant part of their players' computers still don't support DX12, while they now almost all do support DX11.

  • Like 7
Link to comment
Share on other sites

13 minutes ago, vinterberg.2783 said:

 

The main thing that makes DX11 multithreaded is the ability for the engine to build command lists in seperate threads, and then merge+dispatch them from the main thread. Then the main thread doesn't need to spend alot of time building a complete command list, but merely merge all the thread-built command lists into one and send it to the GPU. It isn't limited to four cores, that's entirely up to the engine architecture, not DirectX.. But you reach a point where you cannot split the render work into more threads and gain more performance, it's all up to the individual engine.
But it allows for GW2 engine to (for example) build map render data in one thread, players in another, enemies in a third, shadowmaps in a fourth and so on...

DX11 has also got a much better math library, which utilises newer CPU technology, thus making vector and matrix transforms and such a good deal faster than DX9.


I mean in practice.

See GTX 980 drawcalls on DX11MT the scaling up reduces at ~4 cores
https://pcper.com/2015/03/3dmark-api-overhead-feature-test-early-dx12-performance/

and https://www.anandtech.com/show/9112/exploring-dx12-3dmark-api-overhead-feature-test/3
as well as https://www.anandtech.com/show/11223/quick-look-vulkan-3dmark-api-overhead and https://www.guru3d.com/news-story/quick-test-futuremark-3dmark-v2-3-3663-vulkan-api-overhead-benchmarks,2.html

Link to comment
Share on other sites

1 hour ago, Infusion.7149 said:

In addition, it is probable a significant portion of the playerbase is not on Windows 10 or possibly not owning DX12/VK capable GPUs.

I'd really love to know how Anet knows this. I've never been polled, emailed, or taken a survey about specs like Steam has had me do.

Also you'd have to own something older than a 400 series Geforce to not have D12. I would be very surprised if all of the supposed "I get 12 FPS at wayfarer meta" are all still running 8800s.

  • Like 2
Link to comment
Share on other sites

30 minutes ago, Infusion.7149 said:

I mean in practice.

You're linking articles from 2015/2017, with synthetic benchmarks that measures millions of drawcalls per second - that's not at all what GW2 is putting out, I'd be surprised if the drawcall amount is more than a few thousand max.

An engine is alot(!) more than merely drawcalls, especially in a MMO 🙂

ANet can do alot to utilise multithreading besides rendering, and if they do it properly, more than four cores might very well be an advantage! Like, if they just put asset loading into a seperate thread we wouldn't see that severe frame hitching in cities like Lions Arch (if you turn your camera around fast) when the current engine needs to load stuff from data files, which I suspect is done from the main thread now.

DX11 also allows for much bigger shaders in size and complexity, which can very well help ANet shift a great slice of the animation system onto the GPU instead of doing most of it on the CPU as you have to do with DX9 because of shader limitations. You suddenly also get compute shaders and such, which can greatly enhance the lighting and again, take alot of the burden off the CPU. With a lightning system such as tilebased deferred lighting you can use compute shaders to build a list of which lights to render where, and use the GPU to render them all - very little CPU work needed inbetween the steps.

  • Thanks 5
Link to comment
Share on other sites

20 minutes ago, XenoSpyro.1780 said:

I'd really love to know how Anet knows this. I've never been polled, emailed, or taken a survey about specs like Steam has had me do.

Also you'd have to own something older than a 400 series Geforce to not have D12. I would be very surprised if all of the supposed "I get 12 FPS at wayfarer meta" are all still running 8800s.

They dont because it's most likely not true at all.

Just look at steam surveys - DX12 compatible cards make up like 94% of the user base. DX11 cards? A whooping 3%.

  • Like 1
  • Confused 1
Link to comment
Share on other sites

About DX12 Microsoft is very good at maintain legacy compatibility(unlike the google). even new functions they have tech to absence of some functions dont cause "fatal error" on older versions. i guess they shouldnt scared to try DX12.. the only compatibility issue i have with microsoft products was win98/XP, my stuff migrate to windows XP dont work on 98 anymore..... but from windows, 7 to 8 and far beyond, i had no issues....

Link to comment
Share on other sites

59 minutes ago, Smoosh.2718 said:

I'm surprised we havent got one of those bots saying 'Id rather they spent their resources on something else' in this topic :V.

 

But good move to upgrade the engine. I honestly cant stand how jumpy the game is now.

 

Kinda hard to do when it is Anet them self saying they are spending money on said feature.

  • Like 2
  • Haha 1
Link to comment
Share on other sites

One of the things I been hoping for to come with next xpan. I play 14,000 different games a day and often 2 at same time and this one runs the worst.

 

Other thing I crave is some UI improvement and customization options. Can't even increase my text size without making entire UI bigger.

Link to comment
Share on other sites

34 minutes ago, vinterberg.2783 said:

You're linking articles from 2015/2017, with synthetic benchmarks that measures millions of drawcalls per second - that's not at all what GW2 is putting out, I'd be surprised if the drawcall amount is more than a few thousand max.

An engine is alot(!) more than merely drawcalls, especially in a MMO 🙂

ANet can do alot to utilise multithreading besides rendering, and if they do it properly, more than four cores might very well be an advantage! Like, if they just put asset loading into a seperate thread we wouldn't see that severe frame hitching in cities like Lions Arch (if you turn your camera around fast) when the current engine needs to load stuff from data files, which I suspect is done from the main thread now.

DX11 also allows for much bigger shaders in size and complexity, which can very well help ANet shift a great slice of the animation system onto the GPU instead of doing most of it on the CPU as you have to do with DX9 because of shader limitations. You suddenly also get compute shaders and such, which can greatly enhance the lighting and again, take alot of the burden off the CPU. With a lightning system such as tilebased deferred lighting you can use compute shaders to build a list of which lights to render where, and use the GPU to render them all - very little CPU work needed inbetween the steps.


You can also look at FFXIV and WoW's engine updates (or even something that isn't a MMORPG such as League of Legends). Neither scale very well beyond 4 cores while they scale perfectly fine with clockspeed (i.e. single threaded performance).

See article here https://rk.edu.pl/en/analyzing-world-warcraft-multi-core-scaling/

They already do offload things onto different threads so it's not going to be DX9 to DX11 that provides the greatest gains, it's been mentioned by Arenanet devs in the past.

Source: https://old.reddit.com/r/Guildwars2/comments/3ajnso/bad_optimalization_in_gw2/csdnn3n/
 

Quote

 

Which brings us to GW2. GW2 does a lot of processing, and much of it is done on the main thread. That is also where its bottleneck tends to be: The main thread. There are conscious efforts in moving things off the main thread and onto other threads (every now and then a patch goes out that does just this), but due to how multi-threading works it's a non-trivial thing that take a lot of effort to do. In a perfect world, we could say "Hey main thread, give the other threads some stuff to do if you're too busy", but sadly this is not that world.

As for DX9 and 32bit: Moving off of DX9 wouldn't buy us a whole lot performance wise, as all interaction with DirectX is happening on the render thread, which is generally not the bottleneck. Moving from 32-bit to 64-bit also does not really buy us a lot performance-wise. There are some optimizations the compiler is able to do with 64-bit that it can't do otherwise, but the actual FPS gain is minimal at best.

 


The largest improvement with the 64 client was the removal of the 4GB RAM+ VRAM limit. If you paid attention to their presentations at game developers' conference they stated that it introduced new problems on the backend because instead of crashing when a memory limit was exceeded you ended up with a slow down due to paging. (https://www.gdcvault.com/play/1018078/Guild-Wars-2-Scaling-from , https://www.gdcvault.com/play/1024018/-Guild-Wars-Microservices-and  ,  https://www.gdcvault.com/play/1016640/Guild-Wars-2-Programming-the  )

Have you used d912pxy or dxvk? Some things "hitch" even when the graphics API is changed. I would temper your expectations.

----

@ XenoSpyro

Actually you need something with GCN on AMD (1st gen GCN is 11_1 feature level for DX12) or Kepler or newer on Nvidia (Fermi doesn't get driver updates and doesn't support any DX12 features because the feature level is 11_0 ). That's not even  mentioning anyone on Intel IGPUs that are barely above min spec. It doesn't affect me but it's something to be aware of.

https://docs.microsoft.com/en-us/windows/win32/direct3d11/overviews-direct3d-11-devices-downlevel-intro

1 hour ago, XenoSpyro.1780 said:

I'd really love to know how Anet knows this. I've never been polled, emailed, or taken a survey about specs like Steam has had me do.

Also you'd have to own something older than a 400 series Geforce to not have D12. I would be very surprised if all of the supposed "I get 12 FPS at wayfarer meta" are all still running 8800s.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...