anv: Add support for userptr in Xe KMD
Xe KMD only requires userptr to be bound to VM, so here reusing workaround_bo->gem_handle id to all userptr bos in Xe version of gem_create_userptr(). The Xe version of gem_close() will make sure that workaround_bo->gem_handle is not closed when userptr bos are closed. With the same gem_handle for all userptr bos, it was also necessary skip the anv_device_lookup_bo() and manually allocate memory to store anv_bo in host heap memory, what lead to some small changes in anv_device_release_bo() as well. The remaining changes are the support to VM bind userptr bos and the gem_vm_bind() call in anv_device_import_bo_from_host_ptr(). Fixes: dEQP-VK.memory.external_memory_host* Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23787>
This commit is contained in:

committed by
Marge Bot

parent
5c729cb1b8
commit
6f88e3befb
@@ -404,6 +404,7 @@ struct anv_bo {
|
||||
*/
|
||||
struct util_vma_heap *vma_heap;
|
||||
|
||||
/* All userptr bos in Xe KMD has gem_handle set to workaround_bo->gem_handle */
|
||||
uint32_t gem_handle;
|
||||
|
||||
uint32_t refcount;
|
||||
|
Reference in New Issue
Block a user