https://bugs.freedesktop.org/show_bug.cgi?id=111272
Bug ID: 111272 Summary: [DRI_PRIME] Error on multi GPU with only one enabled Product: DRI Version: XOrg git Hardware: Other OS: All Status: NEW Severity: normal Priority: medium Component: DRM/AMDgpu Assignee: dri-devel@lists.freedesktop.org Reporter: parker.l.reed@gmail.com
Created attachment 144921 --> https://bugs.freedesktop.org/attachment.cgi?id=144921&action=edit DRI PRIME 0
I have a Razer Blade Stealth late 2016 with a Razer Core V1 and an RX 560.
Arch Linux
Linux stealth 5.2.1-arch1-1-fsync #1 SMP PREEMPT Mon Jul 22 17:40:06 PDT 2019 x86_64 GNU/Linux
mesa-aco-git 19.2.0_devel.114720.5c6077221dd-1 (Also happens on normal mesa-git and mesa stable)
With only the AMDGPU enabled for Xorg, DRI_PRIME=1 attempts to use Intel, falls back to AMD as expected, but has the weird behavior of completely bypassing vsync. DRI_PRIME=0 works as expected
Expected behavior is to ignore the Intel card since it's not currently loaded in Xorg. I can obviously set DRI_PRIME=0 and be fine, but the DRI_PRIME=1 behavior seems to be a bug.
Xorg conf
Section "Device" Identifier "AMD" Driver "amdgpu" BusID "PCI:07:0:0" EndSection
xrandr corroborates this in the listproviders output
Providers: number : 1 Provider 0: id: 0x57 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 5 outputs: 3 associated providers: 0 name:AMD Radeon (TM) RX 460 Graphics @ pci:0000:07:00.0
DRI_PRIME=1 glxinfo reports the same info aside from an error at the top of the output
libGL error: Different GPU, but blitImage not implemented for this driver libGL error: failed to load driver: i965
Full glxinfo attached for DRI_PRIME=0, DRI_PRIME=1, and DRI_PRIME=1 with vblank_mode=1
glxgears for FPS example
$ DRI_PRIME=0 glxgears Running synchronized to the vertical refresh. The framerate should be approximately the same as the monitor refresh rate. 333 frames in 5.0 seconds = 66.549 FPS 300 frames in 5.0 seconds = 59.999 FPS 300 frames in 5.0 seconds = 59.997 FPS 301 frames in 5.0 seconds = 60.001 FPS
$ DRI_PRIME=1 glxgears libGL error: Different GPU, but blitImage not implemented for this driver libGL error: failed to load driver: i965 Running synchronized to the vertical refresh. The framerate should be approximately the same as the monitor refresh rate. 42158 frames in 5.0 seconds = 8431.391 FPS 42406 frames in 5.0 seconds = 8481.144 FPS 42266 frames in 5.0 seconds = 8453.060 FPS 42444 frames in 5.0 seconds = 8488.649 FPS
$ vblank_mode=1 DRI_PRIME=1 glxgears libGL error: Different GPU, but blitImage not implemented for this driver libGL error: failed to load driver: i965 ATTENTION: default value of option vblank_mode overridden by environment. 42081 frames in 5.0 seconds = 8415.999 FPS 42527 frames in 5.0 seconds = 8505.298 FPS 42591 frames in 5.0 seconds = 8518.191 FPS 42508 frames in 5.0 seconds = 8501.433 FPS