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.


Wednesday, December 21, 2022

BundleHunt BlackFriday macOS software Bundle ending soon

The BlackFriday macOS Bundle featuring 56 macOS Software & Design Tools will be ending soon, dont miss your chance to get this software bundle before its to late.


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