NickeManarin/ScreenToGif · critical · GraphicsConfigurationException

The Desktop Duplication API is not supported on this compute

Error message

The Desktop Duplication API is not supported on this computer.

What it means

Thrown by DirectImageCapture when DuplicateOutput raises a SharpDXException with the Unsupported DXGI result code. DDA requires Windows 8 or later and a graphics driver (WDDM 1.2+) that supports DXGI 1.2. The Unsupported code means the platform cannot provide desktop duplication at all.

Source

Thrown at ScreenToGif/Capture/DirectImageCapture.cs:194

        });

        using (var factory = new Factory1())
        {
            //Get the Output1 based on the current capture region position.
            using (var output1 = GetOutput(factory))
            {
                try
                {
                    //Make sure to run with the integrated graphics adapter if using a Microsoft hybrid system. https://stackoverflow.com/a/54196789/1735672
                    DuplicatedOutput = output1.DuplicateOutput(Device);
                }
                catch (SharpDXException e) when (e.Descriptor == SharpDX.DXGI.ResultCode.NotCurrentlyAvailable)
                {
                    throw new Exception("Too many applications using the Desktop Duplication API. Please close one of the applications and try again.", e);
                }
                catch (SharpDXException e) when (e.Descriptor == SharpDX.DXGI.ResultCode.Unsupported)
                {
                    throw new GraphicsConfigurationException("The Desktop Duplication API is not supported on this computer.", e);
                }
                catch (SharpDXException e) when (e.Descriptor == SharpDX.DXGI.ResultCode.InvalidCall)
                {
                    throw new GraphicsConfigurationException("The Desktop Duplication API is not supported on this screen.", e);
                }
                catch (SharpDXException e) when (e.Descriptor.NativeApiCode == "E_INVALIDARG")
                {
                    throw new GraphicsConfigurationException("Looks like that the Desktop Duplication API is not supported on this screen.", e);
                }
            }
        }
    }

    /// <summary>
    /// Get the correct Output1 based on region to be captured.
    /// </summary>
    private Output1 GetOutput(Factory1 factory)
    {

View on GitHub (pinned to a4d0a67c21)

Solutions

  1. Upgrade to Windows 8/10/11 which support the Desktop Duplication API.
  2. Update graphics drivers to a version supporting WDDM 1.2+.
  3. Fall back to an alternative capture method (BitBlt/GDI) when DDA is unsupported.
  4. Detect OS version at startup and disable DDA-based capture, offering BitBlt instead.

Example fix

// before
catch (SharpDXException e) when (e.Descriptor == SharpDX.DXGI.ResultCode.Unsupported)
{
    throw new GraphicsConfigurationException("The Desktop Duplication API is not supported on this computer.", e);
}

// after: catch and switch capture mode
try { DuplicatedOutput = output1.DuplicateOutput(Device); }
catch (SharpDXException e) when (e.Descriptor == SharpDX.DXGI.ResultCode.Unsupported)
{
    CaptureMode = CaptureMode.BitBlt; // fall back
    LogWriter.Log("DDA unsupported, falling back to BitBlt capture.");
}
Defensive patterns

Strategy: fallback

Validate before calling

// Check DDA support at startup
var osVersion = Environment.OSVersion.Version;
if (osVersion < new Version(6, 2)) // Windows 8
{
    CaptureMode = CaptureMode.BitBlt; // DDA not supported pre-Win8
}

Type guard

static bool IsDesktopDuplicationSupported()
{
    return Environment.OSVersion.Version >= new Version(6, 2); // Windows 8+
}

Try / catch

try
{
    InitializeDesktopDuplication();
}
catch (GraphicsConfigurationException ex) when (ex.Message.Contains("not supported on this computer"))
{
    CaptureMode = CaptureMode.BitBlt;
}

Prevention

When it happens

Trigger: DuplicateOutput is called on a system that does not meet DDA requirements: Windows 7 or earlier, a VM without GPU acceleration, a graphics driver that predates WDDM 1.2, or a headless/session-0 environment.

Common situations: User is on Windows 7 (DDA was introduced in Windows 8). Graphics driver is outdated or is the Microsoft Basic Display Adapter without proper DDA support. Running inside a virtual machine or RDP session without GPU passthrough. Server SKU without a desktop compositor.

Related errors


AI-assisted analysis of NickeManarin/ScreenToGif@a4d0a67c21 (2026-08-13). Data as JSON: /api/errors/bbd0663b9721d0d0. Report an issue: GitHub.