Dear Maintainer,
I'm using a laptop with muxless hybrid video (RS880M integrated, Radeon
HD 6400M discrete). When I run an OpenGL fullscreen application with
rendering set to discrete GPU, Xorg segfaults with some message like
"double free or corruption" being shown for a very short time. If the
app is NOT fullscreen, it runs normally, that is, 2.5-3x faster than
rendering on integrated GPU, as expected.
The easiest steps to reproduce this behavior for me is executing these
commands in terminal:
1) Determine provider IDs via xrandr:
# xrandr --listproviders
I get:
Providers: number : 2
Provider 0: id: 0x88 cap: 0xf, Source Output, Sink Output, Source
Offload, Sink Offload crtcs: 2 outputs: 3 associated providers: 0
name:radeon
Provider 1: id: 0x53 cap: 0xf, Source Output, Sink Output, Source
Offload, Sink Offload crtcs: 4 outputs: 0 associated providers: 0
name:radeon
2) Use integrated GPU as a sink provider for discrete GPU:
# xrandr --setprovideroffloadsink 0x53 0x88
3) Run demo app in fullscreen mode, using discrete GPU:
# env DRI_PRIME=1 glxgears -fullscreen
The segfault error happens right after the last command is executed.
When the -fullscreen flag is not specified, glxgears runs OK. It also
runs normally in fullscreen mode if discrete GPU is not selected for
rendering via PRIME, with integrated one being used instead. The same
goes with any other OpenGL application that can be run in fullscreen.
Sincerely,
Ilyas Gasanov