i965/bufmgr: Allocate BO pages outside of the kernel's locking.
Suggested by Chris Wilson. v2: Set the write domain to 0 (suggested by Chris). Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
@@ -382,6 +382,19 @@ retry:
|
||||
|
||||
if (bo_set_tiling_internal(bo, tiling_mode, stride))
|
||||
goto err_free;
|
||||
|
||||
/* Calling set_domain() will allocate pages for the BO outside of the
|
||||
* struct mutex lock in the kernel, which is more efficient than waiting
|
||||
* to create them during the first execbuf that uses the BO.
|
||||
*/
|
||||
struct drm_i915_gem_set_domain sd = {
|
||||
.handle = bo->gem_handle,
|
||||
.read_domains = I915_GEM_DOMAIN_CPU,
|
||||
.write_domain = 0,
|
||||
};
|
||||
|
||||
if (drmIoctl(bo->bufmgr->fd, DRM_IOCTL_I915_GEM_SET_DOMAIN, &sd) != 0)
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
bo->name = name;
|
||||
|
||||
Reference in New Issue
Block a user