aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2021-03-07 02:07:48 +0000
committerJan Beich <jbeich@FreeBSD.org>2021-03-07 02:07:48 +0000
commit0bce41447ee7a7f32603a80549c58ca31f2d617f (patch)
tree7c6ba6eb2af8b5ad5ef7b22ed7ea278b6a0f0304
parent1a81b84b6ff4d5da7ceb7f834fe0501f68e56075 (diff)
downloadports-0bce41447ee7a7f32603a80549c58ca31f2d617f.tar.gz
ports-0bce41447ee7a7f32603a80549c58ca31f2d617f.zip
MFH: r567534
emulators/rpcs3: unbreak Vulkan on Intel after r562625 ioctl(I915_GEM_USERPTR) failed. Try running as root but expect poor stability. F {RSX [0x000255c]} SIG: Thread terminated due to fatal error: Assertion Failed! Vulkan API call failed with unrecoverable error: Invalid external handle (VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR) (in file rpcs3/Emu/RSX/VK/vkutils/memory.cpp:224[:79], in function memory_block_host) (errno=1) (in file rpcs3/Emu/RSX/VK/vkutils/shared.cpp:103[:4], in function die_with_error) (errno=1)
Notes
Notes: svn path=/branches/2021Q1/; revision=567535
-rw-r--r--emulators/rpcs3/Makefile1
-rw-r--r--emulators/rpcs3/files/patch-userptr15
2 files changed, 16 insertions, 0 deletions
diff --git a/emulators/rpcs3/Makefile b/emulators/rpcs3/Makefile
index a87d0be945a0..2209c7efd5ec 100644
--- a/emulators/rpcs3/Makefile
+++ b/emulators/rpcs3/Makefile
@@ -4,6 +4,7 @@ PORTNAME= rpcs3
DISTVERSIONPREFIX= v
DISTVERSION= 0.0.15-11838 # git rev-list --count HEAD
DISTVERSIONSUFFIX= -g8e4451d1a
+PORTREVISION= 1
CATEGORIES= emulators
MAINTAINER= jbeich@FreeBSD.org
diff --git a/emulators/rpcs3/files/patch-userptr b/emulators/rpcs3/files/patch-userptr
new file mode 100644
index 000000000000..e090db6880d2
--- /dev/null
+++ b/emulators/rpcs3/files/patch-userptr
@@ -0,0 +1,15 @@
+VK_EXT_external_memory_host depends on userptr, so disable on Intel until
+https://github.com/FreeBSDDesktop/kms-drm/issues/197
+
+--- rpcs3/Emu/RSX/VK/VKDMA.cpp.orig 2021-02-28 23:32:23 UTC
++++ rpcs3/Emu/RSX/VK/VKDMA.cpp
+@@ -264,7 +264,8 @@ namespace vk
+ true;
+ #else
+ // Anything running on AMDGPU kernel driver will not work due to the check for fd-backed memory allocations
+- const bool allow_host_buffers = (vendor != driver_vendor::AMD && vendor != driver_vendor::RADV);
++ // Intel userptr on non-Linux may not work or require root
++ const bool allow_host_buffers = (vendor != driver_vendor::AMD && vendor != driver_vendor::RADV && vendor != driver_vendor::INTEL);
+ #endif
+ if (allow_host_buffers && g_render_device->get_external_memory_host_support())
+ {