Asgard Overview
Asgard is NVIDIA's rig management framework that powers every GeForce NOW streaming machine. It lives at C:\Asgard on every Windows-based game seat and handles everything from boot initialization to session teardown.
Directory Structure
C:\Asgard\
├── conf\ # Configuration files
│ ├── asgard_env.bat # Environment variables
│ ├── metadata.txt # VM identity (hostname, GPU UUID, instance type)
│ ├── networkdata.txt # Network interface configuration
│ └── secure_userdata.txt # Master config blob (NGS, GCIS, content, logging)
├── services\
│ ├── AutoOnboarder\ # CTMT — Content Transport Management
│ ├── CommonEnvironment\ # Core env setup scripts
│ ├── GCIS\ # Game Client Isolation Service (plugins)
│ ├── gs2\ # GameSeat2 orchestration stack
│ ├── GSP\ # GameSeat configuration/service plugin host
│ ├── masquerade\ # Driver masquerading/filter drivers
│ ├── morph\ # Seat transition orchestrator (NTS)
│ ├── NDC\ # Network Data Capture service
│ ├── NvGridSvc\ # NVIDIA Grid Service
│ ├── NvRollbackWrapper\ # Driver rollback
│ ├── nxlog-agent\ # Remote logging agent
│ ├── SeatUpdater\ # Package management & updates
│ ├── StutterShark\ # Runtime stutter/deadzone monitor
│ └── winsymbols\ # Windows debug symbols
├── startup\ # Boot scripts and crash detector
│ └── dist\
│ ├── detector\ # Crash detection (CrashDetector.xml)
│ ├── monitor\ # Health monitoring
│ └── startup\ # Main boot sequence
├── Tools\
│ ├── edgewebview2\ # Edge WebView2 runtime
│ ├── forcedisp\ # Display EDID emulation configs
│ ├── GameSeatDisplay\ # Display activation tool
│ ├── gfndesktop\ # GFN desktop environment
│ ├── gpuviewtool\ # GPU/DirectX tracing
│ ├── langswitch\ # Language configuration (PowerShell)
│ ├── LaunchDataEditor\ # Game launch data editing
│ ├── Latencytest\ # Latency measurement
│ └── nvkblayout\ # Keyboard layout setup
├── logs\ # All service logs
├── 7zip\ # Bundled 7-Zip
├── gridperf\ # GPU performance counter templates
├── test\ # L1 validation tests
├── framework-python\ # Python rig management framework
├── nvcloudinit\ # Cloud-init boot scripts
└── cert\ # TLS certificatesWARNING
In the newer C:\Asgard service layout, services\NvGridSvc\ is not present while services\gs2\ is present. Keep NvGridSvc references as legacy compatibility documentation.
Environment Variables
Set at every boot via asgard_env.bat:
SET AG_HOME=C:\Asgard
SET AG_LOGS=C:\Asgard\logsThe Python framework also uses AG_STATEDB pointing to a Redis instance (default port 6399).
Metadata
Each rig has identity metadata from the hypervisor:
{
"uuid": "[REDACTED_GPU_UUID]",
"hostname": "[REDACTED_HOSTNAME]",
"instance_id": "[REDACTED_INSTANCE_ID]",
"instance_type": "[REDACTED_INSTANCE_TYPE]",
"ngn-platform-version": "2.1"
}Instance Type Naming
The instance type encodes the GPU and partition:
| Segment | Meaning |
|---|---|
[REDACTED_GPU_FAMILY] | GPU family (L40 generation) |
_1 | Full GPU (vs _2 = half, _4 = quarter) |
.br25 | Board revision / rack type |
_2xlarge | Compute tier |
For official non-alliance tier-to-rig mapping and overlay naming snapshot, see Official GFN Seat Specs.
User Accounts
| Account | Purpose |
|---|---|
Kiosk | Primary game seat user — the player's session runs here |
xen | Hypervisor/system user — runs infrastructure services |
Boot Sequence
- nvcloudinit runs
010-common_env_on_boot.bat— sets AG_HOME, AG_LOGS - Display setup — activates display via
GameSeatDisplay.exe --activate-display - Core parking disabled — sets min logical processor unparked to 100%
- Network configuration — interfaces configured from
networkdata.txt - Driver checks — GPU validated, masquerade/filter drivers loaded
- Session orchestration starts — GS2 stack in newer bundles, NvGridSvc on legacy seats
- Crash detector — scheduled task monitors for crash dumps
- Seat package updates — downloads and installs latest packages
- L1 tests — validates environment, services, user accounts, GPU
Software Deployment
Software is delivered as VHDX images mounted at boot:
GfnSw\gamestream\gamestream-gs_04_58-33263988.vhdx
GfnSw\contenttools\contenttools-gcomp_rel_ctmt-2023.4.6.vhdx
GfnSw\ngs\ngs-gcomp_rel_ngs-33258229.vhdx
GfnSw\runtimesdk\runtimesdk-gcomp_rel_runtimesdk-33258226.vhdx
GfnSw\gcis\gcis-gcomp_dev-33247214.vhdx
GfnSw\ssi\ssi-clover_rel_1_2-33223741.vhdx
GfnSw\lightning\lightning-master-aa0fc9142fcac75f.vhdxImage ID
The rig OS image is identified as:
[REDACTED_IMAGE_ID]This tells us: Windows 11, English locale, master branch, built August 16 2023.
Python Framework
The Asgard Python framework (framework-python/) contains ~165 files across 14 packages:
| Package | Purpose |
|---|---|
asgard_config | Config class, Redis state DB connection |
asgard_storage | RedisStorage wrapper for state management |
asgard_util_cs | Config Service client (HTTPS) |
asgard_util_dhcp | DHCP info parsing |
asgard_util_local | Local system ops, GPU detection, user data |
asgard_util_logging | Remote syslog integration |
asgard_util_ns1 | NS1 DNS management |
asgard_util_r53 | AWS Route53 DNS management |
asgard_util_remote | SSH/PuTTY remote command execution |
asgard_util_sps | Seat Provider Service client |
asgard_util_xen | Xen hypervisor operations |
asgard_util_zone_properties | Zone configuration constants |
nimbus_seat_ctrl | AWS EC2 seat control, IAM, security groups |
asgard_protobuf_common | 121 Protocol Buffer definitions |