End-users do not "download AGS extensions" separately. They simply need a modern, WHQL-certified AMD graphics driver.
AGSDeviceInfo deviceInfo = {};
rc = agsDriverExtensionsDX11_GetDeviceInfo(agsContext, device, &deviceInfo);
if (rc == AGS_SUCCESS)
printf("GPU: %s\n", deviceInfo.deviceName);
printf("VRAM: %zu MB\n", deviceInfo.localMemoryInBytes / 1024 / 1024);
printf("Wavefront size: %d\n", deviceInfo.wavefrontSize);
DX11 refers to DirectX 11, a graphics API (Application Programming Interface) developed by Microsoft. DirectX 11 is used for developing games and other high-performance applications on Windows platforms. It's designed to provide developers with a high level of control over graphics rendering, enabling more detailed graphics and smoother performance.
Step A: Initialize AGS Context The application must create an AGS context before creating the DX11 device. ags driver extensions dx11 init download install
#include <ags_lib.h>
AGSContext* agsContext = nullptr;
AGSGPUInfo gpuInfo = {};
// Initialize the AGS library
AGSReturnCode rc = agsInitialize(AGS_MAKE_VERSION(AGS_SDK_MAJOR_VERSION, AGS_SDK_MINOR_VERSION, AGS_SDK_PATCH_VERSION), nullptr, &agsContext, &gpuInfo);
if (rc != AGS_SUCCESS)
// Handle error: Driver likely outdated or GPU unsupported
return false;
Step B: Create DX11 Device via AGS
Standard D3D11CreateDevice is replaced or wrapped to allow the driver to inject extension capabilities.
ID3D11Device* d3dDevice = nullptr;
ID3D11DeviceContext* d3dContext = nullptr;
AGSD3D11DeviceCreationParams creationParams = {};
creationParams.pAdapter = nullptr; // Default adapter
creationParams.DriverType = D3D_DRIVER_TYPE_UNKNOWN;
creationParams.Flags = 0;
creationParams.pFeatureLevels = nullptr;
creationParams.FeatureLevels = 0;
AGSD3D11ExtensionParams extensionParams = {};
extensionParams.crossfireMode = AGS_CROSSFIRE_MODE_DISABLED; // Example config
// Call the AGS wrapper for device creation
rc = agsDriverExtensionsDX11_CreateDevice(agsContext, &creationParams, &extensionParams, &d3dDevice, &d3dContext, nullptr);
Step C: Querying Features Once the device is created, the developer can query the driver for specific extension support. End-users do not "download AGS extensions" separately
AGSD3D11DeviceExtensionInfo extensionInfo = {};
agsDriverExtensionsDX11_GetExtensionInfo(d3dDevice, &extensionInfo);
if (extensionInfo.shaderExtensionsSupported)
// DX11 Shader Extensions are available
1. Missing DLL at runtime
Error: “The code execution cannot proceed because amd_ags_x64.dll was not found.”
Fix: Copy the correct architecture (x64 vs x86) DLL to your EXE directory.
2. AGS fails to initialize (non-AMD GPU)
AGS requires an AMD Radeon GPU. On NVIDIA or Intel, agsInitialize will fail gracefully. Always have a fallback to standard DX11 init. DX11 refers to DirectX 11, a graphics API
3. Driver version too old
AGS 6.2 requires Adrenalin 22.10.1 or newer. Update your GPU driver.
4. Forgetting to call agsDriverExtensionsDX11_DestroyDevice
This can cause memory leaks and GPU resource hangs. Always pair create/destroy.
5. Using AGS on UWP / Xbox
Not supported. AGS is for Win32 desktop applications only.
Rename trick: Some games expect the file to be named exactly ags.dll. Create a copy and rename it to ags.dll in the same folder.