Vendored by scripts/vendor-pyrowave.sh — do not edit by hand.

pyrowave:        509e4f887b585a3f97471fcc804e9de649f2c16f
Granite:         44362775d36e0c4139352f83efd96bab4e239f66
volk:            47cddf7ed97b94118a08aacb548a411188e016cc
vulkan-headers:  015e25c3c91b70eb1a754d36fb14c4ba6ad9b0b9

Tree is pruned to what the pyrowave-sys standalone build needs
(see the rm -rf list in the script). All parts are MIT-licensed
(pyrowave, Granite) or Apache-2.0/MIT (volk, Vulkan-Headers).

Local patches (crates/pyrowave-sys/patches/, re-applied on re-vendor):
  0001-payload-data-444-sizing.patch — encoder payload_data worst-case buffer
    was sized for 4:2:0's 1.5 samples/px; busy 4:4:4 (3 samples/px) overran it
    on the GPU → nondeterministic corrupt bitstreams/crashes at any bitrate.
    Found + validated 2026-07-18 (RTX 5070 Ti, 1080p/4K, 8/16-bit); to be
    reported upstream.

  (0002-0003 are reserved by concurrent in-flight work and land separately.)

  0004-encoder-buffer-pool.patch — pyrowave_c.cpp allocated four Vulkan buffers
    (meta + bitstream, Device + CachedHost) on EVERY encode. At 240 fps with
    MB-scale bitstreams that per-frame churn stalled the encode itself: on an
    RTX 4090 the 5120x1440 submit+fence-wait was ~15 ms (~64 fps ceiling) and
    dropped to ~1 ms (~1025 fps) once the buffers are pooled on the encoder and
    reused. Safe under the synchronous encode model; re-validated by
    pyrowave_win_smoke. Perf fix, not a correctness fix.

  0005-global-priority-queue.patch — Context::create_device requests a global-priority Vulkan
    compute queue (VK_KHR_global_priority, PYROWAVE_QUEUE_PRIORITY=off|high|realtime, default
    realtime) so the wavelet encode can preempt a GPU-bound game on the shared shader cores. A
    create loop downgrades on NOT_PERMITTED so a refused class never regresses the encoder. Did
    not overcome the graphics-vs-compute preemption wall on an RTX 4090 (kept: correct + harmless,
    may help other HW/drivers).
