Jump to content
  • Sign Up

Gw2 DX12pxy needs to be implemented directly


Recommended Posts

On 5/31/2021 at 1:40 AM, Arnox.5128 said:

Well, whatever they do, I hope they make improvements for GW2 using the Vulkan API, not DX12. DX12 is exclusive to Windows 10 and that... ****ing OS is a trashfire. And I say this as someone who used to be a big Windows fan. Let's not encourage Microsoft's dominance they have with Windows 10 even more.

ANet isn't going to do additional development for all six people who play GW2 on Linux. ūüėÜ

Go grind your axe somewhere else.

  • Like 1
  • Thanks 1
  • Haha 1
Link to post
Share on other sites
  • Replies 159
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Still shooting down everything I see....what a contribution.   They should implement it. Part of what makes games better is optimization over time. There is a reason WoW switched over. There

At the cost of making the game look very very ugly. Players can make the game look even worse than Guild Wars 1 to have better performance, but is that even worth it on systems that can run the latest

So reducing the quality (and number) of players around doesn't "impact graphics". Good to know. And no, just playing with model limits will never be enough because the game has horrible performance ev

21 hours ago, Ayrilana.1396 said:

Not every option which I was speaking of impacts the graphics.  For example, players can reduce the player model limit to significantly improve FPS. 

So reducing the quality (and number) of players around doesn't "impact graphics". Good to know. And no, just playing with model limits will never be enough because the game has horrible performance even when you are solo inside the home instance or the guild hall where no other players are around.

21 hours ago, Ayrilana.1396 said:

I also made no indication of the size of the undertaking.  That was you alone who injected that into what I said.

You did, let me provide the quote:

Quote

 It isn't cheap to upgrade the game engine and it's clear that Anet doesn't have the excess funds and resources to accomplish a task like that.  

 

You where talking about the upgrade being expensive and Anet being a poor company that doesn't have money or resources to accomplish it.

 

21 hours ago, Ayrilana.1396 said:

They're not implementing something new.  They're revising an existing system.

The engine team has added completely new things and rendering solutions to the engine over the years. From the unique shaders used on the Karka to make them appear "without armor", to the flames of the Wyverns in Heart of Thorns, to the new rendering post processing introduced with Dragonis Mons.

 

My point still stands and anyone with experience in programming (and computers in general) should know that implementing something new can be much easier than trying to fix bugs. So bringing up the argument of (and I quote)

Quote

They can't even fix long standing bugs in the game after all.

As a response to why they can't implement something new (like a new rendering solution) is baseless. It's a different team, with different responsibilities AND it's something new, over fixing something old that is broken. Those two are fundamentally different.

 

21 hours ago, Ayrilana.1396 said:

The performance issues may be a factor but but it's not as large of a one as the poster was making it out to be. 

 

How important performance is gonna be will depend on the person. But given so many new releases plagued with performance issues, that got tanked in reviews, we can speculate, with a very high chance of being accurate, that Guild Wars 2 launching on steam would also tank in reviews, if it launches with this terrible performance. Past launches on Steam tell us that rather clearly.

If you don't see it, or don't follow new game releases that get destroyed when they have absysmal performance is not my fault, nor something I can fix.

  • Like 3
  • Confused 1
Link to post
Share on other sites
5 minutes ago, Infusion.7149 said:

@maddoctor.2738

You seem quite invested in pushing DX12. What specs are you running and have you tried D912pxy or dxvk?
What is your Cinebench R20 single threaded and multithreaded score?

 

I don't want DX12, I used to when I was checking D912pxy. Then I tried DXVK and changed my opinion. DXVK gives both better performance than D912pxy (by a lot) AND doesn't require an update when there is a game patch. This is a bit old thread so we've done discussions like this before.

 

I posted my results earlier about comparing D912pxy and DXVK:

and in a few posts earlier than that comparing them with vanilla Guild Wars 2

 

I did a quick Cinebench R20 test, got

Multicore: 2290 pts

Singlecore: 450 pts

Link to post
Share on other sites

Ah I forgot about that. The reason you have poor performance with native client is AMD's DirectX9 implementation is far worse than Nvidia's. GCN is bad about it because it doesn't get to leverage async compute either when not in DX12 / VK.

Link to post
Share on other sites
49 minutes ago, maddoctor.2738 said:

