Jump to content
  • Sign Up

Gw2 DX12pxy needs to be implemented directly


Recommended Posts

@"Joote.4081" said:Windows 7? What's that?Joking apart DX9, 10,11,12 are optional in a great deal of games. So it can be optional. What engine does GW2 use? If it's a in-house home grown engine then that could be why it can't move forward.

According to Wikipedia, "Guild Wars 2 uses a heavily modified version of the proprietary game engine developed for Guild Wars by ArenaNet"....I honestly can't imagine them implementing native DX12 support in GW2 but one can always hope I guess.

Link to comment
Share on other sites

@Pacificterror.7805 said:

@"Joote.4081" said:Windows 7? What's that?Joking apart DX9, 10,11,12 are optional in a great deal of games. So it can be optional. What engine does GW2 use? If it's a in-house home grown engine then that could be why it can't move forward.

According to Wikipedia, "Guild Wars 2 uses a heavily modified version of the proprietary game engine developed for Guild Wars by ArenaNet"....I honestly can't imagine them implementing native DX12 support in GW2 but one can always hope I guess.

any game engine can be modified/upgraded to support newer graphics APIs.

look at Path of Exile / GGG, for example they went from dx9 → dx11 → vulkan the engine initially didn't support vulkan when it launched but they added it in years down the line :)

it's just a matter of whether the dev/studio, in this case ArenaNet for GW2 is willing to upgrade, future-proof and optimize their game for newer hardware -- which they don't seem to think it's worth it whilst other rpgs/mmorpgs and devs/studios (big or small) do

Link to comment
Share on other sites

Recently,Rockstar gave a guy ( Not related or working for Rockstar,that started out as a random Mod people could download - link below) 10k$ for making a fix that massively reduced loading times in Grand theft auto online. And Rockstar actually implemented his fix. Anet should follow suit. Because the Dx12 mod makes such a massive difference i cannot see myself playing without it anymore. Anet should,if they havent done already so,test this themselves and see the massive difference and just get in contact with the guy. It doesnt even have to be full Dx12 that improves visuals,i think at this point people only want better performance.

https://www.forbes.com/sites/paultassi/2021/03/17/gta-5-pays-10000-to-modder-who-fixed-gta-online-load-times/

Link to comment
Share on other sites

@Astyrah.4015 said:look at Path of Exile / GGG, for example they went from dx9 → dx11 → vulkan the engine initially didn't support vulkan when it launched but they added it in years down the line :)

it's just a matter of whether the dev/studio, in this case ArenaNet for GW2 is willing to upgrade, future-proof and optimize their game for newer hardware -- which they don't seem to think it's worth it whilst other rpgs/mmorpgs and devs/studios (big or small) do

Oh I'm not trying to say they can't, I'm just saying I wouldn't hold my breath at this point. It would be great, but looking at the state of other things in this game and the community being willing to accept it I'd more say that I'd expect it to happen in their next title.

Link to comment
Share on other sites

@Pacificterror.7805 said:

@"Joote.4081" said:Windows 7? What's that?Joking apart DX9, 10,11,12 are optional in a great deal of games. So it can be optional. What engine does GW2 use? If it's a in-house home grown engine then that could be why it can't move forward.

According to Wikipedia, "Guild Wars 2 uses a heavily modified version of the proprietary game engine developed for Guild Wars by ArenaNet"....I honestly can't imagine them implementing native DX12 support in GW2 but one can always hope I guess.

That it does and they already had to sacrifice some things from it to get other things in GW2 and often run into issue because the engine is close to 20 years old and there's not many still at the company who are familiar with the original GW1 code. GW2 actually came about because the engine wouldn't let them do what they wanted in GW1. (Also it was the company's first engine so you just know there was tons of mistakes in it to begin with simply due to the lack of experience)

A dev has even said that upgrading to DX12 would be a massive undertaking and the positive impact would be minimal because the main issue is where GW2 processes things and that is the bottleneck and changing the DirectX won't do much because DirectX largely utilizes a different thread for its processing.

Excerpt:

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.

TLDR: The engine is ancient and designed to work with tech that tops out at potato computer nowadays and it literally cannot make use of current tech.

Link to comment
Share on other sites

@"Zephire.8049" said:TLDR: The engine is ancient and designed to work with tech that tops out at potato computer nowadays and it literally cannot make use of current tech.

and yet you have people (not all) with the proper hardware that can play gw2 almost as if it's running natively in linux using wine + dxvk and in some cases and hardware configurations (amd cpu+ amd gpu), on par or a faster than playing it on windows

(that's a lot of overhead too, compared to say, just running d912pxy on windows)

"upgrading the engine" doesn't just mean changing the graphics renderer to a different one and calling it a day, it also means making your game much more multi-threading friendly to make better utilization of modern CPUs. WoW did it, Path of Exile did it, and a korean mmorpg that's barely alive with it's population: Tree of Savior also did it. just to name a few examples, all of them use custom made engines not something ready-to-use like UE3/UE4 -- and for the record, WoW's engine is ancient too.

it's just that it seems GW2/Arenanet doesn't even want to try. d912pxy and (linux)wine+dxvk has shown that with the right hardware, there's a lot of performance to be gained over the vanilla client we have now. performance gains also don't pertain to just huge increases in FPS, it can also be less FPS drops (higher floor) and more stable average FPS, less stuttering

and no before someone else says it, even with an upgraded engine there's no reason to immediately cut-off people with older OS/hardware setups that can't utilize new tech. many games offer old/legacy api and client builds for people who can't use the new tech. (ex. WoW offering dx11 while also having dx12 in it's options)

Link to comment
Share on other sites

@"Dravvi.3146" said:This patch has seriously helped tons of players play the game due to the game being absolute garbage performance without it, especially on newer systems. My AMD system cannot play gw2 without consistent stuttering without it.

"Consistent stuttering" makes it sound like there's a graphic card (or PSU) issue in your system. Even my budget AMD laptop (Lenovo IdeaPad S145) runs the game decently without any stuttering.

Link to comment
Share on other sites

@"Zephire.8049" said:A dev has even said that upgrading to DX12 would be a massive undertaking and the positive impact would be minimal because the main issue is where GW2 processes things and that is the bottleneck and changing the DirectX won't do much because DirectX largely utilizes a different thread for its processing.

dx12py tells us otherwise. Yes, implementing something like dx12py wouldn't solve ALL the issues, maybe not even help at the most serious of situations, but it does indeed help with a lot others. So not implementing a solution that can help in a wide range of situations, because "it won't do much" for the situations where the main thread is the issue, is a bit odd.

Link to comment
Share on other sites

@"kharmin.7683" said:Perhaps you're new here (only 2 stars on your avatar)? Topic has been discussed in multiple threads. Please use the forums search function.

Here's one from a year ago: https://en-forum.guildwars2.com/discussion/75200/when-will-this-game-update-engine-to-dx12

Checking the topic title, this isn't a thread asking for dx12 implementation, but rather to put something that is already available, working and indeed helping (dx12py) into the game itself. So it doesn't break and require a patch everytime there is new content released. Can't find this topic in that thread you posted, maybe you can use the forums search function to find this topic instead of posting an irrelevant one.

Link to comment
Share on other sites

@Astyrah.4015 said:

@"Zephire.8049" said:TLDR: The engine is ancient and designed to work with tech that tops out at potato computer nowadays and it literally cannot make use of current tech.

and yet you have people (not all) with the proper hardware that can play gw2 almost as if it's running natively in linux using wine + dxvk and in some cases and hardware configurations (amd cpu+ amd gpu), on par or a faster than playing it on windows

(that's a lot of overhead too, compared to say, just running d912pxy on windows)

"upgrading the engine" doesn't just mean changing the graphics renderer to a different one and calling it a day, it also means making your game much more multi-threading friendly to make better utilization of modern CPUs. WoW did it, Path of Exile did it, and a korean mmorpg that's barely alive with it's population: Tree of Savior also did it. just to name a few examples, all of them use custom made engines not something ready-to-use like UE3/UE4 -- and for the record, WoW's engine is ancient too.

it's just that it seems GW2/Arenanet doesn't even want to try. d912pxy and (linux)wine+dxvk has shown that with the right hardware, there's a lot of performance to be gained over the vanilla client we have now. performance gains also don't pertain to just huge increases in FPS, it can also be less FPS drops (higher floor) and more stable average FPS, less stuttering

and no before someone else says it, even with an upgraded engine there's no reason to immediately cut-off people with older OS/hardware setups that can't utilize new tech. many games offer old/legacy api and client builds for people who can't use the new tech. (ex. WoW offering dx11 while also having dx12 in it's options)

Not sure why you think I don't want an engine upgrade—that's actually something I've been talking about the game needing for years. The OP was specifically talking about upgrading the graphics only, though, which would be about the same amount of work for a fraction of the benefit. If you upgrade the whole engine, you can pull out a bunch of the spaghetti and make it more modular, dev-friendly, and future-proof it. If you just upgrade the graphics side of things, you're still beholden to an engine that's older than some people playing it and having to work within those confines.

@maddoctor.2738 said:

@"Zephire.8049" said:
that upgrading to DX12 would be a massive undertaking and the positive impact would be minimal because the main issue is where GW2 processes things and
that
is the bottleneck and changing the DirectX won't do much because DirectX largely utilizes a different thread for its processing.

dx12py tells us otherwise. Yes, implementing something like dx12py wouldn't solve ALL the issues, maybe not even help at the most serious of situations, but it does indeed help with a lot others. So not implementing a solution that can help in a wide range of situations, because "it won't do much" for the situations where the main thread is the issue, is a bit odd.No doubt that the engine has issues, but see above: Instead of just doing one thing that not everyone will benefit from, overhaul the entire engine itself if it will be about the same amount of work. Everyone will benefit from streamlined processing that actually works on current tech but not everyone can even run DX12. And who's to say they couldn't update the DirectX at the same time (or make space for that update to be added easily in the future)?

And I was just summing up what the dev said with "it won't do much", so if you think it's odd to say you're better off talking to them since they have hands-on experience with the engine.

Link to comment
Share on other sites

@Zephire.8049 said:If you upgrade the whole engine, you can pull out a bunch of the spaghetti and make it more modular, dev-friendly, and future-proof it. If you just upgrade the graphics side of things, you're still beholden to an engine that's older than some people playing it and having to work within those confines.

very well said.

@Zephire.8049 said:Not sure why you think I don't want an engine upgrade—that's actually something I've been talking about the game needing for years. The OP was specifically talking about upgrading the graphics only, though, which would be about the same amount of work for a fraction of the benefit.

yeah i misunderstood a bit, sorry about that.

it's just that when stuff like improving game performance in any way (which honestly can also be classed as a big QoL update) is being suggested/talked about, some people here are immediately negative about it -- when it's something that would benefit all users and never a negative impact on any (at worst a player with extremely obsolete hardware will see no gains)

Link to comment
Share on other sites

@Zephire.8049 said:

@Zephire.8049 said:TLDR: The engine is ancient and designed to work with tech that tops out at potato computer nowadays and it literally cannot make use of current tech.

and yet you have people (not all) with the proper hardware that can play gw2 almost as if it's running natively in linux using wine + dxvk and in some cases and hardware configurations (amd cpu+ amd gpu), on par or a faster than playing it on windows

(that's a lot of overhead too, compared to say, just running d912pxy on windows)

"upgrading the engine" doesn't just mean changing the graphics renderer to a different one and calling it a day, it also means making your game much more multi-threading friendly to make better utilization of modern CPUs. WoW did it, Path of Exile did it, and a korean mmorpg that's barely alive with it's population: Tree of Savior also did it. just to name a few examples, all of them use custom made engines not something ready-to-use like UE3/UE4 -- and for the record, WoW's engine is ancient too.

it's just that it seems GW2/Arenanet doesn't even want to try. d912pxy and (linux)wine+dxvk has shown that with the right hardware, there's a lot of performance to be gained over the vanilla client we have now. performance gains also don't pertain to just huge increases in FPS, it can also be less FPS drops (higher floor) and more stable average FPS, less stuttering

and no before someone else says it, even with an upgraded engine there's no reason to immediately cut-off people with older OS/hardware setups that can't utilize new tech. many games offer old/legacy api and client builds for people who can't use the new tech. (ex. WoW offering dx11 while also having dx12 in it's options)

Not sure why you think I don't want an engine upgrade—that's actually something I've been talking about the game needing for years. The OP was specifically talking about upgrading the graphics only, though, which would be about the same amount of work for a fraction of the benefit. If you upgrade the whole engine, you can pull out a bunch of the spaghetti and make it more modular, dev-friendly, and future-proof it. If you just upgrade the graphics side of things, you're still beholden to an engine that's older than some people playing it and having to work within those confines.

that upgrading to DX12 would be a massive undertaking and the positive impact would be minimal because the main issue is where GW2 processes things and
that
is the bottleneck and changing the DirectX won't do much because DirectX largely utilizes a different thread for its processing.

dx12py tells us otherwise. Yes, implementing something like dx12py wouldn't solve ALL the issues, maybe not even help at the most serious of situations, but it does indeed help with a lot others. So not implementing a solution that can help in a wide range of situations, because "it won't do much" for the situations where the main thread is the issue, is a bit odd.No doubt that the engine has issues, but see above: Instead of just doing one thing that not everyone will benefit from, overhaul the entire engine itself if it will be about the same amount of work. Everyone will benefit from streamlined processing that actually works on current tech but not everyone can even run DX12. And who's to say they couldn't update the DirectX at the same time (or make space for that update to be added easily in the future)?

And I was just summing up what the dev said with "it won't do much", so if you think it's odd to say you're better off talking to them since they have hands-on experience with the engine.

I think you're missing the point about the "same amount of work" bit there - OP is suggesting that ANet permanently and officially implement a proven 3rd-party solution. It already exists and works, so I find it hard to believe implementing d912pxy officially would take anywhere near the level of effort required to do an engine overhaul.

Link to comment
Share on other sites

I tried d912pxy. The performance boost was there, but it created a helluva texture artifacts and glitches in the game. Ended up uninstalling it.

From what I've seen in this forum and reddit I'm not alone, this was fairly commonplace for tons of people

So nope, the current situation is perfect . If somebody wants to install d912pxy, just do it, and if it doesn't work for them, just remove it. Personal choice. Easy peasy.

Forcing it for everyone will just bring more harm than good.

Link to comment
Share on other sites

@"Astyrah.4015" said:it's just that when stuff like improving game performance in any way (which honestly can also be classed as a big QoL update) is being suggested/talked about, some people here are immediately negative about it -- when it's something that would benefit all users and never a negative impact on any (at worst a player with extremely obsolete hardware will see no gains)It's not being negative about improving game performance (which, btw, devs are continuously working on behind the curtains, it's just rarely anyone pays attention to it, because it's being done via small steps here and there, and not through one big "event" with grand-sounding name like "Engine Version Upgrade"). It's a reaction to those that think that the whole engine problem can be "easily solved" by changing DX version. And the reason why the reaction may seem mostly negative is because it's neither easy, not as impactful as the people speaking about it think.

Also, people think that stuff like d912pxy od dxvk can be directly implemented into the game, forgetting that those solutions are a software equivalent of fixing stuff with ducttape and bubblegum. Which is fine for a third-party app, but not fine for something the company would need to be responsible for.

Those solutions work most of the time, vith varying degree of actual improvement. Problem is, sometimes they do not work, and sometimes they actually make stuff worse. In example, with d912pxy enabled i am unable to see a few of the in-game cinematics. They just don't render properly.That's not something that can pass muster in an official release.

Link to comment
Share on other sites

@Astralporing.1957 said:It's not being negative about improving game performance (which, btw, devs are continuously working on behind the curtains, it's just rarely anyone pays attention to it, because it's being done via small steps here and there, and not through one big "event" with grand-sounding name like "Engine Version Upgrade"). It's a reaction to those that think that the whole engine problem can be "easily solved" by changing DX version. And the reason why the reaction may seem mostly negative is because it's neither easy, not as impactful as the people speaking about it think.

an acknowledgement from the devs that they're looking into the performance issues would be nice and encouraging, just like what they did with the server/networking issues. but as it stands, there's no word or anything at all and in the 8 going 9 years running, the only significant upgrade they've done was change the client to 64-bit but only because the memory issues were just blatant and the memory limitations of the 32bit architecture were just bad for the game's demands.

the people who think just changing the directx version might just think like that because they see it in other games that have done it ( like in the case of wow when they updated ) but never really read much about it and thus not know that these games have done much more than just change the graphics api or the "dx version"

@Astralporing.1957 said:Also, people think that stuff like d912pxy od dxvk can be directly implemented into the game, forgetting that those solutions are a software equivalent of fixing stuff with ducttape and bubblegum. Which is fine for a third-party app, but not fine for something the company would need to be responsible for.

d912pxy and to an extent, dxvk will never be the "upgrade" for gw2 because it still introduces an overhead because they are translation layers. this is why i advocate for an engine upgrade and not just stapling d912pxy unto gw2 officially..... cleaning up the game's code, having a modern graphics api run natively, multi-threading and other optimizations may be the only way the game could move forward performance-wise.

@Astralporing.1957 said:Those solutions work most of the time, vith varying degree of actual improvement.

these "solutions" only work if your hardware can utilise it. if a native/official dx12 or vulkan implementation of gw2 were to come out, it would definitely have to include a legacy option (dx9 setting/client) for those with obsolete+aging hardware who can't make use of the new tech. just like every other game that did an engine upgrade.

@Astralporing.1957 said:sometimes they actually make stuff worse. In example, with d912pxy enabled i am unable to see a few of the in-game cinematics. They just don't render properly.

d912pxy suffers from many weird glitches because of the gw2 specific performance hacks they include where it's likely that if you improve upon one thing, a regression may occur somewhere. dxvk does not suffer from this because it targets general-use and translation of directx it is also the reason why whenever a new gw2 update comes out, d912pxy may crash upon boot but dxvk works just fine. but then again dxvk was never intended for Windows OS use so if stuff breaks but works on Linux, you're on your own.

Link to comment
Share on other sites

While anything can be implemented, and some games have both dx9 and dx11 option, don't expect to see dx12 until GuildWars Next/3.DX12 will be a deep overhaul, seeing as Anet won't take the time to touch most anything core/dungeon/old, graphics implementation is another level entirely.If Anet had a person or 2 who regularly optimized/modularized core code I could see them implementing a band aid, but currently selling an expansion is more profitable so they'll capitalize on it.Being a live game you can only imagine the compiler warnings/errors or inactive #if/#else/#ifdef cluttering the code base making older code being hard to read/manage on top of C++ class inheritance being terrible about adding stubbed definitions, and essentially hidden code.

Link to comment
Share on other sites

@Pacificterror.7805 said:

@"Joote.4081" said:Windows 7? What's that?Joking apart DX9, 10,11,12 are optional in a great deal of games. So it can be optional. What engine does GW2 use? If it's a in-house home grown engine then that could be why it can't move forward.

According to Wikipedia, "Guild Wars 2 uses a heavily modified version of the proprietary game engine developed for Guild Wars by ArenaNet"....I honestly can't imagine them implementing native DX12 support in GW2 but one can always hope I guess.

Well, just writing support for a new renderer does not need to be a big thing. Hobbyists even wrote a DirectX 11 renderer for Unreal 1 (1998). A game that originally only had software rendering and 3DFX Glide support (Voodoo graphics) But Unreal always had a plug-in like architecture for renderers. For Unreal 1 now exist most thinkable renderers like Software, Glide, OpenGL, DirectX 6, DirectX 8, DirectX 9, DirectX 10, DirectX 11 and S3 MeTaL.

But having said that, a new renderer will only do so much. Many of the performance bottlenecks in GW2 are CPU based. And that will not change with a new renderer. Still, it would be nice to have DirectX 11, 12 and/or Vulkan support as an option.

Link to comment
Share on other sites

@"Zephire.8049" said:No doubt that the engine has issues, but see above: Instead of just doing one thing that not everyone will benefit from, overhaul the entire engine itself if it will be about the same amount of work. Everyone will benefit from streamlined processing that actually works on current tech but not everyone can even run DX12. And who's to say they couldn't update the DirectX at the same time (or make space for that update to be added easily in the future)?

If you check the game's folder, it has a file called THIRDPARTYSOFTWAREREADME it includes software made by other people, outside Arenanet. Adding one more entry wouldn't hurt. As for upgrading the engine itself, yes that would be the best option, but from what we've seen they don't want to for whatever reason.

And I was just summing up what the dev said with "it won't do much", so if you think it's odd to say you're better off talking to them since they have hands-on experience with the engine.

And I have hands-on experience with the game itself. The developer was talking about the situation when the bottleneck is the main thread, in that case yes of course he is right, moving to DirectX 12 wouldn't help in any way. Do note however that moving to DirectX12 helps (already proven by dx12py in action) in -other- situations when the main thread isn't the bottleneck. Which is why I said I find it weird when someone doesn't implement a clear performance boost, because it won't give more performance everywhere. It's still an undeniable boost.

Link to comment
Share on other sites

@"Astralporing.1957" said:Those solutions work most of the time, vith varying degree of actual improvement. Problem is, sometimes they do not work, and sometimes they actually make stuff worse. In example, with d912pxy enabled i am unable to see a few of the in-game cinematics. They just don't render properly.That's not something that can pass muster in an official release.

That's because those "solutions" are not using actual in-game assets and those that create them have no access to the game's code. If they did, for example if the company itself took those "solutions" and implemented them inside the game, then those issues could be resolved.

Link to comment
Share on other sites

@"Zephire.8049" said:(Also it was the company's first engine so you just know there was tons of mistakes in it to begin with simply due to the lack of experience)

I wouldn't go too far with this. ArenaNet's founders (Wyatt, Strain, O'Brien) had several years' experience at Blizzard working as programmers on StarCraft, Diablo etc., and Wyatt's blog suggested they'd learned a lot of hard lessons about what to do and what not to do from that time. The company itself may have been new but its leaders weren't.Regardless, the GW1 engine was designed in the early 2000s when PCs on the market were all single-core, and it performed the job for which it was originally intended well (GW1 was rock-solid at a time when games rarely were). But then the scope and demands expanded, and it's not a simple task to scale up to multi-core. Some engines have done it (e.g. Unreal), but if your business priorities are always "ship the next expansion/game", major overhauls to the engine are just going to keep getting punted down the road, and the more you build on top of it, the harder it gets to move later on. And so we are where we are now, with a severely single-threaded CPU perf constrained game.

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...