Jump to content
  • Sign Up

DX11 update nice, but DX11+dxvk even better


blppt.6042

Recommended Posts

While I agree that the DX11 is noticably better than the DX9 mode (especially on Nvidia), I've found that using DX11 mode and the appropriate DXVK wrapper is even smoother than just DX11 on AMD cards (zergs in WvW). Which leads me to wonder why ANET didn't just re-code the engine for the more advanced and current Vulkan (which is supported in just about everything other than stupid Apple, which has MoltenVK as a workaround) in the first place?

 

Maybe the code rewrite was started before Mantle/DX12/Vulkan became a thing?

 

I'm not trying to sound ungrateful; I hugely applaud the effort and noticable gains from moving to DX11, but it just seems curious to me that in 2021 a major graphics API update wouldn't be Vulkan or DX12 (DX12 at least has the excuse of being Windows/Xbox-only).

 

(BTW, I'm a greedy person running with eye candy on in WvW (no add-ons though), so maybe almost nobody besides me pushes DX11 to its limit).

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

Thanks for the link. I guess my issue is with this:

 

"We chose to use DirectX11 instead of DirectX12 or Vulkan because we found that switching to BGFX’s DirectX11 implementation provided enough of a performance boost that the graphics backend was no longer ever a limiting factor for client performance."

 

 

I have to wonder if their testing ever extended to WvW with normal sized zerg battles, because there is definitely a noticeable difference in framerates to me using the wrapper+DX11 than just using DX11. At least on AMD cards---which have never been as good as Nvidia at DX11 optimization (apparently due to their architecture, which is why Mantle (Vulkan) was originally developed).

 

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

There was a streamer called Summit that did streams and when people told him to reduce character limits to get decent frames he was baffled as to how that was a solution because people were disappearing right ahead of him. It just isn't normal in a game to be so limited like that to get decent performance. Something really needs to be done. It only gets worse each year. DX11 did not fix it. Anet should at least give us a clear roadmap on what is being done for performance like ZoS started doing for ESO a couple of years ago.

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

i'll be honest, i'd MUCH prefer DX12, because of even better multithreading performance and raytracing, which gives better lighting, shadows, and reflections at a better performance for those 3 things. plus DX12 can use multiple GPU setups without the need for SLI or crossfire bridges, since SLI and crossfire aren't really a thing anymore. (Nvidia abandoned SLI tech for the newest generation of GPUs, except for the RTX 3090)

 

BUT: the steam hardware survey says that windows 10 is used by about 90% of users, windows 11 is less than 2%, so there's still about 9% of users still using older forms of Windows or MAC operating systems. when you consider that the estimated steam user base is over 125 million people (monthly active userbase), you can extrapolate that 11 million active gamers or more use older operating systems. that's almost as many as the total existing GW2 player-base.

 

so it's easy to see why ANET chose DX11... they know better there own survey results than we ever could. so, even though i use windows 11 and have a DX12 Ultimate ready premium gaming PC (according to 3DMARK), i have guildmates that still use windows 7 (according to them in discord voice-chat). i don't want to see them left behind in the performance upgrades of GW2. besides, i see a very significant framerate performance increase on my PC of at least 25%. on a new CPU. i know some guildmates are seeing at least 10% on older CPUs, too. my 8 year old i7-4930K saw 20% increases or more (it was a 6 core/ 12 thread gen 4 intel extreme chip)

 

more info on that increase... in WvW running in a 40-50 player zerg, while fighting another zerg of 40-50 players, i saw 40ish fps on DX9, 50+ fps on DX11... (40 + 10(25% of 40) = 50) and while roaming solo, i'd see maybe 150 fps on DX9 while going up to 250 fps in the same spot. (150 +37.5 (25% of 150) = 187.5).  i run at 2560x1600 2k resolution ( half a percent of steam users) instead of the more popular 1920x1080p (1K) resolution (66.5% of steam users)

 

PS: DX11 client loads noticeably faster, too

 

my specs are Ryzen9 5900x (12core / 24 thread), ROG Maximus 8 Extreme motherboard,  32 GB G.Skill 3600 16-16-16-36-1T RAM, 1T samsung 980 pro m.2 NVMe SSD, 2- RTX 2070 Super GPUs in NvLink SLI, Dell 30 inch 2560x1600 monitor. that's the important stuff for performance. cooled by a 360 AIO, so the CPU boosts up to 4900 MHz while gaming. (i don't feel like overclocking the CPU, because i also don't feel like building a custom watercooling loop of 3 420 radiators., even though my case could hold 3 420s and a 560)

Edited by Forgotten Legend.9281
  • Like 2
  • Thanks 2
  • Sad 1
Link to comment
Share on other sites

6 hours ago, Redfeather.6401 said:

There was a streamer called Summit that did streams and when people told him to reduce character limits to get decent frames he was baffled as to how that was a solution because people were disappearing right ahead of him. It just isn't normal in a game to be so limited like that to get decent performance. Something really needs to be done. It only gets worse each year. DX11 did not fix it. Anet should at least give us a clear roadmap on what is being done for performance like ZoS started doing for ESO a couple of years ago.

Have you ever played BDO? That game is eye candy but draw distance is nothing like GW2, and this stinks on their end. If you want to compromise on draw distance then yes you can even play with highest character model limits but nothing 5 yards and further will be ever be rendered to maintain performance.  I prefer lower char limits over lower draw distance and this is what Anet also prefers.

  • Sad 1
Link to comment
Share on other sites

Oh yes, BDO and draw distance. My God, that was horrendous. That's why I thought there was something wrong with my setup----people were saying "BEST GRAPHICS in an MMO EVER OMG" and i remember laughing at the pathetic draw distance. It absolutely kills the immersion.

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

7 hours ago, blppt.6042 said:

Oh yes, BDO and draw distance. My God, that was horrendous. That's why I thought there was something wrong with my setup----people were saying "BEST GRAPHICS in an MMO EVER OMG" and i remember laughing at the pathetic draw distance. It absolutely kills the immersion.

Looks awesome in screenshots but horribly jarring when you're actually playing. The pop-in is horrific. 

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

1 hour ago, kanemi.4903 said:

Not only you but me included n the entire linux community have been running dxvk all this time.
And with this 'crash fest' happening, i'm not even using arcdps anymore.

And yeah, I truly wish they use vulkan instead of this.

 

I'm actually referring to using dxvk on windows, but yes, I have used it in Ubuntu too.

 

Its funny to me that a *wrapper* designed for wine running on another OS is better than the native DX11 rebuild (at least on AMD cards)..

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

On 11/13/2021 at 12:01 PM, blppt.6042 said:

 

I'm actually referring to using dxvk on windows, but yes, I have used it in Ubuntu too.

 

Its funny to me that a *wrapper* designed for wine running on another OS is better than the native DX11 rebuild (at least on AMD cards)..

I'm not sure about dx12, but sure as hell vulkan is way better than anything dx11/9 related.
and aside from the OS, as far as i know vulkan works on everything., even on MAC (MoltenVK).

 

Link to comment
Share on other sites

On 11/12/2021 at 5:09 PM, Inculpatus cedo.9234 said:

Specifically:

Quote

The current DirectX9 renderer hasn’t been altered in any significant way. One of the philosophies I had as I built this was to have the DirectX11 renderer look the same as DirectX9. If I was making changes to both at the same time, there would be no ground truth to how things are supposed to look.

In fact, if you observe the way assets still pop in and are loaded, as well as the fact that the game has to be relaunched to perform the renderer shift, this appears to be because there IS NOT a separate rendering or IO pipeline whatsoever.  The frame diagnostic images later in the post make this more evident based on the bursts of activity that can be observed.

Essentially:  nothing about the GW2 renderer has been changed, and it still runs as a single-threaded, single-context loop, despite dispatching to DX11.

While this is only a hypothesis -- and I do want to make that clear -- I'm relatively certain that the only thing which occurs is a change of some init-time flag which tells the BGFX library which runtime to initialize and run.  It is, quite simply, an intermediary or "proxy" in the same way that WINE on linux is (or DXVK, as OP points out); a DirectX command is intercepted, recompiled, and dispatched to the requested rendering backend (from DX9 to DX11, in this case, much like MSWindows to Linux in WINE), while using various internal mechanisms created by the library for managing and nominally optimizing graphics state.

This makes sense from an enterprise project management and software development standpoint, because it would not require having to completely redevelop the internals of the GW2 client from the ground up, which would be required in natively adopting DX11, adding the requisite multi-context support (the entire reason of adopting the newer version), and, moreover, being able to fully exploit multi-core hosts.  James Fulop says as much himself in the third line of that quote up there -- if they had fundamentally changed the client to support parallel IO and asset loading (or multiple rendering threads which synchronize against the graphics device when a new frame is presented), there would have been no quantifiable way to ascertain the level of improvement.

Or, put simply, you've eliminated the baseline by using an entirely different solution, even though the entire point appears to be improving framerates and reducing rendering execution overhead ... you know, the entire point of using the more modern DX11 backend.

So what we've really gotten until DX9 is phased out, BGFX is deprecated for native DX11, and the GW2 client is rewritten to actually make use of the new functionality is, quite simply, a big cop-out.

Edited by fluffdragon.1523
  • Like 2
  • Confused 3
Link to comment
Share on other sites

Its pretty simple. Go to this site: 

 

https://github.com/Sporif/dxvk-async/releases

 

Download the tar.gz at the top. Open it with 7zip, winrar, whatever.

 

Go to the x64 folder, copy both d3d11 and dxgi dlls to your gw2 directory (not the bin64 directory as with d912pxy), then run. Make sure your client is in dx11 mode per the graphics setting menu. If not, click it and restart.

Link to comment
Share on other sites

"So what we've really gotten until DX9 is phased out, BGFX is deprecated for native DX11, and the GW2 client is rewritten to actually make use of the new functionality is, quite simply, a big cop-out."

 

I mean, running in dx11 mode and using dxvk runs better than just using dx9 mode and dxvk, so some progress has been made. It might have to do with dxvk being better at wrapping dx11 apis than dx9.

Link to comment
Share on other sites

I tried using dxvk with dx11 and the game started to stutter A LOT in Lion`s Arch. The FPS was good while stading still but would crank when I started walking, maybe that is not true in WvW as I did not go there to test it.

 

I currently have a 5700XT Ryzen 7 3800x and 32GB 3200MHZ running the game with an m2 ssd. Pure DX11 however, there was no stutter whatsoever, but got lower framerates.

Link to comment
Share on other sites

4 hours ago, aluisiora.4568 said:

I tried using dxvk with dx11 and the game started to stutter A LOT in Lion`s Arch. The FPS was good while stading still but would crank when I started walking, maybe that is not true in WvW as I did not go there to test it.

 

I currently have a 5700XT Ryzen 7 3800x and 32GB 3200MHZ running the game with an m2 ssd. Pure DX11 however, there was no stutter whatsoever, but got lower framerates.

 

I also have the 5700xt with an i7-9700k and 32GB of RAM.  I also got stutter when I tried to use DXVK.  I also got some other issues like:

 

- My weapon would disappear and reappear while fighting, like every other second or so the weapon would appear or disappear..  This was just a visual bug though.

- I was getting geopmetry issues, like all of the sudden this long triangle spike looking things would come out of the geometry.

- Then of course the stutter

 

So I removed DXVK and all is well again.

Link to comment
Share on other sites

Bear in mind that DXVK has to build a shader cache before the stutter disappears. Its a one-time thing.

 

I'm using a 5950X and 6900XT, so the shader compiling probably takes a shorter time for me (cpu dependent), but I've had no issues with stutter in WvW at all, even at 4k with shadows at medium in large zergs.

 

I turned down the last two settings to "Medium", but i've always run it that way, DX9, DX11 or DX11+DXVK.

 

There are additional settings you have to do in "Environment Values" in Windows that turns off DXVK logging, which supposedly helps. Not sure if you want to mess around with it.

 

DXVK_HUD with a value of 0

and

DXVK_LOG_LEVEL with a value of none.

 

(located in system/advanced system settings/environment variables) add two values to the bottom box labeled as above)

  • Like 1
