protonscr

S.T.A.L.K.E.R. Enhanced Edition - d3d12 video processing support

vkd3dopen
HansKristian-Work/vkd3d-proton#2479 · opened 2025-05-20 by Samsuper12 · updated 2025-05-21 · 6 comments · github
SSamsuper12 2025-05-20 github

Software information

System:
Host: emanon Kernel: 6.14.4-1-MANJARO arch: x86_64 bits: 64 compiler: gcc
v: 14.2.1
Desktop: KDE Plasma v: 6.3.4 tk: Qt v: N/A wm: kwin_wayland dm: SDDM
Distro: Manjaro base: Arch Linux
CPU:
Info: 6-core model: 11th Gen Intel Core i5-11600K bits: 64 type: MT MCP
arch: Rocket Lake rev: 1 cache: L1: 480 KiB L2: 3 MiB L3: 12 MiB
Speed (MHz): avg: 4749 min/max: 800/4900 cores: 1: 4749 2: 4749 3: 4749
4: 4749 5: 4749 6: 4749 7: 4749 8: 4749 9: 4749 10: 4749 11: 4749 12: 4749
bogomips: 93888
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
Device-1: Intel RocketLake-S GT1 [UHD Graphics 750] vendor: Micro-Star MSI
driver: i915 v: kernel arch: Xe ports: active: none empty: DP-1, HDMI-A-1,
HDMI-A-2, HDMI-A-3 bus-ID: 00:02.0 chip-ID: 8086:4c8a
Device-2: Intel Battlemage G21 [Arc B570] driver: xe v: kernel arch: Xe2
pcie: speed: 2.5 GT/s lanes: 1 ports: active: DP-3 empty: DP-2, DP-4,
HDMI-A-4, HDMI-A-5, HDMI-A-6, HDMI-A-7 bus-ID: 03:00.0 chip-ID: 8086:e20c
Display: wayland server: X.org v: 1.21.1.16 with: Xwayland v: 24.1.6
compositor: kwin_wayland driver: X: loaded: modesetting
alternate: fbdev,vesa dri: iris gpu: xe display-ID: 0
Monitor-1: DP-3 model: Samsung LC34G55T res: 3440x1440 hz: 165 dpi: 109
diag: 869mm (34.2")
API: EGL v: 1.5 platforms: device: 0 drv: iris device: 1 drv: iris
device: 2 drv: swrast gbm: drv: iris surfaceless: drv: iris wayland:
drv: iris x11: drv: iris
API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 25.0.4-arch1.1
glx-v: 1.4 direct-render: yes renderer: Mesa Intel Graphics (BMG G21)
device-ID: 8086:e20c display-ID: :1.0
API: Vulkan v: 1.4.309 surfaces: xcb,xlib,wayland device: 0
type: discrete-gpu driver: mesa intel device-ID: 8086:e20c device: 1
type: integrated-gpu driver: mesa intel device-ID: 8086:4c8a
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
de: kscreen-console,kscreen-doctor wl: wayland-info
x11: xdpyinfo, xprop, xrandr

System information

  • Wine version: any
  • VKD3D-Proton version: any

Log files

steam-2427410.log
xray.log

These games (Shadow of Chornobyl, Clear Sky, and Call of Prypiat) require D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS, which, as far as I understand, isn't implemented yet in vkd3d. Also, the games don't check support of the feature via the CheckFeatureSupport function.

18688.581:012c:0130:warn:vkd3d-proton:d3d12_command_allocator_create: Invalid type 0x5.

include/vkd3d_d3d12.idl:2521:

D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5,

[MTB] One or more arguments are invalid. [m_pVpCommandAllocator]
ERROR Fatal Error with HRESULT of 80070057 [m_pVpCommandAllocator]

libs/vkd3d/command.c:2833:

if (!(D3D12_COMMAND_LIST_TYPE_DIRECT <= type && type <= D3D12_COMMAND_LIST_TYPE_COPY))
        return E_INVALIDARG;

80070057 is E_INVALIDARG

SSamsuper12 2025-05-20 github

Is there any way to avoid it? It feels like only the S.T.A.L.K.E.R. developers can fix it in future patches.

BBlisto91 2025-05-20 github

The devs themselves work around it if you launch with SteamDeck=1

SSamsuper12 2025-05-20 github

Wow, thanks! The executable actually includes the flag.

So for an unaware Linux user, should this flag be set by default somewhere?

BBlisto91 2025-05-20 github

I'm not sure i understand the question. If you mean as a general thing on someones Linux desktop then no i don't think they should do that.

HHansKristian-Work maintainer 2025-05-21 github

Ideally we'll implement this feature, depends how much of pain it is I guess ...

Ddoitsujin maintainer 2025-05-21 github

The video api is absolutely huge, even implementing the absolute bare minimum set of functionality to get a blit to work is going to be a lot of work and involve a lot of more or less undocumented COM boilerplate. I went through that with d3d11 already, and this is very similar.

Nothing extracted yet.