RADV Driver Enables Host Image Copy By Default For RDNA2 & Newer
Key Takeaways
- •RADV enables VK_EXT_host_image_copy by default on RDNA2 GPUs
- •AVX2-optimized ADDRLIB delivers ~20 GiB/s upload speed on Navi48
- •Default enablement cuts memory usage during asset loading
- •RDNA1 can still activate feature via RADV_DEBUG=hic flag
- •Performance gains reduce CPU‑GPU synchronization overhead
Pulse Analysis
The Vulkan VK_EXT_host_image_copy extension was introduced in 2023 to let applications move image data directly from host memory to GPU images, bypassing the traditional staging buffer. This pathway reduces both memory footprint and copy latency, a benefit that matters most for large texture assets common in modern games and professional graphics workloads. Early implementations in the RADV driver were marked experimental, as the underlying ADDRLIB library lacked the performance needed for production use.
A recent overhaul of AMD’s ADDRLIB library introduced AVX2‑based SIMD routines that dramatically accelerate the upload path. Benchmarks cited by the Mesa patch show an order‑of‑magnitude speedup, reaching roughly 20 GiB/s on the Navi48 GPU—a tenfold improvement over the prior baseline. With these gains, the RADV team felt confident to ship the feature enabled by default on RDNA 2 and newer architectures, while retaining a manual opt‑in for RDNA 1 hardware that still exhibits occasional regressions.
For the Linux graphics ecosystem, this development signals a maturing of open‑source driver performance to rival proprietary stacks. Game developers and content creators can now rely on more efficient asset streaming without custom workarounds, lowering CPU load and freeing system memory. As AMD continues to refine ADDRLIB and extend AVX support to additional formats, we can expect broader adoption of host‑image copy across the Vulkan landscape, further narrowing the performance gap between Linux and Windows platforms.
RADV Driver Enables Host Image Copy By Default For RDNA2 & Newer
Comments
Want to join the conversation?