KINGDOM HEARTS III + Re Mind (DLC) (2552450)

オープン 初心者向け
#10,105 コメント 0 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
1/5
見積もり時間
1時間未満
初心者へのやさしさ
88/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python

調査の方向性

Proton の既存の forcenvapi appid リストから開始し、参照されている 2 つのエントリとコミットをコンテキストとして使用します。2552450 をそのリストに追加し、HDR を有効にした Steam Deck OLED で再現します。ゲームの HDR オプションが選択可能になり、動作する実行では forcenvapi と HDR 出力が表示されるはずです。

索引モデルが issue の本文から書いたものです。

説明

Game compatibility - Unofficial

Compatibility Report

  • Name of the game with compatibility issues: KINGDOM HEARTS III + Re Mind (DLC)
  • Steam AppID of the game: 2552450

System Information

  • GPU: Steam Deck OLED (Galileo), AMD Custom GPU 0932 (RADV VANGOGH)
  • Video driver version: Mesa 26.2.0-devel (git-035ae2f854), RADV
  • Kernel version: 6.18.46-valve1-1-neptune-618-g2e13b4367b17
  • Link to full system information report as Gist
  • Proton version: Proton Experimental (experimental-11.0-20260826-x86_64), SteamOS 3.8.26

I confirm:

  • that I haven't found an existing compatibility report for this game.
  • that I have checked whether there are updates for my system available.

Symptoms

The in-game HDR option (Display Settings) is permanently greyed out on a Steam Deck OLED with HDR enabled system-wide, so the game can only ever output SDR.

KINGDOM HEARTS III is a UE4 D3D11 title that links AMD AGS statically. Adding PROTON_FORCE_NVAPI=1 to the game's launch options makes the option selectable and HDR works correctly.

This appears to be the same situation forcenvapi was added for. The two appids currently on that list, Tony Hawk's Pro Skater 1 + 2 (2395210, commit 46c2f720d) and The Quarry (1577120, commit 4bb8e69a2), are also UE4 titles that link AGS statically. Would it be possible to add 2552450 to that list?

        if appid in [
                "2395210", #Tony Hawk's Pro Skater 1 + 2
                "1577120", #The Quarry
                "2552450", #KINGDOM HEARTS III
                ]:
            ret.add("forcenvapi")
Evidence

Two PROTON_LOG=1 runs on the same Proton build, differing only in whether PROTON_FORCE_NVAPI=1 was set. Both logs attached.

without with
Options: {'gamedrive', 'forcelgadd'} {'forcelgadd', 'gamedrive', 'forcenvapi'}
nvapi64.dll loaded 0 1
info:nvapi64: lines 0 28
scRGB swapchains created 0 4
bUseHDRDisplayOutput in GameUserSettings.ini after exit False True

UE4 rewrites bUseHDRDisplayOutput back to False whenever HDR initialisation fails, so the last row is the engine's own verdict on each run.

From the working run:

Proton: 1787725910 experimental-11.0-20260826-x86_64
Options: {'forcelgadd', 'gamedrive', 'forcenvapi'}
trace:loaddll:build_module Loaded L"C:\windows\system32\nvapi64.dll" at 00006FFFF8950000: native
info:nvapi64:DXVK-NVAPI experimental-11.0-20260826+ NVAPI gcc 14.0.0 x86_64 plain (KINGDOM HEARTS III.exe)
info:nvapi64:DXVK_NVAPI_ALLOW_OTHER_DRIVERS is set, reporting also GPUs with non-NVIDIA proprietary driver

With HDR enabled in-game, the swapchain is created as VK_FORMAT_R16G16B16A16_SFLOAT / VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT, and reverts to VK_FORMAT_A2B10G10R10_UNORM_PACK32 / VK_COLOR_SPACE_SRGB_NONLINEAR_KHR when toggled off. That is scRGB HDR, which gamescope composites to HDR10 PQ, the game's own swapchain is never HDR10_ST2084.

The AMD path is attempted, but doesn't get there

The game links AGS statically (the executable references agsInit / agsDeInit but not amd_ags_x64.dll, in either ASCII or UTF-16, and ships no vendor DLLs of its own). It reaches the driver the way statically linked AGS does, by loading atiadlxx.dll at runtime, and that attempt is visible in the log:

trace:module:load_dll looking for L"atiadlxx.dll" in [...]
warn:module:load_dll Failed to load module L"atiadlxx.dll"; status=c0000135
warn:module:load_dll Failed to load module L"atiadlxy.dll"; status=c0000135

c0000135 is STATUS_DLL_NOT_FOUND. The cause is that Proton's default prefix ships "atiadlxx"="disabled" in [Software\\Wine\\DllOverrides], so the load is refused before find_builtin_dll is reached. Proton re-enables it per-appid for one title (2767030).

Re-enabling it for this game is not sufficient. With WINEDLLOVERRIDES="atiadlxx=b" the DLL loads as builtin, and two milliseconds later, on the same thread, the log shows:

trace:loaddll:build_module Loaded L"C:\\windows\\system32\\atiadlxx.dll" at 00006FFFF8AD0000: builtin
fixme:d3dkmt:NtGdiDdDDIOpenAdapterFromHdc (0x5ee238): stub

That fixme appears in exactly the run where atiadlxx loaded and in neither of the other two, so it looks like the adapter query made on ADL's behalf, though I haven't traced the call directly. HDR remained unavailable in that run: the swapchain stayed VK_COLOR_SPACE_SRGB_NONLINEAR_KHR throughout and bUseHDRDisplayOutput reverted to False on exit.

For what it's worth, ADL2_Display_HDRState_Get and ADL2_Display_HDRState_Set are both listed as @ stub in dlls/atiadlxx/atiadlxx.spec, so even past the adapter query there is nothing behind the HDR entry points yet.

Note on the trade-off

forcenvapi also sets WINE_HIDE_AMD_GPU=1, which reports the GPU as NVIDIA and therefore changes which vendor-specific branches UE4 takes. It is scoped per-appid so it can't affect other titles.

I've played the game normally with this enabled on Proton Experimental with PROTON_FORCE_NVAPI=1 in the launch options, and haven't run into rendering or stability problems. I haven't specifically audited which vendor branches change, so I'm noting it rather than claiming it's free.

Reproduction

  1. On a Steam Deck OLED with HDR enabled in system Display settings, launch KINGDOM HEARTS III with Proton Experimental and no launch options.
  2. Open in-game Settings → Display. The HDR option is greyed out.
  3. Set the game's launch options to PROTON_FORCE_NVAPI=1 %command% and relaunch.
  4. The HDR option is now selectable, and enabling it switches the display to HDR.
Related issues
  • #9626, the only other issue for this appid, is unrelated (a launch failure caused by the reporter's own PipeWire config).
  • #8377 (Alone in the Dark) reports the same symptom, an HDR toggle that cannot be enabled on Steam Deck or under gamescope, and is still open.

steam-2552450_WITH-forcenvapi.log
steam-2552450_WITHOUT-forcenvapi.log

主要言語
C++
スター
33.2k
フォーク
1.7k
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ValveSoftware/Proton のほかの issue

ValveSoftware/Proton の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。