Hacker News new | past | comments | ask | show | jobs | submit login
Dvxk: A Vulkan-Based D3D11 Implementation for Linux with Wine (github.com/doitsujin)
216 points by spystath on Jan 21, 2018 | hide | past | favorite | 51 comments



I wonder if this is useful on Windows too.

The driver complexity could be reduced significantly and the quirks for games could be implemented in an industry shared dx2vulkan layer.

Especially as newer games migrate to vulkan, the remaining DX games will run fine on the then much better hardware, compensating the possible overhead.


I mean, the DirectX SDK already has a similar runtime to use a DX11 swapchain on top of DX12, and 11-on-12 is how (as I understand it, though someone more knowledgeable feel free to correct me) DX11 is implemented on Xbox One and UWP


If you want to use Vulkan on Windows 10 UWP apps, yes it might be useful.

Vulkan is only supported in desktop mode using the same ICD driver mechanism used by OpenGL drivers, which is not currently supported in UWP sandbox model.


Fortunately, most of us aren't interested in UWP bloat and just want to build good old desktop applications.


Win32 is going the way of Carbon even if it takes a couple of years more, like it or not.

Desktop bridge is just a migration tool to migrate Win32 into the store, and help developers slowly migrate parts of the apps into UWP ones.

The majority of new APIs are UWP only, with userspace drivers, DirectX 12, ReFS being the notable exceptions.

Of course you can always switch to GNU/Linux for Vulkan games.


> Win32 is going the way of Carbon even if it takes a couple of years more, like it or not.

That's the thing, nobody likes it. They've been pushing "modern apps"[1] since 2012 and nobody notable is writing them. As Surface RT showed in the market, when forced to make the choice people will just abandon the product rather than put up with that mediocrity.

[1] Orwellian calling it "modern" just in the name, as if that saves a bunch of work to come up with actual modern stuff that works.


Lots of Windows devs like having a safer, modern OO ABI instead of a clunky C API stuck in the 90's.

If Microsoft behaved like Apple and Google, people would have no option other than just use it.

After all, in spite of all hate for Windows XP, Vista or 7, there was hardly any year of GNU/Linux desktop.

By the way, the new Office will be store only on Windows 10.


The new stuff is all COM and you are telling me it's not stuck in the 90s?

Many people prefer software that works. My experience with the newer APIs is that they are on average less reliable, more quirky, less thought through and battle tested. I think the larger problem is that the current staff cannot produce works with the same quality of the Microsoft of 10 or 20 years ago. So of course they cannot compete with their own legacy.

(Disclaimer: I was at MSFT from 2008-2011.)

> By the way, the new Office will be store only on Windows 10.

Good for Office. I'm sure it will work fantastically.


> The new stuff is all COM and you are telling me it's not stuck in the 90s?

No, because UWP is .NET done right, what was supposed to be COM Runtime, before Java made them create the CLR instead.

AOT compilation to native code, using a high performance object model with productive programming languages, object oriented, instead of plain old rusty C.


> The majority of new APIs are UWP only

Microsoft APIs? Or APIs in general (which I doubt). Microsoft will try everything to push UWP into our PCs but I've been using Win10 for a couple years now and the only UWP application I (barely) use is Sticky Notes. The rest of my application ecosystem hasn't changed much.


Windows 10 APIs of course.

Well, Win32 is still there, but not on Windows 10 S and on ARM Windows 10 Always Connected PCs it gets JITed while UWP runs natively.


Microsoft tried that with Windows RT. It's riskier to that specific Windows edition than to the Win32.


And they're going to keep trying until it finally sticks. It's like Palladium or the Scientology Fair Game policy: just because people don't like it doesn't make it not critical to the organization. They just have to backpedal publicly to re-establish good PR, then sneak it in quietly while people's guard is down.


Microsoft isn't Apple. Their entire business relies on retaining as much backwards compatibility as possible

Every time they make any sort of major, sweeping change. They get raked over coals until they're charred to a god damn crisp

When Windows went from the old DOS-ish 95/98/ME to the much more stable NT based 2000 and XP, lots of things broke.

XP only survived the Microsoft EOL chopping block because of the rise of Netbooks. And even then, companies pay millions to keep that afloat due to how entrenched it is (Something likely to be repeated with Windows 7)

Vista brought a ton of (arguably much needed) changes. But its hardware requirements were pretty high for the time. Along with buggy drivers from Nvidia, that sank the entire operating system. Both in public perception and market share

Windows 7 (on release) was arguably a UI-tweaked Vista. Hardware had caught up by then, and a lot of people agreed that this was the "good" upgrade from XP

Windows 8 came out and tried to shoehorn that whole "Metro" interface and converge everything around it. And it flopped almost as hard as Vista did

Windows 10 Microsoft played a much stronger hand and dragged everyone they could (willing or otherwise, if you believed some accounts) over with a "free" upgrade for most. But it also pruned back Metro pretty hard. Instead trying to chase after the "App Store" model


> Microsoft isn't Apple.

And that's just the problem, innit. The App Store is making Windows irrelevant. Apple also has a FAR better security story, and part of it is because they whitelist everything that runs on their flagship devices.

Microsoft tried to do the same thing with Windows RT and Windows Phone. Didn't work. They were forced to backpedal, but they're not about to give up on making Windows Store the centerpiece of the Windows experience, and sideline, marginalize, and limit the capabilities of Win32 on the Microsoft platform -- "for security purposes" of course. Eventually, Win32 stuff will still run, but heavily sandboxed and unable to take advantage of cutting edge features of the Windows OS (HoloLens? Cortana? The database file system they've put off implementing for so long?). It could be that Windows 11 uses HyperV to run a Windows 7 instance for legacy apps while new stuff -- including support for newer graphics cards/GPUs -- must be compiled against UWP in order to run on the main kernel instance.


AFAIK it’ll work the same way for desktop win32, and store UWP apps.

Both will be JIT-ed if there’s no ARM binaries available, both can be compiled to native ARM64 binaries: https://mspoweruser.com/windows-arm64-gets-first-compiled-ap...


Currently the JIT only works for x86-32, not x86-64.


That’s true, but quite a lot of modern desktop software still comes with 32-bit binaries. Even Microsoft’s own software: visual studio and skype are still 32 bit, office has both versions…


There is still a 32bit version of Windows 10:

http://news.softpedia.com/news/Microsoft-Explains-Why-Window...

I wonder why they didn’t push fat binaries like Apple did?


Because 64-bit Windows doesn't run 16-bit binaries, 32-bit one does. Fat binaries aren't going to change that.


Except Microsoft is not Apple and even Apple did not nearly succeed in getting developers to use their App Store on the desktop. They did get developers to use Cocoa but that is clearly much better than Carbon and Apple worked hard to make it do everything Carbon does.

The selling point for developing on Windows is that you can mostly do anything and the Store is a sandbox. Developers aren’t going to want to get into the sandbox. And that’s ignoring the situation Microsoft has created where nobody wants to invest in new platforms because Microsoft keeps abandoning them.


Apple and Google together have abandoned more tech than Microsoft.


Citation please. I believe Microsoft is the king of abandoned tech.

https://en.wikipedia.org/wiki/Category:Discontinued_Microsof...

there's also:

  Groove Streaming Music
  Microsoft Office Groove
  Access Services for SharePoint Online
  Microsoft Continuum
  Skype for Business
  Kinect Adapter
  Microsoft Band
  Xbox One TV DVR
  Kinect Xbox One
  Kinect Windows
  Wunderlist
  Sunset
  Games for Windows
  Silverlight
  Zune
  Kin
  XNA
  PlaysForSure
  Flight Sim
  Expression Suite
  SteadyState
  Windows RT
  Windows Phone 10
  Windows Phone 8.1
  Windows Phone 7
  Forefront
  Front Page
  Money
Please add any that Wikipedia and I have missed.


Looks the lists are missing at least Microsoft Forefront:

https://en.wikipedia.org/wiki/Microsoft_Forefront_Threat_Man...

Good riddance.


Thanks for that. That Wikipedia entry uncovered these additional discontinued products

  Microsoft Forefront Threat Management Gateway
  Microsoft Forefront Unified Access Gateway
  Microsoft Forefront Identity Manager
  Microsoft Proxy Server
  Windows Essential Business Server
  Microsoft Robotics Developer Studio
  Microsoft BackOffice Server
  Content Management Server
  Microsoft SNA Server 
  Microsoft Site Server
  Microsoft Merchant Server
  Microsoft Groove Server 
  System Center Capacity Planner
  Microsoft Commerce Server
  Microsoft SharePoint Workspace
  Microsoft InfoPath
  Microsoft Office Document Imaging
  Microsoft Office Document Scanning
  Microsoft PhotoDraw 2000
  Microsoft Photo Editor
  Microsoft Schedule Plus
  Microsoft Virtual PC
  Microsoft Vizact 2000
  Microsoft Data Analyzer 2002
  Microsoft Ofice Assistant
  Microsoft SharePoint Designer
  Microsoft Office InterConnect
  Microsoft Office Picture Manager
  Microsoft Entourage
  Microsoft Office Forms Server:
  Microsoft Office Project Portfolio Server
  Microsoft Office PerformancePoint Server
  Office Live Small Business
  Office Live Workspace
  Office Live Meeting


I don’t think Skype for Business and Wunderlist have been discontinued. But my comment was more about things like ‘PlaysForSure,’ Silverlight and Windows Phone. It’s not really that big a problem they discontinued Space Cadet.


> I don’t think Skype for Business and Wunderlist have been discontinued.

FWIW:

"Microsoft is going all in on Teams and plans to phase out Skype for Business"

https://techcrunch.com/2017/09/25/microsoft-is-going-all-in-...


Okay, it’s worse than I thought. It’s hard to understand why people keep falling for this.


Microsoft to shut down Wunderlist in favor of its new app, To-Do

https://techcrunch.com/2017/04/19/microsoft-to-shut-down-wun...


The question is whether Windows will die sooner than UWP will be fixed to become an acceptable replacement for Win32. The main reason why Windows is still relevant (even despite Microsoft's desperate attempts to kill it) is Steam games and some legacy software that hasn't been ported to Electron yet. Forcing new apps to use UWP in its current broken state can only accelerate the death of desktop Windows.


> some legacy software that hasn't been ported to Electron yet.

«Let's port Photoshop to electron» not


I also doubt that it'll be ported to UWP any time soon.


Adobe is already adopting UWP, with Adobe XD being the first product for the store.

http://www.adobe.com/products/xd.html


The only way Windows dies is if the Desktop dies.

As awful as Windows 10's user experience is, it is still miles better than any of the (far too many) Linux Desktops. Linux Desktop evangelists who only ever develop web software and basically use the browser as their OS will continue to scratch their heads and wonder why their argument of "your use case isn't what we designed for!" isn't convincing anyone to switch.


With a few exceptions, you can call UWP APIs from Win32 code.


Steam doesn't play ball with the Microsoft app-store that UWP insists on.

That's pretty much a game-over for UWP in the gaming world.


Not everyone is on Steam.

Everyone I know still buys from retail, as they care to have something physical.

Also UWP has the XBOX titles, and if Microsoft really wanted they could just pull all their titles out of Steam, assuming whatever contracts they have in place make it possible.


Typical Xbox games aren't implemented on UWP though, it's just a way for hobbyists to get small apps running on the Xbox without a costly developer account and devkits (https://docs.microsoft.com/en-us/windows/uwp/xbox-apps/). The restriction of Microsoft games to the MS App Store is an entirely political decision. I'm certain the actual developers down in the trenches would be more than happy to code against plain Win32+D3D12 (or D3D11) and distribute their games through Steam.


> Not everyone is on Steam.

They don't need to be. Steam is a serious player in games distribution, and if avoiding certain APIs is necessary to publish on Steam, that's what developers will do. (Or rather, it's what they will continue to do.)

Same for uPlay, Origin, and whatever it was that Rockstar made. No-one uses Microsoft's app-store for distributing retail games, and that isn't about to change, even if Microsoft hold their own technologies hostage.


Digital overtook physical in 2010 [1] and has only taken a more commanding lead since then. Physical PC games are, essentially, dead, with only a quarter of sales being physical in 2016 [2].

1: https://www.google.com/amp/s/www.forbes.com/sites/oliverchia...

2: https://www.statista.com/statistics/190225/digital-and-physi...


> Everyone I know still buys from retail

It would seem that "Everyone" you know is not a very representative sample then.


I can state the same from your Steam sample.


dxvk is a Direct3D11 implementation on top of Vulkan, not the other way around.


> Vulkan is only supported in desktop mode using the same ICD driver mechanism used by OpenGL drivers, which is not currently supported in UWP sandbox model.

Another reason for developers to avoid UWP.


Not an problem for anyone using game engines.


Typo: the name is dxvk, not dVXk.


Pretty good progress. It's aimed as a drop in replacement for Wine's D3D11 over OpenGL implementation.

Meanwhile Wine developers are working on vkd3d for D3D12 → Vulkan translation: https://source.winehq.org/git/vkd3d.git/


It really sucks that Dvxk has to warn against the dangers of using it for online gaming:

"Manipulation of Direct3D libraries in multi-player games may be considered cheating and can get your account banned. This may also apply to single-player games with an embedded or dedicated multiplayer portion. Use at your own risk."


Ah yes! You could make it draw walls as semi-transparent to see opponents through them!


The problem is not only hooking into the rendering, DLL injection can be used to take over the entire process and basically do whatever you want in a game client.


Are there any performance comparisons vs. Wine's DX11-over-OpenGL? Also: Has anyone tried running Overwatch with it yet?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: