Pages

Wednesday, September 20, 2023

vkd3d 2.10 has been released with a ton of bug fixes

This release rolls up a ton of bug fixes, game and driver workarounds, and other improvements.

Features

DirectStorage MetaCommands

We can now make use of NV_memory_decompression to implement
GPU accelerated GDeflate compression in DirectStorage.
This is demonstrated to work in Ratchet & Clank: Rift Apart.

We also worked around an NV driver bug when using the fallback GDeflate shader.
The fallback works on RADV.

Enhanced Barriers

NOTE: This isn't all that well tested because there are no games shipping with this yet to our knowledge.

Device generated commands for compute

With NV_device_generated_commands_compute we can efficiently implement
Starfield's use of ExecuteIndirect which hammers multi-dispatch COMPUTE + root parameter changes.
Previously, we would rely on a very slow workaround.

NOTE: This feature is currently only enabled on RADV due to driver issues.

Misc

  • Support Root Signature version 1.2
  • Implement Shader Model 6.7
    • Includes all SM 6.7 features like AdvancedTextureOps, WaveOpsIncludeHelperLanes
    • Caveat: Technically not Vulkan spec compliant implementation, but works fine on at least NV and RADV. Currently implemented as an opt-in option for now in case some game relies on it to work
  • Implement CreateSampler2
  • Expose inverted viewport / height feature
  • Implement RelaxedFormatCasting feature from Enhanced Barriers
  • Implement support for adjacency topologies
  • Support A8_UNORM format properly by using VK_KHR_maintenance5, allowing A8_UNORM UAVs to work correctly
  • Handle range checked index buffers correctly with VK_KHR_maintenance5

New extension use

  • VK_EXT_dynamic_rendering_unused_attachments
  • VK_KHR_maintenance5
  • VK_NV_device_generated_commands_compute

Performance

  • Batch acceleration structure builds. Massively improves build performance on at least RADV.
  • Massively improve ExecuteIndirect performance when using COMPUTE + root parameter changes when VK_NV_device_generated_commands_compute is enabled.

Fixes

  • Fix root signature creation from DXIL library target (DXR) blobs
  • Fix some dual source blending PSOs scenarios. Fixes Star Wars Battlefront II
  • Implement wave operations in pixel shaders more strictly according to D3D12 rules
  • Fix spurious hangs in Ashes of Singularity when using shared fences and wait-before-signal
  • Fix PSO caching bug in mesh shaders. Fixes mesh shaders in Unreal Engine 5
  • Fix udiv remainder in DXBC, which fixed some Xenia bugs
  • Fix query heap tracking bug that was exposed by NV Streamline
  • Various DXIL -> SPIR-V fixes as usual
  • Rewrote descriptor set layouts to be more robust against application bugs
    • Motivated by Armored Core VI bug (see below)
    • Native D3D12 drivers are also robust against these application bugs :(

Workarounds

  • Workaround bad ReBAR performance in Age of Wonders 4
  • Remove workaround for KHR_present_wait on NV 535+ drivers
  • Workaround Starfield memory corruption issue where it does not correctly query for 4 KiB alignment
  • Disable ReBAR usage on Halo Infinite to workaround very poor CPU performance
  • Workaround Street Fighter 6 bug causing spurious GPU hangs
    • Also appears to have worked around GPU hangs in Resident Evil 2
  • Workaround Armored Core VI bug causing GPU hang on Balteus fight in chapter 1
  • Workaround "firefly" glitches in Resident Evil 4 caused by dubious min16float usage
  • Workaround "firefly" glitches in Monster Hunter Rise caused by dubious shader requiring particular precise math
  • Workaround Unreal Engine 5 breaking if mesh shaders are exposed, but not barycentrics
  • Workaround NV driver bug with TIMESTAMP query heaps that could cause spurious GPU hangs
  • Workaround broken CFG code generation in Xenia's DXBC emitter

 Link to vkd3d source code

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

CrossOver 23 Brings More Windows Apps and Games to Mac

CrossOver is a popular compatibility layer for running Windows software on Mac, Linux, and Chromebooks, based on the open-source Wine project. The developers have been hard at work on a new version with improved DirectX 12 support and other changes, and now it's finally available as the CrossOver 23 update.

CrossOver is a popular compatibility layer for running Windows software on Mac, Linux, and Chromebooks, based on the open-source Wine project. The developers have been hard at work on a new version with improved DirectX 12 support and other changes, and now it's finally available as the CrossOver 23 update.

CodeWeavers, the company behind CrossOver, outlined a few of the most notable improvements in a blog post. The headline feature is initial support for DirectX 12, the Windows graphics API that is used in many modern games and 3D applications. The blog post explained, "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."

DirectX12 support has been possible on Wine and CrossOver for Linux thanks to the VKD3D project, which is primarily developed by Valve. That's the reason why many Windows games are now playable on the Steam Deck and other Linux platforms. However, macOS doesn't support the required Vulkan graphics library — Apple wants developers to use its own Metal graphics library instead. CodeWeavers pointed out the difficulty in translating DirectX instructions to Metal in a 2021 blog post, and nearly two years later, we're seeing that work pay off.

CrossOver 23 is based on Wine 8.01, which means all the changes and improvements from the last few Wine updates have been integrated (over 5,000 changes, according to CodeWeavers). It also adds initial support for geometry shaders and transform feedback, which "unlocks many games that previously suffered from missing graphics or black screens in-game." Some of the games that were previously broken and now work include Risk of Rain 2, TEKKEN 7, Octopath Traveler, Street Fighter V, Astroneer, MechWarrior 5: Mercenaries, and Trailmakers. The EA game launcher is also working, allowing games like The Sims 4, Titanfall 2, and Mass Effect Legendary Edition to be played.

CrossOver is paid software available through $74 per year subscription (so about $6.17/mo), which includes updates and bug fixes and email and phone support. If you don't renew, you lose access to dedicated support and updates, but CrossOver should continue to work until updates to macOS or the Windows software cause something to break. No one likes subscriptions, but at least you can install CrossOver on as many of your own computers as you want — take that, Adobe. There's also a lifetime purchase option for $494, which gives you access to updates and support for forever.

You can buy CrossOver from the company's website, and right now, there's a sale that drops the price to $56.98. As a warning, it's not yet fully compatible with the upcoming macOS 14 Sonoma update, but CodeWeavers will release a free update with the fixes once they're ready.

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

The Epic macOS Fall 2023 Bundle has just been released

The Epic macOS Fall 2023 Bundle, has just been launched.

This bundle features a whopping 42 remarkable macOS apps with discounts starting at an astonishing $1 per app. Notably, this bundle includes our best-selling TextSniper, Commander One Pro, Syncovery, DropShare and much much more...


Here are some key details about this exciting offer:
- This bundle is coming with the "Spend More, Save More" concept:
so if you Spend $30, you get $3 off, Spend $40, and get $4 off, and so on, up to $100 for a $10 discount!
- All Apps are directly provided by the official software developers
- Customers receive the latest and full working version of each app.
- Customers Receive a $3 discount on all orders over $30.

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

Friday, September 15, 2023

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

The Wine development release 8.16 is now available.

What's new in this release:

  • Beginnings of a DirectMusic revival.
  • Many fixes and improvements in the regression tests.
  • 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.16 (total 33):

 - #42809  GPS Track Editor: arrows not shown
 - #51561  Wine's built-in gdiplus.dll lags in Paint.NET compared to native (Win 7) gdiplus.dll
 - #51995  Roblox's bad performance on Wine
 - #52196  BENNING PC-Win ST 750-760 Designer crashes on start, needs GdipSetPenCompoundArray implementation
 - #53435  user32:msg - test_SendMessage_other_thread() sometimes gets a wrong status on Windows
 - #54202  mscoree:mscoree breaks user32:msg - subtest_hvredraw() fails on most Windows 7 test configurations
 - #54331  Game "Antecrypt": Black screen after launch
 - #54368  ::DrawGeometry doesn't respect stroke style
 - #54655  user32:msg - test_InSendMessage() sometimes gets unexpected flags on Windows
 - #54683  shlwapi:ordinal - test_SHFormatDateTimeA() fails due to daylight saving time on Windows
 - #54944  ntdll:exception - test_extended_context() crashes on Window 11
 - #54945  ntdll:exception - test_virtual_unwind() fails on Windows 11
 - #54998  DnsQuery(DNS_TYPE_SRV) fails to parse some of the server answers
 - #55225  kernel32:thread - The 32-bit test_stack() gets an unexpected values for -2 & -3 indexes on Windows
 - #55227  wtsapi32:wtsapi - The 32-bit check_wts_process_info() fails to get the user token on Windows 7 & 8
 - #55237  oleaut32:usrmarshal - The 64-bit test_marshal_VARIANT() gets bad values for wv[5&6] on Windows 8+
 - #55238  ntdll:exception - The 64-bit test_nested_exception() fails on Windows 11
 - #55244  mshtml:misc - test_HTMLStorage() crashes in Wine
 - #55246  ntdll:om - The 64-bit test_object_types() crashes on Windows 8+
 - #55317  user32:msg - test_hotkey() finds no free WinKey+letter on Windows 11
 - #55354  user32:msg - test_dialog_messages() sometimes gets a bad sequence on Windows 7
 - #55366  The GitLab CI sometimes tries to link winscard with libpcsclite on macOS
 - #55459  Softerra LDAP Browser fails to turn off LDAP_OPT_ENCRYPT, LDAP_OPT_ROOTDSE_CACHE, and LDAP_OPT_SIGN
 - #55501  PS Core (pwsh.exe) fails to start:Call to unimplemented function wldp.dll.WldpGetLockdownPolicy
 - #55505  Vitis 2020.1 needs support for `if exist ""` in batch file
 - #55507  Softerra LDAP Browser needs LDAP_OPT_CLIENT_CERTIFICATE
 - #55508  Wine 8.15: compiles successfully in Flatpak but fails during runtime with a SIGSEGV
 - #55531  combase:roapi - test_ActivationFactories() fails on Windows and Wine
 - #55532  kernel32:actctx - test_two_dlls_at_same_time() crashes on Windows 7+ and Wine
 - #55533  setupapi:devinst & setupapi:install - test_class_installer() fails on Windows 7+ and Wine
 - #55534  ucrtbase:thread - test_thread_library_reference() fails on Windows 7+ and Wine
 - #55535  The dinput:hid test summary line fails to take skip messages into account on Windows 7
 - #55539  user32:msg test_hvredraw fails in win1709 with unexpected region

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