vulkan: add texture download, fix upload bugs, and add integration tests
Building on top of Xaver's texture allocation and upload commit:
- Add
download()to VulkanTexture for GPU-to-CPU readback - Add
vulkanToQImageFormat()helper for Vulkan→QImage format conversion - Roll
begin()intoVulkanDevice::createCommandBuffer() - Add lavapipe fallback for faux render nodes (for CI)
- Add
isSoftwareRenderer()andtype()to VulkanDevice
Fix bugs in the upload implementation:
- Missing
bindMemorycalls inallocate()andupdate() - Missing
begin()/end()on command buffers inupdate() - Wrong image offset in
update(): usedoffsetparam instead ofrect.position() + offset
Add integration tests covering upload, download, allocation, partial region updates, and multi-rect corner updates.
Tested on NVIDIA RTX 5070 Ti (Blackwell, driver 595.58.03)
Co-authored-by: Xaver Hugl xaver.hugl@kde.org
Edited by Diego Gomez