Skip to content

Add AMD GPU support for AI Green Screen via DirectML #24

Description

@RahnRazamai

Title

Add AMD GPU support for AI Green Screen via DirectML

Summary

Add a non-NVIDIA backend for AI Green Screen so AMD GPU users can use background removal without NVIDIA Maxine.

Motivation

Camera-on-Screen currently gates AI Green Screen through the NVIDIA Maxine path. The plain overlay works on non-RTX machines, but AMD users cannot use AI effects. DirectML + ONNX Runtime should let us run a segmentation model on DirectX 12-capable AMD GPUs.

Proposed Scope

  • Add an optional DirectML/ONNX Runtime green-screen backend.
  • Keep the existing NVIDIA Maxine green-screen path unchanged.
  • Capability probing should enable Green Screen if either Maxine or DirectML backend is available.
  • Add provider-specific detail text, e.g. NVIDIA Maxine or DirectML.
  • Update docs to say Green Screen can run on NVIDIA Maxine or DirectML-supported GPUs.

Out of Scope

  • AMD Eye Contact.
  • AMD Super Resolution.
  • Frame interpolation / Smooth 60 fps.
  • Replacing the existing NVIDIA Maxine implementation.

Implementation Notes

Likely files:

  • native/shim/aigs.*
  • native/shim/capture.*
  • native/shim/shim.*
  • native/shim/shim.vcxproj
  • src/CameraOnScreen.Core/Native/Contracts.cs
  • src/CameraOnScreen.Core/Orchestration/Orchestrator.cs
  • README / CONTRIBUTING / THIRD-PARTY-NOTICES

Potential backend:

  • ONNX Runtime + DirectML
  • Segmentation model producing an alpha matte
  • Existing BGRA in/out frame contract should remain unchanged

Acceptance Criteria

  • On NVIDIA RTX, existing Maxine green screen still works.
  • On AMD GPU with DirectML backend available, Green Screen toggle enables.
  • On unsupported machines, Green Screen remains disabled with a clear reason.
  • Stub/no-SDK builds still compile.
  • Core unit tests cover capability probing and effect gating.
  • Docs and third-party notices are updated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions