svn commit: r567534 - in head/emulators/rpcs3: . files
Jan Beich
jbeich at FreeBSD.org
Sun Mar 7 02:06:52 UTC 2021
Author: jbeich
Date: Sun Mar 7 02:06:51 2021
New Revision: 567534
URL: https://svnweb.freebsd.org/changeset/ports/567534
Log:
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)
Added:
head/emulators/rpcs3/files/patch-userptr (contents, props changed)
Modified:
head/emulators/rpcs3/Makefile (contents, props changed)
Modified: head/emulators/rpcs3/Makefile
==============================================================================
--- head/emulators/rpcs3/Makefile Sun Mar 7 00:56:44 2021 (r567533)
+++ head/emulators/rpcs3/Makefile Sun Mar 7 02:06:51 2021 (r567534)
@@ -4,6 +4,7 @@ PORTNAME= rpcs3
DISTVERSIONPREFIX= v
DISTVERSION= 0.0.15-11892 # git rev-list --count HEAD
DISTVERSIONSUFFIX= -g3ae7debc1
+PORTREVISION= 1
CATEGORIES= emulators
MAINTAINER= jbeich at FreeBSD.org
Added: head/emulators/rpcs3/files/patch-userptr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/emulators/rpcs3/files/patch-userptr Sun Mar 7 02:06:51 2021 (r567534)
@@ -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())
+ {
More information about the svn-ports-head
mailing list