Maybe start by naming a particular game. Then tell us whether the problem is CPU performance of GPU performance (is GPU usage 100%?)
In my experience DXVK runs Source games excellently and that's what you'd expect considering most of the DXVK d3d9 code was written by someone with source engine experience.
i currently have screenshots when i tried it with the gtx 1650 but the cpu and gpu usage is not much different from the gtx 960 except that the gtx 960 has much worse performance under both togl and dxvk.
Half-Life 2 steam-legacy build
Windows:
Linux:
Can you take a screenshot of the game using dxvk with its own hud? You can use the env var DXVK_HUD=full
im currently using the gtx 960 as the gtx 1650 isnt mine and was only used for testing.
also, im using windows for this so i hope thats fine for you?
i doubt the results will be any different under linux but i will try later.
Native d3d9:
DXVK (latest) Under Windows:
DXVK (the version that came with the steam_legacy build) Under Windows:
im doing this under wine because using DXVK-Native 2.6.1 for the steam_legacy linux build causes the game to crash with dxvk::DxvkError for some reason.
Half-life 2 steam-legacy build under Wine 10.7 on Arch Linux:
In your screenshots you're GPU bound. I've noticed this and I know that Vulkan takes more advantage of your GPU just like Direct12, meanwhile tho... you're still GPU bound.
If you lowered your resolution, you would get better perfomance on the Linux system than the Windows one. Even tho it seems you're similarly GPU bound in both Scenarios.
TLDR; Lower the Graphics settings and you will get more perfomance because you're GPU bound in a CPU intensive game, your GPU is weak. I got 1100FPS using DXVK with my GTX 1070 and my Ryzen 5 1600, with the GPUs workload not being anything noticable and still being CPU bound.
well i did lower my settings just now and the fps did improve a bit more on the dxvk side but is it possible this overhead can be much lessened?
because if it STILL does reach constant 100% gpu usage even on low settings with certain games then im really out of luck here on linux.
i dont know if i can find any alternatives that does NOT have this performance penalty.
@JohnnYDeveloperAHK That misses the point. The bug report points out that GPU performance is inferior to regular D3D9 on Windows or ToGL.
because if it STILL does reach constant 100% gpu usage even on low settings
100% GPU usage is always the goal when you're not limiting your FPS or using VSync. Anything else means the CPU code is too slow.
That said, I'm just surprised that it also happens on the GTX 1650. IIRC that's one of the cutback Turing models. If it was just slower on the 960, I'd just brush it off as the way DXVK uses Vulkan these days not being optimal for such an old architecture.
i mean i knew that others didnt have this issue but it was just to know why this was happening, i had suspicions that dxvk may have been choking up on something but i may be completely wrong on this.
it might still be a problem but i dont know.
i'd like to mention that TOGL is still pretty terrible under my gtx 960 so i really have no alternatives to this on linux.
also, i accidentally closed this issue so i had to reopen it, sorry for that.
i also want to mention that l4d2 with dxvk seemed to run similar to togl under the gtx 1650 even on proton.
if i remember well, i also tried Half life 2 on wine with dxvk on that too but that was not the same result because i still had much lower fps compared to togl.
maybe certain areas had it on 100% gpu usage and some werent (like in the case for l4d2 maybe).
I'm getting a bit confused here so I'll try to sum it up so far:
The initial set of screenshots (https://github.com/doitsujin/dxvk/issues/4895#issuecomment-2849591749) were done on a GTX 1650. DXVK doesn't manage 100% GPU utilization but ToGL does. This indicates a CPU bottleneck. So something in DXVK takes more time on the CPU than the equivalent thing in ToGL.
The next set of screenshots (https://github.com/doitsujin/dxvk/issues/4895#issuecomment-2850420884) is on the GTX 960. Here the GPU utilization with DXVK is always 100%. The older DXVK version appears to be faster than the current one. I'd brush that off as the newer DXVK not being as friendly towards old the Maxwell architecture as the old DXVK version. That's most likely not something we can fix.
That Windows D3D9 screenshot (https://github.com/doitsujin/dxvk/issues/4895#issuecomment-2850420884) makes no sense to me. That's supposedly running more than twice as fast. Is it possible that was still done on the GTX 1650 instead of the GTX 960?
The initial set of screenshots ([#4895 (comment)](https://github.com/doitsujin/dxvk/issues/4895#issuecomment-2849591749)) were done on a GTX 1650. DXVK doesn't manage 100% GPU utilization but ToGL does. This indicates a CPU bottleneck. So something in DXVK takes more time on the CPU than the equivalent thing in ToGL.
for the windows dxvk one, i had to use an older version (1.10.3) because nvidia drivers under windows 7 x64 does not have vulkan 1.3 support.
i was doing this on a test hdd thats 5400 rpm and i just didnt want to endure the slow loading times with win10 on that for the time being.
the rest of the windows screenshots besides that dxvk and d3d one were on windows 10 though.
The older DXVK version appears to be faster than the current one.
i think dxvk 1.10.3 has about the same performance as the older version.
That Windows D3D9 screenshot ([#4895 (comment)](https://github.com/doitsujin/dxvk/issues/4895#issuecomment-2850420884)) makes no sense to me. That's supposedly running more than twice as fast. Is it possible that was still done on the GTX 1650 instead of the GTX 960?
no, this is without a doubt being ran on the gtx 960.
i think dxvk 1.10.3 has about the same performance as the older version.
DXVK 1.10.3 is ancient too.
no, this is indeed without a doubt being ran on the gtx 960.
And it happens to have the exact same performance as the earlier screenshots you did on the GTX 1650?
no, this is indeed without a doubt being ran on the gtx 960.
And it happens to have the exact same performance as the earlier screenshots you did on the GTX 1650?
no, i dont think so.
the gtx 1650 does do better though but i think by 20-30+ frames more, not much more than that i believe.
i think i might have to redo the testing sometime to make sure i havent goofed up somewhere and to make it less vague and confusing.
so i lowered my res and ran on very low settings.
i uncapped the fps but gpu usage is not on 100% even though multicore rendering is enabled.
but dxvk now runs slightly better than d3d9 by 10-20+ more fps.
so i set everything on low settings and tried vulkan and native d3d9 on native res and im still getting worse performance under dxvk.
the higher my resolution goes from 1176x664, the lower my fps gets under dxvk.
Anti Aliasing also tanks my fps significantly more on dxvk than on d3d9 regardless of resolution but i didnt do that yet under these videos, 2x msaa alone is a severe hit.
heres some videos instead of just some barrage of pics.
DXVK native res on low settings without dxvk_hud
DXVK native res on low settings with dxvk_hud
D3D9 native res on low settings
DXVK 1024x768 on low settings with dxvk_hud
D3D9 1024x768 on low settings
these videos may not indicate much but i just wanted to show that this performance loss is not exaggerated and is a real problem im experiencing.
this is all done under windows for now.
The older DXVK version appears to be faster than the current one. I'd brush that off as the newer DXVK not being as friendly towards old the Maxwell architecture as the old DXVK version. That's most likely not something we can fix.
i was actually using dxvk 2.5.3 on that linux gtx 1650 screenshot because that was the latest option that was shown under lutris. (even though its not)
you might see the same story with the gtx 1650 if i used dxvk 2.6.1 instead
but heres dxvk 2.6 seemingly doing better than dxvk 2.6.1
i tried these two and im still getting worse performance than d3d9 even under 640x480 and native res both with lowest settings and no AA when dxvk did better than d3d9 in that regard otherwise.
https://github.com/narzoul/ForceD3D9On12
https://github.com/misyltoad/neun-auf-zwoelf
I'm more interested in GPU performance. I tried it myself and Windows D3D9 was ~22% faster than DXVK on my RTX 3090. I'll try to investigate but it's pretty difficult because profiling tools either don't like Steam being involved or don't work with 32bit games.
or don't work with 32bit games.
if you own Counter Strike Source on steam then maybe you could give that a try as i believe the latest build has 64 bit binaries.
i still have the same performance loss under that build, nothing changed.
https://old.reddit.com/r/linux_gaming/comments/1kldsmp/proven_source_engine_gives_less_frames_with_the/
someone with an rtx 2070 appears to be getting degraded performance with dxvk as well, might be worth looking into.
Hey there, it's me, the guy who made the numbers.
(This comment may come through as abrasive. I do not wish to come through like that. When I talk about technical stuff I express myself as emotional and warm as a rock, because that's not the focus here, but this doesn't mean that I just insult people out of the blue. Also, I always pack as much necessary information as needed in the smallest packet possible to avoid future time wasting for everyone because it doesn't make sense.)
.
I want to point out that only Source Engine 1 seems to have this issue (with GoldSource and Source Engine 2 not tested enough to verify; many other OLD, older, and present games do not show such drastic performance loss, or even perform the same or better).
I don't have the tools to properly automate these tests, so they had to be done manually, directly, and repeated if a mistake or a new variable came to be (Proton 10 just coming out being one of them).
.
Long story short:
It's impressive how at the comment "my car is using twice the gas to get to the same place" some people say "just drive less", because that's not the point.
I didn't test GoldSource because at 1440p the GPU may (making up numbers) go from 4% to 8%, while for Source 2 I don't usually play games on that engine, only one installed being CS2, but from the little I tested CS2 I saw a problem with it too.
From the limited samples of computers I can actually test (my main one, the GT 1030 one, my brother's 7800xt one, and some other very weak ones which I don't want to test on because I can't compare the same high settings on) I found the GPU performance loss present. Granted, I could only properly test the most comfortable and important one to test, but when the GT 1030 goes from 180fps 1080p 8xMSAA on 2fort to less than 50fps I believe the problem is self-evident.
.
These benchmarks are difficult to do not because of the muscle-labor or strain, but because they are boring and take time (I have asperger and these took around half a day for almost 6 days to properly record the numbers, making sure no mistake was made, like Source's cache compilation, which resetted for some Proton runs).
I know I am asking people to do this in their free time, but I don't have any other way to actually collect enough data to be absolutely sure of what is going on,
and to be honest, I don't believe anyone can express any certainty about such performance degradation without running the same tests on their own machine themselves.
There's definitely an issue here, however there aren't any profiling tools for D3D9 with modern hardware, so it's next to impossible to tell where we're actually slower.
It's on our radar at least though.
With some luck, profiling maxwell/pascal/volta could also provide (i)nsight for whatever afflicts newer cards.
Thank you very much.
With "modern hardware" I believe you mean anything from the GTX 1000 serie onwards, but regardless of that**:**
.
Once again, thank you very much. I appreciate the hard work it takes both in body and mind to develop software, especially software like this.
I just want to be thorough with the data about the issue I am bringing into attention, because wrong data or missing information would at best waste time, at worse worsen the situation.
provide (i)nsight
We got a 🍄.
("fungi", to avoid ambiguity)
With "modern hardware" I believe you mean anything from the GTX 1000 serie onwards, but regardless of that**:**
*2000 onwards
MAYBE capping the frame will make tests& checks easier
That tells us nothing. We need to know which operation and/or shaders are slower.
BUT this S-E-1 business is the same on Windows too, using -vulkan, so here I am absolutely sure that it's a DirectX_to_Vulkan issue for S-E-1 in particular.
@Isaac-Clarke We've established this is a DXVK problem, you don't need to keep repeating that.
Sorry,
I only meant to sum-up everything in one last, condensed message.
.
Now that "you guys have it on your radar" what has to be done with this thread? Do we close it?
We wait obsequiously for the powers at be to have spare time to look into into it and perhaps find enlightenment.
No bumps or pings, unless it's for something really really breaking ground.
Now that "you guys have it on your radar" what has to be done with this thread? Do we close it?
Nothing has been done yet. Keep the thread open.
well, it seems that i may be getting the same issue under another game as well but its not a source engine game though.
the game is dirt 2 demo, its free to download and doesnt require steam.
it can run in d3d9 or d3d11 (and d3d10 maybe).
an example of where the performance loss appears is when the game boots up after the intros and it prompts you to start the game by pressing enter.
this may seem to suggest that this isnt specific to source engine games and may not be related to d3d9 at all as i seem to get a suspiciously similar problem under d3d11 there as well.
this MAY turn out to be a completely different issue though but im hoping that this is not the case and the underlying cause is the same.
however im not sure i can conduct accurate testing as the fps seems to be variable around certain areas, sometimes d3d9 has higher fps in a certain place while dxvk is lower and the opposite is true in another place so i guess i'll leave that to others to see whats going on.
and it doesnt make sense to me since i tested battlefield 3 under linux and it was more or less about the same performance with native d3d11 under windows, its REALLY weird.
i just wanted to put this out because you said that profiling tools dont work with d3d9 on modern hardware HOWEVER thats only if you can reproduce this performance loss under d3d11 so that it helps in investigating it, i dont know if others have the same issue.
i hope that the game being 32-bit isnt an issue either.
i'd like to note that the performance loss happens in both d3d9 and d3d11 in this game.
Let's keep this issue about Source d3d9 specifically. As to not mix too many things that are likely unrelated.
Let's keep this issue about Source d3d9 specifically. As to not mix too many things that are likely unrelated.
well, i just wanted to leave that here if tracking the issue with source engine games is proving to be increasingly difficult as time goes on.
however there aren't any profiling tools for D3D9 with modern hardware, so it's next to impossible to tell where we're actually slower.
the reason i did it in another game with d3d11 is because K0bin said this so idk if i did anything wrong here.
disregard it if you want.
In CPU bound scenarios, DXVK is quite a bit faster than the Nvidia D3D9 driver:
However, when the GPU becomes the bottleneck, Nvidias D3D9 driver outclasses us:
This text is a little long just and only to make it self-contained.
I am not trying to school or explain anything to DXVK's devs or contributors, because they know more than me about this stuff. I just intend to make clearer what's going on by explaining some things and methods (if and when I'm wrong I'll absolutely accept corrections) and I want to try make it easier to see the important data, which I also link to previous messages, post or other source links; all while asking questions myself.
.
Here I am ignoring the CPU's role in Frames Per Second production, the only goal of this is to superficially compare them.
but it's still the GPU working harder.
If it were something like "Async compute" it would be "normal", but as the numbers show, "when the frames get way higher (my Reddit page shows it with more numbers) it doesn't matter if there's a CPU bottleneck, Vulkan makes the GPU produce less FPS and/or fails to reach 100% utilization as well as DirectX does in the same scenario".
{In the TF2's 2fort numbers, looking at the sky and using mat_viewportscale .1 in that corridor, not only DXVK gets less FPS, but it fails to use the GPU% as much and/or as well as DirectX.}
.
Just to put some relative numbers to it:
.
The horizontal numbers list is the actual data in the screenshots,
while the vertical numbers are the "variable ifs", for example:
"If X is the variable, we are seeing (relative to how much GPU% Vulkan uses for its FPS) how many FPS would Vulkan get at DirectX's GPU%."
X/Y=W/Z --> X=Y*W/Z {and it's the same for the other numbers)
You can stop posting new data. We understand there's an issue.
You can stop posting new data. We understand there's an issue.
I am trying to be as condensed and professional as possible on this site because this is not a public plaza, it's a serious site where issues get filed to help devs develop their software.
Rather than posting new data, this was the first and last time I wanted to add some context to the data itself (talking about the relationship between the framerate and its GPU%).
I do not want to "make myself the protagonist here", I won't post a message similar to this again, I just wished to make a little clarification for anyone who may stumbles on this post at any time in the future.
Once again, thank you people for your hard work.
there's not 3 layers of translation though. there is no GL step there.
The issue is open because because we acknowledge that using dxvk makes the games perform less well under certain circumstances. GPU bound being one example as also shown by one of the devs.
No need to point fingers at a specific setup
No there is either d3d9 -> OpenGL using ToGL or d3d9 -> Vulkan using dxvk-native.
Misyltoad is a dev of both those Linux source ports and dxvk-native so they know what they are talking about. But this is getting offtopic
Edit: Was replying to a deleted comment
Only fix is - get new PC with atleast ddr4 and modern ryzen.
This is not a place for this performance.
I brought around 3 front-to-back pages of data about this, the Collaborators also confirmed that the issue exists.
I do not see why anyone would ever act in such defiant way, even more when what proves them wrong is literally in front of their faces.
.
This is my first and last comment to this user on this platform, I just needed to vent off this feeling of mine, because of the frustration this brings.
.
Once again, thank you to all the collaborators who actually work on this software, one way or the other.
The best I can do is bring some data for you to figure out the issues (one example of many is that "the viewmodels' layer of the rendering pipeline" steals around 25 to 60 fps from any and all GPUs).
Edit:
The deleted comments here (this can be seen as petty, it is not; some users are not interested to help developing these VERY COMPLEX softwares, just to make more drama or to boost their own ego. This is unacceptable {first and last time where I mention this user on this site like this}).
PR https://github.com/doitsujin/dxvk/pull/5023, which have a improvement in relation to this, have been merged.
Would be great if you could compare performance with Windows or ToGL again. @Isaac-Clarke
The recent changes should improve performance in HL2 with MSAA.
PR [#5023](https://github.com/doitsujin/dxvk/pull/5023), which have a improvement in relation to this, have been merged.
i already tried this build 2 days ago btw but i couldnt reply because the issue was locked.
just here to confirm that theres definitely a performance increase on my end (i think 25 to 30+ fps higher) but the problem still remains.
fps does slightly higher in the single digits if i have dxvk.allowFse set to True.
The problem is that HL2 hits some insane MSAA resolve edge case that NV hardware can handle in a single texture sample per pixel. It's not possible to replicate that in DXVK without blatantly violating the Vulkan spec.
Would be great if you could compare performance with Windows or ToGL again. @Isaac-Clarke
The recent changes should improve performance in HL2 with MSAA.
Would this change affect HL2 only? What about the espansions, or just S-E-1 games at large?
.
Then, thanks to [doitsujin] 's comment
The problem is that HL2 hits some insane MSAA resolve edge case that NV hardware can handle in a single texture sample per pixel. It's not possible to replicate that in DXVK without blatantly violating the Vulkan spec.
I tried to check TF2's performance with MSAA off.
Now the "looking at wall in spawn" test section gives me 200/205 fps, while r_drawviewmodels 0 gives 235 fps.
.
MSAA's importance in these games came mostly from the old LCDs, which had fairly low resolutions, and the fact that CRTs would still benefit even from a little MSAA.
To not make this comment eternally long:
Yes, I can test the games again in my free time, I'd be happy to, but if the issue is fundamental to MSAA not being well "translated" from DirectX9 to Vulkan then it would be a sad, unfixable fact.
4xMSAA is already great at 1440p, making any and all aliasing disappear, but if the cost is so great to pay with DXVK then it'd not be worth it.
I am ignorant of the workings of these tolls, I can only understand the output of their work, not how they work.
I have no idea why or how DXVK would fail running MSAA at the same performance as DirectX9 would, even because Doom 2016 has MSAA on Vulkan (from what I got from here it's the "translation" that loses performance).
I'd be happy to be mistaken, it'd be great if 8xMSAA would still give 180+ FPS on a GT 1030, on my GT 1030, but if not even something like a DXVK2 wouldn't fix that then I'd still be happy and grateful for the "performance boosts" you people are coding up, even if the "ease of running Source Engine 1 games at max settings" would be lost, and so maybe so many other games...
.
.
On that note, if "the" problem here is MSAA, then I'll try getting other relevant games in my tests to see if the same problem is there.
even because Doom 2016 has MSAA on Vulkan
No, it doesn't. Doom 2016 uses TAA or SMAA.
I'd still be happy and grateful for the "performance boosts" you people are coding up, even if the "ease of running Source Engine 1 games at max settings" would be lost, and so maybe so many other games...
The point of DXVK is to make Windows games playable on Linux, not to magically make them run faster on Windows.
On that note, if "the" problem here is MSAA
I measured it myself before the recent changes.
HL2 on my RTX 3090:
8k without MSAA (had to go to 8k to make it GPU bound):
4k with 8x MSAA:
CPU Bound (720p):
So as you can tell, MSAA in particular was slow.
So as you can tell, MSAA in particular was slow.
im still seeing an issue with and without msaa in native res.
it doesnt matter what setting i have, if its native res then it will run significantly worse in my case anyway.
the factors that i know that affect my performance is the hdr setting (i noticed this when i tried counter strike source but it was pretty subtle), the resolution, and the anti aliasing.
im seeing that they are not mutually exclusive for the performance loss and anything more than that im not sure or aware of.
please see the links at https://github.com/doitsujin/dxvk/issues/4895#issuecomment-2863330849 if you havent.
theres also someone that did a short test with the gtx 1650 but did not get this issue i was having until he upped the resolution to 4k via nvidia dsr. (his monitor doesnt support native 4k so thats all he can do)
he has a ryzen 5 5600 and 32gb ddr4 ram. (he has a pretty similar cpu to isaac clarke's but from what hes presented, the only difference is in his higher ram capacity and that hes running windows 11 whereas isaac ran windows 10)
the test in question
can anyone explain why his runs just fine up to a point while mine doesnt?
im seeing the same issue as my setup did with the gtx 1650 in another computer that has an i7 10700 and that same gpu in it.
im still seeing an issue with and without msaa in native res.
Yes, as you can tell from the numbers I posted, there is a difference without MSAA too.
The videos you listed have DXVK run at 322 FPS and D3D9 at 377 FPS. So D3D9 is 13% faster.
It is pretty common that old Nvidia GPUs have a larger GPU performance hit when running DXVK.
can anyone explain why his runs just fine up to a point while mine doesnt?
The video clearly shows DXVK being slower too.
The video clearly shows DXVK being slower too.
maybe by a bit (i only looked at the fps) but i would expect that there is some loss in performance anyway so its not that surprising but the problem is that the difference is huge on my side.
if i remember correctly, the ct spawn alone gives me 230+ fps while his rocks 330+ fps easily.
what can explain this? i dont understand.
i'll try to do this again sometime with the gtx 1650 just to make sure.
Yes K0bin, I was wrong, I missremembered SMAA as MSAA.
It happens, they sound very similar.
I have done a little of research about this. Does Vulkan just fail to handle MSAA as well as DirectX does? If so, can a non-temporal Anti Alias be injected/modded in Source Engine 1 games?
As for you ward201185, a GTX 960 is roughly equivalent to a GTX 1050 at best, while a GTX 1650 is more on the lines of a GTX 1050ti (without counting additional features, it's still stronger than a 960).
You said that your (main) machine's CPU is a i5-4460, which is absolutely serviceable (my GT 1030 PC's is a i5-3470, so we should have basically the same CPU performance) but nowhere near even a Ryzen 3600.
The CPU's role (speaking about "what bottlenecks mean") is to "keep the minimum stable framerate" (if the CPU is able to reach 400fps just in an empty server when looking at the sky, but average gameplay keeps at 100, then 100 is the MinStaFra), while the GPU has to handle what the CPU told the GPU to draw; this means that, other than the fact that the FPS it can make are capped by the MinStaFra, the setting can be risen as long as the GPU isn't around 95/100% use without having a "performance drop".
If you keep somewhat high setting in Team Fortress 2, make a CTF_2fort map, spawn and look at the wall you should notice this difference:
MSAAx8 will have the game stick to around 40-60fps as my machine stands roughly at 40 because of a 100% GPU use (a GT 1030 is roughly equivalent to a GTX 750ti, so a GTX 960 is already stronger than that); if you then turn MSAA completely off the framerate should at least quadruplicate and reach the 200s while still reporting a 100% GPU use.
My tests were conceived with the idea to maximize the sensibility of both the CPU and GPU at a given set of settings.
Since I couldn't humanly test all the combinations I chose the settings I use to play those games on my main machine; I chose spots and situations easy to replicate in which CPU and GPU use fluctuations could clearly be recognized.
Please ward201185, replicate my test with Team Fortress 2 on your machine. I am asking you to test this because it'd give the most comprehensive data set to see what issue you may have.
Just run the game, unmodded (MasterComfig isn't required neither to be there nor to be assent; the importance of this test is to check just and only one variable, and not using MasterComfig will also make changing setting while in game easier), everything on high (not Very_High) and run the benchmarks with the only difference being MSAA set at 8 and 0 (r_drawviewmodel 0 and mat_viewportscale 0.x are not important here).
The point of DXVK is to make Windows games playable on Linux, not to magically make them run faster on Windows.
Here I was talking about the fact that the same hardware can't max out S-E-1 games on Linux because of this characteristic of DXVK.
If the performance loss was between 15% and 0% at all times it'd be acceptable, even more because it's a "translation" instead of a "native renderer".
Many other games I tested perform basically 1-to-1 with Windows, but if S-E-1 has this issue and this issue can't be fixed, though luck. It jumped to my attention because of how unusual the performance loss was compared to everything else.
Let me clarify what I meant in my last messages:
If the problem is MSAA, then I'd be happy to test out some S-E-1 games, but not all of them, or as extensively as I did before, because even if there's an improvement it wouldn't be that great.
A way to inject/add an alternative Anti Alias tech that's not temporal would be the best option to preserve performance and not have an aliased picture.
I'd like ward201185 to run at least the TF2 test with at least the GTX 960 to more or less compare that PC's performance properly and with mine (GT 1030). TF2 is the one test with the most useful data that could be ran, and it needs to be ran on Windows with DirectX and DXVK, and on Linux Natively with DXVK and ToGL, and with Proton (I'd suggest 9, since 10 is subject to constant change because it's been developed right now).
The problem is that HL2 hits some insane MSAA resolve edge case that NV hardware can handle in a single texture sample per pixel. It's not possible to replicate that in DXVK without blatantly violating the Vulkan spec.
Sorry for the third message in a row, but I spent these last days trying to figure out this by myself.
Could you (people) explain the basics of "why this can't be done"?
Is this an issue with DXVK translating MSAA operations from DirectX9 to Vulkan, or is it just Vulkan not being able to handle MSAA as well as DirectX does?
I am interested in understanding this level of the reason why, but I can't understand the deeper "more complete" reason because I lack the background to.
While waiting for responses I am still doing some tests on my own.
Because my TF2 has MasterComfig on I can't change settings while playing, and because all other games are more or less as easy to each other to test, I decided to test the most stable and less laborious one:
Portal 2.
This is "the thunderdome", a name I made up because it sounds funny.
Here I stayed on the same spot for each test, and got these results:
.
Windows DirectX
Fullscreen runs faster.
8x 475-485fps
4x 640-647
2x 680-730
off 640-677
.
Proton Experimental
Borderless gives 50 fps more than fullscreen.
8x 255-265 fps
4x 288-316
2x 381-408
0ff 460-488
.
Vulkan Native
Borderless gives more FPS than fullscreen, almost 40% more.
8x 313-317fps
4x 413-440
2x 482-506
off 600-618
The results more or less reiterate the fact that "MSAAx8 performance under DXVK loses around 40 to 60% FPS relative to the game's situation",
but it also shows that "MSAAx8 loses half the FPS compared to MSAA_off in the same Native/Proton situation".
.
MSAAx8 was much more useful when the best monitors were around 1440x900p, because now at even just 1080p the difference between x4 and x8 are basically non-existent (deminishing returns).
"Flexing hardware advancements" and "the possible situational visual betterment" aside, for AA purposes MSAAx4 is enough for 1080p and above
(chicken-wire-fences are the worse case scenario 01:23-01:49 + 05:08-05:25 + 06:28-06:39, the same results of the video, where MSAAx2 runs faster than MSAA_off, while MSAAx4 runs the same as MSAA_off, have been replicated on my Windows install).
Altho I'd still have to run a WAY MORE PRECISE set of benchmarks on all these games to have ABSOLUTELY PRECISE numbers to give you, I'd say that altho weak hardware like the GT 1030 and the GTX 960 would still suffer a blow too hard to run any MSAA under DXVK, other cards can still manage to at least get 200fps with MSAAx4.
Now, as a closure, I want to put aside MSAA for a moment and re-focus on something that got lost during all of this:
On any device, regardless of the GPU, even on Windows, when running TF2 under DXVK (and so presumably any other S-E-1 game), using r_drawviewmodels 0 gives back 40 fps in any and all situations (maybe the GT 1030 at MSAAx8 gave back 30-35, but that's not the point).
What is the cause of this?
Proton Experimental
Borderless gives 50 fps more than fullscreen.
That makes no sense at all. I guess I'll write that off as Windows being weird.
Vulkan Native
What does Vulkan Native mean? The Vulkan mode in Source Engine games works by embedding DXVK into the game itself.
So I guess if that's faster we have a regression in DXVK? Not terribly surprising tbh, ancient GPUs like yours are extremely low priority these days so changes that are beneficial for newer GPUs might hurt performance on those.
On any device, regardless of the GPU, even on Windows, when running TF2 under DXVK (and so presumably any other S-E-1 game), using r_drawviewmodels 0 gives back 40 fps in any and all situations (maybe the GT 1030 at MSAAx8 gave back 30-35, but that's not the point).
You always manage to write a lot of text without actually providing the interesting data points. 40 fps compared to Windows D3D9 without the view model as well? Compared to Windows D3D9 with the view model? Or compared to DXVK with the viewmodel? If it's faster compared to rendering the view model, that's because it renders less stuff...
I guess I'll write that off as Windows being weird.
What does Vulkan Native mean?
This was on Linux. Be it Proton or Native (DXVK; ToGL) S-E-1 games malfunction at fullscreen.
The same happens if DXVK is used on Windows. Trying to start a game with the Fullscreen variable selected makes them immediately crash before they load anything, even the Valve logo.
ancient GPUs like yours
I am not gonna take it personally because I know it's not an insult (even if it could be worded better).
YES, the RTX 2000 serie came out September 2018, and altho there have been 3 new generations (and whatever architectural change in-between) my generation of GPUs is neither obsolete nor useless by any mean, and STILL widely used by THOUSANDS of people, as the dying GTX 1000 serie also is.
Even the GT 1030, with the GTX 1000 tech and the power of a GTX 750ti is still used by many because it can still run pretty light games very well, and very big newer games surprisingly well.
So I guess if that's faster we have a regression in DXVK?
I have no idea what is being talked about here, the subject.
If it's about the fullscreen performance/behavior, it could just be that Fedora KDE, having Wayland as desktop enviroment, can't handle fullscreen the same way that Xorg does (I don't care about the Wayland/X11 discourse, but there's to remember that the Steam Deck uses Wayland too), but as I already said before DXVK MALFUNCTIONS ON Windows TOO.
Speaking about the Steam Deck for a moment:
As I said in my Reddit Post, I can't test the S-D that much because it's my brother's, but ALL S-E-1 games do NOT seem to suffer because of MSAA!
(tl;dr the Steam Deck has the GPU power between a GT 1030 and a GTX 1050, but because of the shared memory the GPU can have a max of 8gb of RAM for itself, running games even better than the PS4. It DOES NOT matter that it's an AMD GPU [APU], because the same performance degradation was found on my other brother's AMD GPU too [Rx 7800 xt]. I NEED MORE PEOPLE TO TEST THEIR DEVICES TO GATHER MORE DATA, I AM NOT Hardware Unboxed!!!)
You always manage to write a lot of text without actually providing the interesting data points. 40 fps compared to Windows D3D9 without the view model as well? Compared to Windows D3D9 with the view model? Or compared to DXVK with the viewmodel? If it's faster compared to rendering the view model, that's because it renders less stuff...
This instead is an insult.
Here's the context:
This is the performance grid for TF2 in the post that you all used to say "allright, there's a problem, thanks for the data".
I get it, there are some days when anyone can be extremely tired, or sick, but please, let's just avoid these human behaviors.
We just landed another optimization for MSAA performance in Source.
if i remember correctly, the ct spawn alone gives me 230+ fps while his rocks 330+ fps easily. what can explain this? i dont understand. i'll try to do this again sometime with the gtx 1650 just to make sure.
oh, i was wrong here.
i tried it with the gtx 1650 on that other machine and i somehow got higher fps than his, lmao.
it seems like theres no significant fps loss from there aside from recording.
i did it with the same dxvk version from the build and also with the same demo from that person to keep consistency.
D3D9 GTX 1650 i7 10700 on Counter Strike Source
DXVK GTX 1650 i7 10700 on Counter Strike Source
its very weird that the gtx 1650 runs almost as well as d3d9 while my gtx 960 still suffers 100+ fps loss unconditionally even with that same demo.
i tried that half life 2 map under css but then i saw similar if not the same performance loss under there too with the gtx 1650.
everything is on max settings except AA was turned off for both, i turned it off because the i7 10700 PC was hitting the power throttle limit under dxvk with AA on.
D3D9:
DXVK:
you can do the same by dropping the half life 2 map d1_trainstation_02 into cstrike/maps then type without quotes "sv_cheats 1; fps_max 0; map d1_trainstation_02" into the console then join spectators and finally type this command into the console.
setpos -3122.956299 -1820.040039 144.125092;setang 0.384991 0.976144 0.000000
i also forgot to mention that "dxvk.enableDescriptorBuffer = False" also caused another performance boost on my end (though still not much at all but ranging from the single digits to 100 fps depending on where im looking at and the area and/or also certain combinations of graphics settings, please note i did minimal testing here so i dont know in detail the performance difference)
i think i also saw more of a difference in fps with changing the other graphics settings than before for some reason but im not sure.
If you keep somewhat high setting in Team Fortress 2, make a CTF_2fort map, spawn and look at the wall you should notice this difference:
wouldnt it be more easier and consistent had you done a demo doing exactly this and then just send it back so i can play it on my side?
i COULD do this manually but i really dont like doing this simply because there could be random factors at play here and i dont like dealing with the headache if that happens.
also, sorry for not doing it, i was a bit occupied with other things so i couldnt do this right now, i dont even have the game installed yet.
because theres a difference here with the map, im afraid the performance loss is different per-gpu and per-map.
so because of this difference with the map, my idea is that it might involve decompiling and tearing apart that specific map in hl2 part by part until it matches d3d9 performance and seeing exactly what part of the map degrades dxvk more than it does for d3d9 so that it narrows this specific problem down with the gtx 1650.
maybe there should be a developer map where all graphical elements of the source engine are put in order to show where and when the discrepancy occurs.
unfortunately im not a mapper so i have no idea how to do any of this or how feasible any of this really is, i could be talking out of my a** here but im just really tired of this problem.
im seeing the performance loss in ALL of the d3d9 translation layers i've tried so i dont think dxvk is that unique here.
and as for the gpu, seeing that the fps loss is not that much severe in other systems without msaa then im not sure this is easy to track where my gtx 960 problem comes from unless one of the developers has a pretty old setup to test and troubleshoot with so it seems like my problem just may never get fixed and im stuck with this potentially forever if nvidia decides to pull the plug on driver support for my card soon someday.
We just landed another optimization for MSAA performance in Source.
i just tried it now but as you can obviously see, its not much in my case.
im usually getting 114.6 or 115 fps with "dxvk.allowFse = True" though.
while my gtx 960 still suffers 100+ fps loss unconditionally even with that same demo.
Like I said, DXVK is optimized for newer GPUs. It uses specific Vulkan features that improve performance on recent GPUs and hurt performance on old ones.
At this point, I don't know what else we could do. There's nothing obviously wrong and it's not gonna get much faster.
ah well, theres goes linux out the window.
i've already abandoned it a long time ago anyway and i dont think im considering it any time soon, maybe never in the future.
all those people that said it was "more lightweight" and "runs much faster" even on older machines...
im glad i never fell for the linux kool-aid, always smelled bullshit and thought it was too overblown tbh.
anyways, im out of here.
edit: i meant to say "those" instead of "these", brain fart.
all these people that said it was "more lightweight" and "runs much faster" even on older machines...
Performance is better with AMD GPUs.
Right now I don't have time to write a longer comment, but:
The absolute negative of demos is that they tend to "not run with the right flow of time" (don't care if there's a command to add, I don't know it, a GPU benchmark becomes a CPU benchmark when time flow breaks because it all depends how fast the CPU can compute what's happening in the game).
Other than that, there is NO way to auto-log performance at any point in the benchmark, therefor it must be done by a human.
For everything else I'll come back way later.
a GPU benchmark becomes a CPU benchmark
The DXVK HUD of his videos shows 100% (or 99% but that's margin of error) GPU utilization, so this isn't the case there.
anyways, im out of here.
Terrible way to communicate here.
If a "new issue" needs to be opened then I'll get to it, but honestly I'd not mind continuing down this thread if there's no problem with "how the website is supposed to be ran" ("Closed as Completed"; I am too tired to find the right words :[ ).
Quick interjection because you just posted a comment:
The DXVK HUD of his videos shows 100% (or 99% but that's margin of error) GPU utilization, so this isn't the case there.
This is not relevant. If a "demo" is ran through any S-E-1 game's console the "way time flows breaks" and basically THAT makes a GPU benchmark become a CPU benchmark (THIS is a different glitch because I am too tired to find a "benchmark runs too fast" for TF2, but basically the same happens when "running a demo").
I'll keep this one short because I basically just slept 2 hours over 25 of wake:
.
As already said, S-E-1 is the only engine which gives these strange results. Even HELLDIVERS 2 gives THE SAME PERFORMANCE as on Windows.
This alone implies that there's something strange with S-E-1 itself when under DXVK (because it happens on Windows too) (I'm not even sure that the LIMITED VRAM of the GTX 960 and GT 1030 {2gb} is that important of a factor with S-E-1 + DXVK, because as I've already said many heavier games like H_2 run 1-to-1 with Windows):
r_drawviewmodels 1 takes at least 30-40fps of performance away compared to r_drawviewmodels 0.I am forcing myself to write this short one now because I'll surely forget once I go to sleep again AND because I won't have another time to test the GT 1030 PC anytime soon,
so I just did a couple more tests.
All my TF2 installs use MasterComfig, High Preset, and the file's "override's modules.cfg" here (usually MSAA is at 8x, this is the GT 1030's file for Linux, since before the GT 1030 was set at 1080p, MSAAx8 and always ran between 160 and 220 fps stabili [no jumps, framerate just got lower if more stuff happened in open areas]).
LONG STORY SHORT of the GT 1030 tests:
r_drawviewmodels 0 it's 65 (delta is 10). On the bridge it reaches 80fps with r_drawviewmodels 1.r_drawviewmodels 0 the fps basically jump to 155.r_drawviewmodels 0 and r_drawviewmodels 1, so that's why I assumed it was a constant number (the RTX 2070 PC had the same delta in all tests), but it seems to be more complex than that..
I am NOT a coder or developer, but I am happy to report numbers.
Thanks to the (small, but still) explanation that "Vulkan just doesn't handle MSAA as well as DirectX" I came to accept that (based on what you people said) given the same settings the game will lose more FPS if MSAA is turned on {regardless of how much you manage to "write better code" because you said it's a Vulkan limitation);
still the fullscreen/borderless/windowed issue aside, the fact that r_drawviewmodels 1 steals so much performance is VERY unusual. It's such a bizarre "behavior" for the game, since it happens under DXVK on Windows too, but not under pure DirectX.
.
Last thing I want to know tho.
These "optimisations for MSAA", are they only under Half Life 2? And is it like a beta to download or... how does it work?
We just landed another optimization for MSAA performance in Source.
This is not relevant. If a "demo" is ran through any S-E-1 game's console the "way time flows breaks" and basically THAT makes a GPU benchmark become a CPU benchmark (THIS is a different glitch because I am too tired to find a "benchmark runs too fast" for TF2, but basically the same happens when "running a demo").
If the DXVK HUD shows 100% GPU utilization in the video, that means the CPU spends a lot of time waiting for the GPU to catch up. That means it is a GPU benchmark. It doesn't matter that the 'time flow breaks' (whatever that's supposed to mean anyway).
These "optimisations for MSAA", are they only under Half Life 2?
I only saw the pattern we optimized in Half Life 2 but I also didn't check any other Source engine games so it's possible that other Source engine games do the same thing and similarly benefit from it. It's most likely they won't because as far as I can tell the thing we optimized was used by HL2 for window refraction of those Combine barricades.
Like I already said, it's not unexpected that DXVK is slow on old Nvidia hardware because we optimize for modern hardware, not 8 year old GPUs. I can't even investigate GPU performance in HL2 without 8x MSAA because my GPU runs it so incredibly fast at 4k that my CPU becomes the bottleneck.
Like I said, DXVK is optimized for newer GPUs. It uses specific Vulkan features that improve performance on recent GPUs and hurt performance on old ones.
sorry, i worded this badly.
i meant that it would do consistently worse with the same graphics settings no matter what i did, if i just lowered all the settings and set my res very low then i think it would still be 1-to-1 if not better with dxvk.
The DXVK HUD of his videos shows 100% (or 99% but that's margin of error) GPU utilization, so this isn't the case there.
i have shown videos that do not have cpu and gpu utilization at 100% with the lowest settings yet dxvk still does a lot slower when its native res.
Performance is better with AMD GPUs.
i have NO other options and this doesnt serve me in the slightest, i dont need this.
i shouldnt have to buy an amd gpu just to not get this specific problem, let alone get introduced to ANOTHER can of worms with amd dealing with even more problems i have never had to experience before on nvidia to begin with.
even Windows XP on the same machine runs better natively even though it has its problems with multi-core systems and it being inherently resource constrained.
i havent even started with the countless issues i have on linux that arent primarily or necessarily related to nvidia.
its future just seems uncertain and i cant bring myself to endure it especially when most of the time, its like im constantly betatesting everything and linux support is just overlooked sometimes.
its not a viable option at ALL for me so suggesting amd just wont cut it as i have no problems with windows otherwise, theres just no real incentive for me to use it.
i only opened this issue to see if i could try to atleast have some benefit out of running linux but thats all gone when it has turned out to be unrealistic.
Terrible way to communicate here.
K0bin said theres not much he can do here so i just wanted to end it here.
i dont like to keep wasting my time if it leads to absolutely nowhere.
theres very few stuff that linux does better than windows for me so it's just natural i'd just trash it and move on if i just cant get anything out of it.
this is not meant to be a jab at DXVK or the DXVK developers, im just annoyed at how many people claim linux is better than windows when i have only seen more and more of the opposite, its just not a mature platform in its current state as im seeing.
its very dishonest.
either way, im no longer interested in actively trying to help fix/mitigate this so do not request me in particular that i do anything about this problem.
i have shown videos that neither have both cpu and gpu utilization at 100% with the lowest settings but yet dxvk still does a lot slower when its native res.
The DXVK HUD showed 100% GPU utilization. CPU utilization is pretty useless in general because that's only 100% if a game perfectly uses all cores and games just arent multithreaded like that.
The DXVK HUD showed 100% GPU utilization. CPU utilization is pretty useless in general because that's only 100% if a game perfectly uses all cores and games just arent multithreaded like that.
i've lowered the resolution before and prob had it sit below that by far but i think it still ran worse.
at these vids over https://github.com/doitsujin/dxvk/issues/4895#issuecomment-2863330849 when i was looking at the wall, the gpu utilization never went above 71% at native res but it still ran 300 fps less with dxvk.
do you think this is normal and expected to happen?
the higher my resolution goes from 1176x664, the lower my fps gets under dxvk.
especially starting from that resolution is when the fps starts to gradually decrease on my gtx 960 pc the higher and higher i go.
i dont like to keep wasting my time if it leads to absolutely nowhere.
I am gonna be brief and direct, because it feels English is not your motherlanguage:
"In your last messages you come across as an irritated ass. If this is not your intent then please, try to express yourself better."
the gpu utilization never went above 71% at native res but it still ran 300 fps less with dxvk.
You both are STILL ignoring the fact that this happens with Source-Engine-1 alone, PRIOD.
There is SOMETHING in that engine which doesn't make games run very well in general (I CAN RUN DOOM 2016 ON LINUX WITH DXVK [PROTON] ON THE DAMN GT_1030!) and STILL, IF we had someone with a Steam Deck who could run those same tests I did, it would show that the Steam Deck does NOT have this issue.
Like I already said, it's not unexpected that DXVK is slow on old Nvidia hardware because we optimize for modern hardware, not 8 year old GPUs.
This ignores the fact that except for GPUs with Legacy Drivers which don't even touch the minimum to be able to run Wayland (Driver 550 or something) like the GTX 760 ALL GPUs from the GTX 900 architecture (includes GTX 750 + ti because Nvidia did them later) STILL run ALL other games ALMOST as well as on Windows!
ward201185!
Take ANY other game roughly from 2005 to 2012 and run it on the GTX 960. THE PERFORMANCE WILL BE BASICALLY THE SAME AS ON WINDOWS.
.
.
We are getting lost focusing on the wrong things because if ONE engine is the problem and EVERYTHING else "just works" then saying "RTX 2000 came out of the meteor which killed the dinosaurs" is worthless because it's not a problem.
This ignores the fact that except for GPUs with Legacy Drivers which don't even touch the minimum to be able to run Wayland (Driver 550 or something) like the GTX 760 ALL GPUs from the GTX 900 architecture (includes GTX 750 + ti because Nvidia did them later) STILL run ALL other games ALMOST as well as on Windows!
DXVK is not a driver. We don't have as direct access to the hardware as a driver and we don't have the resources to build multiple versions of DXVK for different architectures.
DXVK is not a driver. We don't have as direct access to the hardware as a driver and we don't have the resources to build multiple versions of DXVK for different architectures.
Never said it was.
The (clear) point is, as I've already repeated too many times, "S-E-1 alone has some kind of issue, everything else (other game) seems to work fine".
Here's another thing that happens both on Windows and Linux for some S-E-1 games under DXVK:
If ALL the S-E-1 games (except TF2) get set at fullscreen the max fps will be capped at the screen's max FPS,
but if you either shut down the game and restart it, OR use the -fullscreen launch option, selected games will crash.
.
This error did happen with Portal 2 (Linux native using -vulkan instead of ToGL if I remember correctly) to me once again yesterday, but , right now, I am unable to replicate it again without Proton.
This error happened with at least Portal 2, L4D2 and maybe HL2 on Linux, but running L4D2 under DXVK via -vulkan on Windows also does that (I can't give an exact list, this error eludes my knowledge; it seems like the game "can't find the GPU").
It happened with 100% certainty when Proton was used, but when ran natively it wasn't a certainty. Now either something changed or I am misremembering the complete list.
If ALL the S-E-1 games (except TF2) get set at fullscreen the max fps will be capped at the screen's max FPS,
but if you either shut down the game and restart it, OR use the -fullscreen launch option, selected games will crash.
I can't reproduce that, it starts just fine for me with -fullscreen and the frame rate isn't capped either (besides the Source 300 FPS limit which can be disabled using the developer console). Make sure V-Sync isn't enabled if it's capped to your monitors refresh rate.
Linux native using -vulkan instead of ToGL if I remember correctly
I'm only testing the Windows version because that trivially allows me to test newer DXVK versions. It doesn't crash using either D3D9 and up-to-date DXVK underneath, nor with -vulkan and the built-in DXVK 1.8.3.
K0bin, that last comment has no true value because you ignored all the variables I've listed.
If you want to test just on Windows right now (where the "fullscreen caps at monitor's hz" does NOT happen) then test out the only game I said DXVK makes that error:
Left 4 Dead 2.
Made another change that should hopefully improve performance a bit (regardless of MSAA). This should hopefully address some of that view model performance hit.
Made another change that should hopefully improve performance a bit (regardless of MSAA). This should hopefully address some of that view model performance hit.
Thanks.
I can't know how game engines work in the background, but if I am capable of reliably replicating bugs and missbehaviors I can forward them to you people.
I think that S-E-1 is a very peculiar beast for DXVK, it'd be very interesting to know how some of these problems came to be (for example the ViewModels problem), as the MSAA thing.
.
I will check for another not_S-E-1 MSAA game once I find it, but once again I want to remind that the Steam Deck seems to be safe from the performance issues non-Steam_Decks suffer for S-E-1 games under DXVK
I think that S-E-1 is a very peculiar beast for DXVK, it'd be very interesting to know how some of these problems came to be (for example the ViewModels problem), as the MSAA thing.
Some view model overhead stems from us restarting the render pass due to changing the image layout of the depth buffer because of the depth write state. That's what that recent PR improves.
The MSAA problem came from the fact that Source engine calls StretchRect to both resolve a multisampled RT and stretch it to a specific size. DXVK did this in two passes before which means a lot of texture reads and stores. Nvidia hardware can just read multisampled textures as if they werent multisampled. We cannot do that in Vulkan. Regardless we've now optimized it to do the resolve and stretching in a single pass rather than two and reduced the number of texture reads in the process.
We cannot do that in Vulkan. Regardless we've now optimized it to do the resolve and stretching in a single pass rather than two and reduced the number of texture reads in the process.
Magnificent work.
Knowledge of this kind is like sorcery to a medieval peasant, but you described it very well.
By what you just said, it should mean that AMD hardware shouldn't be able to handle MSAA on Windows with DirectX as well as Nvidia hardware may, correct?
By what you just said, it should mean that AMD hardware shouldn't be able to handle MSAA on Windows with DirectX as well as Nvidia hardware may, correct?
We tested it and DXVK was somewhat close to AMD HW. AMD was also quite a bit slower than my Nvidia GPU. TBF this was a RX 6800 vs my RTX 3090, so the 3090 is faster in general but I think the difference was more than expected.
BTW I just tested the main menu again.
My earlier numbers were:
4k with 8x MSAA:
DXVK: 251 FPS
D3D9: 427 FPS
With the recent change I get 420 FPS with DXVK.
I can't guarantee that it runs as well on older hardware (relative to Windows d3d9) but it certainly looks very promising!
So with the same hardware (RTX 3090) now it runs that well?
Magnific!
Still, I can understand architectural changes, but to call the RTX 2000 generation "old" while a RTX 3090 came out just 2 years after feels strange/wrong.
Turning (RTX 2000) is fine, it's more about Pascal and earlier (GTX 1000).
ward201185! Take ANY other game roughly from 2005 to 2012 and run it on the GTX 960. THE PERFORMANCE WILL BE BASICALLY THE SAME AS ON WINDOWS.
https://github.com/doitsujin/dxvk/issues/4895#issuecomment-2889166900
i think you forgot/neglected this comment.
https://github.com/doitsujin/dxvk/issues/4895#issuecomment-2889166900
i think you forgot/neglected this comment.
Have you actually tried to run any game from that time, or are you just being sour for no reason?
Have you actually tried to run any game from that time, or are you just being sour for no reason?
i gave you a valid example and not more than 3 minutes passed, you immediately make this claim without hesitation?
i dont know what to say at this point.
have you not atleast googled when dirt 2 came out?
because that should have easily answered your question already.
Did another test on Windows. My earlier Linux result wasn't quite correct because it was with 125% DPI scaling, so it ran at a lower resolution than 4k.
On Windows (with fullscreen exclusive) I get 310 FPS with current master compared to 420 with D3D9. That'll have to do for now, I don't know what else to optimize.
well, it seems that i may be getting the same issue under another game as well but its not a source engine game though. the game is dirt 2 demo, its free to download and doesnt require steam. it can run in d3d9 or d3d11 (and d3d10 maybe). an example of where the performance loss appears is when the game boots up after the intros and it prompts you to start the game by pressing enter. this may seem to suggest that this isnt specific to source engine games and may not be related to d3d9 at all as i seem to get a suspiciously similar problem under d3d11 there as well. this MAY turn out to be a completely different issue though but im hoping that this is not the case and the underlying cause is the same. however im not sure i can conduct accurate testing as the fps seems to be variable around certain areas, sometimes d3d9 has higher fps in a certain place while dxvk is lower and the opposite is true in another place so i guess i'll leave that to others to see whats going on. and it doesnt make sense to me since i tested battlefield 3 under linux and it was more or less about the same performance with native d3d11 under windows, its REALLY weird. i just wanted to put this out because you said that profiling tools dont work with d3d9 on modern hardware HOWEVER thats only if you can reproduce this performance loss under d3d11 so that it helps in investigating it, i dont know if others have the same issue. i hope that the game being 32-bit isnt an issue either.
i'd like to note that the performance loss happens in both d3d9 and d3d11 in this game.
This message?
By your own words you "went with vibes because you couldn't accurately test".
Ain't there the Sandbox map in the Dirt 2 demo? That's an easy test ground.
But more important than that SOME old games, ESPECIALLY if they're not from Steam or GOG, have lower performance even on Linux because of how long ago they were released, REQUIRING mod+fixing.
This message?
By your own words you "went with vibes because you couldn't accurately test". Ain't there the Sandbox map in the Dirt 2 demo? That's an easy test ground. But more important than that SOME old games, ESPECIALLY if they're not from Steam or GOG, have lower performance even on Linux because of how long ago they were released, REQUIRING mod+fixing.
stop jumping into conclusions and TRY the game for once with your gt 1030.
im not going to keep arguing about this.
i have my reasons over why i said what i said and im too tired of having to explain myself every single time.
im going to make this my final comment on this issue.
read between the lines.
read between the lines
No.
I read THE lines.
I CAN NOT read your mind!
I ALREADY test out my GT 1030, and except for minor kinks with Fedora KDE performance is basically 1 to 1 with Windows on anything that's not S-E-1.
On Windows (with fullscreen exclusive) I get 310 FPS with current master compared to 420 with D3D9. That'll have to do for now, I don't know what else to optimize.
So I think this should be re-opened.
So I think this should be re-opened.
Maybe, I don't know.
Maybe there's something that can be learnt from the Steam Deck, because that platform doesn't experience this performance loss under DXVK, I can run any game with MSAAx8 and they still go well beyond 250fps.
I can't test it now because my brother brought it with him on his work trip (he bought it for that reason).
REGARDLESS, I don't know where these DXVK updates get pushed, but could they be tested under Proton, since Experimental and Hotfix should also take these works of yours into consideration?
So I think this should be re-opened.
There's nothing else to do, so no.
There's nothing else to do, so no.
I don't see any problem
Be it 1 month, 1 year or 1 decade, when a new development may be invented, either this thread can be reopened or a new one will be created.
No need to stress over something that's not vital.
Black Ops 2 has MSAA as AntiAlias.
Altho a heavy CPU bottleneck is present because of an almost complete lack of multithreading (Xbox 360 game) and because I'm pretty sure this is one of those engines where "time flow breaks" when FPS get too high, the GPU's work can still be seen.
These images are all at max settings. (Ignore the % in them, they're here just to show that it actually work; the % fluctuate too much to have proper screenshots, especially if I Alt-Tab).
MSAA_off
MSAAx8
Graphics menu.
.
Long story short:
To benchmark the map I stayed in that small street because it's always open and it's the heaviest to test out.
In there, the GPU performance stayed always the same regardless if MSAA was at 8x or off, between 30 and 40% use (depending on zombies, movement and various factors).
.
Altho this is not enough proof to say "S-E-1 is the ONLY engine having this MSAA issue" this is still enough to say that "no, MSAA seems to work properly with at least some games".
I am not Digital Foundry or whatever, but I am still confident in the result I have just brought here.
First of all, this doesn't tell me anything without Windows D3D9 numbers to compare against. 8x MSAA is slower than no MSAA, that's not surprising at all.
Secondly, please keep it on topic. This issue is about the Source engine. The small thing we optimized for HL2 is unlikely to also impact Black Ops 2.
First of all, this doesn't tell me anything without Windows D3D9 numbers to compare against. 8x MSAA is slower than no MSAA, that's not surprising at all.
Secondly, please keep it on topic. This issue is about the Source engine. The small thing we optimized for HL2 is unlikely to also impact Black Ops 2.
K0bin, I appreciate the work you do, but PLEASE read.
"MSAA_off has more FPS than MASSx8, not surprising!" {said K0bin while looking at the screenshot with MSAA_off having less FPS...}
These images are all at max settings. (Ignore the % in them, they're here just to show that it actually work; the % fluctuate too much to have proper screenshots, especially if I Alt-Tab).
Same FPS, same CPU %, same GPU %. MSAAx8 and off have the same performance.
I will test it on Windows too, but not now. In the meanwhile, these are absolute and empirical results.
I guess the game does some weird shit when MSAA is disabled that leads to more CPU overhead. Either way, please keep the issue focussed. If you want me to investigate, make a new issue and provide apitraces with and without MSAA enabled.
I guess the game does some weird shit when MSAA is disabled that leads to more CPU overhead.
No... ?
It's just a screenshot, nothing more. The performance is exactly the same.
The framerate change from area to area because of the engine.
I tested with Proton 7 because yes, now I will test with some different ones (like 5.13) (Experimental has incredible stuttering and stays under 70ps).
I'll come around to test it on Windows too and to inform myself more (other than finding OTHER games with MSAA too) also because this https://youtu.be/ocGsDXr0cH0 random video show the game running in the hundreds of FPS {REGARDLESS OF THAT it's a CPU bottleneck, doesn't effect how much the GPU is used when MSAA is on or off}
Either way, please keep the issue focussed. If you want me to investigate, make a new issue and provide apitraces with and without MSAA enabled.
This IS focused, because it's impossible to understand if DXVK either has this problem ONLY with S-E-1 or if it's so much worse on S-E-1.
I really don't understand what you're trying to tell me with those Black Ops 2 pictures.
Both are heavily CPU bound, so GPU performance doesn't matter. MSAA makes absolutely no difference for CPU load. So if there's a CPU bottleneck, it's 100% expected that MSAA makes no difference in performance.
Before starting the message, I want to add this preamble:
Be it my aspergher or just who I am, I do not care if people make genuine mistakes, as long as they recognise them and grow from them, because we are all human. What I do care is when people doggedly defend their mistakes as "non-mistakes" or even persevere in repeating them.
I am not here for a witchunt or to have a "reddit-off" with anyone.
I do not know, nor care who you (plural) are, on these websites beyond what you say and do in these contests. I also see myself as "stopping to exist beyond what I am currently doing on the site".
I am not here to "be the smarterest bloke around", I just want my damn computer to work, and to do that the absolutely correct way to apply the Scientific Method is required.
tl;dr nothing personal, I just want reality to be recognized
I really don't understand what you're trying to tell me with those Black Ops 2 pictures. Both are heavily CPU bound, so GPU performance doesn't matter. MSAA makes absolutely no difference for CPU load. So if there's a CPU bottleneck, it's 100% expected that MSAA makes no difference in performance.
This is just wrong.
MSAA is not done by the CPU, it's work done exclusively by the GPU.
As said above in https://github.com/doitsujin/dxvk/issues/4895#issuecomment-3000959394 :
The CPU's role (speaking about "what bottlenecks mean") is to "keep the minimum stable framerate"
, therefore if the framerate can't go higher, but the GPU does more, the GPU's use % will just raise.
Furthermore, it's ESSENTIAL for things like these to gather ALL NECESSARY DATA, otherwise a fix will NEVER be achieved!
I didn't spend a week gathering S-E-1 data because it's fun, NO! My aspergher was making me feel like I was chewing on car tires!
While my I5-3470, GT 1030 PC can run BO2 at Proton 5.13, this Ryzen 5600x, RTX 2070 can not! It just crashes at boot!
Why?
I DON'T KNOW! AND THAT IS IMPORTANT!
How can DXVK, and as a consequence Proton, be fixed if IMPORTANT data is ignored, or even refuted?
Here is another example as to why testing many different PCs is of ABSOLUTE importance: https://github.com/ValveSoftware/Proton/issues/8714
(Ignore the yellow, it's the only image I still have on this storage, more on the Reddit page!)
Going from Proton 6 above adds a graphical glitch to WINquake, a game with software rendering alone, but ONLY on my Ryzen 5600x CPU!
Dead Space 1 instead has better performance the higher the Proton version you go, but after Proton 6 the max FPS will be capped at 60, requiring DXVK_FRAME_RATE=60 %command% to raise it!
https://steamcommunity.com/sharedfiles/filedetails/?id=3424834997
There's nothing else to do, so no.
I assume nobody still got any way to profile d3d9, so this should be a reminder that there is a high hanging fruit still left? I guess.
MSAA is not done by the CPU, it's work done exclusively by the GPU.
Yes, but if the cpu is what is limiting you, then depending on the gpu you can even run the game in 8K and nothing would change.
This IS focused, because it's impossible to understand if DXVK either has this problem ONLY with S-E-1 or if it's so much worse on S-E-1.
Please for the love of god just stop, you haven't done anything but digress this issue.
Bug reports are per-broken-use-case, not per-allegedly-maybe-perhaps-broken-feature (unless you REALLY know the tech and the code involved like while reviewing a pull request, and you notice it affects other games).
Just make a new bug report and everybody will be happy to analyze it to hell and beyond.
It's not important that everything must follow a single thread.
Yes, but if the cpu is what is limiting you, then depending on the gpu you can even run the game in 8K and nothing would change.
This is just wrong.
MSAA is not done by the CPU, it's work done exclusively by the GPU.
As said above in https://github.com/doitsujin/dxvk/issues/4895#issuecomment-3000959394 :
The CPU's role (speaking about "what bottlenecks mean") is to "keep the minimum stable framerate"
, therefore if the framerate can't go higher, but the GPU does more, the GPU's use % will just raise.
Please for the love of god just stop, you haven't done anything but digress this issue.
Bug reports are per-broken-use-case, not per-allegedly-maybe-perhaps-broken-feature (unless you REALLY know the tech and the code involved like while reviewing a pull request, and you notice it affects other games).Just make a new bug report and everybody will be happy to analyze it to hell and beyond.
It's not important that everything must follow a single thread.
Stop treating me like an idiot.
If by rules "an inception of posts linking to other posts ALL THE TIME for no good reason because muh different game" must be done THEN I'LL DO IT, no matter how USELESS it would be because the ONLY variable in study is MSAA on other engines UNDER DXVK.
.
WINquake already has a page of its own, Dead Space 1 doesn't really need it, and Black Ops 2 is here just and only to compare MSAA performance;
and guess what? Once I find ANOTHER game wit MSAA I'll bring it here too because the data about MSAA's performance under DXVK is of ABSOLUTE IMPORTANCE into understanding why and/or how S-E-1 seems to have such an heavy hit!
.
ONCE AGAIN:
The fact that the GPU % didn't change between MSAA_off and MSAAx8 while the FPS staid the same means that MSAA doesn't seem to be experiencing any problem functioning under DXVK for BO2!!!
This is just wrong.
MSAA is not done by the CPU, it's work done exclusively by the GPU.
That is what I wrote too.
MSAA makes absolutely no difference for CPU load. So if there's a CPU bottleneck, it's 100% expected that MSAA makes no difference in performance.
Furthermore, it's ESSENTIAL for things like these to gather ALL NECESSARY DATA, otherwise a fix will NEVER be achieved!
I appreciate the effort and that you're trying but I really don't need you to collect any more data. It's not helpful, it's just noise.
Going from Proton 6 above adds a graphical glitch to WINquake, a game with software rendering alone, but ONLY on my Ryzen 5600x CPU!
Software rendering -> DXVK isn't involved -> irrelevant to the issue and to DXVK as a whole.
Dead Space 1 instead has better performance the higher the Proton version you go, but after Proton 6 the max FPS will be capped at 60, requiring DXVK_FRAME_RATE=60 %command% to raise it!
I added the frame rate cap because Dead Space 1 has severe gameplay issues at higher frame rates. But that's also completely irrelevant to this issue.
proton 5.13x1 2025-06proton experimentalx2 2025-06DXVK_FRAME_RATE=60x2 2025-06DXVK_HUD=full`x1 2025-05DXVK_FRAME_RATE=60 %command%x2 2025-06
DXVK doesnt seem to be performing 1 to 1 with native d3d9 under windows with Source Engine games, the same performance loss is present under linux.
im getting a consistent 60-100+ fps loss under TOGL and DXVK with this card whereas when i tried a different nvidia card (gtx 1650), TOGL was MUCH closer to native windows performance while dxvk still performed worse than TOGL and native windows.
i have an i5 4460 and 16 gb ddr3 ram, i would like to know why this occurs and if this problem applies to other gtx960 users as well?
TOGL only does slightly better under the gtx 960 but theres still a huge performance loss.
this was always a problem i had under linux, i never had it running as well as on windows natively.
unfortunately even on ubuntu 14.10 with the first driver released for my card has this problem.
i tried other games on dxvk under linux to see if it was an issue on my end and performance seems to be on parity with windows.
games in below that i have only tried with dxvk currently:
GTA San Andreas v1.0
Call Of Duty 4 Modern Warfare Demo
Battlefield 3
any clues as to why this is happening?
Software information
Likely Any Source engine game on Maxed Out settings
1920x1080 60HZ
System information
i will give other necessary information if requested or need be.