MathewSachin/Captura · error · NotSupportedException

Desktop Duplication is not supported on this system.\nIf you

Error message

Desktop Duplication is not supported on this system.\nIf you have multiple graphic cards, try running Captura on integrated graphics.

What it means

Thrown by DuplCapture.Init (src/Captura.Windows/DesktopDuplication/DuplCapture.cs:72) as NotSupportedException when output.DuplicateOutput raises a SharpDXException whose Descriptor equals DXGI ResultCode.Unsupported. DXGI returns Unsupported when the Desktop Duplication API is fundamentally unavailable on this configuration (pre-Win8 OS, missing WDDM driver, unsupported GPU, or running under RDP/non-session-0 conditions).

Source

Thrown at src/Captura.Windows/DesktopDuplication/DuplCapture.cs:72

            {
                _frameGrabber?.Dispose();
                _deskDupl?.Dispose();

                try
                {
                    _deskDupl = _output.DuplicateOutput(_device);

                    _frameGrabber = new FrameGrabber(_deskDupl);
                }
                catch (SharpDXException e) when (e.Descriptor == ResultCode.NotCurrentlyAvailable)
                {
                    throw new Exception(
                        "There is already the maximum number of applications using the Desktop Duplication API running, please close one of the applications and try again.",
                        e);
                }
                catch (SharpDXException e) when (e.Descriptor == ResultCode.Unsupported)
                {
                    throw new NotSupportedException(
                        "Desktop Duplication is not supported on this system.\nIf you have multiple graphic cards, try running Captura on integrated graphics.",
                        e);
                }
            }
        }

        public bool Get(Texture2D Texture, DxMousePointer DxMousePointer, Point TargetPosition = default)
        {
            lock (_syncLock)
            {
                // Disposed
                if (_device == null)
                    return false;

                if (_bkpTexture == null)
                {
                    var desc = Texture.Description;
                    desc.Width = _width;

View on GitHub (pinned to 3fdf41529b)

Solutions

  1. Run on a physical Windows 8+ desktop session with a WDDM D3D11-capable GPU.
  2. For multi-GPU systems, force Captura onto the integrated GPU that owns the display.
  3. Update GPU drivers to a WDDM version supporting desktop duplication.
  4. Do not use Desktop Duplication over RDP; select a different capture source.

Example fix

// before
_deskDupl = _output.DuplicateOutput(_device);
// after - probe capability and degrade gracefully
try { _deskDupl = _output.DuplicateOutput(_device); }
catch (SharpDXException e) when (e.Descriptor == ResultCode.Unsupported)
{ throw new NotSupportedException("Desktop Duplication unsupported here; use GDI/BitBlt source", e); }
Defensive patterns

Strategy: fallback

Validate before calling

// probe desktop duplication support up front
bool supported;
try { using (var d = output.DuplicateOutput(device)) { supported = true; } }
catch (SharpDXException e) when (e.Descriptor == ResultCode.Unsupported) { supported = false; }

Type guard

static bool DesktopDuplicationSupported(Output1 output, Device device)
{ try { using (output.DuplicateOutput(device)) {} return true; } catch (SharpDXException e) { return e.Descriptor != ResultCode.Unsupported; } }

Try / catch

try { capture.Init(); }
catch (NotSupportedException e) { /* fall back to BitBlt/GDI capture source */ }

Prevention

When it happens

Trigger: Calling Output1.DuplicateOutput on a system where DXGI Desktop Duplication cannot be created: OS older than Windows 8, no D3D11 feature-level device, driver not WDDM-capable, or the process runs in an RDP/locked session that does not expose a desktop to duplicate.

Common situations: Captura run over Remote Desktop; a VM without 3D acceleration; very old GPUs/drivers; multi-GPU systems where the discrete adapter is selected instead of the integrated one driving the display.

Related errors


AI-assisted analysis of MathewSachin/Captura@3fdf41529b (2026-08-13). Data as JSON: /api/errors/34f207e563cc7846. Report an issue: GitHub.