diff options
author | Jan Beich <jbeich@FreeBSD.org> | 2022-09-03 20:27:51 +0000 |
---|---|---|
committer | Jan Beich <jbeich@FreeBSD.org> | 2022-09-04 09:05:50 +0000 |
commit | b7e360bd9feea772d908a8d5f91af121500d190c (patch) | |
tree | 5af15019f254dfeceb1e84b5dd83a4d973536c97 /graphics/mesa-devel/files/patch-userptr | |
parent | x11-servers/xwayland-devel: update to 21.0.99.1.272 (diff) |
graphics/mesa-devel: update to 22.2.b.1696
Changes: https://gitlab.freedesktop.org/mesa/mesa/-/compare/d3642a0e027...a03ce740bbb
Diffstat (limited to '')
-rw-r--r-- | graphics/mesa-devel/files/patch-userptr | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/graphics/mesa-devel/files/patch-userptr b/graphics/mesa-devel/files/patch-userptr index f73abcd5d1ed..409833b38ba5 100644 --- a/graphics/mesa-devel/files/patch-userptr +++ b/graphics/mesa-devel/files/patch-userptr @@ -73,3 +73,27 @@ https://github.com/FreeBSDDesktop/kms-drm/issues/197 return userptr.handle; } +--- src/intel/vulkan_hasvk/anv_gem.c.orig 2022-09-03 20:27:51 UTC ++++ src/intel/vulkan_hasvk/anv_gem.c +@@ -179,9 +179,19 @@ anv_gem_userptr(struct anv_device *device, void *mem, + if (device->physical->has_userptr_probe) + userptr.flags |= I915_USERPTR_PROBE; + +- int ret = intel_ioctl(device->fd, DRM_IOCTL_I915_GEM_USERPTR, &userptr); +- if (ret == -1) ++ int ret; ++retry: ++ ret = intel_ioctl(device->fd, DRM_IOCTL_I915_GEM_USERPTR, &userptr); ++ if (ret == -1) { ++ if (errno == ENODEV && userptr.flags == 0) { ++ userptr.flags = I915_USERPTR_UNSYNCHRONIZED; ++ goto retry; ++ } ++ if (geteuid() != 0) { ++ fprintf(stderr, "%s", "ioctl(I915_GEM_USERPTR) failed. Try running as root but expect poor stability.\n"); ++ } + return 0; ++ } + + return userptr.handle; + } |