Solution:
Root Cause: Application-Level Primary Adapter Index Hardcoding
Certain 3D engines, legacy titles, and workstation software enumerate graphics devices via
IDXGIFactory::EnumAdapters or
vkEnumeratePhysicalDevices and automatically bind to Adapter Index
0. On hybrid laptops, the integrated GPU is virtually wired to the internal display multiplexer and typically registers as Index
0, while the discrete GPU registers as Index
1. If the game engine lacks dynamic adapter negotiation, it locks onto the iGPU stream.
# Diagnostic Verification:
1. Open Command Prompt and generate a detailed DirectX diagnostic report:
cmd
dxdiag /t %USERPROFILE%\Desktop\dxdiag_output.txt
2. Open
dxdiag_output.txt and scroll to
Display Devices. Identify whether 'Card name' under Display 1 is the integrated GPU (e.g., Intel Iris Xe / AMD Radeon Graphics) and Display 2 or Render 1 is the dGPU.
# Step-by-Step Fix:
1.
Modify In-Game Engine Configuration Files:
Locate the game's .ini, .json, or .cfg file in %USERPROFILE%\Documents or %LOCALAPPDATA%.Search for parameters such as AdapterID, GPUAdapter, GraphicsDevice, or PreferredGPU.Change the value from 0 to 1 (or vice-versa depending on dxdiag enumeration).2.
Enforce DXGI Environment Variable Overrides:
Open PowerShell as Administrator and create a system environment variable forcing discrete adapter enumeration: powershell
[Environment]::SetEnvironmentVariable("DXGI_GPU_PREFERENCE", "HIGH_PERFORMANCE", "User")
3.
Vulkan Specific Override:
For Vulkan games (e.g., Doom Eternal), set the explicit ICD driver target by creating a launch argument: +r_vkDeviceIndex 1.# Prevention & Long-Term Monitoring:
Inspect application launch parameters and local config files whenever importing custom graphics profiles or playing legacy DirectX 9/11 titles.