So reducing the quality (and number) of players around doesn't "impact graphics". Good to know. And no, just playing with model limits will never be enough because the game has horrible performance even when you are solo inside the home instance or the guild hall where no other players are around.

 

Please read what I said and/or not twist what I said.  I said: "Not every option which I was speaking of impacts the graphics.  For example, players can reduce the player model limit to significantly improve FPS".  I'm not sure where you got that I said reducing the quality does impact the graphics nor do I get how you equated the the number of players did.

 

53 minutes ago, maddoctor.2738 said:

You where talking about the upgrade being expensive and Anet being a poor company that doesn't have money or resources to accomplish it.

 

I said that I didn't think they had the excess resources.  I have $5 and a Starbucks drink costs $5.35 so when I say that I don't have the excess resources for it then I'm imply that the Starbucks drink must cost a massive amount according to a previous post of yours?  I simply stated that they didn't have the excess funds/resources.  In no way did I state what the size of the funds would need to be.  That is completely all on you for making up that bit.  Even my post that you quoted as your "proof" doesn't support that claim of yours as you're simply making assumptions.  Please stop.

 

 

 

 

  • Confused 2
Link to post
Share on other sites
19 hours ago, Arnox.5128 said:

 

This is quite objectively false, to be honest. (Not trying to be rude) Perhaps you had an install of 7 that was really old and/or filled with tons of background programs? That will grind 10 down to a crawl just as easily as well. Also, using a 5200 RPM HDD instead of an SSD has a dramatic impact on access times as well.

 

To give you a bit more background on why I say this is objectively false, I have an old laptop with a fresh-installed copy of Windows 7 Professional and even though the laptop only has a Core i5-4200M and 4 GBs of 1600 MHz RAM, it still boots up fast and runs very quick and snappy. I guarantee you if I put Windows 10 Professional on it, it would be a MUCH more different story.

Nope, just an i7 4770k OC, ssd, 16gb ram. And zero bloatware since it was custom built by me. 

  • Like 1
Link to post
Share on other sites

I just want to point out that I've been playing Guild Wars 2 on a Ryzen 7 3700X with 32GB of DDR4 3600 RAM and a GTX 1070. With those specs I was getting 40-60fps at 1440p with dropped frames and in-general jitter. I just tried out DX12pxy and I'm now getting 100-140fps at 1440p. This is a ridiculous improvement! Thanks to the author of this thread, because if I hadn't seen this, I'd still be suffering from vanilla performance. I completely agree, they should totally make a DX12pxy-based client available as an alternative download. 

  • Like 1
Link to post
Share on other sites
Posted (edited)
3 hours ago, wolfsblut.9435 said:

At least they should support the project by sponsoring some dev hours prior each game update so the plugin never breaks on patch day. 

It (d912pxy) doesn't have a full dx9 implementation. They're more likely to get dxvk pseudo-supported with a Steam release as that's the official way to run Windows games on Linux.
dxvk doesn't break with patches , is a proper implementation, works in Linux and Windows 7, and is faster than d912pxy.

Edited by Infusion.7149
Link to post
Share on other sites
Posted (edited)
22 hours ago, phokus.8934 said:

Windows 10 has been proven time after time from a vast majority of people to be faster in its boot startup.

Sure. That's because win10 pushes even more stuff than win7 did to start in background. So, win10 lets you log in faster - but the startup still runs in the background, invisibly. Notice, btw, that it being "invisible" does not mean you can't feel it. If you're not on SDD, you are going to feel it, and it can be very painful.

 

In my work we have a large number of such win10 machines with hdd drives - and each of those boots up longer ("boots up" as in "time from start of boot to the moment when you can start working" instead of "to the moment when you can log in") than older machines with win7. And as for occasional freezes and uneesponsiveness, where you suddenly need to wait for a minute for the system to do something in the background while everything else slows to a standstill, win10 is as capable of it as win 7 was.

 

The illusion of win10 working more smoothly and faster is generally caused by optically (but optically only) faster boot and the fact that many people switched to ssd nowadays, so of course everything is running faster.

 

But my personal pet peeve with win 10 is that it actively limits user choices, and makes a lot of stuff harder to access. and it also assumes you are not smart to make any decisions, so it makes them for you. Even in the case there are controls for that (because it can decide to just ignore choices you already made, and reset those just because it installed an update).

 

