Pages

Showing posts with label DirectX. Show all posts
Showing posts with label DirectX. Show all posts

Wednesday, August 16, 2023

CodeWeavers CrossOver 23.0.0 for macOS Linux and ChromeOS has been released

Hi folks,

I’m thrilled to announce that CodeWeavers has released CrossOver 23 for macOS, Linux and ChromeOS!

CrossOver 23 includes an update to Wine 8.0.1, bringing with it over 5,000 changes that offer improvements to a variety of applications. This release also includes an update to Wine Mono 7.4.0, vkd3d 1.8, DXVK 1.10.3 and MoltenVK 1.2.3.

Our most exciting feature is initial DirectX 12 support on macOS. Diablo II Resurrected and Diablo IV are currently running well on macOS Ventura, making them the first DirectX 12 games working on a released macOS version. This breakthrough was the culmination of years of development, and we look forward to continuing to aggressively pursue support for even more DirectX 12 titles. Diablo IV is also newly working on Linux with the CrossOver 23 release.

We’re pleased to announce that this release also includes initial support for geometry shaders and transform feedback on macOS Ventura. This unlocks many games that previously suffered from missing graphics or black screens in-game. Risk of Rain 2, TEKKEN 7, Octopath Traveler, Street Fighter V, Astroneer, MechWarrior 5: Mercenaries and Trailmakers are just some of the titles that are now running on CrossOver 23. Note that using wined3d instead of DXVK will produce the best results for games using geometry shaders. And speaking of wined3d, our team also noted some nice performance improvements with wined3d.

EA App is now running on both macOS and Linux with CrossOver 23. Many EA App games are now working, including The Sims 4, Titanfall 2 and Mass Effect Legendary Edition. If you are running EA App games through Steam, make sure to install “EA App for Steam” into your bottle: that CrossTie installs needed dependencies.

For our Linux users, we worked around an XWayland bug, and Office 365 applications are now running with better performance with Wayland under CrossOver 23.

One of the most requested features we get for the CrossOver GUI is the ability to uninstall applications, and that is now possible with CrossOver 23. Uninstalling is now a quick operation: simply go to the “Bottle Details” at the bottom of the right sidebar for your bottle and right-click on the application listed under “Installed Software” to find the uninstall option. CrossOver also now deletes launchers for uninstalled applications. For example, launchers for games uninstalled through Steam will now be removed for you.

Of course, this release also contains some important bug fixes, including fixes for the latest Quicken, Steam, Rockstar Games Launcher, Age of Empires II Definitive Edition and Ubisoft Connect updates that caused those applications to stop working with CrossOver.

Lastly, a note about macOS Sonoma. Currently, CrossOver 23 runs on the Sonoma beta, but there are definitely known issues. We are working on fixes, and we plan to release an update to CrossOver 23 that will be fully compatible with it. 

Change Log :

23.0.0 CrossOver - August 16, 2023

  • Core Technology Improvements:
    • CrossOver 23 includes Wine 8.0.1, with over 5,000 improvements, and selected patches from recent Wine with benefits to many popular applications.
    • Update to Wine Mono 7.4.
    • Update to vkd3d 1.8.
    • Update to DXVK 1.10.3.
    • Support for EA App.
    • Ability to uninstall applications.
  • macOS:
    • Initial support for DirectX 12 games, including Diablo II: Resurrected and Diablo IV.
    • Initial support for geometry shaders and transform feedback.
    • Update to MoltenVK 1.2.3.
  • Linux:
    • Office 365 support on Wayland.
    • Support for Diablo IV.
Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.
 

Wednesday, June 7, 2023

Lutris 0.5.13 has been released

With this release, we're adding back the ability to run games with Proton. While this can be an useful thing for testing compatibility, it is still recommended to stick with the builds provided by Lutris. We are now using @GloriousEggroll's Proton based builds by default, which makes using Steam's proton an even narrower edge case.


For players with very large libraries, Lutris will be a lot more responsive thanks to the performance improvements by @danieljohnson2, along with loads of other UI improvements!

