DX12 is not supported (Bottles, Lutris, Heroic) / Visual C++ Runtime required (steam launcher Proton GE)

EDIT: Thanks to DiMat’s suggestion to use PORTPROTON I am now able to run dx12 games. But, as the original problem still stands (steam/bottles/heroic/lutris not able to run dx12 games) I will keep this open for a bit, so maybe somebody can explain to me what went wrong in the first place. I would very much like to understand the situation and what caused it/ what can fix it.

I can not seem to be able to figure this one out.
No matter what runner (Proton, Proton GE, Wine-GE) in whatever program (Bottles, Lutris, Heroic, Steam native) I use I cannot run any DX12 games. Have tried Manor Lords, The Thaumaturge, Pacific Drive, … Have tried to instal VKD3D via Octopi as a last resort to no avail. Reinstalled nVidia drivers, switched to open source and back to proprietary.
Have tried setting environment variables
as found here: https://www.reddit.com/r/LinuxCrackSupport/comments/vcstu9/dx12_not_supported/

And am just coming to the end of my rope. I am almost tempted to just do a clean Garuda reinstall. But my internet capabilities are VERY limited (shitty czech mobile providers…).

I understand I am supposed to paste the inxi here, but am not sure how to format it properly for which I apologise. It is long after midnight here and I am basically sleeping and my brain is just farting at this moment.