Link to comment
Share on other sites

On 11/14/2021 at 6:20 PM, fluffdragon.1523 said:

While this is only a hypothesis -- and I do want to make that clear -- I'm relatively certain that the only thing which occurs is a change of some init-time flag which tells the BGFX library which runtime to initialize and run.  It is, quite simply, an intermediary or "proxy" in the same way that WINE on linux is (or DXVK, as OP points out); a DirectX command is intercepted, recompiled, and dispatched to the requested rendering backend (from DX9 to DX11, in this case, much like MSWindows to Linux in WINE), while using various internal mechanisms created by the library for managing and nominally optimizing graphics state.

Not really. There are some pretty significant changes between DX9 and DX11, and its a lot more involved than setting a flag to "use DX11" and not change anything else.

 

Also, you misread his statement about not changing the renderer. He specifically said they aren't making significant changes to the current renderer, which is on DX9. The new one is still a single thread, but the performance improvement was large enough that they didn't need to go through the effort of making it multithreaded.

 

As time goes on, they're going to keep updating the new renderer to be even more performant as they are able to make larger changes to how it works after they are confident that its visually identical to the current one (which was their primary goal, to keep GW2 looking the same as it has for the past 9 years).

 

 

Quote

I'm not trying to sound ungrateful; I hugely applaud the effort and noticable gains from moving to DX11, but it just seems curious to me that in 2021 a major graphics API update wouldn't be Vulkan or DX12 (DX12 at least has the excuse of being Windows/Xbox-only).

