deckcraft/docs/hardware-parity.md

3.7 KiB
Raw Blame History

Hardware parity with PowerPoint

Last reviewed: 2026-10-10 · Last updated: 2026-10-10 · Change: major (created from the renderer, media and windowing code) · Target: Microsoft PowerPoint for Mac 16.113 (Microsoft 365); PowerPoint for Windows where noted

What hardware PowerPoint uses and what DeckCraft uses, per platform. Dimension score: ~40% ready (estimated), 25–45 h to parity. Performance (unmeasured, ~55%) is tracked here too because it mostly follows from hardware use.

Graphics and rendering

Feature PowerPoint DeckCraft macOS DeckCraft Windows DeckCraft Linux/BSD DeckCraft web
Window compositing on the GPU Metal / DirectX wgpu (Metal) wgpu, DX12 only by default (#16) wgpu (Vulkan, GL) WebGPU, WebGL2 fallback
Slide rasterization GPU CPU (vello_cpu) CPU CPU CPU (wasm)
Transitions and Morph frames GPU CPU-rendered slide images composited as textured quads on the GPU same same same
High-DPI / Retina yes yes yes yes yes
Wide gamut / HDR display partly (P3 images) no (sRGB) no no no
Startup on all GPUs yes yes no: crashes in some Intel/AMD drivers (#40, #59) not reported n/a
Software fallback when no GPU yes (WARP on Windows) no no no no

Media

Feature PowerPoint DeckCraft
Video decode Hardware (AVFoundation/VideoToolbox, Media Foundation) Software only: pure-Rust H.264, HEVC, VP9, AV1 (crates/h264, hevc, vp9, av1)
4K video in the show smooth on hardware decode unmeasured; likely CPU-bound
Audio output Core Audio / WASAPI cpal (Core Audio, WASAPI, ALSA); browser Web Audio
Microphone (record audio, narration) yes no
Camera (Cameo, record with camera) yes no
Screen recording yes no

Displays

Feature PowerPoint DeckCraft
Detect the projector, show on it, presenter view on the laptop yes no: the show goes full screen on the current display; presenter view opens as a normal window (egui viewport)
Swap displays, choose the monitor in Set Up Show yes no
Mirroring-aware behaviour yes no

Input devices

Feature PowerPoint DeckCraft
Keyboard and presentation clickers (Page Up/Down, B, Esc) yes yes
Mouse and trackpad scroll yes yes
Pinch to zoom, two-finger gestures yes no
Pen pressure and tilt for ink (Apple Pencil via Sidecar, Windows Ink) yes no: ink strokes have constant width
Touch screens (Windows) yes basic pointer only
IME input methods for CJK text yes no (see localization-parity.md)
Dictation yes (macOS) no

Performance

Nothing is measured against PowerPoint yet: no benchmark of open time, render time per slide, show frame rate or memory exists in xtask. Known: slides rasterize on the CPU, Morph aligns outlines every frame (#67, fix open), and the decoders run in software.

Estimates

Work Hours
Presenter view on the right display, choose monitor, swap 3–5
GPU slide rasterization (vello's GPU/hybrid path) 12–20
Hardware video decode (copy FilmCraft's VideoToolbox / Media Foundation / VA-API paths) 8–14
Windows GPU startup robustness: backend probing, software fallback (#40, #59) 4–8 (counted under Stability)
Pen pressure, pinch zoom 3–6
Benchmark suite (cargo xtask bench) and a first performance pass 6–12 (Performance dimension)
Hardware total ~26–45

Revision history

Date Change Summary
2026-10-10 major Created: rendering, media, displays, input and performance against PowerPoint 16.113