Pages

Monday, October 18, 2021

vkd3d-proton version 2.5 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 is a release with a little bit of everything!

Features

DXR progress

DXR has seen significant work in the background.

  • DXR 1.1 is now experimentally exposed. It can be enabled with VKD3D_CONFIG=dxr11.
    Note that DXR 1.1 cannot be fully implemented in VK_KHR_ray_tracing's current form, in particular
    DispatchRays() indirect is not compatible yet,
    although we have not observed a game which requires this API feature.
  • DXR 1.1 inline raytracing support is fully implemented.
  • DXR 1.0 support is more or less feature complete.
    Some weird edge cases remain, but will likely not be implemented unless required by a game.
    VKD3D_CONFIG=dxr will eventually be dropped when it matures.

Some new DXR games are starting to come alive, especially with DXR 1.1 enabled,
but there are significant bugs as well that we currently cannot easily debug.
Some experimental results on NVIDIA:

  • Control - already worked
  • DEATHLOOP - appears to work correctly
  • Cyberpunk 2077 - DXR can be enabled, but GPU timeouts
  • World of Warcraft - according to a user, it works, but we have not confirmed ourselves
  • Metro Exodus: Enhanced Edition -
    gets ingame and appears to work? Not sure if it looks correct.
    Heavy CPU stutter for some reason ...
  • Metro Exodus (original release) - GPU timeouts when enabling DXR
  • Resident Evil: Village - Appears to work, but the visual difference is subtle.

It's worth experimenting with these and others.
DXR is incredibly complicated, so expect bugs.
From here, DXR support is mostly a case of stamping out issues one by one.

NVIDIA DLSS

NVIDIA contributed integration APIs in vkd3d-proton which enables DLSS support in D3D12 titles in Proton.
See Proton documentation for how to enable NvAPI support.

Shader models

A fair bit of work went into DXIL translation support to catch up with native drivers.

  • Shader model 6.5 is exposed.
    Shader model 6.6 should be straight forward once that becomes relevant.
  • Shader model 6.4 implementation takes advantage of VK_KHR_shader_integer_dot_product when supported.
  • Proper fallback for FP16 math on GPUs which do not expose native FP16 support (Polaris, Pascal).
    Notably fixes AMD FSR shaders in Resident Evil: Village (and others).
  • Shader model 6.1 SV_Barycentric support implemented (NVIDIA only for now).
  • Support shader model 6.2 FP32 denorm control.

Performance

Resizable BAR can improve GPU performance about 10-15% in the best case, depends a lot on the game.
Horizon Zero Dawn and Death Stranding in particular improve massively with this change.

By default, vkd3d-proton will now take advantage of PCI-e BAR memory types through heuristics
as D3D12 does not expose direct support for resizable BAR, and native D3D12 drivers are known to use heuristics as well.
Without resizable BAR enabled in BIOS/vBIOS, we only get 256 MiB which can help performance,
but many games will improve performance even more
when we are allowed to use more than that.
There is an upper limit for how much VRAM is dedicated to this purpose.
We also added VKD3D_CONFIG=no_upload_hvv to disable all uses of PCI-e BAR memory.

Other performance improvements:

  • Avoid redundant descriptor update work in certain scenarios (NVIDIA contribution).
  • Minor tweaks here and there to reduce CPU overhead.

Fixes and workarounds

  • Fix behavior for swap chain presentation latency HANDLE. Fixes spurious deadlocks in some cases.
  • Fix many issues related to depth-stencil handling, which fixed various issues in DEATHLOOP, F1 2021, WRC 10.
  • Fix DIRT 5 rendering issues and crashes. Should be fully playable now.
  • Fix some Diablo II Resurrected rendering issues.
  • Workaround shader bugs in Psychonauts 2.
  • Workaround some Unreal Engine 4 shader bugs which multiple titles trigger.
  • Fix some stability issues when VRAM is exhausted on NVIDIA.
  • Fix CPU crash in boot-up sequence of Far Cry 6 (game is still kinda buggy though, but gets in-game).
  • Fix various bugs with host visible images. Fixes DEATHLOOP.
  • Fix various DXIL conversion bugs.
  • Add Invariant geometry workarounds for specific games which require it.
  • Fix how d3d12.dll exports symbols to be more in line with MSVC.
  • Fix some edge cases in bitfield instructions.
  • Work around extreme CPU memory bloat on the specific NVIDIA driver versions which had this bug.
  • Fix regression in Evil Genius 2: World Domination.
  • Fix crashes in Hitman 3.
  • Fix terrain rendering in Anno 1800.
  • Various correctness and crash fixes.

 Link to source code

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

 

