Bug 71958

Summary: xrandr --setprovideroffloadsink fails on Lenovo Y470p
Product: xorg Reporter: carasin <carasin.berlogue>
Component: Driver/intelAssignee: Chris Wilson <chris>
Status: RESOLVED NOTOURBUG QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: carasin.berlogue, i.gnatenko.brain
Version: 7.7 (2012.06)   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
See Also: https://bugzilla.redhat.com/show_bug.cgi?id=1033903
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
lspci -v log
none
lsmod log
none
X.org log
none
dmesg log none

Description carasin 2013-11-24 09:46:17 UTC
Created attachment 89703 [details]
lspci -v log

Description of problem:

Fedora 20, fresh installation, up to date. I wanted to try launching some 3D-application via discrete card. Earlier I did so (on Fedora 19):

   $ xrandr --setprovideroffloadsink <prov_xid> <sink_xid>
   $ DRI_PRIME=<prov_num> <app_name>

The numbers <prov_xid> and <sink_xid> were decimals (from xrandr --listproviders output). But now I have the following xrandr output (on Fedora 20):

   $ xrandr --listproviders 
   Providers: number : 2
   Provider 0: id: 0x7b cap: 0x0 crtcs: 2 outputs: 4 associated providers: 0 name:Intel
   Provider 1: id: 0x55 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 0 associated providers: 0 name:radeon

The numbers <prov_xid> and <sink_xid> are the hexadecimals now. xrandr --setprovideroffloadsink fails with them:

   $ xrandr --setprovideroffloadsink 0x55 0x7b
   X Error of failed request:  BadValue (integer parameter out of range for operation)
     Major opcode of failed request:  139 (RANDR)
     Minor opcode of failed request:  34 ()
     Value in failed request:  0x7b
     Serial number of failed request:  16
     Current serial number in output stream:  17
_______________________

Version-Release number of selected component (if applicable):

xorg-x11-server-utils-7.7-2.fc20.x86_64
kernel-3.11.8-300.fc20.x86_64
xorg-x11-drv-intel-2.21.15-4.fc20.x86_64
xorg-x11-drv-ati-7.2.0-3.20131101git3b38701.fc20.x86_64
mesa-dri-drivers-9.2.3-1.20131114.fc20.x86_64
kde-4.11.3-3.fc20.x86_64
_______________________

How reproducible:

always
_______________________

Steps to Reproduce:

1. $ xrandr --listproviders 
   Providers: number : 2
   Provider 0: id: 0x7b cap: 0x0 crtcs: 2 outputs: 4 associated providers: 0 name:Intel
   Provider 1: id: 0x55 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 0 associated providers: 0 name:radeon

2. $ xrandr --setprovideroffloadsink 0x55 0x7b
   X Error of failed request:  BadValue (integer parameter out of range for operation)
     Major opcode of failed request:  139 (RANDR)
     Minor opcode of failed request:  34 ()
     Value in failed request:  0x7b
     Serial number of failed request:  16
     Current serial number in output stream:  17
_______________________

Actual results:

xrandr --setprovideroffloadsink <prov_xid> <sink_xid> fails.
_______________________

Expected results:

xrandr --setprovideroffloadsink <prov_xid> <sink_xid> works fine.
_______________________
Additional info:

Lenovo Y470p
GPU 1: Intel HD3000
GPU 2: AMD Radeon HD 7690M
Comment 1 carasin 2013-11-24 09:46:38 UTC
Created attachment 89704 [details]
lsmod log
Comment 2 carasin 2013-11-24 09:47:08 UTC
Created attachment 89705 [details]
X.org log
Comment 3 carasin 2013-11-24 09:47:27 UTC
Created attachment 89706 [details]
dmesg log
Comment 4 carasin 2013-11-24 11:04:52 UTC
I've downgraded xorg-x11-drv-intel package to 2.21.14-1.fc20.x86_64 and now xrandr --setprovideroffloadsink 0x55 0x7b works fine.

This bug is a regression at the xf86-video-intel-2.21.15 driver.
Comment 5 carasin 2013-11-24 14:59:11 UTC
Package xorg-x11-drv-intel-2.21.15-4.fc20.x86_64 is built with two xwayland patches: 0001-xwayland-Add-xwayland-support.patch and 0002-xwayland-shortcut-Enter-ExitVT.patch

I've locally built xorg-x11-drv-intel-2.21.15-4 without both xwayland patches.
Now xrandr --setprovideroffloadsink 0x55 0x7b works fine!

   $ xrandr --listproviders 
   Providers: number : 3
   Provider 0: id: 0x7b cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 4 associated providers: 2 name:Intel
   Provider 1: id: 0x55 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 0 associated providers: 2 name:radeon
   Provider 2: id: 0x55 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 0 associated providers: 2 name:radeon

   $ xrandr --setprovideroffloadsink 0x55 0x7b

There is no error output. That's DRI_PRIME=1 glxinfo output:

   $ DRI_PRIME=1 glxinfo | grep OpenGL
   OpenGL vendor string: X.Org
   OpenGL renderer string: Gallium 0.4 on AMD TURKS
   OpenGL core profile version string: 3.1 (Core Profile) Mesa 9.2.3
   OpenGL core profile shading language version string: 1.40
   OpenGL core profile context flags: (none)
   OpenGL core profile extensions:
   OpenGL version string: 3.0 Mesa 9.2.3
   OpenGL shading language version string: 1.30
   OpenGL context flags: (none)
   OpenGL extensions:

This bug is located at the xwayland patches.
Comment 6 Chris Wilson 2013-11-24 16:05:07 UTC
So the way the rpm is built is causing the breaking.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.