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.
Some you may have missed, popular articles from the last month:
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 :)
0 Likes
Quoting: TheSHEEEPGuess that is one way to make sure a project never has too many people working on it.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.
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.
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
3 Likes, Who?
Quoting: Liam DaweQuoting: GuestNo it's not, they have their own Discord. Don't take comments made out of frustration, as actual plans.Quoting: Liam DaweQuoting: 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?
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.
1 Likes, Who?
Quoting: CreakAsk and thou shall receive, just wanted to wait a bit for the right time to have the statement. See here.Quoting: Liam DaweQuoting: 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.
2 Likes, Who?
Quoting: CreakThe problems really only arise in large projects.Quoting: TheSHEEEPGuess that is one way to make sure a project never has too many people working on it.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.
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.
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
0 Likes
Quoting: HoriHe did say he was going to include d9vk and some vulkan extensions before the maintance modeQuoting: Liam DawePretty ironic how this mountain of a code change just got merged into that same project.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.
Eh, what can you do? Fake news is one of the bigger problems in the modern day.
0 Likes
Quoting: TheSHEEEPThe problems really only arise in large projects.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).
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.
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++.
0 Likes
Quoting: rkfgQuoting: 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.
2 Likes, Who?
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
0 Likes
I, for one, welcome my new froggy overlord.
0 Likes
See more from me