Go to file
Lyude Paul 7a44e8d400 modesetting: Actually disable CRTCs in legacy mode
Believe it or not, somehow we've never done this in legacy mode! We
currently simply change the DPMS property on the CRTC's output's
respective DRM connector, but this means that we're just setting the
CRTC as inactive-not disabled. From the perspective of the kernel, this
means that any shared resources used by the CRTC are still in use.

This can cause problems for drivers that are not yet fully atomic,
despite using the atomic helpers internally. For instance: if CRTC-1 and
CRTC-2 are still enabled and use shared resources within the kernel (an
MST topology, for example), and then userspace tries to go enable CRTC-3
on the same topology this might suddenly fail if CRTC-3 needs the shared
resources CRTC-1 and CRTC-2 are using. While I don't know of any
situations in the mainline kernel that actually trigger this, future
plans for reworking the atomic check of MST drivers are absolutely
going to make this into a real issue (they already are in my WIP
branches for the kernel).

So: actually do the right thing here and disable CRTCs when they're not
going to be used anymore, even in legacy mode.

Signed-off-by: Lyude Paul <lyude@redhat.com>
2018-11-29 16:21:26 +00:00
composite Switch automatic composite update to WorkQueue 2018-10-03 10:28:52 +02:00
config config/udev: Include header <sys/sysmacros.h> to use major/minor 2018-11-14 10:26:48 -05:00
damageext Use ARRAY_SIZE all over the tree 2017-10-30 13:45:20 -04:00
dbe meson: Distribute more SDK headers 2018-04-02 13:42:08 -04:00
dix dix: ensure work queues are cleared on reset 2018-11-19 19:37:10 +00:00
doc dix: Remove LegalModifier() 2018-09-28 16:25:17 -04:00
dri3 dri3: Switch fds_from_pixmap to stdint types. 2018-05-08 11:59:41 -04:00
exa exa: Use PictureMatchFormat for source-only picture format description 2018-06-01 11:57:15 +02:00
fb fboverlay: move bpp checks above malloc 2018-09-12 12:26:48 +10:00
glamor glamor: Add support for exporting depth 15/8 pixmaps 2018-10-23 17:00:50 +00:00
glx glx: check for indirect context in CreateContextAttribsARB() 2018-09-10 14:54:23 +00:00
hw modesetting: Actually disable CRTCs in legacy mode 2018-11-29 16:21:26 +00:00
include dix: ensure work queues are cleared on reset 2018-11-19 19:37:10 +00:00
m4 Add ax_pthread.m4 to m4/ 2016-05-29 19:20:51 -07:00
man dix: Remove the magic WhenMapped backing store hack 2018-10-23 18:37:46 +00:00
mi mi: Factor out miSaveScreen 2018-09-28 16:25:01 -04:00
miext miext/damage: take care of the coordinate mode in damagePolyPoint 2018-09-25 21:27:08 -07:00
os os: Establish new connections synchronously not on the work queue 2018-11-13 10:36:40 -05:00
present present: Remove present_event_abandon() 2018-10-25 15:05:12 +00:00
pseudoramiX Unvalidated lengths 2017-10-10 23:33:34 +02:00
randr randr: rrCheckPixmapBounding should only increase screen size 2018-08-24 09:55:48 +02:00
record Add a Meson build system alongside autotools. 2017-04-26 15:25:27 -07:00
render animcur: Fix crash when removing a master device 2018-04-24 14:28:27 -04:00
test test: Initialize the pixmap in damage test 2018-09-28 20:02:54 +00:00
Xext shm: Pick the shm dir at run time, not build time. 2018-09-19 21:36:16 +00:00
xfixes xfixes: Restore monitoring of animated cursors 2018-02-14 13:52:45 -05:00
Xi Xi: Use current device active grab to deliver touch events if any 2018-11-12 02:57:10 +00:00
xkb xkb: Write the _XKB_RULES_NAMES window property synchronously 2018-11-13 10:36:18 -05:00
.appveyor.yml appveyor: use meson 2018-03-21 10:16:44 -04:00
.dir-locals.el Add .dir-locals.el 2013-08-17 12:17:36 +02:00
.gitignore .gitignore: Add new autotools file 'test-driver' 2014-04-21 13:41:42 -07:00
.gitlab-ci.yml gitlab: Skip the docker-in-docker step 2018-09-12 20:43:42 +00:00
.travis.yml travis: Drop Xcode 8.2 2018-03-21 12:15:28 -04:00
autogen.sh autogen: Set a default subject prefix for patches 2016-02-08 17:41:38 -05:00
configure.ac Update configure.ac bug URL for gitlab migration 2018-11-25 12:59:41 -08:00
COPYING modesetting: Merge modesetting's COPYING into the xserver's. 2014-09-15 12:46:02 -07:00
devbook.am doc: Create a script to filter xmlto output 2015-01-05 14:24:06 -08:00
docbook.am docbook.am: embed css styles inside the HTML HEAD element 2011-09-21 14:07:49 -07:00
Makefile.am Update README for gitlab migration 2018-11-25 20:55:11 +00:00
manpages.am man: Fix automake seddery 2018-05-08 12:15:30 -04:00
meson_options.txt xorg: Don't log "Build Operating System: Linux 4.9.0-5-amd64 x86_64 Debian" 2018-09-19 13:15:04 -07:00
meson.build meson: Fix building with -Ddga=false 2018-09-06 16:42:04 -04:00
README.md Update README for gitlab migration 2018-11-25 20:55:11 +00:00
xorg-server.m4 xorg-server.m4: just all cflags instead of just sdkdir 2018-09-20 20:12:24 +01:00
xorg-server.pc.in xfree86: link modules against Xorg symbols on Cygwin 2012-04-05 21:57:07 -05:00
xserver.ent.in doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00

X Server

The X server accepts requests from client applications to create windows, which are (normally rectangular) "virtual screens" that the client program can draw into.

Windows are then composed on the actual screen by the X server (or by a separate composite manager) as directed by the window manager, which usually communicates with the user via graphical controls such as buttons and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the following article: https://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the Xorg mailing list:

https://lists.freedesktop.org/mailman/listinfo/xorg

The master development code repository can be found at:

https://gitlab.freedesktop.org/xorg/xserver

For patch submission instructions, see:

https://www.x.org/wiki/Development/Documentation/SubmittingPatches

As with other projects hosted on freedesktop.org, X.Org follows its Code of Conduct, based on the Contributor Covenant. Please conduct yourself in a respectful and civilized manner when using the above mailing lists, bug trackers, etc:

https://www.freedesktop.org/wiki/CodeOfConduct