76 lines
3.8 KiB
Markdown
76 lines
3.8 KiB
Markdown
# Hardware parity with PowerPoint
|
||
|
||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-12 · **Change:** 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 |
|
||
| 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 | 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 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-12 | minor | IME input methods (#101) |
|
||
| 2026-10-10 | major | Created: rendering, media, displays, input and performance against PowerPoint 16.113 |
|