You can sign up to get a daily email of our articles, see the Mailing List page!

D9VK is no more as it merges with DXVK, making DXVK a D3D 9/10/11 to Vulkan layer

Posted by , | Views: 21,223

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
53 Likes, Who?
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG, Humble Store and Paradox Interactive. See more information here.
About the author -
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.
See more from me
43 comments
Page: «4/5»
  Go to:

Creak 16 December 2019 at 3:21 pm UTC
View PC info
  • Supporter
  • Top Supporter
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++.
tonyrh 16 December 2019 at 4:15 pm UTC
TheSHEEEP
rkfg
Eike
rkfgDXVK has a "fundamental flaw" and that is the language it's written in. Wine doesn't accept C++ code, unfortunately.

Now I wondered what they're using.
Pure C?!?
Yes, Wine is written in pure C.
Guess 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.

What the fuck are you talking about? The most ubiquitous, successful and with the greatest number of contributors ever open source project is written in C, the kernel itself!
Shmerl 16 December 2019 at 5:52 pm UTC
rkfg
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 16 December 2019 at 5:54 pm UTC
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 16 December 2019 at 7:14 pm UTC
I, for one, welcome my new froggy overlord.
BrazilianGamer 16 December 2019 at 7:47 pm UTC
That's just... Remarkable. DX12 Vulkan implementation, we're waiting for you
Creak 16 December 2019 at 8:03 pm UTC
View PC info
  • Supporter
  • Top Supporter
ShmerlRust 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.
Yup, I would go the Rust way as well. I'd say that, as of today, the community knowledge and resources are not as good as for C and C++ (think stackoverflow and C/C++ libraries). But I truly hope Rust will continue to be more and more popular.

Off-topic: I don't agree with all the language decisions in Rust, notably the different behavior just if you prefix your variable with `_`:
    // The compiler warns about unused variable bindings; these warnings can
    // be silenced by prefixing the variable name with an underscore
    let _unused_variable = 3u32;

Knowing that there is already a way, which is clearer IMO, to silence some warning. See first lines in https://doc.rust-lang.org/stable/rust-by-example/custom_types/enum/enum_use.html
ziabice 16 December 2019 at 8:09 pm UTC
View PC info
  • Supporter
  • Top Supporter
Good job, Joshua!
Shmerl 16 December 2019 at 8:16 pm UTC
CreakOff-topic: I don't agree with all the language decisions in Rust, notably the different behavior just if you prefix your variable with `_`:
    // The compiler warns about unused variable bindings; these warnings can
    // be silenced by prefixing the variable name with an underscore
    let _unused_variable = 3u32;

Knowing that there is already a way, which is clearer IMO, to silence some warning. See first lines in https://doc.rust-lang.org/stable/rust-by-example/custom_types/enum/enum_use.html

Yeah, I suppose it can eventually get trimmed (i.e. special meaning of _), unless they have some backwards compatibility concerns about not breaking the current behavior.


Last edited by Shmerl on 16 December 2019 at 8:16 pm UTC
TheSHEEEP 16 December 2019 at 8:44 pm UTC
View PC info
  • Supporter
Shmerl
CreakOff-topic: I don't agree with all the language decisions in Rust, notably the different behavior just if you prefix your variable with `_`:
    // The compiler warns about unused variable bindings; these warnings can
    // be silenced by prefixing the variable name with an underscore
    let _unused_variable = 3u32;

Knowing that there is already a way, which is clearer IMO, to silence some warning. See first lines in https://doc.rust-lang.org/stable/rust-by-example/custom_types/enum/enum_use.html

Yeah, I suppose it can eventually get trimmed (i.e. special meaning of _), unless they have some backwards compatibility concerns about not breaking the current behavior.
That's my biggest gripe with Rust.
It tries to enforce a crapload of conventions, from coding guidelines to how it focuses so much on memory safety that it makes some convenient coding rather impossible.
Basically, you code in the one way Rust wants you to, or you gtfo. Feels too restraining to me, especially considering coming from C/C++, I do know how to keep memory safe myself, I don't need that "safety net".

If the language would open up more, that would make it quite nice.
But of course, it will live or die with its supported libraries and right now, that doesn't look too great.


Last edited by TheSHEEEP on 16 December 2019 at 8:48 pm UTC
  Go to:
While you're here, please consider supporting GamingOnLinux on Patreon, Liberapay or Paypal. We have no adverts, no paywalls, no timed exclusive articles. Just 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!

You need to Register and Login to comment, submit articles and more.


Or login with...

Livestreams & Videos
Community Livestreams
  • Story Time: „Unavowed“ (Wine)
Popular this week
View by Category
Contact
Latest Comments
Latest Forum Posts