Announcement
Collapse
No announcement yet.
DXVK Reportedly Going Into "Maintenance Mode" Due To State Of Code-Base
Collapse
X
-
I think some of the commenters here aren't differentiating enough between "Driver X is released on the same day as Game Y to improve *performance* in Y" and "... to fix a major problem with Y on Card Z".
MOST of the same-day releases are of the first type, where a specific handful of shaders/etc will be replaced with equivalent-enough versions that are (sometimes much) more performant on that vendor's hardware. A good (real-world) example would be Vendor N's hardware having terrible compute performance but really good texture caches, so that the game's shaders actually used texture lookups for certain math ops rather than calculating the results. Vendor A, OTOH, with good compute but much worse texture management, might suffer a 30% performance deficit thanks to that code, on hardware that is otherwise roughly-equivalent. A can "legitimately" rewrite just a couple of those shaders to use Actual Math instead, and suddenly get the same framerates as N.
In that example, neither vendor is "cheating", and neither one is really at fault. But that "stupid hack", stupid and hackish though it is, is REALLY important for that vendor to deal with. When you've got a AAA game that's going to sell in the tens of millions, your performance in that game is going to show up in comparison benchmarks for YEARS, and you only get that one shot to turn in a good result. Websites are NEVER going to revisit that game's launch article, so those numbers are going to be not only what people see on release day but also what they see 3 months later when they'll looking at benchmarks for their next upgrade. It doesn't matter that you can release another version of the driver 2 months later saying "x% faster in Game Y" - that ship's already sailed.
Anyway, that's the sort of thing that has become commonplace in drivers now, and those profiles are a big part of why Windows drivers have gotten literally 100s of MB larger over the years. As skeevy says, profiles are evil - but, while the example I gave was definitely one of the worst cases that actually happened, even "just" 4% or so in performance difference is easily important enough to be worth hacking up a fix for.
AFTER that, you get into the scenarios where you have to hack the driver to work around cases where games flat out fail to work properly, through either crashes or broken output etc. The classic scenario for that is wglGetExtensionsString, which when the return from that exploded from a couple of hundred bytes to dozens of K over the years, most games exploded along with it. :P
But those cases are very rare in comparison to the performance ones, and are generally retroactive rather than Day One patches, for obvious reasons.
- Likes 1
Leave a comment:
-
Originally posted by yoshi314 View Postsounds like code that works by sheer luck to me, if random changes break it.
In the end this most likely boils down to all the voodoo done by graphics drivers on Windows. It's totally insane that they bring out a new driver version when a game is released with specific "optimizations" (aka "workarounds") for that game. But then again, this is DX11 and 10 we are talking about. DX12 (and Vulkan) were specifically created to give more low level access to engine developers so THEY can ship their "workarounds" instead of drivers having to circumvent inner workings when a specific game is running. Though I fear that even then there is black magic in shaders and their execution.
- Likes 7
Leave a comment:
-
- Likes 1
Leave a comment:
-
Michael have you read the complete topic?
He said his code structure is not the issue:
> If you had all the time in the world, and didn't have to worry about risk, is there a way you would restructure DXVK to be easier to maintain?
My main issue is that I simply don't understand most of the issues that are popping up everywhere, not that the code base itself is poorly structured. There are some things that could use some cleanups, but the last attempts at doing that have caused exactly the kind of regressions I was complaining about, and it really seems like touching *anything* causes some arbitrary breakage for no particular reason.This PR allows DXVK to be built natively on Linux with an option to specify the WSI you want to use. This allows titles to port to Linux and potentially other platforms further down the line much e...
- Likes 1
Leave a comment:
-
But to be honest. This Project ist so well known by a lot of skilled people and still there are almost no commits and pullrequests by others. This makes me wonder If his documentation is lacking and therefore it does not attract a lot of people which could do some maintance Work.
Leave a comment:
-
Originally posted by Ananace View PostWhat would probably have to happen to solve that is for DXVK to adopt a similar CI design to what some emulators use, where they have a renderdoc-or-alike (of Direct3D) dump that's run with each commit, and that logs any pixels that differ.
The Dolphin emulator is one of the projects that does this in order to make sure code changes don't affect rendering.
Running actual games is just going to be far too chaotic to be able to use as test cases, far too many places where parallelism or randomness - particles etc - could introduce noise in the resulting images.
Leave a comment:
-
Originally posted by skeevy420 View PostYou know damn well that "profiles" are more evil than systemd and that no program should ever, EVER require any form of profiles or if/thens to work around a bug in a game from 23.4 years ago
- Likes 3
Leave a comment:
-
Well if the code base is approaching critical mass then I hope that Phillip can step back, take a breath or two and get some things tidied up. He's been working at such a furious pace that he's had to leave a few things at the "I'll get to that later. . . ". Nevertheless dxvk 1.4.6 is over 100K lines of code and that is an amazing amount of code generated in such a short period of time, not to mention the quality of the code and the complexity.
I have nothing to offer Mr.Rebohle other than my thanks and that he deserves a well earned respite from the frantic pace he's maintained these last months/years.
He's not a multi-billion dollar corporation, he's a super-human coder who can do more than most of us could even imagine. There are many superheroes in the computer world and he is one of them. Thank you Mr. Rebohle,.
- Likes 2
Leave a comment:
-
It only shows that the only long term solution is for apps/games to ship with Vulkan support.
- Likes 2
Leave a comment:
Leave a comment: