xserver/hw/xfree86
Alex Goins 44cb9578c0 modesetting: Disable Reverse PRIME for i915
Reverse PRIME seems to be designed with discrete graphics as a sink in
mind, designed to do an extra copy from sysmem to vidmem to prevent a
discrete chip from needing to scan out from sysmem.

The criteria it used to detect this case is if we are a GPU screen and
Glamor accelerated. It's possible for i915 to fulfill these conditions,
despite the fact that the additional copy doesn't make sense for i915.

Normally, you could just set AccelMethod = none as an option for the device
and call it a day. However, when running with modesetting as both the sink
and the source, Glamor must be enabled.

Ideally, you would be able to set AccelMethod individually for devices
using the same driver, but there seems to be a bug in X option parsing that
makes all devices on a driver inherit the options from the first detected
device. Thus, glamor needs to be enabled for all or for none until that bug
(if it's even a bug) is fixed.

Nonetheless, it probably doesn't make sense to do the extra copy on i915
even if Glamor is enabled for the device, so this is more user friendly by
not requiring users to disable acceleration for i915.

v1: N/A
v2: N/A
v3: N/A
v4: Initial commit
v5: Unchanged
v6: Rebase onto ToT
v7: NULL check and free drmVersionPtr

Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Alex Goins <agoins@nvidia.com>
2016-06-28 12:56:43 -04:00
..
common Allow ConstantDeceleration < 1.0 2016-06-10 10:54:48 +10:00
ddc xfree86: Create EDID atom from the root window callback (v2) 2016-04-18 11:23:10 -04:00
dixmods Also dump passive grabs on XF86LogGrabInfo 2015-11-10 15:12:21 +10:00
doc xfree86: Unexport xf86Initialising, remove xf86ServerIsInitialising 2016-04-18 11:22:58 -04:00
dri dri1: Hide the SIGIO details from drivers 2016-06-08 11:36:31 -04:00
dri2 xrandrprovider: Do not use separate lists for unbound / source / offload slaves 2016-06-17 11:35:58 +02:00
drivers modesetting: Disable Reverse PRIME for i915 2016-06-28 12:56:43 -04:00
exa build: Remove stale miext/cw include paths 2015-10-27 13:46:13 -04:00
fbdevhw fbdevhw: Fix a const qualifier warning 2015-09-23 15:18:24 -04:00
glamor_egl glamor: Share code for put_image handling. 2014-06-15 23:20:09 +01:00
i2c Convert hw/xfree86 to new *allocarray functions 2015-04-21 16:58:08 -07:00
int10 x86emu: Change include order to avoid conflict with system header 2016-04-29 11:05:38 -04:00
loader xfree86: Finish removing font modules 2016-03-14 11:37:32 -04:00
man xfree86: Undocument UseSIGIO in xorg.conf 2016-06-08 11:36:32 -04:00
modes randr/xf86: Add PRIME Synchronization / Double Buffer 2016-06-28 12:56:17 -04:00
os-support dix: Use OsSignal() not signal() 2016-06-08 11:36:31 -04:00
parser dix: Use OsSignal() not signal() 2016-06-08 11:36:31 -04:00
ramdac xfree86: Set xf86CrtcConfigRec cursor pointer to NULL in HideCursor 2016-05-26 09:13:20 -07:00
shadowfb Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
utils Add XNFcallocarray() to allow xnfcalloc() to check for overflow 2015-04-21 16:57:07 -07:00
vbe xfree86: Change VBE version early-out to 1.2. (#22672) 2016-03-14 11:44:10 -04:00
vgahw Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
x86emu x86emu: Change include order to avoid conflict with system header 2016-04-29 11:05:38 -04:00
.gitignore Xorg: Add Xorg.wrap to hw/xfree86/.gitignore 2014-04-18 11:39:16 +02:00
Makefile.am vidmode: move to a separate library of its own 2016-02-29 16:29:01 -05:00
Xorg.sh.in xfree86: rename Xorg.bin to Xorg 2015-01-05 09:53:58 +10:00
sdksyms.sh vidmode: Hide implementation details 2015-07-08 16:40:58 -04:00
xorg-wrapper.c Xorg.wrap: activate libdrm based detection for KMS drivers 2015-12-03 11:05:37 -05:00
xorgconf.cpp xfree86: fix wrong DontZap documentation (#71113) 2014-05-24 20:02:56 +10:00