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
- Run on a physical Windows 8+ desktop session with a WDDM D3D11-capable GPU.
- For multi-GPU systems, force Captura onto the integrated GPU that owns the display.
- Update GPU drivers to a WDDM version supporting desktop duplication.
- 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
- Offer a non-Duplication capture source (BitBlt) as a fallback.
- On multi-GPU systems, run on the integrated GPU that owns the display.
- Do not enable Desktop Duplication in RDP/locked sessions.
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
- There is already the maximum number of applications using th
- Failed to acquire next frame: {acquireResult.Result.Code}
- Unknown Grabber Media Format
- FFmpeg could not be found. Please download using the in-buil
- An Error Occurred with FFmpeg, Exit Code: {ExitCode}.\nSee F
AI-assisted analysis of MathewSachin/Captura@3fdf41529b (2026-08-13).
Data as JSON: /api/errors/34f207e563cc7846.
Report an issue: GitHub.