Confused on Steam Play and Proton? Be sure to check out our guide.
We do often include affiliate links to earn us some pennies. See more here.

It's happened, the D9VK and DXVK projects have officially merged. This means DXVK is now the all-encompassing project to translate D3D 9/10/11 to Vulkan for Wine.

Only a few hours ago the pull request was accepted and so they're now one awesome project, meaning D9VK will now be developed directly in the DXVK project. This does make a lot of things easier and simpler overall, since you only need to keep track of one project and they will now update together.

From the actual pull request, Ashton noted these features still needed to be worked on:

  • Fixed function bumpmapping
  • Fixed function premodulation
  • Software cursor (hardware cursor is currently implemented)
  • ComposeRects (from D3D9Ex, however I have no test case for this)
  • Custom Border Color (needs ext)
  • Depth Bias Fixes (needs ext)

Apart from that, the usual bug fixing.

Congratulations to D9VK developer Joshua Ashton and DXVK developer Philip Rebohle, together they've certainly helped pushed Linux gaming into new territory.

Article taken from GamingOnLinux.com.
Tags: Update, Vulkan, Wine
51 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. Find me on Mastodon.
See more from me
The comments on this article are closed.
38 comments
Page: «3/4»
  Go to:

BielFPs Dec 16, 2019
Quoting: TheSHEEEPGood. Now merge DXVK with Wine.

I hope they don't do this. I'm not a fan of redundant work too, but I think maintaining wine as generic as possible it's the best way to keep things working, while projects like proton can "fork" it to our specific needs (games above everything else in our case) without the risk to break something not related to it.

As long as both projects continue to help each other, this current approach is the best option in my opinion :)
Creak Dec 16, 2019
Quoting: TheSHEEEPGuess that is one way to make sure a project never has too many people working on it.
What a waste of potential.

Pure C is fine for smaller projects or concise little libraries.
But big ones purely in C is just nightmare fuel. Go take a look at the FFmpeg sources if you don't believe me.

Alright, merge Wine into DXVK, then ;)
C++ isn't picky about having some pure C code within.
Just to be the devil's advocate for a few minutes: good written C code is not so bad. After programming in C++ for more than a decade, I can now see the appeal in C code (sometime). It boils down to being leaner than a C++ code.

Also, for some reason, the C++ standard has very weird statement. For instance, there is no standard over name mangling. The consequence is that each compiler has their own name mangler, which makes the binaries incompatible.

There is a solution to that... which is to go back to C mangling using this syntax:
extern "C"
{
    // Your C++ code.
}


For each problem, there is always "a way" to work around, but this is one example of how messed up C++ can be sometime, whereas simple C code doesn't have these problems.

That being said, the more it goes, the less I want to code in C or C++. My main reason why is the pre-processor. How come a modern language like C++ still needs another language (i.e. the pre-processor language) to work? For instance: #include...


Last edited by Creak on 16 December 2019 at 2:10 pm UTC
BielFPs Dec 16, 2019
Quoting: Liam Dawe
Quoting: Guest
Quoting: Liam Dawe
Quoting: Sir_DiealotIsn't DXVK that project that just went into maintenance mode because it's not feasible to develop it further?
No, that was other sites making a mountain out of a little GitHub comment rant. Don't read into it.

Isn't GitHub the only channel the DXVK dev uses to communicate? In those little comment rants he clearly stated that after the merge of D9VK his project is going maintenance mode, because it's a "fragile, unreliable and frustrating maintenance nightmare". AFAIK he did not retract that anywhere. Do you know something we don't know or what?
No it's not, they have their own Discord. Don't take comments made out of frustration, as actual plans.

This situation reminds me that case with the devs of Linux mint back in april. I hope we can get a feedback direct from him about this case.
Liam Dawe Dec 16, 2019
Quoting: Creak
Quoting: Liam Dawe
Quoting: Sir_DiealotIsn't DXVK that project that just went into maintenance mode because it's not feasible to develop it further?
No, that was other sites making a mountain out of a little GitHub comment rant. Don't read into it.

@Liam: Might be worth doing an article about it, I was like @Sir_Dialot, thinking DXVK was slowly dying in place of another project.. Although I have been reading mainly Linux news every day.
Ask and thou shall receive, just wanted to wait a bit for the right time to have the statement. See here.
TheSHEEEP Dec 16, 2019
View PC info
  • Supporter Plus
Quoting: Creak
Quoting: TheSHEEEPGuess that is one way to make sure a project never has too many people working on it.
What a waste of potential.

Pure C is fine for smaller projects or concise little libraries.
But big ones purely in C is just nightmare fuel. Go take a look at the FFmpeg sources if you don't believe me.

Alright, merge Wine into DXVK, then ;)
C++ isn't picky about having some pure C code within.
Just to be the devil's advocate for a few minutes: good written C code is not so bad. After programming in C++ for more than a decade, I can now see the appeal in C code (sometime). It boils down to being leaner than a C++ code.
The problems really only arise in large projects.

