diff options
author | Zhenyu Wang <zhenyuw@linux.intel.com> | 2014-10-20 15:49:38 +0800 |
---|---|---|
committer | Zhenyu Wang <zhenyuw@linux.intel.com> | 2014-10-20 15:49:38 +0800 |
commit | c50ba1bb4c2680e607288144906bca9d2383ccf4 (patch) | |
tree | a61503877ec2b3ad46b27452bfea001173e16281 | |
parent | 0d8a1f76159449cf1da52e53f34048b3d01fee4c (diff) |
Retry userptr allocation in case kernel without MMU notifieruserptr
Fallback to unsynchronized userptr allocation if kernel has no
MMU notifier enabled.
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
-rw-r--r-- | src/intel/intel_driver.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/intel/intel_driver.c b/src/intel/intel_driver.c index c6426b9..93cc69c 100644 --- a/src/intel/intel_driver.c +++ b/src/intel/intel_driver.c @@ -717,9 +717,16 @@ static cl_buffer intel_buffer_alloc_userptr(cl_buffer_mgr bufmgr, unsigned long flags) { #ifdef HAS_USERPTR - return (cl_buffer)drm_intel_bo_alloc_userptr((drm_intel_bufmgr *)bufmgr, - name, data, I915_TILING_NONE, - 0, size, flags); + drm_intel_bo *bo; + bo = drm_intel_bo_alloc_userptr((drm_intel_bufmgr *)bufmgr, + name, data, I915_TILING_NONE, + 0, size, flags); + if (bo == NULL && flags == 0) { + bo = drm_intel_bo_alloc_userptr((drm_intel_bufmgr *)bufmgr, + name, data, I915_TILING_NONE, + 0, size, flags | I915_USERPTR_UNSYNCHRONIZED); + } + return (cl_buffer)bo; #else return NULL; #endif |