diff --git a/src/intel/vulkan/xe/anv_kmd_backend.c b/src/intel/vulkan/xe/anv_kmd_backend.c index 6056f1193d3..4eca33b06fe 100644 --- a/src/intel/vulkan/xe/anv_kmd_backend.c +++ b/src/intel/vulkan/xe/anv_kmd_backend.c @@ -155,6 +155,10 @@ xe_vm_bind_op(struct anv_device *device, for (int i = 0; i < submit->binds_len; i++) { struct anv_vm_bind *bind = &submit->binds[i]; struct anv_bo *bo = bind->bo; + uint16_t pat_index = 0; + + if (bo) + pat_index = anv_device_get_pat_entry(device, bo->alloc_flags)->index; struct drm_xe_vm_bind_op *xe_bind = &xe_binds[i]; *xe_bind = (struct drm_xe_vm_bind_op) { @@ -165,12 +169,10 @@ xe_vm_bind_op(struct anv_device *device, .op = DRM_XE_VM_BIND_OP_UNMAP, .flags = capture_vm_in_error_dump(device, bo), .prefetch_mem_region_instance = 0, + .pat_index = pat_index, }; if (bind->op == ANV_VM_BIND) { - const enum anv_bo_alloc_flags alloc_flags = bo ? bo->alloc_flags : 0; - - xe_bind->pat_index = anv_device_get_pat_entry(device, alloc_flags)->index; if (!bo) { xe_bind->op = DRM_XE_VM_BIND_OP_MAP; xe_bind->flags |= DRM_XE_VM_BIND_FLAG_NULL;