Sunday, October 17, 2021

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

Download this version of Lutris from here.

Changelog :

This is a small update to Lutris 0.5.9 to fix a number of issues:

  • Fix possible escaping error for gamescope option
  • Remove walrus operator to restore compatibility with Python 3.7 / Ubuntu 18.04
  • Remove log file being written in the home folder
  • Fix install button for community installer
  • Fix markup error on gamescope option
  • Update URL for Ryujinx build
  • Fix Steam sync creating duplicate games

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

 

Tuesday, October 12, 2021

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

Download this version of Lutris from here.

Changelog :

  • Add initial support for Epic Games Store
  • Add support for Steam for Windows as a game source
  • Add support for DXVK-NVAPI and DLSS
  • Add FidelityFX Super Resolution (FSR) option for compatible Wine versions
  • Add workaround for locale issues when Lutris is launched from Steam
  • Add gamescope option
  • Lutris games can now be launched from Steam
  • 3rd party services can be enabled or disabled in the preferences
  • The main preferences window has now tabs on the left side
  • Runner configuration is now available from the main preferences window
  • VKD3D is a separate option from DXVK
  • Esync is enabled by default
  • Dolphin is available as a game source (reads games from the emulator's
    local database of games)
  • Scan for installed games when using Steam source
  • Improved automatic installers for GOG, detection of DOSBOX and ScummVM
    games.
  • DRM free services (Humble, GOG) can locate existing installations of games
  • Use 7zip as the default extractor when not given an archive type
  • Improve process monitoring, allowing for monitoring of Steam games
  • Disable AMD switchable graphics layer by default (breaks games)
  • Removed support for Gallium 9
  • Removed support for X360CE
  • Removed legacy WineD3D options

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

 
 

Friday, October 8, 2021

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

The Wine development release 6.19 is now available.

What's new in this release:

  • IPHlpApi, NsiProxy, WineDbg and a few other modules converted to PE.
  • More HID joystick work.
  • Kernel parts of GDI moved to Win32u.
  • More work towards Dwarf 3/4 debug support.
  • 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 6.19 (total 22):

  30760  Open Metronome (WAV version) crashes on exit
  32252  Corel Painter 12 EULA next button greyed out no matter what
  37167  IEC 61850 v2.02 example client expects 'wine_pcap_findalldevs_ex' to return adapter names in '<protocol>://\Device\NPF_<adaptername>' format
  37208  FreeOrion hangs when starting a quick game
  44336  PureBasic x64 IDE crashes when launching online help ("F1" key)
  47334  TP-Link PLC utility 2.2 crashes on startup with native 'packet.dll' (part of WinPcap)('wine_pcap_findalldevs' needs to handle empty adapter description)
  47505  Levelhead: Fatal error when attempting to access the game's servers when logged in
  49344  Implement kernelbase.GetModuleFileNameW using ntdll.LdrGetDllFullName
  49433  MikuMikuMoving v1275 hangs on startup
  50857  Darksiders Warmastered Edition crashes before starting an intro
  51199  Mass Effect Legendary missing api-ms-win-core-psapi-l1-1-0 and api-ms-win-core-psapi-ansi-l1-1-0 function forwards
  51504  Multiple games crash before gameplay starts/entering main menu (Control Ultimate Edition, A Plague Tale: Innocence)
  51774  quartz:mpegsplit triggers an assertion in winegstreamer's src_seek_data()
  51778  ws2_32:sock crashes due to a double free
  51789  Fatal crash in gdi32 during initialization
  51818  Reporting packet length is always 0
  51822  Simucube 2 TrueDrive: Doesn't recognize the steering wheel device
  51824  TrueDrive, SimHub, Fanaleds,etc.: Non smooth movement tracking with severe skipping/jumping of the steering wheel/controller axis
  51828  Simucube 2: All applications using raw HID access to communicate with devices, stopped tracking steering axis movement
  51831  TrueDrive: On start shows an alert that the steering wheel is turned around too close to the bump stops, while the wheel is actually aligned on top center
  51837  Thronebreaker: The Witcher Tales fails to play intro videos
  51838  No splash window while creating prefix

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