Showing posts with label directx 12. Show all posts
Showing posts with label directx 12. Show all posts

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.

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.


Thursday, October 27, 2022

vkd3d-proton version 2.7 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 a massive amount of work since the Steam Deck launch in late February
with mostly features and fixes.

Heightened driver requirements

Newer extensions are now required.

  • VK_KHR_dynamic_rendering
  • VK_EXT_extended_dynamic_state
  • VK_EXT_extended_dynamic_state2 (no optional features required)
  • VK_KHR_maintenance4

KHR_dynamic_rendering in particular requires Mesa 22.0 or NVIDIA 510 series, which should have
propagated to distributions a long time ago at this point.

NOTE: Proton 7.0 stable series will stick to v2.6 to avoid the hard driver requirement bump.
Proton Experimental and any future stable beyond 7.0 will stick to v2.7 and later.

KHR_dynamic_rendering fixes many previously unsolvable issues, but it required a rewrite,
and it was deemed impractical to support both legacy and modern paths.

Improved pipeline cache

v2.6 introduced support for pipeline libraries, but only for games which made correct use of the D3D12 API.
To improve the situation across the board,
vkd3d-proton now implements an internal "magic" disk cache to enable SPIR-V caching for all games.
It is possible to disable the magic cache and let applications manage the ID3D12PipelineLibrary itself if desired.

To further reduce on-disk footprint of the magic cache, we also make use of VK_EXT_shader_module_identifier
to reduce the vkd3d-proton cache by >95%, since there is no need to store actual SPIR-V data on-disk.


Mostly a lot of minor things this release.

  • Slightly improve GPU performance for depth render passes.
  • Improve GPU performance for certain floating-point images where UAV usage was enabled.
  • Improve GPU performance for certain use cases of WriteBufferImmediate().
  • Improve GPU performance for certain access patterns of root descriptors.
  • Improve GPU performance for back-to-back buffer-image copies.
  • Improve GPU performance when allocating large zero-cleared resources and heaps.
  • Misc things here and there to reduce overhead.

New D3D12 features

Mesh shaders

VK_EXT_mesh_shader is required for this. Directly compatible with D3D12.

Advanced ExecuteIndirect

Uses VK_NV_device_generated_commands. Supported by both RADV and NVIDIA. Allows Halo Infinite to run.

DXR 1.1

Implement some missing features from DXR 1.1:

  • AddToStateObject()
  • ExecuteIndirect trace rays
  • Various complex RTPSO features
  • DXIL subobject parsing
  • Misc query features

With these fixes in place, e.g. Cyberpunk 2077 DXR works. VK_KHR_raytracing_maintenance1 is required for some features.

NOTE: VKD3D_CONFIG=dxr11 is required to enable DXR 1.1 for now.

Shared resources

Basic shared resources and fences are now supported when running on Proton. Allows interop with DXVK.
Special thanks to Derek Lesho (@Guy1524) for implementation.


SM 6.1 barycentrics are now exposed through VK_KHR_fragment_shader_barycentric.

Preliminary HDR support

vkd3d-proton can take advantage of HDR now, assuming the system itself supports it.

Game fixes and workarounds

  • Fix random GPU hangs in Hitman 3.
  • Fix crash in Redout 2.
  • Fix random GPU hang in F1 2021.
  • Fix random flicker in Guardians of the Galaxy.
  • Update some API checks required by latest AgilitySDK runtime features. Fix crash in F1 2022.
  • Add various workarounds for game bugs in Halo Infinite.
  • Add workaround for amdgpu kernel issue for certain games using imported host memory and multiple Vulkan devices.
  • Workaround glitched rendering in F1 2020 due to game bug.
  • Workaround certain games that violate placed resource API w.r.t. subresource initialization.
    Spiderman Remastered and Lost Judgment are affected. More games will likely surface.

DXIL support

Countless bug fixes for games released since last release. Too many to enumerate individually.


  • Improve compatibility with Intel ANV driver.
  • Improve correctness of GetFrameLatencyWaitableObject().
  • Add BLOB PIX decoding.
  • Improve stability when minimizing and alt-tabbing in and out of fullscreen in some games.
  • Preparation for MIT re-license is underway.

