Hardware parity
Last reviewed: 2026-10-10 · Last updated: 2026-10-10 · Change: major (first version: GPU, pen tablets, displays, gestures per platform against Photoshop 2026) · Target: Adobe Photoshop 2026
Each hardware feature Photoshop 2026 (27.11.0) uses, per platform,
against Picto. Photoshop side: its bundle (Metal and OpenCL paths,
"Precise Color Management for HDR Display" and EDR strings, Touch Bar
resources, pen pressure/tilt strings) and Adobe's GPU FAQ. Picto side:
crates/tablet, crates/ui-egui/src/stylus.rs,
apps/picto/src/gpu_startup.rs,
engine/src/display_color.rs,
apps/picto/src/monitor_profile.rs.
Summary (estimated): ~50% ready. GPU compositing and colour-managed display are solid; pen input is uneven by platform (Windows lacks tilt/rotation, Wayland is broken) and there is no HDR output. Remaining: 80–150 h (gap G12). Human: tablets (Wacom, XP-Pen, Huion) on each OS and an HDR display to verify.
GPU
| Feature | Photoshop | Picto | Status |
|---|---|---|---|
| GPU canvas, zoom/pan, rotate view | Metal (macOS), DirectX/OpenCL (Windows) | wgpu 30: Metal, Vulkan, DX12, GL; backend selectable | done |
| GPU compositing of layers, blend modes, effects | partial (Photoshop composites mostly on CPU) | wgpu compositor, ≤ 1/255 vs CPU oracle; Multichannel and > texture-limit regions fall back to CPU | done (ahead in places) |
| GPU filters (Blur Gallery, Liquify, Smart Sharpen, Camera Raw) | yes | CPU (rayon) for filters; GPU for compose and effects | partial |
| Documents larger than the GPU texture limit | yes (tiled) | CPU fallback; tiling in progress (#49) | partial |
| CPU-only fallback when no GPU | yes, reduced | cpu canvas preference; fails to start without an
adapter on some Linux systems (#2519, #2412) |
partial |
| Choosing the GPU on a multi-GPU machine | Preferences › Performance › Use Graphics Processor | Linux only: Preferences › Performance › Advanced › GPU adapter and
PICTO_GPU_ADAPTER (#1885); ignored on Windows and
macOS |
partial |
| Old / integrated GPUs | yes | black line on Intel HD (#2426), OpenCore Macs fail (#1859), Rgba32Float panic (#2020) | partial |
Pen tablets
| Feature | Photoshop | macOS | Windows | Linux X11 | Linux Wayland | Web |
|---|---|---|---|---|---|---|
| Pressure | yes | yes (AppKit monitor) | yes (WM_POINTER), jumpy (#2046) | yes (XInput2) | via Xwayland only; GNOME 50 pen doesn't click (#2622), KDE (#2297) | yes |
| Tilt | yes | yes | no | yes | no | yes |
| Barrel rotation | yes | yes (not applied to tip angle, #1301) | no | partial | no | yes (twist) |
| Eraser end | yes | yes | no (#2285) | partial | no | partial |
| WinTab driver mode | yes | – | no | – | – | – |
| Pressure curve | Windows Ink / driver | global curve in Preferences (#2195) | same | same | same | same |
Displays and colour
| Feature | Photoshop | Picto | Status |
|---|---|---|---|
| Colour-managed canvas (document → monitor profile) | yes | yes, folded into the GPU 3D LUT | done |
| Monitor profile detection | per display, live | macOS per display at launch; others sRGB or a chosen .icc | partial |
| HDR / EDR output for 32-bit and HDR images | yes ("Precise Color Management for HDR Display") | no; 8-bit sRGB-encoded canvas texture | missing |
| High-DPI, physical 100% | yes | yes (#1943) | done |
| Multiple monitors: documents in separate OS windows | yes | yes (extra_windows) |
done |
| Panels in separate OS windows | yes | in-app floating only (UI-217-5) | missing |
Input devices
| Feature | Photoshop | Picto | Status |
|---|---|---|---|
| Trackpad pinch zoom, two-finger pan | yes | yes; pinch scrolls instead in 0.6.0 (#2463) | partial |
| Trackpad rotate (Rotate View) | yes | yes (rotate_view.rs) |
done |
| Touch Bar | yes (Intel Macs) | no | missing (low value) |
| Touch screens (Windows) | yes | basic pointer only | partial |
| 3D mouse, MIDI, Surface Dial | Surface Dial on Windows | no | missing (low value) |
| Scanners (WIA / TWAIN) | WIA menu (Windows) | menu item live; no driver integration | partial |
Revision history
| Date | Change | Summary |
|---|---|---|
| 2026-10-10 | major | First version |
| 2026-10-19 | minor | Graphics Adapter choice on Linux (#1885) |