You are not logged in.
I am trying to configure an Arch/Wayland install for my quad-monitor dual GPU setup (I'll explain the reason in a bit). My first and default GPU is an Nvidia GTX 1060, this is the one that drives all my monitors and runs my Wayland session.
My second GPU is an RTX 3070 that is connected to my main monitor using a second HDMI cable, but it's not being used for display output.
The reason I have this somewhat convoluted setup is because I want to be able to use the 3070 for VFIO passthrough to a Wincrap11 VM (which requires a physical monitor connection on the 3070, even if I'm using looking glass), but when the VM is not running, I also want to be able to use the 3070 to run games on the host Arch system.
I've already fully configured VFIO to blacklist the 3070 at boot and bind it to the vfio driver, and I've also written some scripts that allow me to "bounce" the 3070 back and forth between the vfio and nvidia drivers whenever I want to, and all of that seems to be working correctly.
What I can't seem to figure out though is how I can use the "headless" 3070 as the rendering GPU, and achieve something like PRIME render offloading to be able to run Linux native or Proton/wine games on it.
Here are some command outputs:
$ lspci -nnkd 10de:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] [10de:1c03] (rev a1)
Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:3283]
Kernel driver in use: nvidia
Kernel modules: nouveau, nvidia_drm, nvidia
01:00.1 Audio device [0403]: NVIDIA Corporation GP106 High Definition Audio Controller [10de:10f1] (rev a1)
Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:3283]
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070] [10de:2484] (rev a1)
Subsystem: Gigabyte Technology Co., Ltd Device [1458:4069]
Kernel driver in use: nvidia
Kernel modules: nouveau, nvidia_drm, nvidia
02:00.1 Audio device [0403]: NVIDIA Corporation GA104 High Definition Audio Controller [10de:228b] (rev a1)
Subsystem: Gigabyte Technology Co., Ltd Device [1458:4069]
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
$ nvidia-smi
https://pastebin.com/raw/JgPc9nX4
$ MESA_VK_DEVICE_SELECT=10de:2484 vkcube
Selected GPU 0: NVIDIA GeForce GTX 1060 6GB, type: DiscreteGpu (Wrong GPU!)
$ MESA_VK_DEVICE_SELECT=10de:2484 vkcube --gpu_number 1
Selected GPU 1: NVIDIA GeForce RTX 3070, type: DiscreteGpu
Could not find both graphics and present queues
$ vkcube-wayland --gpu_number 1
Selected GPU 1: NVIDIA GeForce RTX 3070, type: DiscreteGpu
Can't find our preferred formats... Falling back to first exposed format. Rendering may be incorrect.
Segmentation fault (core dumped)
$ prime-run vkcube
Selected GPU 0: NVIDIA GeForce GTX 1060 6GB, type: DiscreteGpu (Wrong GPU!)
$ vulkaninfo --summary
WARNING: [Loader Message] Code 0 : loader_add_layer_properties: 'layers' tag not supported until file version 1.0.1, but /usr/share/vulkan/implicit_layer.d/nvidia_layers.json is reporting version 1
ERROR while creating surface for extension VK_KHR_wayland_surface : /usr/src/debug/vulkan-tools/Vulkan-Tools-1.3.269/vulkaninfo/./vulkaninfo.h:237:vkGetPhysicalDeviceSurfaceFormats2KHR failed with ERROR_SURFACE_LOST_KHR
==========
VULKANINFO
==========
Vulkan Instance Version: 1.3.279
Instance Extensions: count = 23
-------------------------------
VK_EXT_acquire_drm_display : extension revision 1
VK_EXT_acquire_xlib_display : extension revision 1
VK_EXT_debug_report : extension revision 10
VK_EXT_debug_utils : extension revision 2
VK_EXT_direct_mode_display : extension revision 1
VK_EXT_display_surface_counter : extension revision 1
VK_EXT_surface_maintenance1 : extension revision 1
VK_EXT_swapchain_colorspace : extension revision 4
VK_KHR_device_group_creation : extension revision 1
VK_KHR_display : extension revision 23
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2 : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_portability_enumeration : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_surface_protected_capabilities : extension revision 1
VK_KHR_wayland_surface : extension revision 6
VK_KHR_xcb_surface : extension revision 6
VK_KHR_xlib_surface : extension revision 6
VK_LUNARG_direct_driver_loading : extension revision 1
Instance Layers: count = 3
--------------------------
VK_LAYER_AEJS_DeviceChooserLayer Device chooser layer 1.3.0 version 1
VK_LAYER_KHRONOS_validation Khronos Validation Layer 1.3.275 version 1
VK_LAYER_NV_optimus NVIDIA Optimus layer 1.3.278 version 1
Devices:
========
GPU0:
apiVersion = 1.3.278
driverVersion = 555.52.4.0
vendorID = 0x10de
deviceID = 0x1c03
deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
deviceName = NVIDIA GeForce GTX 1060 6GB
driverID = DRIVER_ID_NVIDIA_PROPRIETARY
driverName = NVIDIA
driverInfo = 555.52.04
conformanceVersion = 1.3.8.0
deviceUUID = 077201c2-1d6a-086c-b54f-7e8d0fabb0af
driverUUID = eb1bbb64-0d41-5833-82d7-89b85a76f4fc
GPU1:
apiVersion = 1.3.278
driverVersion = 555.52.4.0
vendorID = 0x10de
deviceID = 0x2484
deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
deviceName = NVIDIA GeForce RTX 3070
driverID = DRIVER_ID_NVIDIA_PROPRIETARY
driverName = NVIDIA
driverInfo = 555.52.04
conformanceVersion = 1.3.8.0
deviceUUID = 735f60b7-7c55-4f42-7b3c-bcda8a460943
driverUUID = eb1bbb64-0d41-5833-82d7-89b85a76f4fc
Is it even possible to do NVIDIA-to-NVIDIA render offloading on Wayland, or am I wasting my time?
Offline
Did you try to DRI_PRIME=pci-0000_02_00_0?
https://wiki.archlinux.org/title/PRIME# … figuration
Offline
Did you try to DRI_PRIME=pci-0000_02_00_0?
https://wiki.archlinux.org/title/PRIME# … figuration
I did try that too just now, it doesn't make a difference. For now I have given up on my original goal of using the 3070 as the secondary, and I'll just use the 1060 as the VM's GPU.
Offline