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)
This commit is contained in:
Jan Beich 2021-03-07 02:07:48 +00:00
parent 1a81b84b6f
commit 0bce41447e
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/branches/2021Q1/; revision=567535
2 changed files with 16 additions and 0 deletions

View File

@ -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

View File

@ -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())
{