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
https://bugs.freedesktop.org/show_bug.cgi?id=111272
--- Comment #1 from Parker Reed parker.l.reed@gmail.com --- Created attachment 144922 --> https://bugs.freedesktop.org/attachment.cgi?id=144922&action=edit DRI PRIME 1
https://bugs.freedesktop.org/show_bug.cgi?id=111272
--- Comment #2 from Parker Reed parker.l.reed@gmail.com --- Created attachment 144923 --> https://bugs.freedesktop.org/attachment.cgi?id=144923&action=edit DRI PRIME 1 vblank mode 1
https://bugs.freedesktop.org/show_bug.cgi?id=111272
--- Comment #3 from Alex Deucher alexdeucher@gmail.com --- Please attach your xorg log and dmesg output. Generally the laptop panel is only physically connected to the integrated GPU so you have to use the integrated GPU to get a display.
https://bugs.freedesktop.org/show_bug.cgi?id=111272
--- Comment #4 from Parker Reed parker.l.reed@gmail.com --- I'm not using the laptop panel or connector. This is a Thunderbolt eGPU.
HDMI is direct into the external RX 560.
While testing I just realized this behavior has nothing to do with multi GPU. Ran the same glxgears test on desktop that only has RX 480 and iGPU disabled in BIOS. Same behavior.
$ DRI_PRIME=1 glxgears Running synchronized to the vertical refresh. The framerate should be approximately the same as the monitor refresh rate. 28663 frames in 5.0 seconds = 5732.486 FPS 26437 frames in 5.0 seconds = 5286.734 FPS 26203 frames in 5.0 seconds = 5239.404 FPS 26759 frames in 5.0 seconds = 5346.603 FPS
Will attach the current Xorg log.
https://bugs.freedesktop.org/show_bug.cgi?id=111272
--- Comment #5 from Parker Reed parker.l.reed@gmail.com --- Created attachment 144924 --> https://bugs.freedesktop.org/attachment.cgi?id=144924&action=edit dmesg output
https://bugs.freedesktop.org/show_bug.cgi?id=111272
--- Comment #6 from Parker Reed parker.l.reed@gmail.com --- Created attachment 144925 --> https://bugs.freedesktop.org/attachment.cgi?id=144925&action=edit Xorg log
https://bugs.freedesktop.org/show_bug.cgi?id=111272
Alex Deucher alexdeucher@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #144925|text/x-log |text/plain mime type| |
https://bugs.freedesktop.org/show_bug.cgi?id=111272
Michel Dänzer michel@daenzer.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|dri-devel@lists.freedesktop |mesa-dev@lists.freedesktop. |.org |org Component|DRM/AMDgpu |GLX Version|XOrg git |unspecified Product|DRI |Mesa QA Contact| |mesa-dev@lists.freedesktop. | |org
--- Comment #7 from Michel Dänzer michel@daenzer.net --- Due to DRI_PRIME=1, libGL tries to initialize the i965 driver with DRI3, which fails:
libGL error: Different GPU, but blitImage not implemented for this driver libGL error: failed to load driver: i965
So it falls back to DRI2, which uses the AMD GPU, because the Intel one wasn't initialized in Xorg. DRI2 doesn't support sync-to-vblank via PRIME.
Reassigning to Mesa for now, but DRI_PRIME=1 really isn't intended to be used with a single GPU.
dri-devel@lists.freedesktop.org