Stronger debugging facilities

  • For developers and power users, a breadcrumbs functionality is added to greatly aid GPU hang debugging.
    Requires either VK_AMD_buffer_marker or VK_NV_device_diagnostic_checkpoints.
  • When capturing with RenderDoc, cached host memory is enabled by default to speed up capture and improve stability.
  • Improve shader replacement system ease-of-use.

Link to source code

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



Wednesday, August 17, 2022

Proton 7.0-4 has been released


  • The following games are now playable:
    • Aquarist - My First Job
    • Trove
    • Chuzzle Deluxe
    • Zuma's Revenge!
    • Karmaflow The Rock Opera Videogame - Act I & Act II
    • The Rising of the Shield Hero: Relive The Animation
    • Disgaea 5

  •  Fix Elden Ring getting stuck on a white screen on first launch.
  • Support automatically bringing up on screen keyboard on Steam Deck in the Final Fantasy XIV launcher.
  • Fix Final Fantasy XIV launcher exiting silently when there's not enough space to download the update.
  • Fix Chrono Trigger, Adventure Pals crashing during cutscenes.
  • Fix The Ball displaying error message on the first launch.
  • Fix video playback in: POSTAL: Brain Damaged, Lost Ember.
  • Fix Hardspace: Shipbreaker failing to connect to online services.
  • Fix Azur Lane: Crosswave hanging on a black screen for some users.
  • Fix Dokyusei Bangin' Summer showing only flickering black window on desktop.
  • Fix Bloons TD 6 crashing on touch input.
  • Fix Sid Meier's Civilization IV crashing on world creation.
  • Fix Assassin's Creed Origins hanging during gameplay after recent game update.
  • Fix Call of Duty: Black Ops II - Zombies and Call of Duty: Black Ops II - Multiplayer crashing after connecting online.
  • Fix graphical glitches in Cossacs 3 on desktop.
  • Fix garbled audio in Monster Hunter Rise: Sunbreak.
  • Fix Elite Dangerous and other launchers not working properly when cloned displays are present.
  • Implement Vulkan other process rendering (used by nw.js games).
  • Improve performance of HROT.
  • Improve video playback for many games that previously required targeted hacks.
  • Reduce space used by game prefixes if filesystem supports copy on write.
  • Update dxvk to v1.10.3.
  • Update vkd3d-proton to v2.6-1-gc05900da.

 Link to source code

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


Wednesday, June 15, 2022

Proton 7.0-3 has been released

  • The following games are now playable:
    • Age of Chivalry
    • Beneath a Steel Sky
    • Chrono Cross: The Radical Dreamer Edition
    • Cities XXL
    • Cladun X2
    • Cursed Armor
    • Flanarion Tactics
    • Gary Grigsby's War in the East
    • Gary Grigsby's War in the West
    • Iragon: Prologue
    • MechWarrior Online
    • Small Radios Big Televisions
    • Split/Second
    • Star Wars Episode I Racer
    • Stranger of Sword City Revisited
    • Succubus x Saint
    • V Rising
    • Warhammer: End Times - Vermintide
    • We Were Here Forever

  • Add support for Windows.Gaming.Input.
  • Improve FPS in Street Fighter V during online matches.
  • Improve Sekiro: Shadow Die Twice performance in certain areas.
  • Fix Elden Ring crashing during prolonged gameplay.
  • Fix the new Final Fantasy XIV Online launcher.
  • Fix DEATHLOOP crashing after long system suspend.
  • Fix The Turing Test crashing when starting Chapter 4.
  • Fix controller support in Mini Ninja.
  • Fix Resident Evil Revelations 2 not starting on the Steam Deck.
  • Fix video playback in: Disintegration, Dread X Collection: The Hunt, EZ2ON REBOOT : R, El Hijo - A Wild West Tale, Ember Knights, Outward: Definitive Edition, POSTAL4: No Regerts, Power Rangers: Battle for the Grid, Solasta: Crown of the Magister, Street Fighter V, The Room 4: Old Sins. Fix video playback in Ghostwire: Tokyo and other games using VP8 and VP9 codecs.
  • Fix non-steering-wheel controller support in WRC10.
  • Fix S&box not finding any games to join.
  • Fix The Legend of Heroes: Zero no Kiseki Kai failing to start for the first time.
  • Fix Mortal Kombat Komplete crashing when audio devices with long names are present.
  • Fix handling of external links in Castle Morihisa.
  • Improve text rendering in Rockstar Launcher.
  • Improve steering wheel detection.
  • Support xinput controller reordering on the Steam Deck.
  • Update Wine Mono to 7.3.0.
  • Update dxvk-nvapi to v0.5.4.
  • Update dxvk to v1.10.1-57-g279b4b7e.

 Link to source code

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


