Optimising The Asus Xbox Ally Z1
11 Apr 2026 [handhelds
windows
]
These are the steps I followed to optimise my ASUS ROG Xbox Ally. The decision to do this was prompted by noticing the occasional stutter in Dead Cells (which really ought not to have any) and having already given up on getting The Ascent to run without stuttering (installing Bazzite and running it there fixed that).
I need to do more testing. This reflects the best setup I’ve found so far.
VRAM
Keep this at 4GB. Even for Starfield this is better than setting it to 6GB. The CPU needs the RAM more than the GPU.
PowerShell setup
This prevents background game recording. Why anyone would silently enable this on a resource constrained device and not give the user a massive, red-flashing-light warning that it’s there in the background is beyond me.
# Keep Xbox Game Bar installed, but disable capture / recording
reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\GameDVR /v AppCaptureEnabled /t REG_DWORD /d 0 /f
reg add HKCU\System\GameConfigStore /v GameDVR_Enabled /t REG_DWORD /d 0 /f
# Disable AMD capture backend
reg add HKCU\Software\AMD\DVR /v DVR_ENABLED /t REG_DWORD /d 0 /f
# Stop random UWP apps running in the background
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications /v GlobalUserDisabled /t REG_DWORD /d 1 /f
The following disables Co-pilot. It’s really useful as a development tool. Why it must be running in the background on my gaming handheld is less clear.
# --- Disable Copilot via policy (machine-wide)
reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsCopilot /v TurnOffWindowsCopilot /t REG_DWORD /d 1 /f
# --- Disable Copilot for current user (fallback policy location)
reg add HKCU\Software\Policies\Microsoft\Windows\WindowsCopilot /v TurnOffWindowsCopilot /t REG_DWORD /d 1 /f
# --- Remove Copilot package (current user)
Get-AppxPackage *Copilot* | Remove-AppxPackage -ErrorAction SilentlyContinue
# --- Remove Copilot for all existing users, as far as possible
Get-AppxPackage -AllUsers *Copilot* | Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue
# --- Remove provisioned package (prevents reinstall for new users)
Get-AppxProvisionedPackage -Online |
Where-Object DisplayName -like "*Copilot*" |
Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue
Steam overlay and background services
The overlay can be re-enabled per game if you really need it.
In Steam → Settings → In-Game → uncheck “Enable the Steam Overlay while in-game”. This removes the overlay hook from all titles and avoids per-title configuration.
Then reduce background activity:
- Settings → Interface → disable GPU-accelerated web views
- Disable unnecessary Library UI load. Steam → Settings → Library. Then enable:
- Low Bandwidth Mode
- Low Performance Mode
Stopping background execution doesn’t do a lot once a Steam game is launched but it otherwise stops background polling of things like chat.
AMD Adrenalin Settings
- Settings (gear icon, top right) → Preferences → disable ‘In-Game Overlay’
- Settings → Display → set scaling mode to ‘Full Panel’
- Gaming → Graphics → Global Graphics → set Radeon Anti-Lag to Disabled
- Gaming → Graphics → Global Graphics → set Radeon Boost to Disabled
TDP
Set the following by creating a new manual profile and giving it a name:
- SPL: 18–22W
- SPPT: 25–30W
- FPPT: 30–35W
Windows Settings
These should already be set correctly. Check them anyway.
Hardware-accelerated GPU scheduling (HAGS)
Settings → System → Display → Graphics → Default graphics settings
- Toggle Hardware-accelerated GPU scheduling
Set this to ‘On’. Consider setting to off if particular software requires it, if using DirectX 11 or as a last resort to fix otherwise inexplicable stuttering.
Variable Refresh Rate (VRR)
Settings → System → Display → Graphics → Default graphics settings → Advanced Graphics Setting
- Enable Variable refresh rate
This only affects games using full screen and with V-Sync disabled, which is what you want.
Game Mode
Settings → Gaming → Game Mode
- Ensure Game Mode = On
This adjusts process scheduling in favour of the game.
Windows power mode
Settings → System → Power & Battery
- Set Power mode → Best performance
This reduces CPU frequency scaling latency and helps maintain consistent clocks under load.
Processor minimum state
Control Panel → Power Options → Change plan settings → Change advanced power settings
- Processor power management → Minimum processor state
- Set to 10–20%
Very low values (e.g. 5%) increase ramp-up latency and can cause stutter during sudden CPU load.
Disable indexing on game drive
- Right-click the drive → Properties
- Uncheck:
- Allow files on this drive to have contents indexed
- Apply to all files and folders
This reduces background disk activity during asset streaming.
Windows Defender real-time exclusions
Windows Security → Virus & threat protection → Manage settings → Exclusions
- Add exclusions for Xbox, Steam and other storefront game directories.
Prevents scan activity during file access.
Resolution
Use the desktop resolution to define the final output, and the in-game resolution (or render scale/FSR) to control performance. On the Ally, a 720p desktop gives you consistent performance and clean integer scaling to the 1080p panel, while a 1080p desktop is preferable if you want sharper UI or plan to use driver-level upscaling (e.g. RSR).
In general: set the desktop to the resolution you want to see, then adjust the game’s internal resolution to hit your target framerate. Avoid mixing multiple scaling steps unless necessary.
Settings → System → Display
- Set display resolution explicitly (do not rely on per-game scaling):
- Use 1920×1080 (native), or
- Use 1280×720 for lower GPU load
For 720p:
- This scales cleanly to 1080p (integer scaling)
- Produces a sharper image than non-integer resolutions
Avoid intermediate resolutions unless required by a specific game.
Game Specific
Starfield
This configuration aggressively strips down Starfield’s rendering and simulation to prioritise smooth performance. It halves internal resolution and relies on FSR upscaling, disables expensive effects like volumetric lighting, reflections, water detail, and most shadow work, and reduces world complexity by lowering crowd size, grass density, and level-of-detail distances. At the same time, it tweaks streaming and threading to reduce stutter. The result is significantly more stable frame pacing and higher effective FPS, at the cost of visual fidelity, draw distance, and environmental detail.
Backup Documents\My Games\Starfield\StarfieldCustom.ini and replace it with the following:
[Display]
bSkyOcclusion=0
bSkyOcclusionOverhangEnabled=0
bEnableTerrainShadowsInReflections=0
bHalfResClouds=1
bReflectionProbeIncludesSmallObjects=0
bRenderDistantAtmospheres=0
fRenderResolutionScaleFactor=0.5
bDynamicResolutionEnabled=0
bVolumetricLightingEnable=0
bEnableCloudShadows=0
bScreenSpaceReflections=0
bContactShadows=0
bTemporalAA_idTech7=1
fShadowDistance=1000.0000
fMaxShadowDistance=2000.0000
[Lighting]
bVolumetricFog=0
bGodRays=0
[Particles]
iMaxDesired=200
[Decals]
uMaxDecals=10
uMaxSkinDecals=5
[Shadows]
bDrawDistantTreesShadows=0
uReflectionProbesShadowMapResolution=64
fShadowCascadeSplitDistance0=10
fShadowCascadeSplitDistance1=20
fShadowCascadeSplitDistance2=40
fShadowCascadeSplitDistance3=80
[Terrain]
fTerrainLODErrorThreshold=4.0
fTerrainTextureBias=2.5
[Grass]
iMinGrassSize=180
[Water]
bForceLowDetailReflections=1
bReflectSky=0
bReflectLODObjects=0
bUseWaterRefractions=0
[Archive]
bInvalidateOlderFiles=1
sResourceDataDirsFinal=
[General]
SIntroSequence=
uMainMenuDelayBeforeAllowSkip=0
bEnableAsyncCompute=1
fActiveEffectConditionUpdateInterval=0.5
[LOD]
fLODFadeOutMultObjects=4.0
fLODFadeOutMultActors=4.0
fLODFadeOutMultItems=2.0
[Crowd]
iMaxActors=6
[Streaming]
sResourceCacheSize=2048
sIOThreadCount=4
[Interface]
bShowTutorials=0
Once this has been applied the various performance mods available will give limited improvements.