feat(gpu-decode): zero-copy hardware imports and the planar pipeline

Adds VAAPI DMA-BUF, D3D11VA shared-handle and VideoToolbox IOSurface
imports behind a tri-state outcome (imported / unsupported / failed),
planar textures with bounded residency and a CPU staging fallback, the
staged montage decode path, reference-counted decoder frames, VAAPI-first
device selection on Linux, and the host-GPU context plumbing used by the
app and worker. See docs/zh/plans/render-pipeline-threads.md (M5).
This commit is contained in:
2026-09-22 20:54:03 +08:00
parent 800011ef73
commit f188bc79e7
33 changed files with 2932 additions and 131 deletions
+5 -1
View File
@@ -42,7 +42,10 @@ jobs:
# OpenColorIO build (ocio-sys `bundled`; Ubuntu's
# libopencolorio-dev is 2.1, older than the bridge's API floor),
# and the headless test infra gpui needs: X11, software Mesa
# Vulkan (lavapipe) and xvfb.
# Vulkan (lavapipe) and xvfb. `icc-profiles-free` gives the
# oak-core display-ICC tests a system profile (sRGB.icc); without
# it `color.rs::system_icc` finds nothing on this runner and the
# viewer black-screen guard silently skips.
sudo apt-get install -y \
build-essential clang libclang-dev cmake pkg-config nasm \
git curl zip unzip tar python3 \
@@ -50,6 +53,7 @@ jobs:
libasound2-dev libpulse-dev libsndfile1-dev \
libgl1-mesa-dev libgl1-mesa-dri mesa-vulkan-drivers \
libvulkan-dev libxkbcommon-dev libxkbcommon-x11-dev xvfb libdrm-dev \
icc-profiles-free \
autoconf autoconf-archive automake libtool
# ------------------------------------------------------------------