Files
deckcraft/docs/hardware-parity.md
Brandon ThomasandClaude Opus 5.5 4517dd4e88 Docs: fold the rows and headers the PR merges duplicated; parity summary regenerated
Union merges of the 2026-10-14 community PR wave stacked header lines and
left near-duplicate rows, bullets and paragraphs with per-PR counts. Each
progress doc now has one status line and one row per fact, with current
numbers: breadth 84% over 191 features (cargo xtask parity, after removing
duplicate Thesaurus/AutoCorrect/Artistic effects/Corrections checklist
rows), 320 engine commands, 41 dialogs, 1,641 tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 16:13:37 -04:00

5.2 KiB
Raw Permalink Blame History

Hardware parity with PowerPoint

Last reviewed: 2026-10-14 · Last updated: 2026-10-14 · Change: minor (community PR wave 2026-10-14: picture export DPI, Retina pixel grid (#184), twist to rotate, swipe to turn the page, pen pressure; duplicated rows and headers folded; previous: minor, IME input, #101) · 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
Picture export resolution 2 px per point, tagged so the file is the slide's size PNG pHYs and JPEG density, 144 dpi at the default 2 px per point same same same
High-DPI / Retina yes yes; editor slide rasters sit on the physical pixel grid (#184) 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 partial: pinch zoom does not keep the point under the pointer; a two-finger twist rotates the selected shapes
Two-finger swipe between slides yes yes: when the slide fits the window, and during the show. A zoomed slide still pans
Pen pressure and tilt for ink (Apple Pencil via Sidecar, Windows Ink) yes pressure scales the stroke when the pointer reports it (a mouse or a missing reading draws at the pen width); tilt is not read
Touch screens (Windows) yes basic pointer only
IME input methods for CJK text yes yes: composed in place, underlined, candidate window at the caret (#101)
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 tilt, pinch zoom, trackpad gestures 2–5
Benchmark suite (cargo xtask bench) and a first performance pass 6–12 (Performance dimension)
Hardware total ~25–44

Revision history

Date Change Summary
2026-10-14 minor PNG and JPEG slide export record 144 dpi at the default 2 pixels per point, so a Retina picture opens at the slide's size
2026-10-13 trivial Editor slide rasters sit on the physical pixel grid (#184)
2026-10-14 trivial Community PR wave folded: one row each for pinch/two-finger gestures and pen pressure
2026-10-14 minor A two-finger twist on the trackpad rotates the selected shapes, as one undo step. Pinch-zoom is unchanged
2026-10-14 minor A sideways trackpad swipe turns the page in Normal view (when the slide fits) and in the show. Pinch-zoom is unchanged
2026-10-14 minor Pen pressure scales ink width; tilt, pinch zoom and trackpad gestures remain (estimate 3–6 h → 2–5 h)
2026-10-12 minor IME input methods (#101)
2026-10-10 major Created: rendering, media, displays, input and performance against PowerPoint 16.113