Starting from this release, it is now possible to reference ModDB links in Lutris installers. If your distribution doesn't provide the moddb Python package, you'll have to install it with: pip install moddb.
We also have an integration with Itch.io, thanks to @GoGoOtaku (note that we don't have a way to search for or install free games from Itch.io with this integration).

Changelog:

  • Add support for Proton
  • Add drag and drop on the main window. Dropped files will be matched
    No-Intro, Redump and TOSEC checksums.
  • Add support for ModDB links in installers (moddb python module required)
  • Added "Missing" sidebar option for games whose directory is missing
  • Re-style the configuration, preferences, installer and add-games windows
  • Group configuration options into sections
  • Added checkbox to stop asking for the launch config for a game
  • Added checkbox to sort installed games first
  • Support for launch-configs in shortcuts and the command line
  • Show platform badges on banners and cover-art
  • Installing games from setup files can now use different presets (Win98, 3DFX, ...)
  • Add filter field to runner list
  • Show game count in search bar
  • Workaround Humble Bundle authentication issues by allowing importing
    cookies from Firefox
  • Add Itch.io integration
  • Add Battle.net integration (protobuf dependency required)
  • Improve detection of DOSBox games on GOG
  • Added "Unspecified" Vulkan ICD option
  • Removed ResidualVM (now merged into ScummVM)
  • Detect obsolete Vulkan drivers and default to DXVK 1.x for them
  • Improved High-DPI support for custom media
  • Performance improvements

 Download this version of Lutris from here.

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today. 

Friday, April 21, 2023

Lutris 0.5.13-beta2 has been released

 Lutris helps you install and play video games from all eras and from most gaming systems. By leveraging and combining existing emulators, engine re-implementations and compatibility layers, it gives you a central interface to launch all your games.


The client can connect with existing services like Humble Bundle, GOG and Steam to make your game libraries easily available. Game downloads and installations are automated and can be modified through user made scripts.

Changelog:

2nd beta release for 0.5.13

  • Add support for Proton
  • Add drag and drop on the main window. Dropped files will be matched
    No-Intro, Redump and TOSEC checksums.
  • Add support for ModDB links in installers (moddb python module required)
  • Added "Missing" sidebar option for games whose directory is missing
  • Re-style the configuration, preferences, installer and add-games windows
  • Group configuration options into sections
  • Added checkbox to stop asking for the launch config for a game
  • Added checkbox to sort installed games first
  • Support for launch-configs in shortcuts and the command line
  • Show platform badges on banners and cover-art
  • Installing games from setup files can now use different presets (Win98, 3DFX, ...)
  • Add filter field to runner list
  • Show game count in search bar
  • Workaround Humble Bundle authentication issues by allowing importing
    cookies from Firefox
  • Add Itch.io integration
  • Add Battle.net integration (protobuf dependency required)
  • Improve detection of DOSBox games on GOG
  • Added "Unspecified" Vulkan ICD option
  • Removed ResidualVM (now merged into ScummVM)
  • Detect obsolete Vulkan drivers, warn and default to DXVK 1.x for them
  • Improved High-DPI support for custom media
  • Performance improvements

 Download this version of Lutris from here.

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Saturday, February 18, 2023

Wine development release 8.2 is now available for Linux FreeBSD and macOS

The Wine development release 8.2 is now available.

What's new in this release:

  • Better debug information in Wow64 mode.
  • Wow64 thunks in the WPCAP library.
  • Indeo IV50 codec support.
  • Monitor names set from EDID data.
  • Various bug fixes.

The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations. 

Bugs fixed in 8.2 (total 22):

 - #48528  The Void crashes with builtin d3dx9_36 (needs D3DXFillCubeTextureTX() to return S_OK)
 - #51345  Regression: Visual Studio 2005 "package load failure"
 - #51545  STDOUT lost from a forked program on Cygwin/MSYS2
 - #53747  SubLab VST3 plugin fails to register (needs Windows.System.Profile.SystemManufacturers.SmbiosInformation)
 - #53926  New typelib marshaller depends on IID_IDispatch support from target interface
 - #54103  opengl32:opengl - test_copy_context() crashes on w11pro64_nv
 - #54150  d3dcompiler_43:hlsl_d3d11 & d3dcompiler_47:hlsl_d3d11 - test_trig() fails on w11pro64_nv
 - #54234  vbscript fails to compile when colon follows Else in If...Else
 - #54318  Rich Edit inserts newly composed text at wrong position when system IME composition ends while a selection is active
 - #54371  loader won't launch from PATH unless named "wine"
 - #54384  GOG Heroes of Might and Magic IV crashes on launch
 - #54431  Switching active window (alt+tab or otherwise) away from Final Fantasy XI causes keyboard keys to remain pressed
 - #54456  vbscript memory leak in For Each with SafeArray as group
 - #54457  vbscript memory leaks in interp_redim_preserve
 - #54458  vbscript memory leaks in Global_Split
 - #54463  Wrong version value is returned from win32_operatingsystem on win10 (regression)
 - #54465  dbghelp:dbghelp - The 64-bit test_modules() fails on Windows 7
 - #54477  user32:msg - test_message_conversion()'s broadcast test fails on Windows 7 and 10
 - #54486  getenv_s returns the wrong value
 - #54489  VarAbs() does not handle BSTR arguments correctly
 - #54490  vbscript fails to compile when statement follows ElseIf
 - #54493  vbscript fails to compile concat when used without space and expression begins with H

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Monday, January 30, 2023

CodeWeavers CrossOver Mac 22 review

There will always be apps — mostly games — whose publishers won’t port them to the Mac for financial or contractual reasons. Codeweavers’ CrossOver offers a simple, convenient way to run many of those apps. The result isn’t as reliable or universal as other solutions, but it’s a lot cheaper and easier, and with CrossOver’s helpful database of app functionality and generous try-before-you-buy period, you can see whether it’ll run the apps you want to use before you commit your hard-earned cash.

 

CrossOver translates Windows commands into Mac ones on the fly — like hiring an interpreter to help you in a foreign country, rather than learning the language yourself. It’s based on the open-source WINE project, but its improvements to standard WINE make it a lot easier for everyday users to successfully run.

CrossOver 22 is only available from Codeweavers' web site. $74 gets you a full copy and a year’s worth of updates to the app. Once that period elapses, you can still use the copy you already have as long as you want to, but you won’t be able to download fresh updates. You'll have a limited window of time after your subscription expires to renew it for roughly $30.

 You can also pay $494 for CrossOver Life, which removes the need for annual renewals. The company tends to offer once-a-year discounts around Black Friday, sometimes slashing the cost of a year's updates to as little as $15.

After a quick installation, CrossOver does most of the hard work for you. It sets up a “bottle” — a contained virtual environment — in which you can install basic Windows or Linux underpinnings, plus any apps you’d care to run. CrossOver builds in shortcuts to install popular apps like Steam, and it can seamlessly install apps from the Internet, from downloaded ISO files, or from a physical disc, should you have an external drive.

You can have multiple separate bottles for different apps, or put all the apps you use in a single vessel. As with containerized software setups like Docker, this makes CrossOver easier and less stressful to use. In the unlikely event that something goes horribly wrong inside a bottle, it won’t affect your larger system. You can just delete the bottle and start fresh.

CrossOver 22’s biggest leap forward lies in its overhauled interface.

Each new version of CrossOver offers under-the-hood improvements to help all apps in general and specific titles in particular run better. But CrossOver 22’s biggest leap forward lies in its overhauled interface. 

Previous versions hid important toggles and features behind poorly designed contextual menus. CrossOver 22 takes its design cues instead from the Mac App Store, putting crucial options in full view. It’s easier than ever to run apps you’ve already installed, or add new ones. 

Codeweavers’ database of popular apps and their compatibility, maintained by volunteer testers, is now more directly integrated into the app itself, rather than requiring a separate visit to Codeweavers's web site. That database isn’t comprehensive — some titles I’ve personally used under CrossOver aren’t included — but it’s a good place to start when you’re curious about whether a particular app will run there.

The path between original Windows code and successful Mac execution isn’t always straight. For instance, Windows games use a set of tools known as DirectX to enable 3D graphics. CrossOver has to pass those commands through an open-source translator called DXVK, which maps them to the open-source Vulkan 3D standard. These Vulkan commands must then go through another interpreter, MoltenVK, to run under Apple’s own 3D toolkit, Metal.  Each of these handoffs eats up processing power and makes the resulting games run slower and less reliably than they would if coded for the Mac from the get-go. 

The beefier your processing power, the better performance you’ll get from CrossOver. Even though it’s an Intel native app, it runs best on Apple silicon under Rosetta 2 emulation, thanks to the sheer horsepower of the M1 and higher.  (CrossOver plans to eventually support Apple silicon, but Codeweavers says that transition is likely years away.)  Popular launcher apps like Steam, and simpler 2D games like Guacamelee, ran without a hitch in my tests, but more sophisticated titles had various degrees of tradeoffs.

If you want to game with CrossOver, having more than 8GB RAM or something more powerful than a basic M1 will likely serve you well.

When I ran 2017’s Star Wars: Battlefront II on my stock M1 Mac Mini, the game looked great. But depending on the game mode and the size and type of the environments I found myself in, performance ranged from fast and fluid to an unplayable crawl. I’ve seen YouTube videos of other CrossOver users playing the game much more smoothly, even on levels that choked my computer. If you want to game with CrossOver, having more than 8GB RAM or something more powerful than a basic M1 will likely serve you well.

Furthermore, Metal has different aims and priorities than DirectX, trading some measure of tech sophistication for the ability to run across MacOS, iOS, and tvOS. Even under Apple’s recently announced Metal 3, there are just some things DirectX does for which Metal lacks an easily translated equivalent. 

Though the game mostly ran smoothly barring some pauses for loading, the world around my protagonist rendered as a mass of flickering black triangles.

I saw this firsthand playing Jedi: Fallen Order. Though the game mostly ran smoothly barring some pauses for loading, the world around my protagonist didn’t render right, presenting a mass of flickering black triangles instead of realistic surroundings. I was able to adapt and still enjoy the game, but if you’re looking for absolute fidelity, consider this fair warning.

And even if everything else goes swimmingly, there are some facets of Windows software that just won’t work outside that platform, no matter what. Barring some miracle in a future version, I’ll never know how well Star Wars: Squadrons runs on CrossOver, because the anti-cheating software for its multiplayer mode won’t cooperate, shutting down every attempt to install the game.

ntel Macs can directly install Windows through Boot Camp, but this option isn't available on newer Apple Silicon-powered Macs. 

Virtual machines like VMWare Fusion and Parallels Desktop let Mac users run Windows and its apps. By emulating the entire Windows operating system, they  offer better compatibility with more kinds of PC apps, especially games. 

Both apps are Apple Silicon native and can, with various degrees of workarounds, run Apple Silicon-friendly ARM-based versions of Windows 11 (and their apps) natively. CrossOver tops out at apps for Windows 10, and because of the engineering complexities involved, Codeweavers says it won't offer a native Apple Silicon version for several more years.

But Parallels and VMWare each cost more than a year of CrossOver updates, and neither will work without a copy of Windows itself. Even an older version of that can run you as much as $140.

CrossOver 22 is impressive in its simplicity — at least in terms of how easy it is to get select Windows applications up and running on macOS. It's by no means perfect, and your mileage will vary dramatically depending on the complexity of the applications you're looking to run, not to mention the power of your Mac computer itself. But with prudent use of the free trial to test your must-work apps, it's a great opportunity to bridge the gap between Apple and Microsoft's computing worlds.

 Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Wednesday, January 25, 2023

DXVK version 2.1 has been released with HDR support

On systems supporting HDR10 color spaces, HDR can now be enabled by setting the environment variable DXVK_HDR=1, or by setting the option dxgi.enableHDR = True in the configuration file. When using vkd3d-proton 2.8 or newer, this will allow D3D12 games to detect and use the HDR10 color space if they support it.

  

No major Linux desktop environment currently supports HDR. In order to use this on Linux, a Gamescope session with --hdr-enabled is required. This is currently only supported under AMDGPU and requires kernel patches from the josh-hdr-colorimetry branch.

Note: D3D11 support is implemented, but not expected to work in most games as they typically require AMDAGS or NVAPI to set up HDR output, rather than using the corresponding DXGI APIs. Additionally, only Nvidia drivers are expected to work on Windows.

Shader compilation improvements

Use of pipeline libraries was extended to pipelines with tessellation or geometry shaders in order to further reduce stutter. Additionally, more features of the VK_EXT_extended_dynamic_state3 extension are leveraged to reduce stutter in some situations when MSAA is used, provided that the Vulkan driver supports them.

Note: Current development builds of RADV will expose VK_EXT_graphics_pipeline_library with the features that DXVK needs if the RADV_PERFTEST=gpl environment variable is set. Note that the implementation is not yet complete and does not support shader caching at this time, but it should generally work with DXVK.

Sample rate shading

For older games that support MSAA, the d3d9.forceSampleRateShading and d3d11.forceSampleRateShading options were added to let users enable sample rate shading for all shaders. This will have a very high impact on GPU-bound performance, but may increase overall image quality in certain games that suffer from specular aliasing or shimmering alpha-tested geometry.

Note: Games that resolve the rendered images inadequately (e.g. performing a linear resolve on HDR render targets) will likely not benefit from this option.

GLFW backend

For native Linux builds of DXVK, a GLFW backend was added as a compile-time alternative to the existing SDL2 backend. See PR #3111 for details.

Bug fixes and Improvements

  • Improved D3D11 command submission logic in order to make overall performance more consistent, and to bring DXVK's behaviour more in line with native D3D11 drivers.
  • Fixed D3D11 reference counting issues around 2D textures. (#3169)
  • Fixed Vulkan validation errors when creating DXGI_FORMAT_A8_UNORM UAVs. Note that UAVs of this format may not work as expected.
  • Fixed Vulkan validation errors that would occur when allocating dedicated image memory on Nvidia GPUs in some situations.
  • Fixed Vulkan validation errors caused by broken timeline semaphores on 32-bit Proton.
  • Worked around an issue with the Uplay overlay being stuck on screen. (#3146)
    Note that this fix does not apply to Windows as it was achieved by loading winevulkan.dll directly instead of the actual Vulkan loader.
    Note that this change will break Red Dead Redemption 2 with dxvk-nvapi prior to this commit: jp7677/dxvk-nvapi@ac00a42
  • Worked around a bug in AMD's Windows driver as well as AMDVLK that would cause numerous games to crash since DXVK 2.0. (#3172)
  • Fewer threads will be used to perform background optimization of graphics pipeines. This may result in a smoother gameplay experience on some systems. Note that this change does not affect initial shader compiling, as finishing that quickly is crucial to avoid stutter.
  • The state cache file will now only be created when the first pipeline is written to it, in order to avoid empty cache files.
    This change mostly affects D3D9 games on systems with EXT_graphics_pipeline_library support.
  • Ashes of the Singularity: Fixed performance regression caused by suboptimal descriptor set allocation.
  • Battlefield: Bad Company 2: Fixed flickering (#3078, PR #3079)
  • Cardfight!! Vanguard: Fixed rendering (PR #3068).
  • Gujian 3: Fixed rendering issues on some GPUs. (#1784)
  • Resident Evil 4 HD: Fixed invalid Vulkan usage causing a GPU hang on RADV. (PR #3089)
  • Saints Row: The Third: Fixed a severe performance issue with rain when using the D3D9 renderer. (#2473, PR #3158)
  • Sekiro: Shadows Die Twice: Fixed stuttering issues on Nvidia GPUs. (#3179)
  • Sonic Frontiers: Worked around a game bug that would cause shadows to flicker when GPU-bound.
  • Supreme Commander: Forged Alliance: Fixed a crash after loading (#3058, PR #3060)

Note: The setup script setup_dxvk.sh was no longer deemed useful and got removed. This change will only affect users who manually install DXVK into a wine prefix, rather than using it through Proton or Lutris.

Note: Due to changes to our DXGI implementation, older versions of vkd3d-proton (prior to 2.8) will no longer work with this version of DXVK.

Link to source code

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.
 

Tuesday, December 27, 2022

vkd3d-proton version 2.8 has been released

VKD3D-Proton is a fork of VKD3D, which aims to implement the full Direct3D 12 API on top of Vulkan. The project serves as the development effort for Direct3D 12 support in Proton.

 

 

This release rolls up some significant new developments before the holidays.

VK_EXT_descriptor_buffer support

This extension is significant in that it removes a ton of CPU overhead.
We already had most of this in place on RADV and Steam Deck,
but this will allow NVIDIA, Intel, Turnip, and other AMD driver implementations to hit the same optimal code paths.
GPU bound performance increases slightly since we can also remove some shader code that was required to workaround lack of descriptor buffers.

New extension requirements

To support descriptor buffers in the code base, these features are now required instead of optional.
Note that these features are widely supported already and is not expected to cause any problems.
If an implementation could support v2.7, it will support v2.8.

  • VK_KHR_buffer_device_address
  • VK_KHR_push_descriptor

Rewritten support for host accessible images

The entire API feature was rewritten from scratch to support more implementations and edge cases without
a lot of per-application hacks and workarounds.
As the most extreme example of weird API usage, Guardians of the Galaxy should (finally) run well on NVIDIA.

Rewritten swap chain

To most users, this change should be transparent.

  • Allow more precise control on latency and frame pacing with VK_KHR_present_wait.
    • mesa-git supports this along with NVIDIA.
    • VKD3D_SWAPCHAIN_LATENCY_FRAMES=n allows user to force a specific amount of latency.
    • Implementation of DXGI latency fences is now correct.
  • Reduce CPU overhead on the main thread that presents to swap chain.
  • Fixes a spurious hang in Hitman III where game relies on asynchronous present in order to not lock up.
  • Win32 specific DXGI code is handled by DXVK. A DXVK build from Experimental or later is required for this to work.
    This allows a native Linux implementation of vkd3d-proton, including swap chain.
  • When VK_KHR_present_wait is not supported, behavior should be 1:1 with old implementation.

NOTE: The old swapchain implementation is still in the repository, and is expected to be removed in the next release.
For now, VKD3D_CONFIG=swapchain_legacy can be used to triage any potential issues with the new one.

NOTE: A driver crash was observed on NVIDIA 525.x drivers when running in some PRIME configurations.
For now, we disable use of present_wait on these drivers.

Fixes and workarounds

  • Workaround GPU hangs in Spiderman Remastered: Miles Morales (same issue as the original).
  • Fix rendering bug with gun damage in Borderlands 3 on RADV.
  • Refactor how resizable BAR is used. GPUs with 4 GiB and lower will no longer attempt to use resizable BAR,
    which can avoid some out-of-memory situations.
  • Fix GPU hang in Age of Empires IV.
  • Fix some minor issues in mesh shader implementation.
  • Fix some issues preventing RE: Village from booting on Arc.
  • Some last minute frenzied fixes for Witcher 3 next-gen update.
    • All features except RT appears to work on RADV.
    • Hairworks is known to crash GPU on NVIDIA. More investigation is needed to root cause.
    • Some RT effects work on NVIDIA, others don't:
      • GI is reported to work.
      • AO crashes GPU. More investigation is needed to root cause.

Implement minor missing D3D12 features

An obscure feature was stubbed out and forgotten until now.
ID3D12Device1::SetEventOnMultipleFenceCompletion() is now implemented.

Also, implement SetEventOn(Multiple)FenceCompletion for shared D3D12 fences.
Fixes a regression in Gears 5 causing lockup on boot.

Link to source code

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.
 

Friday, December 23, 2022

Manage Your Linux Game Library With Lutris

Lutris is an open-source Linux game manager, but it’s more than that. It aims to provide a single unified way to handle gaming on Linux.

It brings together all aspects of Linux gaming into one place. Steam, Wine, HumbleBundle, GOG, and even a whole range of emulators are all brought together for a relatively seamless experience.

Lutris also provides methods for installing games. It integrates with Steam, and it provides installer scripts for even the trickiest Wine games.


Running Lutris

Start Lutris for the first time

You can start Lutris from any other graphical application. The basic screen that you get when you don’t have any games installed is fairly plain. It just prompts you to create an account and add your games.

Create a Lutris account

It’s best for you to create a Lutris account now. Your account is the way that the client can keep your game library synchronized. It also opens up the option to browse and install games from the platform’s website. You can register easily on the Lutris website.

Once you’ve set up your account, take a look at the client again. The middle button on the main screen will allow you to link your new account to the client. Click on it and enter in your username and password.

Adding Games and Runners

Lutris has a couple of ways of adding games. It uses other programs called runners to actually run games. This is more of a management platform than anything else. It organizes things but doesn’t do any heavy lifting.

Lutris Runners

To see the list of available runners, click on the icon at the top of your Lutris window. A window will open up with a list of runners. Many are emulators, but you’ll see Steam and Wine there, too. With the exception of Steam, you can install the runners through this window. You can even manage and install multiple versions of Wine. Lutris will keep track of them. It actually has custom scripts for Wine games that specify the best version of Wine to use.

Lutris Wine Install

Steam has to be installed separately through your distribution’s package manager, but Lutris will pick it up immediately once you have. In order to actually get your Steam games, you need to sign into your Lutris account in your web browser. Go to your profile and click on the “Sign in through Steam” button. This will link your Steam account so the client can display your games and other Steam features.

Lutris Games

For many other games you can browse the selection on the Lutris website. There are tons on there, and more are constantly being added. Like with Steam, you can download games from the site, and the client will set them up for you.

If you have any other games that aren’t covered through Steam or the Lutris website, you can add them manually. The plus sign at the top of the client lets you create your own custom game launcher for games that are already installed on your computer.  The development team plans on adding support for GOG and HumbleBundle in the near future, but for now you can still add games that you purchase through either of these services manually.

Once you’ve added a library of games, you’ll see a nice tiled image layout of all of your games on the main screen of the Lutris client. You can now run all of your games through Lutris!

Full Article

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

 

Wine development release 8.0-rc2 is now available for Linux FreeBSD and macOS

The Wine development release 8.0-rc2 is now available.

What's new in this release:

  • Bug fixes only, we are in code freeze.

The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations. 


Bugs fixed in 8.0-rc2 (total 50):

 - #31927  ws2_32:sock fails intermittently - 'Test succeeded inside todo block: GetQueuedCompletionStatus returned 0'
 - #42797  ICU64 for VICE: No highlighted read/write-colors in Memory-window.
 - #46500  Cogpack - Exercises can't be run - Error 380 - Invalid property value
 - #46538  Unreal Tournament (UT99): mouse clicks in main menu work only once
 - #49394  CED1401 USB function driver needs ntoskrnl.exe.KeInsertQueueDpc()
 - #49517  Warframe crashes during loading before menu with wined3d, gives popup
 - #50013  MyPhoneExplorer 1.8.15 crashes
 - #50043  Kholat from GOG does not launch anymore
 - #50315  Silent Hill 2 failed to install -installshield extraction error
 - #50468  winedbg fails to load symbols for non PE builtin dlls
 - #52334  Performance has degraded in multiple games (WoW 1.12.1, Kane & Lynch: Dead Men Demo)
 - #52394  "Control panel" -> "Add/Remove Programs" in builtin wine explorer is not working
 - #52564  dxgi:dxgi times out in test_find_closest_matching_mode() on cw-gtx560
 - #52708  libs/xslt/libxslt/attributes.c:136:9: error: variadic functions must use the base AAPCS variant
 - #52779  Construction Set Extender crash with an Assertion Error in wine 7.5
 - #52873  oleaut32:typelib fails in Wine in Hindi
 - #52964  kernel32:locale - test_CompareStringA() fails on Wine in Hindi
 - #52997  Integration of D3D12 support with a PE build of vkd3d causes a crash in Steam Overlay.
 - #53028  gamepad buttons stopped working correctly
 - #53099  wineserver (gcc -O0) crash when exiting LiLi USB Creator
 - #53300  Controller response delayed
 - #53384  Hogia Hemekonomi Unexpected error on first start
 - #53406  Had been running 7.10 Fedora version no problem, but today updated to 7.12 broke??
 - #53485  Cursor is missing in Visio 2003 when editing text
 - #53503  QuickBooks Pro 99 page faults with print preview or attempting to print
 - #53525  dinput:hid - test_hid_multiple_tlc() sometimes fails with testsigning turned on
 - #53550  Some Catalan locales not properly handled
 - #53595  Iran Timezone is not detected correctly
 - #53623  Resident Evil 7 has broken rendering in DX11 mode
 - #53625  In function ‘get_gnutls_cipher’ ... error: ‘GNUTLS_CIPHER_AES_128_CFB8’ undeclared
 - #53744  WM_SETTEXT between ANSI programs treating LPARAM as Unicode causing name corruption
 - #53756  configure fails in 32-bit gcc checking pthread_create using -Wl,--disable-stdcall-fixup
 - #53884  Project Ignis: EDOPro corrupted textures on resizing
 - #53894  user32:sysparams - test_WM_DISPLAYCHANGE() times out on Windows 7+
 - #53911  DC++ can't retrieve file list from another user
 - #53912  Static initialization in Winelibs may hang the loader as of Wine 7.21
 - #53918  Building with external PE libraries fails when static libraries are also installed
 - #53941  Chicken Tournament crashes on start
 - #53976  ntoskrnl.exe:ntoskrnl - test_pnp_devices() fails on Windows 7
 - #53977  amstream:amstream qedit:mediadet mf:transform mfmediaengine:mfmediaengine quartz:filtergraph winmm:mci wmp:media wmvcore:wmvcore mf:mf mfplay:mfplay qasf:asfreader broken on Debian Testing
 - #53980  httpapi:httpapi sometimes crashes testing overlapped I/O with the v2 server in Wine
 - #53990  Serious Sam 2 crashes with OpenGL renderer
 - #54000  user32:win - test_mouse_input() gets an unexpected 0x60 message on Windows 11
 - #54060  Compilation fails with gcc 4.8.4 (Error: junk at end of line, first unrecognized character is `"')
 - #54085  windows.devices.enumeration:devices - test_DeviceAccessInformation() sometimes crashes on Windows 10
 - #54094  kernel32:process - test_services_exe() sometimes fails due to an invalid buffer size in Windows
 - #54096  Non-PE builds broken since "ntdll: Move the .so module initialization to winecrt0."
 - #54101  unimplemented function MSVCP70.dll.?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ
 - #54105  taskschd:scheduler fails on Windows 10 1607+
 - #54121  8.0-rc1 build fails with errors in bcrypt in Ubuntu 18.04
 

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Sunday, December 11, 2022

Wine development release 8.0-rc1 is now available for Linux FreeBSD and macOS

The Wine development release 8.0-rc1 is now available.

This is the first release candidate for the upcoming Wine 8.0. It marks the beginning of the yearly code freeze period. Please give this release a good testing and report any issue that you find, to help us make the final 8.0 as good as possible.

What's new in this release:

  • Bundled vkd3d upgraded to version 1.6.
  • Vulkan and OpenGL thunking optimizations.
  • More support for print processors.
  • Improved joystick control panel.
  • Long types printf format conversion finished.
  • Various bug fixes.

The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations. 

 


 Bugs fixed in 8.0-rc1 (total 52):

 - #28290  shell32:shelllink - test_load_save() crashes randomly in Wine
 - #36681  ws2_32/tests/sock.c fails on gentoo without IPX support
 - #46649  Multiple applications need D3DXDisassembleShader() implementation (Tom Clancy's Rainbow Six: Vegas 2, The Void)
 - #48105  kernel32:console fails on Japanese and Chinese Windows
 - #51234  user32:clipboard test_ClipboardOwner() has a race condition with clipboard managers
 - #51456  oleaut32:typelib: test_CreateTypeLib(SYS_WIN32) fails in 64-bit Wine
 - #51457  The 32-bit version:install fails in 64-bit wineprefixes (now todo)
 - #51780  The user32:msg output is too big in Wine
 - #52507  user32:win has some spurious GetScrollInfo failures
 - #52875  riched20:editor fails with the UTF-8 code page
 - #52877  user32:msg - test_dbcs_wm_char() fails in Wine in the Japanese and Chinese locales
 - #52909  rpcrt4:ndr_marshall crashes on the latest Windows 8.1, 21H1 and 21H2
 - #52910  mshtml:htmldoc fails on Windows with the UTF-8 codepage
 - #52965  kernel32:locale - test_GetLocaleInfoW() and test_invariant() fail on Windows in Hindi
 - #52980  conhost.exe:tty - test_tty_input() fails in most locales on Windows
 - #53183  shell32:shelllink - test_load_save() randomly fails to delete test.lnk in Wine
 - #53199  dinput:force_feedback - test_windows_gaming_input() sometimes has unexpected reference counts in Wine
 - #53207  user32:msg - test_button_messages() fails randomly in Windows and Wine
 - #53208  user32:msg - The SW_SHOWMINIMIZED test in test_messages() succeeds in Wine with fvwm
 - #53211  ddraw:ddraw1 has over 255 failures on the debian11 TestBot VMs
 - #53233  ddraw:ddraw1 - test_clear() has rare failures in Wine on the debian11 VM
 - #53240  dinput:device8 - test_sys_mouse() has some rare failures on the TestBot VMs
 - #53254  urlmon:url - test_URLDownloadToFile_abort() sometimes fails on Windows 7+
 - #53327  Ragnarok Online bad performance
 - #53342  quartz:mpegaudio - The 64-bit test_streaming_events() times out on fg-deb64
 - #53530  mshtml:htmldoc - test_editing_mode(TRUE, TRUE) sometimes fails
 - #53568  16bit applications refuse to start wine 7.15+
 - #53646  Multiple installers crash in user32 (Drakan, Star Wars, Colin McRae, X-COM, etc.)
 - #53678  vbscript can not compile CaseClausules that do not use a colon
 - #53684  ntdll:info is broken on Windows 8 to 10 1709 in the GitLab WineTest builds
 - #53686  The 64-bit kernel32:console is broken on Windows in the GitLab WineTest builds
 - #53783  vbscript can not compile private const expressions
 - #53814  TMUnlimiter 1.2.0.0 requires ini files with whitespace in the section to be parsed properly
 - #53895  ddraw:ddraw1, ddraw:ddraw2, ddraw:ddraw4, ddraw:ddraw7 - test_cursor_clipping() fails on dual screen setups in Wine
 - #53927  script56.chm help file pages not functioning properly due to wine missing beforeprint and afterprint html events
 - #53950  dup2 error returns ENFILE instead of EBADF
 - #53964  Redim should fail on fixed arrays
 - #53966  NCryptExportKey is not implemented
 - #53968  NCryptSignHash is not implemented
 - #53971  postgresql installer 9.3 needs support for Username in WScript.Network
 - #53972  BCryptSignHash does not support BCRYPT_PAD_PSS
 - #53987  Regression in print handling in Framemaker 8
 - #53996  MDB Viewer Plus: can not open database
 - #53999  JGlossator crashes
 - #54009  Wine segfaults on startup on macOS 12 and 13
 - #54012  kernel32:heap - The 64-bit test_GlobalAlloc() fails on Windows 7
 - #54043  Studio One Professional 5 crash on launch with an unimplemented function USER32.dll.RegisterSuspendResumeNotification
 - #54057  prints do not work in any application
 - #54075  wldap32:parse - test_ldap_paged_search() sometimes gets LDAP_SERVER_DOWN in Wine, crashes
 - #54087  mshtml:events sometimes gets a failure in Protocol_Continue() on Windows
 - #54098  winhttp:notification fails and times out systematically in Wine
 - #54111  Unable to run "make install" after "makedep: Add a helper function to skip spaces in strings."

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.
 

Saturday, November 26, 2022

Wine development release 7.22 is now available for Linux FreeBSD and macOS

The Wine development release 7.22 is now available.

What's new in this release:

  • 32-on-64 thunks for both Vulkan and OpenGL.
  • OpenLDAP library bundled and built as PE.
  • Support for the RAW print processor in WinPrint.
  • More progress on the long types printf format conversion.
  • Various bug fixes.

The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations. 

 


 Bugs fixed in 7.22 (total 38):

 - #41989  Musette crashes in winex11
 - #45233  TIDAL installer can't launch installed program in 64bit WINEPREFIX
 - #48053  kernel32:change fails randomly (and rarely) in Wine
 - #49091  nProtect Anti-Virus/Spyware 4.0 'TKPcFtCb64.sys' crashes on unimplemented function 'ntoskrnl.exe.KeInitializeGuardedMutex'
 - #49297  Spark AR studio installer fails to start:Spark AR Studio is not supported in this version of Windows. Please upgrade to Windows 10
 - #50097  comctl32:monthcal fails on Wednesdays!!!
 - #52511  Hemekonomi hangs on exit due to deadlock between loader_section and Win16 mutex
 - #52872  vbscript: incorrect codepage handling in Asc/Chr, causing tests failures on Hindi locale
 - #53130  ntdll:threadpool - test_tp_instance() fails (rarely) on Windows 8+
 - #53131  ntdll:threadpool - test_tp_multi_wait() fails (rarely) in Wine
 - #53266  Syberia: game crashes frequently
 - #53268  urlmon:protocol - test_protocol_terminate() fails on Windows and Wine
 - #53288  Application compiled with MSVC 2022 ASan does not start, needs QueryVirtualMemoryInformation
 - #53296  USB Device Remover crashes on unimplemented function mscoree.dll.StrongNameTokenFromAssembly
 - #53387  Vernier USB sensors are not usable in WINE
 - #53402  fake dlls such as OPENGL32.dll won't load when their unix lib is linked by LLVM lld
 - #53429  opengl32:opengl fails on Debian 11 + Intel GPU
 - #53474  Change in memory handling gives crash in Framemaker 8
 - #53529  Use wine with custom ld-linux.so.2 32-bit preloader, without hacks
 - #53670  vbscript can not compile if expressions with reversed gte, lte, (=>, =<)
 - #53677  invalid O_WRONLY read sets errno=EACCES instead of EBADF
 - #53741  Gothic II: Night of the Raven (v2.7) fails to start (failure to load msdbi.dll)
 - #53782  vbscript can not compile ReDim with list of variables
 - #53807  vbscript fails to redim original array in function when passed byref
 - #53867  vbscript fails to retrieve property array by index
 - #53868  vbscript fails to return TypeName for VT_DISPATCH
 - #53870  vkGetPhysicalDeviceSurfaceCapabilities2KHR passes invalid VkSurfaceKHR handle to driver
 - #53873  vbscript fails to compile Else If when If is on same line
 - #53909  opengl32.dll can't be loaded if win32u.so is not initialized first
 - #53915  Pivot animator runs into assert
 - #53919  crypt32:cert - testVerifyRevocation() uses an outdated certificate
 - #53923  tools/makedep during wine-7.21 build segfaults
 - #53930  Build broken with Clang in MSVC mode due to OpenLDAP import using getopt.h
 - #53932  ntlm_auth was not found or is outdated.
 - #53935  __unDName doesn't support 'G' and 'H' modifiers
 - #53940  VARA window is black when launched from RMS Express
 - #53954  Saints Row 2022 fails with Unimplemented function KERNEL32.dll.SetProcessInformation
 - #53967  Running anything hangs on start up


Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.
 

Wednesday, November 23, 2022

Steam and Lutris in EuroLinux Desktop

The holiday season is approaching, so today we offer a slightly lighter, but interesting topic. After a period of tumultuous development, Linux gaming has finally managed to win the trust of gamers and convince them to the platform from under the penguin sign. Thanks to digital video game distribution services, gamers can enjoy their favorite Windows titles also on EuroLinux Desktop.

However, before trying to install Steam, you should make sure that EuroLinux Desktop includes the required graphics drivers. If not, Nvidia users should download the company's official drivers, and AMD users should install the open Mesa drivers.

EuroLinux Desktop gry

Compatibility layers

  • Wine – allows Windows programs to run on Linux using native Linux libraries, APIs and drivers.
  • Proton – Wine fork by Valve, with some special tools for additional compatibility.
  • Vulkan – a cross-platform, open-source graphics API that is capable of using most DirectX calls present in Windows games. Although you can install DirectX in Wine, a "more native" alternative is to use just Vulkan.

EuroLinux Desktop gry

A breakthrough for gaming on Linux systems was the introduction of DXVK (DirectX to Vulkan), a tool for converting Microsoft DirectX 11 and DirectX 10 graphics calls to Vulkan, an open source graphics API that is compatible with Linux. DXVK is mainly used in Steam Play and is part of the Proton group. The solution works differently than the traditional emulator approach to gaming, where you have to use a Windows virtual machine and play as if "inside it." DXVK allows translation and full use of the computer's hardware resources. With this solution we get comparable performance to the native version of the game.

ProtonDB

ProtonDB is a service that compiles player experiences into a convenient-to-view database where you can see how well a title performs on GNU/Linux. The service has an actively growing community of testers who help improve Proton. Users can easily check the game's compatibility rating, leave reviews, and rate performance and compatibility. Game testers also leave bug fixes and tips on what to do to fix a game and help it run on Linux. Using the site, you can search for games from your library on the homepage or link your Steam account to check the status of each game in one go.

Steam

Steam is Valve's digital video game distribution service and store. The Steam software client was launched in September 2003 as a way to provide automatic updates for games developed by Valve. It was then expanded in late 2005 to include the ability to distribute titles from other game publishers. Steam offers various features such as digital rights management (DRM), game server matchmaking and anti-cheat programs, as well as social services and streaming games.

EuroLinux Desktop gry

Civilization V game running via Steam on EuroLinux Desktop

To install Steam on EuroLinux 9 Desktop, run the following commands:

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \
sudo dnf install snapd && \
sudo systemctl enable --now snapd.socket  && \
snap install --beta steam

Activate Proton in Steam

Proton is integrated into the Steam client via "Steam Play." To activate Proton, launch the Steam client and click the Steam menu in the upper left corner. Then click the Settings menu to open a new window, and the Steam Play button. At the bottom of the panel, select Enable Steam Play for Supported Titles and leave the Proton Experimental selection in the drop-down list. The application will ask you to restart the Steam client. If you want to try other games that are not guaranteed to work on Linux, check the Enable Steam Play for All Other Titles checkbox.

GOG

GOG is a digital distribution platform service for video games and movies. It makes many DRM-free digital games available for many platforms, including Linux. A Linux version of the client is planned, but an expected release date is not available. Nevertheless, in the Software application in the FlatHub repository, you can find several minimalist clients for this (Polish) provider. In addition, GOG provides standalone game installers, so you can use it with any web browser. GOG is also integrated with the Lutris platform.

Lutris

Lutris is a free and open source game manager for GNU/Linux. It provides a consistent interface and community installation scripts that automatically configure the Wine environment for specific game titles. Lutris also offers integration for software purchased from GOG, Humble Bundle, Steam and Epic Games Store. These can be run after logging into the respective services, directly through the Lutris app. In addition, Lutris supports more than 20 emulators, including ScummVM, DOSBox. Dolphin, MAME, Snes9x, PCSX2 and PPSSPP. On EuroLinux Desktop, the Lutris client can be installed directly from the Software application by searching the FlatHub repository.

EuroLinux Desktop gry

Lutris interface after GOG.com integration

EuroLinux Desktop gry

Installing a game from GOG.com via Lutris

EuroLinux Desktop gry

Game running on EuroLinux Desktop thanks to the Lutris service

Full Article

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Monday, November 21, 2022

Wine development release 7.21 is now available for Linux FreeBSD and macOS

The Wine development release 7.21 is now available.

What's new in this release:

  • OpenGL library converted to PE.
  • Support for multi-architecture PE builds.
  • More preparation work for Vulkan 32-on-64 support.
  • Support for creating import libraries without dlltool.
  • Locale data updates.
  • Various bug fixes.

The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations. 

 

Bugs fixed in 7.21 (total 25):


 - #29974  StarBurn 13 crashes on disabling skins
 - #51418  fotoBiz X - Fatal error on startup
 - #51779  Visual Studio msvsmon fails to bind server socket in child processes
 - #52467  Kaseya Live Connect 9.5.0.28 management software sub-component crashes
 - #53081  Retina Mode broken since 7f7f9fa22c5cbe629e79a54257d5bd21403e80db
 - #53100  Euphoria: freezes every second while controllers are plugged in
 - #53153  SetWindowPos() incorrectly computes exposure region of parent window with WS_EX_COMPOSITED
 - #53484  dxgi:dxgi times out on the debiant VM
 - #53590  GetFileInformationByHandleEx() not fully implemented causing boost::directory_iterator failures with boost v1.79 and newer
 - #53606  First intro stops on last frame in multiple games (Darksiders Genesis, The Medium)
 - #53617  Imaris fails at exit with error, and keeps a process running.
 - #53631  Multiple 64-bit applications have issues with dialogs (DipTrace, foobar2000 installer)
 - #53676  vbscript can not exec_script - invalid number of arguments for Randomize
 - #53738  Cherry MIDI sequencer cannot read files with a path including CJK characters
 - #53749  Hotel Giant 2: black screen after changing resolution or enabling anti-aliasing
 - #53768  Winfile crashes due to unimplemented user32.dll.DragObject
 - #53798  Port Royale 2: incomplete text rendering
 - #53849  Apiset DLLs broken in non-PE builds
 - #53856  Wine 7.20 installs some windows files to the wrong location
 - #53859  Hades shows black screen at Vulkan mode
 - #53861  Non-PE builds fail after "makefiles: Add support for multiple PE architectures."
 - #53872  Adobe Reader XI crash opening settings in Protected Mode
 - #53879  Gothic 1 doesn't launch (msdbi.dll failed to initialize)
 - #53888  vbscript does not allow Mid on non VT_BSTR
 - #53893  ws2_32:sock - test_WSASocket() gets an unexpected raw protocol name in French on Windows

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

 

Thursday, November 10, 2022

DXVK version 2.0 has been released with improved driver compatibility

A Vulkan 1.3 capable driver and wine version are required to run this version of DXVK. See the driver support page for details.

Many features in this release, especially the shader compilation changes detailed below, require the use of modern Vulkan features, such as Dynamic Rendering, Extended Dynamic State, and Null Descriptors. Due to the significant changes required to make use of them, it was no longer practical to maintain and test code paths for older drivers which do not support these features.


In practice, any system capable of running D3D11 and D3D12 games using Proton Experimental right now will be able to run DXVK 2.0.

Note: Third-party Vulkan layers that were not updated for Vulkan 1.3 will no longer work.

D3D9 changes

Memory management improvements

In order to reduce the likelihood of running out of address space in 32-bit D3D9 games, DXVK will now use memory-mapped files to store shadow copies of textures. This allows us to unmap memory that is not being used by the game, thus freeing up significant amounts of address space, up to several hundred Megabytes. See PR #2663 for implementation details.

Note: This change does not affect 64-bit games since address space is not a concern there. It also does not affect D3D10 or D3D11 since resource uploads work differently in those APIs and are much more memory efficient.

Render target feedback loops

On drivers which support VK_EXT_attachment_feedback_loop_layout, reading from an active render target in D3D9 games is now properly supported, which previously caused rendering artifacts on newer AMD hardware and required driver-level workarounds. This affects a number of games, including GTA IV.

Alpha test improvements

The D3D9 alpha test implementation was changed to more closely match the behaviour of Nvidia's implementation, which fixes inaccuracies in various games. The d3d9.alphaTestWiggleRoom option was removed, and games that previously required this option should now work correctly by default.

D3D10 changes

DXVK previously shipped incomplete implementations of d3d10.dll and d3d10_1.dll, but has not installed them by default since Version 1.6 since wine's implementation provides more features that are needed for D3D10 games to run, including the D3D10 Effects framework.

Since our implementation is incomplete and has not been used by Proton or Lutris for a very long time, DXVK will no longer ship these DLLs starting with this release. The D3D10 API itself is still supported via d3d10core.dll.

D3D11 changes

Feature support

DXVK now exposes D3D11 Feature Level 12_1 with the following newly added features:

  • Tiled Resources up to Tier 3, provided that the corresponding Vulkan sparse binding and sparse residency features are supported
  • Conservative Rasterization up to Tier 3, provided that the corresponding Vulkan conservative rasterization features are supported.
  • Rasterizer Ordered Views, provided that the corresponding Vulkan fragment shader interlock features are supported.

While no games are known to use these features directly in D3D11, some games and game launchers rely on feature support being consistent between D3D11 and D3D12 in order to allow users to enable D3D12 in the game options. While our implementation of these feature is generally functional, there may be bugs or performance issues in case a game does use them.

Furthermore, DXVK now supports the D3D11_FEATURE_SHADER_CACHE and D3D11_FEATURE_D3D11_OPTIONS5 feature queries.

Note: AMD Vulkan drivers do currently not support fragment shader interlock and are limited to feature level 12_0.

Note: Intel's ANV driver currently does not support the corresponding Vulkan features and is therefore limited to feature level 11_1. This applies to both DXVK and vkd3d-proton.

Device contexts

The implementations of ID3D11DeviceContext were refactored so that immediate contexts and deferred contexts no longer use common entry points. This is closer to Windows behaviour and may improve compatibility to third-party libraries and mods that hook into the D3D11 immediate context specifically, and reduces CPU overhead since some frequently used code paths are now more specialized for each context type.

State clear and restore methods were optimized to further reduce CPU overhead in games that heavily use deferred contexts, e.g. Assassin's Creed: Origins, or explicitly call ClearState frequently, e.g. God of War.

Shader compilation changes

On drivers which support VK_EXT_graphics_pipeline_library, including the IndependentInterpolationDecoration feature, Vulkan shaders will now be compiled at the time the game loads its D3D shaders, rather than at draw time. This reduces or eliminates shader compile stutter in many games.

In games that load their shaders during loading screens or in the menu, this can lead to prolonged periods of very high CPU utilization, especially on weaker CPUs. For affected games it is recommended to wait for shader compilation to finish before starting the game to avoid stutter and low performance. Shader compiler activity can be monitored with DXVK_HUD=compiler.

Note: The relevant Vulkan features are currently only supported by Nvidia drivers (version 520.56.06 or later). Driver support is expected to improve in the future.

State cache interactions

This feature largely replaces the state cache. If the given Vulkan features are supported, only pipelines that cannot use the pipeline library feature (e.g. pipelines using tessellation shaders) will be written to and read from the state cache, so newly created state cache files will typically only contain a few dozen to a few hundred pipelines, as opposed to thousands or tens of thousands. If the graphics pipeline library feature is not supported, the state cache will be used the same way as it was in older DXVK versions.

Note: State cache files created with DXVK versions prior to 1.4.3 can no longer be used.

Note: Despite our efforts, due to the significant changes under the hood, there may be issues when using an older state cache file under some circumstances. If you experience crashes, please test if the game runs with a clean cache file (DXVK_STATE_CACHE=reset) before reporting a bug.

Caveats

  • Games which only load their D3D shaders at draw time (e.g. Witcher 3, most Unreal Engine games) will still exhibit some stutter, although it should still be less severe than without this feature.
  • For 32-bit games, the implementation tries to aggressively free Vulkan pipelines in order to save memory. This may cause stutter if the driver's on-disk shader cache is not working properly.
  • On Nvidia drivers, the on-disk shader cache will be significantly larger than with previous versions of DXVK. It may be necessary to bypass the size limit by setting the environment variable __GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1, or setting a new limit manually via __GL_SHADER_DISK_CACHE_SIZE (in bytes).

Linux build support

Work from dxvk-native has been upstreamed in order to facilitate native Linux builds of DXVK, which can be used as a drop-in replacement to port D3D applications without having to change rendering code.

Note: When porting a D3D11 application, please refer to the Feature support and Developer Guidelines pages on the Wiki to avoid hitting unsupported or slow code paths in DXVK.

Repository changes

As part of cleaning up the repository, test applications that were of limited usefulness, as well as our custom d3dcompiler frontends, have been moved to the new dxvk-tests repository.

Vulkan and SPIR-V headers are now pulled in as submodules from the original repositories. This changes how the repository needs to be cloned and updated, or otherwise building DXVK will fail:

git clone --recursive https://github.com/doitsujin/dxvk.git

# Run the following command to make git pull
# automatically pull in submodule updates
cd dxvk
git config submodule.recurse true

The project wiki was also updated and expanded to be more useful.

Bug fixes and Improvements

  • Improved behaviour of DXGI waitable swap chains.
  • Improved implementation of DXGI frame statistics.
    Note: The implementation is still not accurate, especially in scenarios with multiple displays or if variable refresh rate is used.
  • Removed limitations on how many resources can be bound at the same time.
  • Removed several workarounds for specific Vulkan drivers or driver versions. This is primarily relevant for Steam's shader pre-caching, as the generated shader code no longer diverges as much depending on the driver version and supported feature set.
  • D3D11 shaders now use the Vulkan memory model in order to more accurately implement UAV coherency rules in compute shaders.
  • Fixed various issuses with the D3D11.3 WriteToSubresource and ReadFromSubresource methods.
  • Fixed various float emulation issues in D3D9 applications.
  • Fixed seamless cube map filtering in D3D9 applications (PR #2889).
  • Fixed issues when rendering to DXGI_FORMAT_A8_UNORM (D3D11) or D3DFMT_A8 (D3D9) render targets with blending enabled.
  • Fixed a bug with dual-source blending when multiple render targets are bound, which could lead to unpredictable results. This affects Elex 2 and potentially other games.
  • Fixed memory allocation logic on Intel integrated graphics.
  • Changed behaviour of the DXVK_STATE_CACHE environment variable, see the README for details.
  • Changed the DXVK_PERF_EVENTS environment variable to DXVK_DEBUG, see the README for details.
  • Alan Wake: Fixed a regression that caused grey rectangles to appear on screen on AMD GPUs. (#2834, PR: #2835)
  • Alice Madness Returns: Fixed an issue with flashing bright spots. (PR: #2939)
  • Anomaly: Warzone Earth: Fixed a deadlock when starting the game. (#1650, PR: #3035)
  • Beyond Good and Evil: Enabled 60 FPS limit to work around game bugs. (PR #2828)
  • Dragon Age Origins: Work around an out of memory issue when alt tabbing out of the game. (#3022, PR: #3023)
  • Empire: Total War: Fixed rendering. (#3017, PR #3018)
  • Final Fantasy XV: Improved performance when VXAO is enabled.
  • Grand Theft Auto IV: Disabled support for DF texture formats to make the game render mirrors in higher quality.
  • Heroes Of Annihilated Empires: Fixed crash. (#2879)
  • Limit King Of Fighters XIII: Enabled 60 FPS limit to work around game bugs. (#2647, PR #2831)
  • Metal Gear Solid V: Ground Zeroes: Work around texture streaming issues on GPUs with 4 GiB or more VRAM. (PR #2867)
  • SiN Episodes: Emergence: Work around an out-of-memory issue caused by the game creating an infinite number of textures. (PR #2907)
  • Sonic Generations: Improved performance by reducing GPU synchronization. (PR: #3009)
  • Spider Man: Shattered Dimensions: Fixed a lighting issue. (#2780, PR: #2782)
  • The Ship: Work around an out-of-memory issue caused by the game creating an infinite number of textures. (#2893, PR #2896)
  • Warhammer Online: Enabled 100 FPS limit on 64-bit executable to work around game bugs. (PR #2902)
  • Ys Seven: Fixed a regression that caused the game to only render a black screen. (PR: #2873)

Special thanks to @Blisto91 for doing a significant amount of testing during development.

Link to source code

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.