Friday, March 4, 2022

vkd3d-proton version 2.6 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.


It has been a long while since 2.5, and this release rolls up a lot of fixes, features and optimizations.


  • Fix black screen rendering bug in Horizon Zero Dawn after latest game updates.
  • Fix crashes on startup in Final Fantasy VII: Remake and Warframe.
  • Fix crashes in Guardians of the Galaxy when interacting with certain game objects.
  • Fix hang on game shutdown in Elden Ring.
  • Fix broken geometry rendering in Age of Empires: IV.


  • Improve generated shader code for vectorized load-store operations in DXIL.
  • Greatly reduce CPU overhead for descriptor copy operations,
    which is a key contributor to CPU overhead in D3D12.


Pipeline library rewrite

Support D3D12 pipeline libraries better where we can now also cache
generated SPIR-V from DXBC/DXIL.
Massively reduces subsequent load times in Monster Hunter: Rise,
and helps other titles like Guardian of the Galaxy and Elden Ring.
Also lays the groundwork for internal driver caches down the line for games which do not use this API.
Also, deduplicates binary blobs for reduced disk size requirements.

Shader models

Shader model 6.6 is now fully implemented. This includes support for:

  • ResourceDescriptorHeap[] direct access
  • 64-bit atomics
  • IsHelperLane()
  • Compute shader derivatives
  • WaveSize attribute
  • Packed math intrinsics

Minor features

  • Handle API feature MinResourceLODClamp correctly if VK_EXT_image_view_min_lod is supported.
  • Expose CastFullyTypedFormat feature.
  • Expose some advanced shader features on Intel related to UAV formats (VK_KHR_format_feature_flags2).
  • Support COLOR -> STENCIL copies.


  • Workaround DEATHLOOP not emitting synchronization commands correctly. Fixes menu flicker on RADV.
  • Workaround quirky API usage in Elden Ring. Removes many kinds of stutter and chug when traversing the scenery.
  • Workaround certain environments failing to create Vulkan device if some VK_NVX_* extensions are enabled.
  • Workaround glitched foliage rendering in Horizon Zero Dawn after latest game updates.
  • Workaround some questionable UE4 shaders causing glitched rendering on RADV.

Note on future Vulkan driver requirements

2.6 is expected to be the last vkd3d-proton release before we require some newer Vulkan extensions.
VK_KHR_dynamic_rendering and VK_EXT_extended_dynamic_state
(and likely dynamic_state_2 as well) will be required.

VK_KHR_dynamic_rendering in particular requires up-to-date drivers and the legacy render pass path
will be abandoned in favor of it. Supporting both paths at the same time is not practical.
Moving to VK_KHR_dynamic_rendering allows us to fix some critical flaws with the legacy API
which caused potential shader compilation stutters and extra CPU overhead.

Link to source code

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


Thursday, February 10, 2022

What is Valve Proton

What is Valve Proton? The Steam Deck’s live-or-die Linux software, explained

The Steam Deck's success will hinge on Proton, a Valve technology that lets Windows games run on Linux. Here's what you need to know. 
Looking at the spec sheet alone, the $399 Steam Deck gaming handheld should be a winner—and early Steam Deck reviews certainly suggest Valve nailed it on the hardware front. The PC-centric Nintendo Switch rival features a big 7-inch touchscreen, plenty of control inputs, an all-AMD chip based on the same hardware inside the Xbox Series S|X and PlayStation 5, and the ability to double as a full-fledged Linux PC. But forget the hardware. While it’s impressive indeed, the Steam Deck will sink or swim based on its software, and that means Valve awesome Proton technology is about to be thrust into the spotlight.

The Steam Deck will sprint to a larger software library than most gaming handhelds because you’ll be able to tap into decades of existing PC games through your Steam account, rather than having to wait for new releases made specifically for the fresh hardware. But most of those games were created for Windows, and the Steam Deck runs on Valve’s Linux-based SteamOS operating system instead. Proton (via Steam Play) lets Windows games run on Linux. It works very well much of the time, but it’s not perfect—and the Steam Deck’s success probably depends on just how much Valve can polish up Proton before the handheld’s February 25 launch. The best hardware in the world is only as good as the software that runs on it, after all.

Here’s a high-level look at what you need to know about Proton, the Steam Deck’s secret software sauce.

What is Steam Proton?

At a high level, Proton is a compatibility layer that allows Windows games to run on Linux-based operating systems (such as the Steam Deck’s SteamOS). In the past, playing PC games on Linux required you to run Steam games through software called Wine (an acronym for “Wine is not an emulator.”). Valve worked with CodeWeavers developers to build Proton as a fork of Wine, then baked the technology right into Steam itself as part of Steam Play, the company’s “buy once, play on any PC platform” endeavor.

Valve created Proton after its living room-focused Steam Machine initiative failed, partly because of their reliance on the much-smaller Linux gaming library. “There was always kind of this classic chicken and egg problem with the Steam Machine,” designer Scott Dalton told IGN. “That led us down this path of Proton, where now there’s all these games that actually run.”

If you’re interested in industry inside baseball, Proton and SteamOS also double as a potential escape hatch from Windows if Valve ever needs it.

How do you set up Steam Proton?

steam deck multiplayer

Hey Valve: This should just work, with Proton support activated by default on the Steam Deck.

Currently, Steam for Linux does not flip on Proton by default. You need to manually enable it or stick to games that offer a native Linux port. Considering how few games offer native Linux versions, we’re strongly hoping Valve makes Proton/Steam Play enabled by default on the Steam Deck, or there will be a lot of unhappy customers.

If you’re already using Linux, you can turn on Proton by opening your Steam settings and clicking on the “Steam Play” option at the bottom of the navigation pane. (The option won’t be visible on Windows PCs.) There, you’ll see a box you can check to “Enable Steam Play for supported titles.” That turns on Proton for games confirmed to work well with the technology, added to a whitelist by Valve. You’ll also see an advanced option to “Enable Steam Play for all other titles,” which will flip on Proton for everything after you restart the client.

Will all my games work on Steam Deck with Proton?

Will all games work? That’s the million dollar question.

steam deck main

Notice that none of the games in this Steam Deck promotional image are massively popular multiplayer titles.

Valve has been steadily improving Proton ever since it launched in 2018, and many—most, even—Windows games run pretty well via Steam Play with little to no tinkering. Your best resource for determining how a game runs is the utterly fantastic ProtonDB, a community-made treasure trove of information that currently tracks almost 19,000 games, of which over 15,000 work on Linux. The site also maintains a very helpful troubleshooting FAQ for Proton games. (Be sure to leave reports of your own if you use Proton and Steam Play!)

As those numbers indicate, some games are just plain “borked” on Linux, to borrow ProtonDB’s term. The most common casualties? Sadly, the most popular games around—battle royale games and esports titles. Proton’s compatibility layer tweaks don’t play nice with the anti-cheat software deployed in widely played online games. Valve made sure to get its own Counter-Strike: Global Offensive and Team Fortress 2 running on Linux, but heavy hitters like PlayerUnknown’s Battlegrounds, New World, Apex Legends, and Destiny 2 still won’t run.

ProtonDB February 2022 top 1000 stats

Screenshot of

That’s a massive bummer, and as you can see from the ProtonDB stats about game compatibility above, it means that many of the most popular games in the world couldn’t be played on a Steam Deck currently. Epic recently stated it won’t work to support Fortnite on the Steam Deck either. (Notice how the percentage of red “borked” games in the top ten is much, much, much higher than in the top 100 and top 1000—that’s because those multiplayer games dominate the top-played charts.)

Valve understands what a huge roadblock this could be. While BattlEye and the Epic-owned Easy Anti-Cheat lacked Proton support whatsoever when the Steam Deck was announced, but Valve has worked with those developers to get the technology up and running on SteamOS. At the end of January 2022, in a Steam Deck Anti-Cheat Update, Valve declared that “Our team has been working with Epic on Easy Anti-Cheat + Proton support over the last few months, and we’re happy to announce that adding Steam Deck support to your existing EAC games is now a simple process, and doesn’t require updating game binaries, SDK versions, or integration of EOS. Alongside our BattlEye updates from last year, this means that the two largest anti-cheat services are now easily supported on Proton and Steam Deck.”

Developers still need to update their games to support the technologies on SteamOS, but with BattlEye and Easy Anti-Cheat now playing nice with Proton, the Steam Deck will launch with its biggest hurdle already cleared. That doesn’t mean everything is roses and sunshine though. As you see in the ProtonDB screenshot above, about 20 percent of the top 100 and 1000 games on Steam lack a Gold+ compatibility rating with Proton, and Linus Tech Tips noticed that Forza Horizon 5 suffered from some bizarre physics and lighting effects even when running at 60 frames per second. The vast majority of games run very well on Proton already, and that’s a monumental success for Valve and Linux gaming alike, but every hiccup and pain point could potentially be a deal-breaker for casual users enticed by the Steam Deck’s juicy $400 selling price.

All the appealing hardware and just-as-appealing prices won’t matter if PC gamers can’t play their favorite games on Valve’s handheld. As a general consumer device, the Steam Deck will live or die on the back on Proton—and whether Steam Play can indeed coax multiplayer developers into supporting it. Fingers crossed.

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

Thursday, November 25, 2021

Proton 6.3-8 has been released

  • The following games are now playable:
    • Age of Empires 4
    • Assassin's Creed
    • Breath of Death VI
    • Call of Duty: Black Ops II singleplayer (202970)
    • FIA European Truck Racing Championship
    • Fly'N
    • Game Dev Tycoon
    • Ghostbusters: The Video Game Remastered
    • GreedFall
    • Mafia II (Classic)
    • Magicka
    • Marvel's Guardians of the Galaxy (AMD GPUs only)
    • Mass Effect Legendary Edition (ME1 does not have working audio, see #4823)
    • Monster Boy and the Cursed Kingdom
    • Monster Energy Supercross - The Official Video Game
    • Monster Energy Supercross - The Official Video Game 2
    • Nickelodeon All-Star Brawl
    • Penny Arcade's On the Rain-Slicked Precipice of Darkness 3
    • RiMS Racing
    • The Riftbreaker
    • Sol Survivor
    • TT Isle of Man Ride on the Edge
    • TT Isle of Man Ride on the Edge 2


  • Added support for an initial set of BattlEye games.
  • Improve compatibility with games using Valve's CEG DRM.
  • Support DLSS in DX11 and DX12 games (guarded by PROTON_ENABLE_NVAPI=1 and dxgi.nvapiHack = False).
  • Support latest Steamworks SDK.
  • Fix crashes in Project Wingman, Satisfactory and other Unreal Engine 4 games using the Vulkan renderer.
  • Fix a sporadic crash when starting Baldur's Gate 3.
  • Fix networked multiplayer in RaceRoom Racing Experience.
  • Fix cutscene desync in Assassin's Creed: Odyssey.
  • Fix audio stuttering in Gahkthun Steam Edition.
  • Fix Atomic Shop and random crashes on start in Fallout 76.
  • Fix Paradox Launcher (used by Europa Universalis IV) failing to display anything.
  • Fix video freezing and causing game to hang in Deep Rock Galactic.
  • Fix Industries of Titan not listing any resolutions and monitors.
  • Fix Bloons TD6 not being able to access account settings, see docs/
  • Fix Project CARS 3 ignoring inputs after Alt+Tab.
  • Fix stuck Alt key after Alt+Tabbing out and back for Warhammer: Chaosbane.
  • Support Thai characters in Mirror and other Unity games.
  • Support Korean and Arabic characters in Cyberpunk 2077 launcher.
  • Fix connection issues in Satisfactory on systems with multiple network interfaces.
  • Fix Biomutant videos not playing.
  • Update dxvk to v1.9.2-13-g714ca482.
  • Update vkd3d-proton to v2.5-50-g0251b404.
  • Update wine-mono to 6.4.1.

Link to source code

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


Thursday, October 21, 2021

Proton 6.3-7 has been released

  • The following games are now playable:

    • Life is Strange: True Colors
    • Quake Champions (broken after a game update)
    • Divinity Original Sin 2 (broken after a game update)
    • eFootball PES 2021
    • WRC 8, 9 and 10

  • Fix Logitech G920 mapping for F1 2020.

  • Fix Resident Evil Village display settings.

  • Improve Forza Horizon 4 windowing.

  • Update DXVK to v1.9.2.

  • Update vkd3d-proton to include the latest development work.

Link to source code

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


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!


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


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.


Saturday, August 21, 2021

Proton 6.3-6 has been released

  • The following games are now playable:
    • Tokyo Xanadu eX+
    • Sonic Adventure 2
    • Rez Infinite
    • Elite Dangerous
    • Blood of Steel
    • Homeworld Remastered Collection
    • Star Wars Knights of the Old Republic
    • Guardians VR
    • 3D Aim Trainer

  • Improve non-English experience in Cyberpunk 2077 and Rockstar Games launchers.
  • Improve launcher behavior in Swords of Legends Online.
  • Improve video playback in Deep Rock Galactic, The Medium, Nier: Replicant, and Contra: Rogue Corps.
  • Add optional support for Nvidia's NVAPI GPU support library and DLSS. It is disabled by default and can be enabled with PROTON_ENABLE_NVAPI=1.
  • Update wine-mono to 6.3.0.
  • Update DXVK to v1.9.1.
  • Update vkd3d-proton to v2.4.
  • Update FAudio to 20.08.
  • Fix Microsoft Flight Simulator hang while loading.
  • Fix Unreal Engine 4 update installation, which impacted Everspace 2 and KARDS.
  • Fix text input and clipboard pasting in Origin overlay and launcher.
  • Fix some music not playing in Planet Coaster.
  • Fix Mafia III: Definitive Edition performance when FPS limiter is enabled.
  • Fix audio playback issues in Fallout: New Vegas, Oblivion, Borderlands 3, and Deep Rock Galactic.
  • Improve cursor capture behavior for fullscreen windows.
  • Improve input handling after focus loss in some games, including Warhammer: Chaosbane and Far Cry Primal.
  • Correct game save locations to improve Steam cloud sync behavior in:
    • Guilty Gear -Strive-
    • Death Stranding
    • Katamari Damacy Reroll
    • Scarlet Nexus

Link to source code

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


Thursday, July 8, 2021

vkd3d-proton version 2.4 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 which focuses on performance and bug-fixes.


  • Improve swapchain latency and frame pacing by up to one frame.
  • Optimize lookup of format info.
  • Avoid potential pipeline compilation stutter in certain scenarios.
  • Rewrite how we handle image layouts for color and depth-stencil targets.
    Allows us to remove a lot of dumb
    barriers giving significant GPU-bound performance improvements.
    ~15%-20% GPU bound uplift in Horizon Zero Dawn,
    ~10% in Death Stranding,
    and 5%-10% improvements in many other titles.


  • Enable support for sparse 3D textures (tiled resources tier 3).

Bug fixes and workarounds

  • Various bug fixes in DXIL.
  • Fix weird bug where sun would pop through walls in RE: Village.
  • Workaround game bug in Cyberpunk 2077 where certain locales would render a black screen.
  • Fix various bugs (in benchmark and in vkd3d-proton) allowing GravityMark to run.
  • Improve robustness against certain app bugs related to NULL descriptors.
  • Fix bug with constant FP64 vector handling in DXBC.
  • Fix bug where Cyberpunk 2077 inventory screen could spuriously hang GPU on RADV.
  • Add workaround for Necromunda: Hired Gun where character models would render random garbage on RADV.
  • Fix bug in Necromunda: Hired Gun causing random screen flicker.
  • Fix windowed mode tracking when leaving fullscreen. Fix Alt-Tab handling in Horizon Zero Dawn.
  • Temporary workaround for SRV ResourceMinLODClamp. Fix black ground rendering in DIRT 5.
    The overbright HDR rendering in DIRT 5 sadly persists however :(
  • Implement fallback maximum swapchain latency correctly.

Development features

Various features which are useful for developers were added to aid debugging.

  • Descriptor QA can instrument shaders in runtime for GPU-assisted validation.
    Performance is good enough (> 40 FPS) that games are actually playable in this mode.
    See README for details.
  • Allow forcing off CONCURRENT queue, and using EXCLUSIVE queue.
    Not valid, but can be useful as a speed hack on Polaris when single_queue is not an option
    and for testing driver behavior differences.

Link to source code

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


Saturday, June 26, 2021

Proton 6.3-5 has been released

  • Many improvements to video rendering. Games known to be improved include:
    • Bloodstained
    • Deep Rock Galactic
    • Metal Gear Solid V: The Phantom Pain
    • Resident Evil 2 (2019)
    • Resident Evil 3 (2020)
    • Team Sonic Racing

  • Update DXVK to v1.9.
  • Improve GPU device selection.
  • Update vkd3d-proton to include the latest development work.
  • The following games are now playable:
    • Sid Meier's Civilization VI
    • Crypt Stalker
    • Dark Devotion
    • Dorfromantic
    • Far Cry
    • Hard Reset
    • Hogs of War
    • Might & Magic: Clash of Heroes
    • Pro Cycling Manager 2020
    • Sang Froid - Tales of Werewolves
    • Secret of Mana
    • Trainz Railroad Simulator 2019
  • Improve controller support in Hades and many Unity titles.
  • Fix CyberPunk 2077, Darksburg, and other launchers hanging when external links are clicked.
  • Fix Conan Exiles and other Funcom launchers crashing.
  • Fix missing audio in Project Cars 3.
  • Better support for container-based builds outside of the build VM.

Link to source code

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


Saturday, May 15, 2021

Proton 6.3-4 has been released

 Proton 6.3-4 has been released

  • Fix recent 2K Games launcher update
  • Fix error on startup for some Direct3D 12 games
  • Fix Divinity Original Sin 2 and Rise of Venice launcher display issues
  • Fix Star Wars Squadrons VR incorrectly launching to desktop
  • Fix Sacred Gold visual artifacts

Link to source code

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


Tuesday, May 4, 2021

Proton 6.3-3 has been released

  Proton 6.3-3 has been released

  • Previously in Experimental: Update vkd3d-proton to v2.3.1.
  • Previously in Experimental: The Origin Overlay is functional, which allows It Takes Two to be played with friends.
  • Previously in Experimental: Mount & Blade II: Bannerlord is playable.
  • Previously in Experimental: Fix Red Dead Redemption 2 "Not Purchased" error.
  • Previously in Experimental: Fix Age of Empires II: Definitive Edition hang on startup.
  • Fixed launchers for Evil Genius 2, Zombie Army 4, Strange Brigade, Sniper Elite 4, Beam.NG, and Eve Online.
  • The Bus and Army General are now playable.
  • Support adjusting brightness/gamma in older games like Deus Ex.
  • Fix Xbox controller detection in Far Cry Primal.

Link to source code

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


Tuesday, April 27, 2021

vkd3d-proton version 2.3.1 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 minor bugfix release to address some issues solved shortly after the last release.


  • Improved support for older Wine and Vulkan Loader versions.
  • Fix blocky shadows in Horizon Zero Dawn.
  • Fix the install script failing on Wine installs not built with upstream vkd3d.
  • Fix minor dxil translation issues.

Link to source code

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


Thursday, April 22, 2021

vkd3d-proton version 2.3 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 adds support for more D3D12 features and greatly improves GPU bound performance
in many scenarios.


Early DXR 1.0 support

VK_KHR_raytracing is used to enable cross-vendor ray-tracing support.
The implementation is WIP, but it is good enough to run some real content.

As of writing, only the NVIDIA driver works correctly.
It is expected AMD RDNA2 GPUs will work when working drivers are available
(amdgpu-pro 21.10 is known to not work).

Games which are expected to work include:

  • Control (appears to be fully working)
  • Ghostrunner (seems to work, not exhaustively tested)

To enable DXR support, VKD3D_CONFIG=dxr %command% should be used when launching game.
Certain games may be unstable if DXR is enabled by default.

Conservative rasterization

Full support (tier 3) for conservative rasterization was added.

Variable rate shading

Full support (tier 2) for variable rate shading was added.

Command list bundles

Allows Kingdom Hearts remaster to get past the errors, unsure if game fully works yet.

Write Watch and APITrace

Support for D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH has been added.
This means APITraces of titles can now be captured.


  • Improve GPU bound performance in RE2 by up to 20% on NVIDIA.
  • Enable async compute queues. Greatly improves GPU performance and frame pacing in many titles.
    Horizon Zero Dawn and Death Stranding see exceptional gains with this fix,
    due to how the engines work. GPU utilization should now reach ~100%.
    For best results, AMD Navi+ GPUs are recommended, but Polaris and earlier still
    see great results. It is possible to disable this path, if for whatever reason
    multiple queues are causing issues. See README.
  • Optimize bindless constant buffer GPU-bound performance on NVIDIA if certain API code paths are used.
  • Optimize sparse binding CPU overhead.
  • TRACE logging calls are disabled by default on release builds.

Fixes and workarounds

  • Fix various DXIL bugs.
  • Be more robust against broken pipeline creation API calls.
    Avoids driver crashes in Forza Horizon 4.
  • Workaround some buggy shaders in F1 2020.
  • Fix bugs if depth bounds test is used in certain ways.
  • Fix a read out-of-bounds in UpdateTileMappings.
  • Fix SV_ClipDistance and SV_CullDistance in Hull Shaders.

Link to source code

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


Wednesday, April 7, 2021

Proton 6.3-2 has been released

 Proton 6.3-2 has been released

 -Fix stuttering mouse cursor issue during longer play sessions.

Link to source code

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


Friday, April 2, 2021

Proton 6.3-1 has been released

  Proton 6.3-1 has been released

  • Newly playable games include:
    • Divinity: Original Sin 2
    • Shenmue I & II
    • Mass Effect 3 N7 Digital Deluxe Edition (2012)
    • Tom Clancy's Rainbow Six Lockdown
    • XCOM: Chimera Squad
    • Bioshock 2 Remastered
    • Company of Heroes 2
    • logiCally
    • Rise of the Triad
    • Home Behind 2
    • Shadow Empire
    • Arena Wars 2
    • King Arthur: Knight's Tale
    • Rise of Venice
    • ARK Park
    • Gravity Sketch
    • Battle Arena VR

  • Updated Wine to version 6.3.
  • Updated DXVK to v1.8.1.
  • Updated vkd3d-proton to v2.2.
  • Updated FAudio to 21.03.05.
  • Update wine-mono to 6.1.1.
  • Previously in Experimental: Improvements for non-US keyboard layouts.
  • Previously in Experimental: Improved video support. You may see test pattern videos. This is normal.
  • Previously in Experimental: Support setting thread priorities via RTKit, or Unix priorities if your user has permissions.
  • Previously in Experimental: Controller layout and hotplugging improvements in Slay the Spire and Hades.
  • Previously in Experimental: Improved PlayStation 5 controller support.
  • Previously in Experimental: Improved Virtual Reality startup time and compatibility.
  • Improved Uplay sign-in.
  • Improved G29 steering support in Assetto Corsa Competizione.
  • Fixed Microsoft Flight Simulator in VR mode.
  • Fixed cutscenes in Bioshock 2 Remastered.
  • Overhauled build system to greatly reduce build times.

Link to source code

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


Saturday, February 20, 2021

vkd3d-proton version 2.2 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 is mostly a maintenance release which fixes bugs and regressions.
It also unblocks significant future feature development.

Workaround removals

  • Replace old force_bindless_texel_buffer workaround with
    a more correct and performant implementation.
    Death Stranding and Cyberpunk 2077 (and probably other games as well) do the right thing by default without the hack now.
  • Remove old workaround disable_query_optimization for occlusion queries which was enabled for AC: Valhalla,
    and is now replaced by a correct and efficient implementation.

Cyberpunk 2077 status

From recent testing on our end, it is unknown at this time if VK_VALVE_mutable_descriptor_type is still required for
Cyberpunk 2077. Manual testing hasn't been able to trigger a GPU hang.
The memory allocation rewrite in 2.2 can plausibly work around some of the bugs that VK_VALVE_mutable_descriptor_type fixed by accident.
The bugs in question could also have been fixed since release day, but we cannot prove this since the bug is completely random in nature.

Regression fixes

  • Fix regression in Horizon Zero Dawn for screen space reflections on water surfaces.

Stability fixes

  • Greatly improve stability on Polaris or older cards for certain titles.
    Crashes which used to happen in Horizon Zero Dawn and Death Stranding seem to have disappeared
    after the memory allocation rewrite.
    GPU memory usage should decrease on these cards as well.
  • DIRT 5 can get in-game now due to DXIL fixes, but is not yet playable.

New features

  • Add support for Variable Rate Shading tier 1.

Future development

DXR is not yet supported, but has seen a fair bit of background work.

  • Basic DXR pipelines can be created successfully.
  • Memory allocation rewrite in 2.2 unblocks further DXR development.

Link to source code

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