I have a workstation machine, which has an integrated Intel GPU and a dedicated AMD graphics card.
I'd like to install xrdp and some 3D linux games (such as portal/portal2) on my workstation, play the games remotely using my notebook (I can install any linux/windows RDP client on it). The workstation and the notebook are both in my home LAN.
The games should be rendered using the dedicated GPU.
Can I do this using the current latest version of xrdp? If not, what needs to be done?
BTW, I'm curious why there isn't one sinlge game related issue here.
If you use glamor when building xorgxrdp (--enable-glamor) you should be hardware rendering. Then a remotefx session should work well. Glamor only works well with Intel and AMD GPUs, if you want to use NVidia there is another way.
One issue is many shooter games grab the mouse and work from relative mouse movement only. From what I've seen, RDP only has absolute mouse messages. So avoid games that grab the mouse or we have to look for a fix.
and whats the way for Nvidia ?
@jsorg71 what is the other way for NVidia?
@lixaotec The 'other way' for NVidia is the nvidia_hack branch discussed in #1422. We should create a new issue as it's not really related to GFX.
I created #1697 for this.
@jsorg71 Hi, does xorgxrdp support hardware rendering on arm platform with mali gpu?
@jsorg71
[ 8262.499] (EE)
[ 8262.499] (EE) Backtrace:
[ 8262.499] (EE) 0: Xorg (xorg_backtrace+0x4d) [0x564e45da8b2d]
[ 8262.499] (EE) 1: Xorg (0x564e45bff000+0x1ad7b5) [0x564e45dac7b5]
[ 8262.499] (EE) 2: /lib64/libpthread.so.0 (0x7fbc25a48000+0x13090) [0x7fbc25a5b090]
[ 8262.499] (EE) 3: /usr/lib64/xorg/modules/drivers/nvidia_drv.so (0x7fbc24a03000+0x504eb0) [0x7fbc24f07eb0]
[ 8262.499] (EE)
[ 8262.499] (EE) Segmentation fault at address 0x0
[ 8262.499] (EE)
Fatal server error:
[ 8262.499] (EE) Caught signal 11 (Segmentation fault). Server aborting
[ 8262.499] (EE)
[ 8262.499] (EE)
https://github.com/jsorg71/xorgxrdp/tree/nvidia_hack
nvidia_hack crashed in Linux 5.8.14-gentoo with nvidia-drivers 455.28, it works occasionally, succeed 3 times in
20+ attempts锛宐ut it's exciting thing. Looking forward to your great work!
I had make these stuff work once again, windows move more smoothly via xrdp using mstsc client to connect, but maybe loss some power
glxglears shows in native desktop
$ __GL_SYNC_TO_VBLANK=0 glxgears
67841 frames in 5.0 seconds = 13568.089 FPS
64758 frames in 5.0 seconds = 12951.316 FPS
69255 frames in 5.0 seconds = 13850.917 FPS
69783 frames in 5.0 seconds = 13956.575 FPS
glxglears shows in remote desktop
$__GL_SYNC_TO_VBLANK=0 glxgears
7368 frames in 5.0 seconds = 1473.591 FPS
7366 frames in 5.0 seconds = 1469.030 FPS
7271 frames in 5.0 seconds = 1449.380 FPS
7409 frames in 5.0 seconds = 1479.519 FPS
logs shows:
[ 1648.975] Build Operating System: Linux 5.8.9-gentoo x86_64 Gentoo
[ 1648.975] Current Operating System: Linux XXXXXX 5.8.14-gentoo #1 SMP Fri Oct 16 16:51:36 CST 2020 x86_64
[ 1648.975] Kernel command line: BOOT_IMAGE=/vmlinuz-5.8.14-gentoo root=UUID=XXXXXXXXX ro
[ 1648.975] Build Date: 16 October 2020 05:30:26PM
[ 1648.975]
[ 1648.975] Current version of pixman: 0.40.0
[ 1648.975] Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[ 1648.975] Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 1648.975] (++) Log file: ".xorgxrdp.log", Time: Sun Oct 25 23:41:17 2020
[ 1648.975] (++) Using config file: "/etc/X11/xrdp/xorg_nvidia.conf"
[ 1648.975] (==) Using config directory: "/etc/X11/xorg.conf.d"
[ 1648.975] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[ 1648.976] (==) ServerLayout "layout"
[ 1648.976] (**) |-->Screen "dGPU" (0)
[ 1648.976] (**) | |-->Monitor "<default monitor>"
[ 1648.976] (**) | |-->Device "dGPU"
[ 1648.976] (==) No monitor specified for screen "dGPU".
Using a default monitor configuration.
[ 1648.976] (**) |-->Input Device "xrdpMouse"
[ 1648.976] (**) |-->Input Device "xrdpKeyboard"
[ 1648.976] (**) Option "DontVTSwitch" "on"
[ 1648.976] (**) Option "AutoAddDevices" "off"
[ 1648.976] (**) Not automatically adding devices
[ 1648.976] (==) Automatically enabling devices
[ 1648.976] (==) Automatically adding GPU devices
[ 1648.976] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 1648.977] (WW) The directory "/usr/share/fonts/TTF/" does not exist.
[ 1648.977] Entry deleted from font path.
[ 1648.977] (WW) The directory "/usr/share/fonts/OTF/" does not exist.
[ 1648.977] Entry deleted from font path.
[ 1648.977] (WW) The directory "/usr/share/fonts/Type1/" does not exist.
[ 1648.977] Entry deleted from font path.
[ 1648.977] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi/".
[ 1648.977] Entry deleted from font path.
[ 1648.977] (Run 'mkfontdir' on "/usr/share/fonts/100dpi/").
[ 1648.977] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/75dpi/".
[ 1648.977] Entry deleted from font path.
[ 1648.977] (Run 'mkfontdir' on "/usr/share/fonts/75dpi/").
[ 1648.977] (==) FontPath set to:
/usr/share/fonts/misc/
[ 1648.977] (==) ModulePath set to "/usr/lib64/xorg/modules"
[ 1648.977] (II) Loader magic: 0x55728ff17cc0
[ 1648.977] (II) Module ABI versions:
[ 1648.977] X.Org ANSI C Emulation: 0.4
[ 1648.977] X.Org Video Driver: 24.1
[ 1648.977] X.Org XInput driver : 24.1
[ 1648.977] X.Org Server Extension : 10.0
[ 1648.979] (II) systemd-logind: took control of session /org/freedesktop/login1/session/_39
[ 1648.979] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 1648.980] (EE) systemd-logind: failed to take device /dev/dri/card0: Operation not permitted
[ 1649.004] (--) PCI:*(3@0:0:0) 102b:0536:1028:07e5 rev 4, Mem @ 0x91000000/16777216, 0x92808000/16384, 0x92000000/8388608, BIOS @ 0x????????/131072
[ 1649.004] (--) PCI: (177@0:0:0) 10de:1e82:1b4c:1322 rev 161, Mem @ 0xc7000000/16777216, 0x386fe0000000/268435456, 0x386ff0000000/33554432, I/O @ 0x0000c000/128, BIOS @ 0x????????/524288
[ 1649.004] (II) "glx" will be loaded by default.
[ 1649.004] (II) LoadModule: "xorgxrdp"
[ 1649.004] (II) Loading /usr/lib64/xorg/modules/libxorgxrdp.so
[ 1649.005] (II) Module XORGXRDP: vendor="X.Org Foundation"
[ 1649.005] compiled for 1.20.8, module version = 0.2.13
[ 1649.005] ABI class: X.Org Video Driver, version 24.1
[ 1649.005] xorgxrdpSetup:
[ 1649.005] (II) LoadModule: "glx"
[ 1649.005] (II) Loading /usr/lib64/xorg/modules/extensions/libglx.so
[ 1649.006] (II) Module glx: vendor="X.Org Foundation"
[ 1649.006] compiled for 1.20.8, module version = 1.0.0
[ 1649.006] ABI class: X.Org Server Extension, version 10.0
[ 1649.006] (II) LoadModule: "nvidia"
[ 1649.006] (II) Loading /usr/lib64/xorg/modules/drivers/nvidia_drv.so
[ 1649.006] (II) Module nvidia: vendor="NVIDIA Corporation"
[ 1649.006] compiled for 1.6.99.901, module version = 1.0.0
[ 1649.006] Module class: X.Org Video Driver
[ 1649.006] (II) LoadModule: "xrdpmouse"
[ 1649.006] (II) Loading /usr/lib64/xorg/modules/input/xrdpmouse_drv.so
[ 1649.007] (II) Module XRDPMOUSE: vendor="X.Org Foundation"
[ 1649.007] compiled for 1.20.8, module version = 0.2.13
[ 1649.007] Module class: X.Org XInput Driver
[ 1649.007] ABI class: X.Org XInput driver, version 24.1
[ 1649.007] rdpmousePlug:
[ 1649.007] (II) LoadModule: "xrdpkeyb"
[ 1649.007] (II) Loading /usr/lib64/xorg/modules/input/xrdpkeyb_drv.so
[ 1649.007] (II) Module XRDPKEYB: vendor="X.Org Foundation"
[ 1649.007] compiled for 1.20.8, module version = 0.2.13
[ 1649.007] Module class: X.Org XInput Driver
[ 1649.007] ABI class: X.Org XInput driver, version 24.1
[ 1649.007] rdpkeybPlug:
[ 1649.007] xorgxrdpCheckWrap: NVIDIA driver found
[ 1649.007] (II) NVIDIA dlloader X Driver 455.28 Wed Sep 30 01:04:06 UTC 2020
[ 1649.007] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[ 1649.007] xorgxrdpDriverFunc:
[ 1649.007] xorgxrdpPlatformProbe:
[ 1649.007] (II) Loading sub module "fb"
[ 1649.007] (II) LoadModule: "fb"
[ 1649.007] (II) Loading /usr/lib64/xorg/modules/libfb.so
[ 1649.007] (II) Module fb: vendor="X.Org Foundation"
[ 1649.007] compiled for 1.20.8, module version = 1.0.0
[ 1649.007] ABI class: X.Org ANSI C Emulation, version 0.4
[ 1649.007] (II) Loading sub module "wfb"
[ 1649.007] (II) LoadModule: "wfb"
[ 1649.007] (II) Loading /usr/lib64/xorg/modules/libwfb.so
[ 1649.007] (II) Module wfb: vendor="X.Org Foundation"
[ 1649.007] compiled for 1.20.8, module version = 1.0.0
[ 1649.007] ABI class: X.Org ANSI C Emulation, version 0.4
[ 1649.007] (II) Loading sub module "ramdac"
[ 1649.007] (II) LoadModule: "ramdac"
[ 1649.007] (II) Module "ramdac" already built-in
[ 1649.007] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[ 1649.007] xorgxrdpPreInit:
[ 1649.007] (II) NVIDIA(0): Creating default Display subsection in Screen section
"dGPU" for depth/fbbpp 24/32
[ 1649.007] (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32
[ 1649.007] (==) NVIDIA(0): RGB weight 888
[ 1649.007] (==) NVIDIA(0): Default visual is TrueColor
[ 1649.007] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[ 1649.007] (**) NVIDIA(0): Option "DPI" "96 x 96"
[ 1649.007] (**) NVIDIA(0): Option "ConnectToAcpid" "false"
[ 1649.007] (**) NVIDIA(0): Option "UseDisplayDevice" "none"
[ 1649.008] (**) NVIDIA(0): Enabling 2D acceleration
[ 1649.008] (**) NVIDIA(0): Option "UseDisplayDevice" set to "none"; enabling NoScanout
[ 1649.008] (**) NVIDIA(0): mode
[ 1649.008] (II) Loading sub module "glxserver_nvidia"
[ 1649.008] (II) LoadModule: "glxserver_nvidia"
[ 1649.008] (II) Loading /usr/lib64/xorg/modules/extensions/libglxserver_nvidia.so
[ 1649.016] (II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
[ 1649.016] compiled for 1.6.99.901, module version = 1.0.0
[ 1649.016] Module class: X.Org Server Extension
[ 1649.016] (II) NVIDIA GLX Module 455.28 Wed Sep 30 01:01:28 UTC 2020
[ 1649.017] (II) NVIDIA: The X server supports PRIME Render Offload.
[ 1649.018] (II) NVIDIA(0): NVIDIA GPU GeForce RTX 2080 (TU104-A) at PCI:177:0:0 (GPU-0)
[ 1649.018] (--) NVIDIA(0): Memory: 8388608 kBytes
[ 1649.018] (--) NVIDIA(0): VideoBIOS: 90.04.50.00.0d
[ 1649.018] (II) NVIDIA(0): Detected PCI Express Link width: 16X
[ 1649.018] (II) NVIDIA(0): Validated MetaModes:
[ 1649.018] (II) NVIDIA(0): "NULL"
[ 1649.018] (II) NVIDIA(0): Virtual screen size determined to be 640 x 480
[ 1649.018] (**) NVIDIA(0): DPI set to (96, 96); computed from "DPI" X config option
[ 1649.018] xorgxrdpScreenInit:
[ 1649.018] (WW) NVIDIA: Failed to bind sideband socket to
[ 1649.018] (WW) NVIDIA: '/var/run/nvidia-xdriver-7ee86116' Permission denied
[ 1649.018] (II) NVIDIA: Using 24576.00 MB of virtual memory for indirect memory
[ 1649.018] (II) NVIDIA: access.
[ 1649.043] (II) NVIDIA(0): Setting mode "NULL"
[ 1649.049] (==) NVIDIA(0): Disabling shared memory pixmaps
[ 1649.049] (==) NVIDIA(0): Backing store enabled
[ 1649.049] (==) NVIDIA(0): Silken mouse enabled
[ 1649.050] (==) NVIDIA(0): DPMS enabled
[ 1649.050] (II) Loading sub module "dri2"
[ 1649.050] (II) LoadModule: "dri2"
[ 1649.050] (II) Module "dri2" already built-in
[ 1649.050] (II) NVIDIA(0): [DRI2] Setup complete
[ 1649.050] (II) NVIDIA(0): [DRI2] VDPAU driver: nvidia
$glxinfo | grep render
direct rendering: Yes
OpenGL renderer string: GeForce RTX 2080/PCIe/SSE2
GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth,
GL_NVX_conditional_render, GL_NVX_gpu_memory_info, GL_NVX_nvenc_interop,
GL_NV_compute_shader_derivatives, GL_NV_conditional_render,
GL_NV_path_rendering, GL_NV_path_rendering_shared_edge,
GL_NV_stereo_view_rendering, GL_NV_texgen_reflection,
GL_ARB_compute_variable_group_size, GL_ARB_conditional_render_inverted,
GL_NVX_conditional_render, GL_NVX_gpu_memory_info, GL_NVX_nvenc_interop,
GL_NV_compute_shader_derivatives, GL_NV_conditional_render,
GL_NV_path_rendering, GL_NV_path_rendering_shared_edge,
GL_NV_stereo_view_rendering, GL_NV_texgen_reflection,
GL_EXT_multisample_compatibility, GL_EXT_multisampled_render_to_texture,
GL_EXT_multisampled_render_to_texture2,
GL_EXT_raster_multisample, GL_EXT_render_snorm, GL_EXT_robustness,
GL_NV_conditional_render, GL_NV_conservative_raster,
GL_NV_packed_float_linear, GL_NV_path_rendering,
GL_NV_path_rendering_shared_edge, GL_NV_pixel_buffer_object,
GL_NV_shadow_samplers_cube, GL_NV_stereo_view_rendering,
GL_OES_element_index_uint, GL_OES_fbo_render_mipmap,
GL_OVR_multiview_multisampled_render_to_texture
$nvidia-smi
| NVIDIA-SMI 455.28 Driver Version: 455.28 CUDA Version: 11.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce RTX 2080 Off | 00000000:B1:00.0 On | N/A |
| 48% 28C P8 6W / 215W | 296MiB / 7982MiB | 9% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 3261 G /usr/bin/X 133MiB |
| 0 N/A N/A 3392 G compton 3MiB |
| 0 N/A N/A 4751 G Xorg 136MiB |
| 0 N/A N/A 4790 G compton 3MiB |
| 0 N/A N/A 5168 G ...B2020a/bin/glnxa64/MATLAB 4MiB |
| 0 N/A N/A 5635 G .../glnxa64/cef_resources -- 11MiB |
+-----------------------------------------------------------------------------+
'gpuDevice'command in MATLAB shows:
ans =
CUDADevice with properties:
Name: 'GeForce RTX 2080'
Index: 1
ComputeCapability: '7.5'
SupportsDouble: 1
DriverVersion: 11.1000
ToolkitVersion: 10.1000
MaxThreadsPerBlock: 1024
MaxShmemPerBlock: 49152
MaxThreadBlockSize: [1024 1024 64]
MaxGridSize: [1脳3 double]
SIMDWidth: 32
TotalMemory: 8.3701e+09
AvailableMemory: 7.7242e+09
MultiprocessorCount: 46
ClockRateKHz: 1710000
ComputeMode: 'Default'
GPUOverlapsTransfers: 1
KernelExecutionTimeout: 1
CanMapHostMemory: 1
DeviceSupported: 1
DeviceSelected: 1
Most helpful comment
@jsorg71
[ 8262.499] (EE)
[ 8262.499] (EE) Backtrace:
[ 8262.499] (EE) 0: Xorg (xorg_backtrace+0x4d) [0x564e45da8b2d]
[ 8262.499] (EE) 1: Xorg (0x564e45bff000+0x1ad7b5) [0x564e45dac7b5]
[ 8262.499] (EE) 2: /lib64/libpthread.so.0 (0x7fbc25a48000+0x13090) [0x7fbc25a5b090]
[ 8262.499] (EE) 3: /usr/lib64/xorg/modules/drivers/nvidia_drv.so (0x7fbc24a03000+0x504eb0) [0x7fbc24f07eb0]
[ 8262.499] (EE)
[ 8262.499] (EE) Segmentation fault at address 0x0
[ 8262.499] (EE)
Fatal server error:
[ 8262.499] (EE) Caught signal 11 (Segmentation fault). Server aborting
[ 8262.499] (EE)
[ 8262.499] (EE)
https://github.com/jsorg71/xorgxrdp/tree/nvidia_hack
nvidia_hack crashed in Linux 5.8.14-gentoo with nvidia-drivers 455.28, it works occasionally, succeed 3 times in
20+ attempts锛宐ut it's exciting thing. Looking forward to your great work!