Skip to content

Vulkan Sparse for Anv

Paulo Zanoni requested to merge pzanoni/mesa:xe_sparse into main


Here's my Vulkan Sparse implementation. Feel free to test this branch directly.

This only works on xe.ko (needs to be a recent one!), although most of the code is independent of the driver (we really just need a vm_bind ioctl to behave the same as the one in xe.ko). I am currently testing Alchemist (formerly DG2) and TGL.

Here's what we already have:

  • sparseBinding
  • sparseResidencyBuffer
  • sparseResidencyImage2D
  • sparseResidencyAliased
  • residencyStandard2DBlockShape = True
  • residencyNonResidentStrict = True
  • sparseResidencyImage3D
  • residencyStandard3DBlockShape = True
  • shaderResourceResidency

Required/related MRs:

Related Issues:

Games affected by Sparse

Games that don't use Sparse but require it due to DX12:

Games that require and use Sparse:

  • Street Fighter 6
  • Resident Evil 4
  • Deathloop
  • Assassin's Creed Valhalla

Games that still don't work, but Sparse moves things forward:

  • Halo: Infinite now loads the loading screen which uses sparse (but crashes in non-Sparse code from another thread after spending a very long time in the loading screen)
  • Dirt5 crashes during launch, before attempting to use Sparse (#9882 (closed))
  • Marvel's Guardians of the Galaxy crashes after the Marvel logo, before attempting to use Sparse
  • Forza Horizon 5 crashes during launch, before attempting to use Sparse (#9842)


Edited by Paulo Zanoni

Merge request reports