Skip to content

Upgrading existing VMs to 0.1.7/0.1.8: NVAPI shim skipped silently, no DLSS with "Try all" on two NVIDIA GPUs, old agents never updated #154

Description

@Poldino95

Notes from moving two existing VMs to 0.1.7 and then 0.1.8. Host: RTX 3060 + RTX A2000, driver 616.92, Windows 11 guests, 7 Days to Die (D3D11). Part of this is specific to my VMs, which had my own patches from #129 installed; I say which is which.

1. Existing VMs keep the old agent (affects everyone)

The guest agent is only written into the disk when a VM is created, so a VM made with 0.1.5 stays on the 0.1.5 agent after upgrading the app and never gets DLSS or the native OpenGL/Vulkan setup. The 0.1.6 notes don't mention it. Copying resources\appsandbox-agent.exe (and the other helpers) over C:\Windows\AppSandbox\ inside the guest and rebooting is enough. A line in the changelog, or an agent update pushed through the existing file share, would save people a bug report.

2. NVAPI shim not installed when System32\nvapi64.dll was already replaced (my case, and anyone who used my patched fork builds)

On a VM where nvapi64.dll was my old forwarding proxy, the 0.1.7 agent created appsandbox-nvapi64.dll (the driver's copy) but System32\nvapi64.dll ended up as NVIDIA's original, not appsandbox-nvidia-dlss-shim.dll, so DLSS was gone. Nothing in agent.log: the DLSS provisioning step logs neither success nor failure, so it took a while to find. Putting the shim in place by hand fixed it and the agent then leaves it alone. A log line for the NVAPI step would help; maybe also install the shim whenever nvapi64.dll lacks the appsandbox_nvapi export, whatever else is there.

3. "Try all" with two NVIDIA GPUs: no DLSS option (affects everyone with two NVIDIA cards)

Clean 0.1.7 agent, VM set to "Try all" (Intel + A2000 + 3060 partitions). The game rendered on the A2000 but the DLSS option was missing. Selecting the A2000 explicitly in 0.1.8 fixed it immediately. Looks like the adapter LUID handed to NGX belonged to the other NVIDIA adapter; with several NVIDIA adapters in the guest it needs to be the one of the game's D3D device.

Minor: first 0.1.7 boot on one VM logged GL: opengl32 -> System32 failed (2), fine on the next boot.

Everything else works well, and 0.1.8's GPU selection was the right fix for my setup. Thanks for the credits in the 0.1.6 notes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions