# Windows-Builder GPU Remote Access

## Purpose

Windows-Builder needs two remote access paths:

- Headless build/control path for normal Codex work through QEMU guest tools and PowerShell.
- Real-GPU visual path for occasional Unreal Editor inspection, startup screen checks, and gameplay verification.

RDP remains useful for administration, but it can interfere with the display session Unreal and GPU capture tools see. Use Sunshine/Moonlight when the goal is to inspect the GPU-rendered desktop.

## Current Setup

- Host VM: `Windows-Builder`
- LAN address: `192.168.5.12`
- GPU: NVIDIA GeForce GTX 1660 SUPER
- GPU driver observed during setup: `32.0.15.9649`
- Streaming host: Sunshine `2025.924.154138`
- Virtual display: Virtual Display Driver by MTT, 1920x1080 at 60 Hz
- Sunshine service: `SunshineService`, automatic startup
- Sunshine web UI: `https://192.168.5.12:47990`
- Login: use the Windows-Builder admin credential stored in the operational handoff, not a separate project password.

## Firewall Ports

Windows Firewall has LAN rules for Sunshine GameStream:

- TCP: `47984`, `47989`, `47990`, `48010`
- UDP: `47998`, `47999`, `48000`, `48002`, `48010`

Keep these LAN-only. Do not expose Sunshine directly to the public internet.

## Client Workflow

1. Install Moonlight on the client machine used for visual inspection.
2. Add host `192.168.5.12`.
3. Pair with Sunshine when prompted.
4. Launch Desktop from Moonlight.
5. Use the GPU-streamed desktop for Unreal visual checks.

Codex should continue using the headless build/control path for normal code, cook, package, and commandlet work. Use Sunshine only when a visual inspection is actually needed.

## Verification

The setup was validated by:

- Confirming the GTX 1660 SUPER is present and healthy in Windows.
- Confirming Sunshine is listening on its LAN ports.
- Confirming the Sunshine web UI responds with HTTP 401 authentication from Ubuntu-Codex.
- Confirming the virtual display is present as `Virtual Display Driver by MTT`.
- Confirming Sunshine detects a 1920x1080 desktop and creates NVENC H.264/HEVC encoders on the GTX 1660 SUPER.

The GTX 1660 SUPER does not support AV1 NVENC. Sunshine may log an AV1 encoder failure during startup; this is expected and H.264/HEVC remain available.

## Troubleshooting

- If Sunshine is unreachable, check `SunshineService`, Windows Firewall, and the VM IP address.
- If Sunshine logs `failed to query display paths and modes`, verify the virtual display driver is installed and enabled.
- If Moonlight shows a black screen after using RDP, disconnect RDP, restart `SunshineService`, and reconnect through Moonlight.
- If controller input is required later, install and validate the ViGEmBus gamepad driver. It is not required for visual inspection.
- If Unreal rendering differs under RDP, use Moonlight before changing graphics settings.