I also don't really like what they did with the system graphically, but that is highly subjective (too bad though they did not give users any choice about the ui - but, of course, like i already mentioned, lack of choices seems like a primary theme of this system)

 

 

Edited by Astralporing.1957
  • Like 1
Link to post
Share on other sites
Posted (edited)
On 4/13/2021 at 10:05 AM, maddoctor.2738 said:

 

Sorry for the noob question, how can the signs be removed from the mod? in the game it is just at the top left, where the menu and is very annoying, because it covers it. Or at least make it smaller.

Edited by sergiomasako.2906
Link to post
Share on other sites
On 6/4/2021 at 12:36 PM, Smoosh.2718 said:

Been a while since i even stepped foot into this forum, glad to see it hasnt changed with neigh sayers. 

Say all you want, but GW2 NEEDS an engine update. its only of the few games that runs like crap on top end systems. Its one of the only games where turning the camera fast actually scares me due to the massive drop in FPS.

Do i get this drop in games like Cyberpunk, FFXIV or GTAO? not even once.
 

It makes the game less enjoyable as a result and needs to be changed if this game wants to continue onwards.

Just feel like i need to comment on this statement:

"I don’t feel that Anet has the resources to accomplish something like this."
What gives you this impression? Have you not seen the marketing material that they have wasted money on? Clearly they have the funds but its all spent on the wrong things time and time again. Square Enix fixed a game that had essentually 'failed', it just needs someone with a spine to make it happen.

Im going to have to agree with him. There is no reason to run a game on dx9 in 2021, people are playing on win 10, mac or linux. The vast majority being win 10, and 10 uses dx12, there is no support for that dead horse called 7. Vulkan is doa I had hopes for it but its just fizzled out as the majority of games run dx12. Its a kitten shame to have to turned down a beautiful game to look poorly just to get the performance that would be there natively with an optimization and upgrade.

  • Like 1
Link to post
Share on other sites
On 6/4/2021 at 12:36 PM, Smoosh.2718 said:

Been a while since i even stepped foot into this forum, glad to see it hasnt changed with neigh sayers. 

Say all you want, but GW2 NEEDS an engine update. its only of the few games that runs like crap on top end systems. Its one of the only games where turning the camera fast actually scares me due to the massive drop in FPS.

Do i get this drop in games like Cyberpunk, FFXIV or GTAO? not even once.
 

It makes the game less enjoyable as a result and needs to be changed if this game wants to continue onwards.

Just feel like i need to comment on this statement:

"I don’t feel that Anet has the resources to accomplish something like this."
What gives you this impression? Have you not seen the marketing material that they have wasted money on? Clearly they have the funds but its all spent on the wrong things time and time again. Square Enix fixed a game that had essentually 'failed', it just needs someone with a spine to make it happen.

Im going to have to agree with him. There is no reason to run a game on dx9 in 2021, people are playing on win 10, mac or linux. The vast majority being win 10, and 10 uses dx12, there is no support for that dead horse called 7. Vulkan is doa I had hopes for it but its just fizzled out as the majority of games run dx12. Its a kitten shame to have to turned down a beautiful game to look poorly just to get the performance that would be there natively with an optimization and upgrade. Im sure wvw would appreciate it, so would all the people that spend a lot to look good.

  • Like 1
Link to post
Share on other sites
On 6/5/2021 at 2:55 PM, sergiomasako.2906 said:

Sorry for the noob question, how can the signs be removed from the mod? in the game it is just at the top left, where the menu and is very annoying, because it covers it. Or at least make it smaller.

I don't see a screenshot, but do you mean the DX12pxy popup?  Ctrl + Shift + N, I believe.

Link to post
Share on other sites
On 4/30/2021 at 11:25 PM, Joote.4081 said:

 

Where was this Nvidia option for buffering videos?  I can't seem to find it.

I think they just meant you can turn off the in-game overlay, which does seem to be turned on by default and set to high and a higher framerate than what I allow the game to minimize heating of my CPU. Other than that, I can't find anything more granular in the overlay settings that allows me to turn anything off either, just lower the settings to lessen the impact on my system.

Link to post
Share on other sites

Okay I will try to condense what I know this talk we had a few times until now.

 

Vulcan vs DX12 :?

 

The main issue is when deciding which to use is for what you want to release this game next ?

 

The same goes when you want to make the next MMO GW3 or whatever based on this engine.

 

Vulcan make it easy to develop for Linux and Macs but on the other side it push out the option for Microsoft's Consoles.


Actually it is at this point questionable if Arena.NET does anything of it at least from my PoV

 

How is a native  DX12  app vs  something using DX912pxy?             

         

On the surface both using muli-threaded rendering of DX12 and yes DX912pxy does a lot of unnecessary stuff twice so native is better.

 

But there is more to it in DX9 there is still a lot of math running inside the program CPU mainly what is responsible for rotation and movement by doing this math on a 4x4 matrix . In DX11 and above this done by the  API which use the CPU with AVX2(later) or the graphic card  and not by hand.

(If you are interested you can read this : https://stackoverflow.com/questions/50516302/implementing-rotation-in-2d-texture-on-its-center)

 

Is there a simpler way to increase performance ?

 

Yes because at least from my view point the main problem for Gw2 is the high single core workload which I suspect comes from said calculation above.  You can do this calculation faster with the AvX2 instruction set.  What would be needed multiply CPU commands as one so most of the time you get a big boost in this part of the code because of this

 

(If you are interested you can read this : https://www.codeproject.com/Articles/874396/Crunching-Numbers-with-AVX-and-AVX)

 

Do you need change code for this ?

 

Actually not sure ^^ From what I read some compiler can generate this just by activating the flag for the AVX2 instruction set some maybe need activate the floating point behaviour to fast which is not ideal in every circumstances. basically if this works you see on a smaller resulting runtime blob  .exe. dll or whatever under linux by a few bytes.(or inspect with some tools)  Yeah if this doesn't work you need to change it by hand in the way the article in codeproject starts describing it.

 

Which players have an CPU with AvX2?

 

Avx2 is standard in every desktop CPU since 2014  and it is needed for Windows 10 to run. Arena.NET can also do it like they done it before with the change to the 64-bit version basically people can download it and test it own their own.

 

 

Link to post
Share on other sites

You do know that AVX2 drops clocks on many CPUs because it is more stress right? You're talking about vectorizing when threading and parallelization is more important in this scenario.

On Haswell , AVX2 only has about 30% improvement over SSE and that is assuming it is computation intensive. Even if you look at Intel's developer site it has 5-11% improvement moving to AVX2 when i5-7300U was used https://01.org/blogs/2019/accelerating-android-application-performance-celadon-using-intel-avx2

Also on Ryzen , AVX2 is much slower than on Intel CPUs per core unless it's 3rd gen Ryzen or higher.

The prevailing issue is some things can't be parallelized.

Link to post
Share on other sites
On 6/4/2021 at 2:29 PM, maddoctor.2738 said:

 

I don't want DX12, I used to when I was checking D912pxy. Then I tried DXVK and changed my opinion. DXVK gives both better performance than D912pxy (by a lot) AND doesn't require an update when there is a game patch. This is a bit old thread so we've done discussions like this before.

 

I posted my results earlier about comparing D912pxy and DXVK:

and in a few posts earlier than that comparing them with vanilla Guild Wars 2

 

I did a quick Cinebench R20 test, got

Multicore: 2290 pts

Singlecore: 450 pts

So wait is this for windows or linux? because i thought DXVK didnt work on win10

Link to post
Share on other sites
11 hours ago, Infusion.7149 said:

You do know that AVX2 drops clocks on many CPUs because it is more stress right? You're talking about vectorizing when threading and parallelization is more important in this scenario.

On Haswell , AVX2 only has about 30% improvement over SSE and that is assuming it is computation intensive. Even if you look at Intel's developer site it has 5-11% improvement moving to AVX2 when i5-7300U was used https://01.org/blogs/2019/accelerating-android-application-performance-celadon-using-intel-avx2

Also on Ryzen , AVX2 is much slower than on Intel CPUs per core unless it's 3rd gen Ryzen or higher.

The prevailing issue is some things can't be parallelized.

Well from what I read people have a 7 to 11% performance improvement with AvX2 . As a player I can only say I take it.  The CPU doesn't have 'stress' what it does when executing AvX2 code is switching into another mode which makes normal code executing a bit slower .

Because of this some people do recommend putting all you Avx2 code into an dll so the CPU will switch for and back I don't know if this overhead is just not feasible.

 

Yes parallelization is very important and this part of code we talking about is very good in being parallelized otherwise on DX12 the API couldn't just send the work to the graphic card. It just so when GW engine was programmed they had no idea about mulithreading

 

Well I just remember there is a crude solution for this too.

On very unique feature in Visual Studio is a compiler switch which let you do this automatically for loops. Basically it test if the operations are disjunct tries to  find out how heavy the work load is in the loop and then split the works on threads. You can also say how many threads by :

#pragma loop(hint_parallel(4))

directly over the loop.

 

When somebody implement this they would use a thread-pool to avoid overhead for creating new threads and split the work dynamically into chunks between threads or even avoid threads if the workload is too low. Also it would allow you to give the user a slider how many threads you want and maybe how big those 'chunks' are

 

Let say you are doing it with 4 threads because of overhead you losing 20% performance means x3.2 but with the AvX together you get something like 3.2 * 1.07 = 3.424 and so those 7% from AvX2 becomes suddenly 22%

 

I don't think you will get this good results with just compiler flags more something like 20-50% if it works.

Link to post
Share on other sites
44 minutes ago, Lord of the Fire.6870 said:

Well from what I read people have a 7 to 11% performance improvement with AvX2 . As a player I can only say I take it.  The CPU doesn't have 'stress' what it does when executing AvX2 code is switching into another mode which makes normal code executing a bit slower .

Because of this some people do recommend putting all you Avx2 code into an dll so the CPU will switch for and back I don't know if this overhead is just not feasible.

 

Yes parallelization is very important and this part of code we talking about is very good in being parallelized otherwise on DX12 the API couldn't just send the work to the graphic card. It just so when GW engine was programmed they had no idea about mulithreading

 

Well I just remember there is a crude solution for this too.

On very unique feature in Visual Studio is a compiler switch which let you do this automatically for loops. Basically it test if the operations are disjunct tries to  find out how heavy the work load is in the loop and then split the works on threads. You can also say how many threads by :


#pragma loop(hint_parallel(4))

directly over the loop.

 

When somebody implement this they would use a thread-pool to avoid overhead for creating new threads and split the work dynamically into chunks between threads or even avoid threads if the workload is too low. Also it would allow you to give the user a slider how many threads you want and maybe how big those 'chunks' are

 

Let say you are doing it with 4 threads because of overhead you losing 20% performance means x3.2 but with the AvX together you get something like 3.2 * 1.07 = 3.424 and so those 7% from AvX2 becomes suddenly 22%

 

I don't think you will get this good results with just compiler flags more something like 20-50% if it works.

What I wrote is not hypothetical, you're theorizing 10% per thread when that isn't the case as seen with those applications mentioned in the study which have far more financial resources at their disposal. Anyone that overclocks (Intel or AMD) knows you will hit lower clocks on AVX2 than SSE or AVX. In fact, Intel CPUs stuck on 14nm process are rather bad with this since if your cooling is stock or not water you will drop over 10% of your clocks. That's why we have AVX offsets.

see https://www.techpowerup.com/review/intel-core-i9-9900k/18.html
https://www.techpowerup.com/review/intel-core-i7-10700k/20.html
https://www.techpowerup.com/review/intel-core-i7-11700kf/23.html

You do know that 10% gain for them to implement is basically not worthwhile right? It's 10% total, not per core. Don't conflate threading with vectorization, because your gain is mostly going to come from threading.
A good example is the Last of Us Remaster engine rework: https://www.gdcvault.com/play/1022186/Parallelizing-the-Naughty-Dog-Engine

Threading is something they've been working on for a while but some things are inherently serial in nature. Due to amdahl's law it is highly unlikely to scale well past six cores as a result.

Link to post
Share on other sites
20 minutes ago, Infusion.7149 said:

Anyone that overclocks (Intel or AMD) knows you will hit lower clocks on AVX2 than SSE or AVX. In fact, Intel CPUs stuck on 14nm process are rather bad with this since if your cooling is stock or not water you will drop over 10% of your clocks. That's why we have AVX offsets.

Accurate.

Link to post
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...