Making it into the RADV Vulkan driver ahead of this week’s Mesa 25.2 feature freeze is experimental support for the VK_EXT_host_image_copy extension. The Vulkan host image copy extension was worked on by Valve and others for letting applications/games copy data between the host memory and images on the host processor without having to first stage via a GPU-accessible buffer.
Per the VK_EXT_host_image_copy extension spec:
“This extension allows applications to copy data between host memory and images on the host processor, without staging the data through a GPU-accessible buffer. This removes the need to allocate and manage the buffer and its associated memory. On some architectures it may also eliminate an extra copy operation. This extension additionally allows applications to copy data between images on the host.”
VK_EXT_host_image_copy was introduced in 2023. Only now thanks to work by AMD on their Addrlib library, it’s becoming possible to support VK_EXT_host_image_copy on modern Radeon GPUs but with some current limitations — possible performance issues — and thus being treated as experimental and disabled by default.
Samuel Pitoiset of Valve’s Linux graphics team explained in the merge request adding the RADV support:
“This implements VK_EXT_host_image_copy using recent addrlib which has memory<->surface functions for both linear/tiled surfaces.
It’s passing VKCTS on GFX10+.
It’s not enabled by default because performance is still not great for non-linear surfaces (~1.6GiB/s) but it’s fine for linear surfaces (~15.GiB/s). More addrlib work is needed to improve the situation.
RADV_PERFTEST=hic is needed to enable this experimental extension.”
So for those on RDNA graphics processors, enabling VK_EXT_host_image_copy will be possible with Mesa 25.2+ using the RADV_PERFTEST=hic environment variable. Hopefully an updated Addrlib comes soon for dealing with the performance issues for non-linear surfaces.