Code is about 10x more often read than written (or more, even).
Thus, making code clear and being able to follow it is more important than either raw speed (especially since C++ isn't really slower than C) or having to write less.
In large projects in pure C, you will have algorithms spanning dozens to hundreds of functions over possibly just as many files. You invariably end up with endless amounts of spaghetti code. It is the inherent flaw of procedural programming - awesome for smaller scales, nightmarish for larger scales.
While the OO-focus in C++ at least makes it a lot less likely to end up with code like that (though not impossible, obviously), as code that belongs together is way more likely to be grouped together and the concept of objects which "do things" is inherently more friendly to the human brain.

And for some reason I will never understand, long-time C coders tend to almost never write comments and almost never have variable names longer than "a, b, c, d, v, x, z"...
It is the devil's work, I have no doubts about it.

Either way, what makes no sense to me is not using C, but not allowing C++ at all.
Have the C++ code be exposed via C-style functions (the famous extern, indeed) so that the core devs can keep their precious. Compile apart, then link.
I just don't see the point in not doing it that way, other than some weird sense of purity.


Last edited by TheSHEEEP on 16 December 2019 at 2:38 pm UTC
edo Dec 16, 2019
Quoting: Hori
Quoting: Liam Dawe
Quoting: Sir_DiealotIsn't DXVK that project that just went into maintenance mode because it's not feasible to develop it further?
No, that was other sites making a mountain out of a little GitHub comment rant. Don't read into it.
Pretty ironic how this mountain of a code change just got merged into that same project.
Eh, what can you do? Fake news is one of the bigger problems in the modern day.
He did say he was going to include d9vk and some vulkan extensions before the maintance mode
Creak Dec 16, 2019
Quoting: TheSHEEEPThe problems really only arise in large projects.

Code is about 10x more often read than written (or more, even).
Thus, making code clear and being able to follow it is more important than either raw speed (especially since C++ isn't really slower than C) or having to write less.
In large projects in pure C, you will have algorithms spanning dozens to hundreds of functions over possibly just as many files. You invariably end up with endless amounts of spaghetti code. It is the inherent flaw of procedural programming - awesome for smaller scales, nightmarish for larger scales.
While the OO-focus in C++ at least makes it a lot less likely to end up with code like that (though not impossible, obviously), as code that belongs together is way more likely to be grouped together and the concept of objects which "do things" is inherently more friendly to the human brain.

And for some reason I will never understand, long-time C coders tend to almost never write comments and almost never have variable names longer than "a, b, c, d, v, x, z"...
It is the devil's work, I have no doubts about it.

Either way, what makes no sense to me is not using C, but not allowing C++ at all.
Have the C++ code be exposed via C-style functions (the famous extern, indeed) so that the core devs can keep their precious. Compile apart, then link.
I just don't see the point in not doing it that way, other than some weird sense of purity.
I see your point, though in this kind of projects, performance is an important priority. And, while it is easier to maintain object oriented code base, it is easier to make data oriented code in C than in C++ (since you never mix data and logic together).

That said, in the end I agree with you (like I said, I was just making the devil's advocate here). Most of the game engine are several millions lines of code long and performance in in the top priority, and, today, they are mostly written in object oriented C++.
Shmerl Dec 16, 2019
Quoting: rkfg
Quoting: TheSHEEEPGood. Now merge DXVK with Wine.
DXVK has a "fundamental flaw" and that is the language it's written in. Wine doesn't accept C++ code, unfortunately.

And I find it a bad policy.
Shmerl Dec 16, 2019
Quoting: CreakJust to be the devil's advocate for a few minutes: good written C code is not so bad. After programming in C++ for more than a decade, I can now see the appeal in C code (sometime). It boils down to being leaner than a C++ code.

Also, for some reason, the C++ standard has very weird statement. For instance, there is no standard over name mangling. The consequence is that each compiler has their own name mangler, which makes the binaries incompatible.

There is a solution to that... which is to go back to C mangling using this syntax:
extern "C"
{
    // Your C++ code.
}


For each problem, there is always "a way" to work around, but this is one example of how messed up C++ can be sometime, whereas simple C code doesn't have these problems.

That being said, the more it goes, the less I want to code in C or C++. My main reason why is the pre-processor. How come a modern language like C++ still needs another language (i.e. the pre-processor language) to work? For instance: #include...

Rust is a thing today. I'd take Rust over C++ and for sure over C. And you phrased it very well: "the more it goes, the less I want to code in C or C++". I have the same exact feeling, when there is a better designed language.


Last edited by Shmerl on 16 December 2019 at 5:56 pm UTC
garpu Dec 16, 2019
I, for one, welcome my new froggy overlord.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.