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 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 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 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 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 && \
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 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 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 integration

EuroLinux Desktop gry

Installing a game from 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

BundleHunt BlackFriday macOS Bundle is live

 The BlackFriday macOS Bundle featuring 56 macOS Software & Design Tools is now live.


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


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 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.


  • 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

# 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.


Tuesday, November 8, 2022

Wine stable release 7.0.1 is now available for Linux FreeBSD and macOS

The Wine development release 7.0.1 is now available.

What's new in this release:

  • Various bug fixes
  • Translation updates

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.0.1 (total 32):

 - #12732  Nota Bene crashes on install
 - #44202  undname.c fails to parse symbols with rvalue-reference semantics '&&'
 - #45916  x64dbg fails to load debuggee, needs ThreadScheduler_ScheduleTask
 - #50352  Maximum sockets per process is set very low
 - #50370  Gothic 1 doesn't start correctly when screen resolution of the game matches display resolution
 - #50433  'MsiBreak' custom action debugging aid should use custom action's name from 'CustomAction' table (currently uses 'Target' field)
 - #50869  Killing Wine process in Wine 6.5 doesn't terminate the application because of the new use of start.exe
 - #51163  WinOffice Pro 5.3 stops after splashscreen, needs WMI class SoftwareLicensingProduct
 - #51619  advapi32:registry fails in Wine because French & German timezone name translations are too long
 - #51900  regression: REAPER scrollbars flash between themed and non-themed
 - #52163  postgresql-9.3 installer expects scrrun:filesys_GetTempName to return filename with TMP suffix
 - #52298  Opening PPT with Freeoffice Presentations crashes on unimplemented function ole32.dll.OleConvertIStorageToOLESTREAMEx
 - #52426  BCryptSignHash mishandles empty arguments
 - #52434  Light Blue theme has rendering errors in tree views
 - #52436  In Light Blue theme, checkable toggle buttons (BS_AUTOCHECKBOX) look unchecked when hovered
 - #52446  Normal dlls with native subsystem id are no longer processed when importing system dlls with uppercase names
 - #52476  QuickLOAD (VB5 app) input value is changed by factor 10
 - #52494  shell32 progman_dde tests crash if run immediately after prefix creation
 - #52510  alt:V mod for Grand Theft Auto V fails due to missing concrt140._Byte_reverse_table@details@Concurrency@@3QBEB
 - #52562  advapi32:registry fails in Wine because some French timezone name translations are too long
 - #52581  Internet MIDI crashes with Light Blue theme enabled
 - #52583  ApiSetView does not display export ordinals correctly
 - #52616  SteelSeries GG installer crashes on unimplemented function setupapi.dll.SetupQueryInfVersionInformationW
 - #52618  32-bit EXEs do not launch from build dir on macOS 10.14 in WOW64
 - #52626  MahjongSoul needs unimplemented function combase.dll.RoSetErrorReportingFlags
 - #52667  DTS Master Audio Suite can't select save file location when wine's "Light" theme is used
 - #52679  Anno 1602 / 1602 A.D. graphics too dark / black
 - #52704  FreeHand 9 demo: invalid handle exception (0xc0000008) when attaching uxtheme.dll
 - #52787  Invalid function prototype for "RegisterUserApiHook" when compiling for C++
 - #52953  GuiPy crashes on unimplemented function xmllite.dll.CreateXmlReaderInputWithEncodingCodePage
 - #53034  Lazarus: menu text disappears under mouse if light theme is enabled
 - #53430  urlmon:url fails due to unexpected redirection

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