Host: lazyshiva420 Kernel: 6.8.9-zen1-2-zen arch: x86_64 bits: 64
compiler: gcc v: 14.1.1 clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=8a8c3e7a-2150-4b1f-a34d-b64dc3368026 rw rootflags=subvol=@
quiet loglevel=3 ibt=off
Desktop: KDE Plasma v: 6.0.4 tk: Qt v: N/A info: frameworks v: 6.2.0
wm: kwin_x11 vt: 2 dm: SDDM Distro: Garuda base: Arch Linux
Type: Desktop Mobo: Gigabyte model: B85M-D3H v: x.x
serial: uuid:
UEFI: American Megatrends v: F15 date: 08/20/2015
Info: model: Intel Core i5-4690K bits: 64 type: MCP arch: Haswell
gen: core 4 level: v3 note: check built: 2013-15 process: Intel 22nm
family: 6 model-id: 0x3C (60) stepping: 3 microcode: 0x28
Topology: cpus: 1x cores: 4 smt: cache: L1: 256 KiB
desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB L3: 6 MiB
desc: 1x6 MiB
Speed (MHz): avg: 3691 high: 3692 min/max: 800/3900 scaling:
driver: intel_cpufreq governor: schedutil cores: 1: 3692 2: 3692 3: 3691
4: 3692 bogomips: 27934
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Type: gather_data_sampling status: Not affected
Type: itlb_multihit status: KVM: VMX disabled
Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
Type: mds mitigation: Clear CPU buffers; SMT disabled
Type: meltdown mitigation: PTI
Type: mmio_stale_data status: Unknown: No mitigations
Type: reg_file_data_sampling status: Not affected
Type: retbleed status: Not affected
Type: spec_rstack_overflow status: Not affected
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
Type: spectre_v2 mitigation: Retpolines; IBPB: conditional; IBRS_FW;
STIBP: disabled; RSB filling; PBRSB-eIBRS: Not affected; BHI: Not
Type: srbds mitigation: Microcode
Type: tsx_async_abort status: Not affected
Device-1: NVIDIA GA104 [GeForce RTX 3070] vendor: Gigabyte driver: nvidia
v: 550.78 alternate: nouveau,nvidia_drm non-free: 550.xx+ status: current
(as of 2024-04; EOL~2026-12-xx) arch: Ampere code: GAxxx
process: TSMC n7 (7nm) built: 2020-2023 pcie: gen: 3 speed: 8 GT/s
lanes: 16 link-max: gen: 4 speed: 16 GT/s ports: active: none
off: HDMI-A-1 empty: DP-1, DP-2, DP-3, HDMI-A-2, HDMI-A-3 bus-ID: 01:00.0
chip-ID: 10de:2484 class-ID: 0300
Display: x11 server: [X.Org](http://X.Org) v: 21.1.13 with: Xwayland v: 23.2.7
compositor: kwin_x11 driver: X: loaded: nvidia unloaded: modesetting,nouveau
alternate: fbdev,nv,vesa gpu: nvidia,nvidia-nvswitch display-ID: :0
screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 92 s-size: 530x301mm (20.87x11.85")
s-diag: 610mm (24")
Monitor-1: HDMI-A-1 mapped: HDMI-0 note: disabled model: HP 24f
serial: 3CM1180T95 built: 2021 res: 1920x1080 hz: 60 dpi: 93 gamma: 1.2
size: 527x296mm (20.75x11.65") diag: 604mm (23.8") ratio: 16:9 modes:
max: 1920x1080 min: 640x480
API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia x11: drv: nvidia
inactive: wayland,device-1
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 550.78
glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce RTX 3070/PCIe/SSE2
memory: 7.81 GiB
API: Vulkan v: 1.3.279 layers: 11 device: 0 type: discrete-gpu
name: NVIDIA GeForce RTX 3070 driver: nvidia v: 550.78 device-ID: 10de:2484
surfaces: xcb,xlib device: 1 type: cpu name: llvmpipe (LLVM 17.0.6 256
bits) driver: mesa llvmpipe v: 24.0.7-arch1.3 (LLVM 17.0.6)
device-ID: 10005:0000 surfaces: xcb,xlib
Device-1: Intel 8 Series/C220 Series High Definition Audio vendor: Gigabyte
driver: snd_hda_intel v: kernel bus-ID: 00:1b.0 chip-ID: 8086:8c20
class-ID: 0403
Device-2: NVIDIA GA104 High Definition Audio vendor: Gigabyte
driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
link-max: gen: 4 speed: 16 GT/s bus-ID: 01:00.1 chip-ID: 10de:228b
class-ID: 0403
API: ALSA v: k6.8.9-zen1-2-zen status: kernel-api with: aoss
type: oss-emulator tools: N/A
Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
Server-2: PipeWire v: 1.0.6 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
vendor: Gigabyte driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
lanes: 1 port: d000 bus-ID: 03:00.0 chip-ID: 10ec:8168 class-ID: 0200
IF: enp3s0 state: down mac: fc:aa:14:28:5a:d5
Device-2: ASUSTek AC51 802.11a/b/g/n/ac Wireless Adapter [Mediatek
MT7610U] driver: mt76x0u type: USB rev: 2.0 speed: 480 Mb/s lanes: 1
mode: 2.0 bus-ID: 3-1:2 chip-ID: 0b05:17d1 class-ID: 0000 serial: 1.0
IF: wlp0s20u1 state: up mac: 38:d5:47:0a:e0:49
Info: services: NetworkManager, smbd, systemd-timesyncd, wpa_supplicant
Local Storage: total: 3.88 TiB used: 3.56 TiB (91.7%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Western Digital
model: WD10EZEX-22MFCA0 size: 931.51 GiB block-size: physical: 4096 B
logical: 512 B speed: 6.0 Gb/s tech: HDD rpm: 7200 serial: WD-WCC6Y2PT4P6P
fw-rev: 1A01 scheme: GPT
ID-2: /dev/sdb maj-min: 8:16 vendor: Kingston model: SUV400S37240G
size: 223.57 GiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
tech: SSD serial: 50026B777403406F fw-rev: 37R5 scheme: GPT
ID-3: /dev/sdc maj-min: 8:32 vendor: Apacer model: AS350 1TB
size: 953.87 GiB block-size: physical: 512 B logical: 512 B speed: 3.0 Gb/s
tech: SSD serial: 51990732052800101135 fw-rev: 5PE0 scheme: GPT
ID-4: /dev/sdd maj-min: 8:48 vendor: Western Digital
model: WD1002FAEX-00Y9A0 size: 931.51 GiB block-size: physical: 512 B
logical: 512 B speed: 3.0 Gb/s tech: N/A serial: WD-WCAW34198349
fw-rev: 1D05 scheme: MBR
ID-5: /dev/sde maj-min: 8:64 vendor: Toshiba model: MK1059GSM
size: 931.51 GiB block-size: physical: 512 B logical: 512 B type: USB
rev: 3.0 spd: 5 Gb/s lanes: 1 mode: 3.2 gen-1x1 tech: HDD rpm: 5400
serial: Z1CBF71SS fw-rev: 0001 scheme: MBR
ID-1: / raw-size: 36.55 GiB size: 36.55 GiB (100.00%)
used: 26.11 GiB (71.4%) fs: btrfs dev: /dev/sdb6 maj-min: 8:22
ID-2: /boot/efi raw-size: 556 MiB size: 554.9 MiB (99.80%)
used: 584 KiB (0.1%) fs: vfat dev: /dev/sdb8 maj-min: 8:24
ID-3: /home raw-size: 28.99 GiB size: 28.99 GiB (100.00%)
used: 14.99 GiB (51.7%) fs: btrfs dev: /dev/sdb7 maj-min: 8:23
ID-4: /var/log raw-size: 36.55 GiB size: 36.55 GiB (100.00%)
used: 26.11 GiB (71.4%) fs: btrfs dev: /dev/sdb6 maj-min: 8:22
ID-5: /var/tmp raw-size: 36.55 GiB size: 36.55 GiB (100.00%)
used: 26.11 GiB (71.4%) fs: btrfs dev: /dev/sdb6 maj-min: 8:22
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 23.42 GiB used: 0 KiB (0.0%) priority: 100
comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 4 dev: /dev/zram0
System Temperatures: cpu: 68.0 C mobo: N/A gpu: nvidia temp: 49 C
Fan Speeds (rpm): N/A gpu: nvidia fan: 50%
Memory: total: 24 GiB available: 23.42 GiB used: 6.38 GiB (27.2%)
Processes: 343 Power: uptime: 1h 25m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 9.32 GiB services: org_kde_powerdevil,
power-profiles-daemon, upowerd Init: systemd v: 255 default: graphical
tool: systemctl
Packages: pm: pacman pkgs: 1715 libs: 527 tools: octopi,paru Compilers:
clang: 17.0.6 gcc: 14.1.1 Shell: fish v: 3.7.1 running-in: konsole
inxi: 3.3.34

Please, don’t change again the garuda-inxi format.

Same for unsupported software.

  • Format terminal output (including your garuda-inxi) as a code block by clicking the preformatted text button (</>) , or put three tildes (~) above and below the text

Sorry, I was in the middle of adding more information (Bottles’ “Run With Terminal”):

The Thaumaturge:

fsync: up and running.
wine: Using setpriority to control niceness in the [-11,11] range
002c:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (126).
009c:err:hid:udev_bus_init UDEV monitor creation failed

(wine:46422): GStreamer-WARNING **: 02:25:56.086: Failed to load plugin '/home/shambhu/.local/share/bottles/ru
nners/wine-ge-proton8-26/lib64/gstreamer-1.0/libgstwebp.so': libwebp.so.6: cannot open shared object file: No
such file or directory

(wine:46422): GStreamer-WARNING **: 02:25:56.086: Failed to load plugin '/home/shambhu/.local/share/bottles/ru
nners/wine-ge-proton8-26/lib/gstreamer-1.0/libgstwebp.so': /home/shambhu/.local/share/bottles/runners/wine-ge-
proton8-26/lib/gstreamer-1.0/libgstwebp.so: wrong ELF class: ELFCLASS32
00e8:err:ole:com_get_class_object apartment not initialised

Pacific Drive:

fsync: up and running.
wine: Using setpriority to control niceness in the [-11,11] range
002c:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (126).
00a0:err:hid:udev_bus_init UDEV monitor creation failed
LogPakFile: Display: Found Pak file ../../../PenDriverPro/Content/Paks/pakchunk4-WindowsNoEditor.pak attemptin
g to mount.
LogPakFile: Display: Mounting pak file ../../../PenDriverPro/Content/Paks/pakchunk4-WindowsNoEditor.pak.
LogPakFile: Display: Found Pak file ../../../PenDriverPro/Content/Paks/pakchunk3-WindowsNoEditor.pak attemptin
g to mount.
LogPakFile: Display: Mounting pak file ../../../PenDriverPro/Content/Paks/pakchunk3-WindowsNoEditor.pak.
LogPakFile: Display: Found Pak file ../../../PenDriverPro/Content/Paks/pakchunk2-WindowsNoEditor.pak attemptin
g to mount.
LogPakFile: Display: Mounting pak file ../../../PenDriverPro/Content/Paks/pakchunk2-WindowsNoEditor.pak.
LogPakFile: Display: Found Pak file ../../../PenDriverPro/Content/Paks/pakchunk10-WindowsNoEditor.pak attempti
ng to mount.
LogPakFile: Display: Mounting pak file ../../../PenDriverPro/Content/Paks/pakchunk10-WindowsNoEditor.pak.
LogPakFile: Display: Found Pak file ../../../PenDriverPro/Content/Paks/pakchunk1-WindowsNoEditor.pak attemptin
g to mount.
LogPakFile: Display: Mounting pak file ../../../PenDriverPro/Content/Paks/pakchunk1-WindowsNoEditor.pak.
LogPakFile: Display: Found Pak file ../../../PenDriverPro/Content/Paks/pakchunk0-WindowsNoEditor.pak attemptin
g to mount.
LogPakFile: Display: Mounting pak file ../../../PenDriverPro/Content/Paks/pakchunk0-WindowsNoEditor.pak.

Try portproton from aur…

Octopi found no such thing. Also, could you please elaborate as to why do you think it would work, when none of the other launchers (steam included) did not, no matter what proton (proton, proto GE, wineGE) version was used? I would like to understand the solution.

Installing it with bauh gave this error…

Package databases already synchronized
git clone https://aur.archlinux.org/portproton.git --depth=1 /tmp/bauh@shambhu/arch/build_1716019831/portproton

Cloning into '/tmp/bauh@shambhu/arch/build_1716019831/portproton'...
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 	git config --global init.defaultBranch <name>
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint: 	git branch -m <name>
Using custom makepkg.conf -> /home/shambhu/.config/bauh/arch/makepkg.conf
makepkg -ALcfm --check --noarchive --nobuild --noprepare --nodeps --config=/home/shambhu/.config/bauh/arch/makepkg.conf

==> Making package: portproton 1.5.2-1 (So 18. května 2024, 10:10:34)
==> WARNING: Skipping dependency checks.
==> Retrieving sources...
-> Cloning PortProton_ALT git repo...
Cloning into bare repository '/tmp/bauh@shambhu/arch/build_1716019831/portproton/PortProton_ALT'...
==> Validating source files with sha256sums...
PortProton_ALT ... Skipped
==> Extracting sources...
-> Creating working copy of PortProton_ALT git repo...
Cloning into 'PortProton_ALT'...
Switched to a new branch 'makepkg'
==> Sources are ready.
Using custom makepkg.conf -> /home/shambhu/.config/bauh/arch/makepkg.conf
makepkg -ALcsmf --skipchecksums --nodeps --config=/home/shambhu/.config/bauh/arch/makepkg.conf

==> ERROR: Cannot find the debugedit binary required for including source files in debug packages.
rm -rf /tmp/bauh@shambhu/arch/build_1716019831

The “installation guide” points me to this ebpage: AUR (en) - portproton

But I have no idea what am I supposed to do there, there is no info, unlike f.e. if I had fedora (there are commands that you type in the terminal for it to be installed with all the dependencies on those distros, but not for garuda/arch) on how to actually install it.

paru -S portproton

This system allows you to use DX12 via VKD3D

I appreciate you trying to help me run DX12 games. Even though it is just a suggestion of trying yet another launcher, instead of fixing the problem system-wise, now giving me another problem to solve (portproton installation errors…).

But the information you give me (please, notice the “newbie” tag of my post) is just a brainteaser, not something I could/know how to utilise. If you could be a little bit more detailed in your instructions, that would be great.

What am I supposed to do withe the “paru -S portproton” line?
The russian website you posted also points towards this website: AUR (en) - portproton
with no actual instructions on how to install.

It is kind of frustrating that most of the “community” just expects a newbie to have the same level of know-how as the experienced users.

Run in the terminal: paru -S portproton. Next, the system will do everything by itself. English is available in the program itself and everything is clear there.

Thanks, buddy.

I was impatient and just looked around at the github page and resorted to manual installation using the

wget -c "https://github.com/Castro-Fidel/PortProton_ALT/raw/main/portproton" && sh portproton

command after reinstalling all of the listed dependencies. it is still in progress, so I can not yet testify if that worked or not, but will come back with the results.

Again, thank you for the clarification and the sort of out of the box solution I could not find without your input, as there was literally ZERO mention about the portproton app anywhere in my search for a solution.

So, it is installed.

But I can not seem to be able to add any shortcuts into it.
The “Choose path to .exe file:” is empty and I can not add anything.

On the .exe file right-click and select “Run using portproton”. Next, the application will launch and you can create a shortcut in it. The settings for using wine or proton will also open there.

Well. Interestingly enough, The Thaumaturge started, played the intro, started new game, went through the first dialog, but after that it crashed saying “fatal error”. I will tinker with it for some time, as it is currently the only option not giving the -dx12 errors.

Thank you for bringing this software to my attention. I do not understand why is it not “supported”, honestly.

But, is there a guide on how to properly set it up after installation, or do I just have to try different versions of proton/wine?

Again, thanks for the tip. Now I can uninstall all the other launchers incapable of running dx12.

Unless somebody able to decypher the inxi I posted tells me why does it not work as it should in all the launchers (like, why does steam ask fo visual c++ when running dx12 games?), I see no reason to have more than bottles (set up to play the dx11 games with n hassle).

There are a lot of instructions on the site that I indicated. You can use an online translator to translate from Russian…

Yes, try other versions of wine or proton. There you can download them through “Get another wine”

Yup. Figured.
Using the WINE.GE (had to wait half an hour for it do download…) both Manor Lords and The Thaumaturge (dx12 only) seem to work.

Yes, I did translate the website from russian before. That is how I knew they point to the same page as the github ARCH installation “guide”, but nowhere did it say to use the “-S portproton” command to install, so I went with the manual installation and it works.

Thank you for this workaround to my original problem. I hate that the different alphabet/azbuka separates us from being able to easily understand the written word, but looks like yet another great stuff coming from russia mostly unnoticed by the english speaking part of the community as, as I repeat, there was zero mention about it anywhere I looked for a solution.

Thanks a lot.

From here: Issues running a game with Wine / Multimedia and Games / Arch Linux Forums

It seems making a new clean prefix fixed the author’s issues.
Try a new clean prefix.

Just a little side note.
Running the “paru -S portproton” command on a fresh install of Garuda (after updates) I have on a laptop did not install portproton, but just showed some kind of a script:

paru -S portproton
:: Resolving dependencies...
:: Calculating conflicts...
:: Calculating inner conflicts...

Repo (1)                   Old Version  New Version    Make Only
multilib/lib32-mesa-utils               9.0.0-1        No

Aur (1)                    Old Version  New Version    Make Only
aur/portproton                          1.5.2-1        No

:: Proceed to review? [Y/n]:

:: Downloading PKGBUILDs...
PKGBUILDs up to date
# Maintainer: LINUX-GAMING.RU ([email protected])

pkgdesc="Software for playing Microsoft Windows games and launchers"
depends=('bash' 'icoutils' 'yad' 'bubblewrap' 'zstd' 'cabextract' 'gzip'
'tar' 'openssl' 'openssl-1.1' 'desktop-file-utils' 'curl' 'dbus' 'freetype2' 'xdg-utils'
'gdk-pixbuf2' 'ttf-font' 'nss' 'xorg-xrandr' 'lsof' 'mesa-utils' 'imagemagick'
'vulkan-driver' 'vulkan-icd-loader' 'lib32-libgl' 'lib32-gcc-libs' 'vulkan-tools'
'lib32-libx11' 'lib32-libxss' 'lib32-alsa-plugins' 'lib32-libgpg-error' 'lib32-gnutls' 'lib32-freety>
'lib32-nss' 'lib32-vulkan-driver' 'lib32-vulkan-icd-loader' 'lib32-openssl' 'lib32-openssl-1.1' 'lib>
optdepends=('gamemode: Support for Feral GameMode'
'lib32-gamemode: 32-bit support for Feral GameMode'
'gamescope: Support for Gamescope'
'icoextract: For proper icon creation in GNOME')
#        "$pkgname.desktop"
#        "https://raw.githubusercontent.com/Castro-Fidel/PortProton_PKGBUILD/main/$pkgname.svg"
#        "$pkgname.metainfo.xml"
#        "LICENSE")
#            '17d2c7bc99707a88ec13422ff40f33004c8a41bf945143122d5ee0f6a3be3bce'
#            'df2850787a0777bfd446bed40c6c2bcd6ce5636a241dfe08a6a915f151b20fd4'
#            '12cf6820ac4145580df1c48e419dff3f4f7545790e45efc0332623b5e70633fe'
#            '65d12e4e0be4dd5e58324593563c8c79af42876d63f51225364b968117c6ff4f')

package() {
install -Dm755 "$srcdir/$_gitname/$pkgname" "$pkgdir/usr/bin/$pkgname"
install -Dm644 "$srcdir/$_gitname/$_flatpakname.desktop" -t "$pkgdir/usr/share/applications/"
install -Dm644 "$srcdir/$_gitname/$_flatpakname.svg" -t "$pkgdir/usr/share/icons/hicolor/scalable/apps/"
install -Dm644 "$srcdir/$_gitname/$_flatpakname.metainfo.xml" -t "$pkgdir/usr/share/metainfo/"
install -Dm644 "$srcdir/$_gitname/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname/"


Hi. Thank you for your time to reply.
What do you mean? Clean prefix of what? Neither of the launcher programs were able to run dx12 games, using their own resources.
I used ProtonUp to install different updated runners in all of the launchers and none (Bottles, Heroic, Lutris) worked with dx12, not even Steam.

I am currently on a bus and a different computer, but will check the given link when I can to see if I understand what you meant a little better and to see what my problem really is.
It is true that the install before this last one ran dx12 games no problem and “straight out of the box”.

EDIT: So I went to the linked post and it seems like a completely different situation. The person was using lutris and had to basically reinstall the whole lutris environment for it to work. Thing is, my Lutris was a fresh one I installed only as means to see if it would work (it did not) when the launchers I used (Bottles, Steam) did not run any dx12 game for some reason (steam asked for visual c++ and other launchers using wine-ge or proton-ge asked for a dx12 compatibiity).