Files
deckcraft/docs/hardware-parity.md
T
Brandon ThomasandClaude Opus 5.5 d66833b7c2 Fix up merged PRs: land-r6's changes fitted to the landing branch
- review.thesaurus's params doc parses under describe's grammar; describe's edit.copy test
  expects the landing branch's {text, html?} answer.
- The Language dialog test picks the landing branch's "Français (France)" entry; the Format
  Background test allows the pane's title to appear twice.
- Progress docs rebuilt from the landing branch's versions with land-r6's rows applied on top,
  so the union merge no longer drops the pen-pressure, ui.pointer and ui.key rows.

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

6.1 KiB
Raw Blame History

Hardware parity with PowerPoint

Last reviewed: 2026-10-14 · Last updated: 2026-10-14 · Change: minor (PNG and JPEG slide export record 144 dpi at the default 2 pixels per point; previous: IME input, #101) · Target: Microsoft PowerPoint for Mac 16.113 (Microsoft 365); PowerPoint for Windows where noted Last reviewed: 2026-10-14 · Last updated: 2026-10-14 · Change: minor (a two-finger twist rotates the selection; previous: minor, IME input, #101) · Target: Microsoft PowerPoint for Mac 16.113 (Microsoft 365); PowerPoint for Windows where noted Last reviewed: 2026-10-14 · Last updated: 2026-10-14 · Change: minor (a trackpad swipe turns the page; pinch-zoom remains; previous: minor, IME input, #101) · Target: Microsoft PowerPoint for Mac 16.113 (Microsoft 365); PowerPoint for Windows where noted Last reviewed: 2026-10-14 · Last updated: 2026-10-14 · Change: minor (pen pressure scales ink width; tilt remains; previous: minor, IME input, #101; previous: 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
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 pinch zoom does not keep the point under the pointer; a two-finger twist rotates the selected shapes
Pinch to zoom yes no
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 no: ink strokes have constant width
Pinch to zoom, two-finger gestures yes no
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 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