return 0;
}
+
+bool iris_i915_init_global_vm(struct iris_bufmgr *bufmgr, uint32_t *vm_id)
+{
+ uint64_t value;
+ bool ret = intel_gem_get_context_param(iris_bufmgr_get_fd(bufmgr), 0,
+ I915_CONTEXT_PARAM_VM, &value);
+ if (ret)
+ *vm_id = value;
+ return ret;
+}
#include <stdint.h>
struct iris_bo;
+struct iris_bufmgr;
bool iris_i915_bo_busy_gem(struct iris_bo *bo);
int iris_i915_bo_wait_gem(struct iris_bo *bo, int64_t timeout_ns);
+
+bool iris_i915_init_global_vm(struct iris_bufmgr *bufmgr, uint32_t *vm_id);
static void
iris_bufmgr_init_global_vm(struct iris_bufmgr *bufmgr)
{
- uint64_t value;
- if (!intel_gem_get_context_param(bufmgr->fd, 0, I915_CONTEXT_PARAM_VM, &value)) {
- bufmgr->use_global_vm = false;
- bufmgr->global_vm_id = 0;
- } else {
- bufmgr->use_global_vm = true;
- bufmgr->global_vm_id = value;
+ switch (bufmgr->devinfo.kmd_type) {
+ case INTEL_KMD_TYPE_I915:
+ bufmgr->use_global_vm = iris_i915_init_global_vm(bufmgr, &bufmgr->global_vm_id);
+ break;
+ default:
+ unreachable("missing");
}
}
simple_mtx_init(&bufmgr->lock, mtx_plain);
simple_mtx_init(&bufmgr->bo_deps_lock, mtx_plain);
- iris_bufmgr_init_global_vm(bufmgr);
-
list_inithead(&bufmgr->zombie_list);
bufmgr->devinfo = *devinfo;
INTEL_ENGINE_CLASS_COMPUTE);
free(engine_info);
+ iris_bufmgr_init_global_vm(bufmgr);
+
STATIC_ASSERT(IRIS_MEMZONE_SHADER_START == 0ull);
const uint64_t _4GB = 1ull << 32;
const uint64_t _2GB = 1ul << 31;