DX12 would mean that anyone on windows 7 would no longer be able to play GW2 (once the old renderer is retired), which is still a sizeable number of people. Vulkan is also significantly more work to port to since its a fundamentally different architecture for doing graphics than DX is. Its a lot more work, would mean that they can support fewer platforms, and the benefits of switching to it don't justify the extra cost of implementing it

  • Thanks 2
Link to comment
Share on other sites

  • 2 weeks later...
On 11/15/2021 at 11:02 PM, blppt.6042 said:

Its pretty simple. Go to this site: 

 

https://github.com/Sporif/dxvk-async/releases

 

Download the tar.gz at the top. Open it with 7zip, winrar, whatever.

 

Go to the x64 folder, copy both d3d11 and dxgi dlls to your gw2 directory (not the bin64 directory as with d912pxy), then run. Make sure your client is in dx11 mode per the graphics setting menu. If not, click it and restart.

But my question is:
If you use dx11 with vulkan you'll not be able to run arcdps?
And explain to me why would u run dx11 while you can run vulkan?

Link to comment
Share on other sites

  • 2 weeks later...
On 11/16/2021 at 10:48 PM, blppt.6042 said:

Bear in mind that DXVK has to build a shader cache before the stutter disappears. Its a one-time thing.

 

I'm using a 5950X and 6900XT, so the shader compiling probably takes a shorter time for me (cpu dependent), but I've had no issues with stutter in WvW at all, even at 4k with shadows at medium in large zergs.

 

I turned down the last two settings to "Medium", but i've always run it that way, DX9, DX11 or DX11+DXVK.

 

There are additional settings you have to do in "Environment Values" in Windows that turns off DXVK logging, which supposedly helps. Not sure if you want to mess around with it.

 

DXVK_HUD with a value of 0

and

DXVK_LOG_LEVEL with a value of none.

 

(located in system/advanced system settings/environment variables) add two values to the bottom box labeled as above)

Hi why do you set the HUD to  0. Isn’t it a good way to show that it works ? 
 

also what does the logging variable do normally ?

lastly how is the performance lately . Is dx11 more stable now ? 
thanks 

Link to comment
Share on other sites

On 11/26/2021 at 3:18 PM, kanemi.4903 said:

But my question is:
If you use dx11 with vulkan you'll not be able to run arcdps?
And explain to me why would u run dx11 while you can run vulkan?

 

I don't run arcdps, so I couldn't tell you if it works or not.

 

Honestly, my reflexes are so bad that any information ArcDPS gives to me is practically useless due to my poor fighting skills to begin with, lol.

 

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