Commit Graph

42 Commits

Author SHA1 Message Date
Zhiyi Zhang be54adcffc winex11.drv: Support XRandR display device handler.
XRandR supports multiple GPUs and runtime device change
compared to Xinerama.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-23 19:44:18 +02:00
Zhiyi Zhang 95a0a5c755 winex11.drv: Add xrandr_get_screen_resources() helper.
Getting screen resources will be used in multiple places.
So put it in a function.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-21 14:18:49 +02:00
Zebediah Figura 70d842b106 winex11: Resize the screen when changing CRTC modes.
Based on a patch by Gabriel Corona.

According to the RandR spec for RRSetCrtcConfig:

"The entire area of the CRTC must fit within the screen size, else a Match
error results. As an example, rotating the screen so that a single CRTC fills
the entire screen before and after may necessitate disabling the CRTC,
resizing the screen, then re-enabling the CRTC at the new configuration to
avoid an invalid intermediate configuration."

This patch involves resizing the screen also when shrinking a CRTC, not just
when expanding it past the current screen size. This is partially because we
have no way to reliably determine the current display width (DisplayWidth() is
never updated past opening the connection, and RandR exposes no way to
retrieve the screen dimensions), and partially because it's probably what the
user wants anyway (e.g. it's what the `xrandr` configuration app does when the
screen size is not expliticly specified).

This patch fixes TestBot failures on the Debian machines for ddraw, d3d8, and
d3d9 device tests.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=33290
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-11 09:15:32 +02:00
Henri Verbeet 8a348a4b99 winex11: Only warn when an RandR output has no modes.
This can legitimately happen when the output is disconnected.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-20 14:02:40 +09:00
Michael Stefaniuc f256e1476c winex11.drv: Remove an unused assignment (PVS-Studio). 2015-01-23 15:32:59 +01:00
Erich E. Hoover 8e9e4a657f winex11.drv: Update the check for broken nVidia RandR to test for the number of resolutions instead of the number of modes. 2015-01-22 21:35:22 +01:00
Sam Edwards 3a5eef4eed winex11: Cache XRandR 1.2 display mode. 2013-05-13 11:05:13 +02:00
Sam Edwards 3fc2bccac2 winex11: Cache XRandR 1.0 display mode. 2013-05-13 11:05:10 +02:00
Michael Stefaniuc abf4250c72 winex11.drv: The winediag debug channel is only used for HAVE_XRRGETSCREENRESOURCES. 2012-11-30 19:12:16 +01:00
Henri Verbeet 8776e1c0e1 winex11: Detect broken NVIDIA RandR setups. 2012-11-26 11:51:18 +01:00
Henri Verbeet 3ac14606ae winex11: Use the first active CRTC as primary if no primary is explicitly set. 2012-09-28 11:26:36 +02:00
Rico Schüller c67e48b9fa winex11.drv: Remove unneeded variable definition. 2012-09-10 11:47:11 +02:00
Henri Verbeet e426fa9cb9 winex11: Try harder to get usable RandR screen resources. 2012-08-20 11:00:29 +02:00
Henri Verbeet 28a9b39372 winex11: Try XRandR 1.0 if 1.2 fails. 2012-08-20 10:59:52 +02:00
Alexandre Julliard cf1be58706 winex11: Remove the remaining X11 locking calls. 2012-08-16 16:48:00 +02:00
Henri Verbeet 2b4a7912ec winex11: Add support for XRandR 1.3. 2012-07-16 14:26:11 +02:00
Henri Verbeet cf6f8d2eb5 winex11: Add support for XRandR 1.2. 2012-07-16 14:25:42 +02:00
Henri Verbeet 92e04256a9 winex11: Simplify the XRandR mode matching code a bit. 2012-07-13 10:30:21 -05:00
Henri Verbeet b4a31d0a9e winex11: Get rid of some needless globals. 2012-07-11 11:17:21 -05:00
Henri Verbeet 5ed890904b winex11: Simplify X11DRV_XRandR_Init() error handling a bit. 2012-07-11 11:17:18 -05:00
Francois Gouget 98c605d6c7 winex11.drv: We must include Xlib.h before Xrandr.h. 2012-07-11 10:00:51 -05:00
Henri Verbeet 3e5c76bd09 winex11: Introduce a separate function for initializing the list of XRandR display modes. 2012-07-10 10:40:17 -05:00
Henri Verbeet 76725f9885 winex11: Remove some unused includes from xrandr.c. 2012-07-10 10:40:08 -05:00
Henri Verbeet 6c4465f4ac winex11: Get rid of xrandr.h. 2012-07-09 15:05:02 -04:00
Henri Verbeet 3ea8de2637 winex11: Use our own structure for mode information. 2012-07-03 14:57:07 +02:00
Alexandre Julliard a8575a8b4d winex11: Add infrastructure for managing the extra data of generic extension events. 2011-04-13 14:13:29 +02:00
Roderick Colenbrander cce1c44afa winex11: Get rid of depth conversion fixme. 2009-07-10 13:07:29 +02:00
Francois Gouget d7033b4be5 xrandr: X11DRV_XRandR_Cleanup() is unused so remove it. 2009-02-05 13:14:54 +01:00
Andrew Talbot ff380900c2 winex11.drv: Sign-compare warnings fix. 2008-12-08 12:01:03 +01:00
Alexandre Julliard c19af910eb winex11.drv: Don't create a win_data structure for the desktop window, except in the process that owns it.
Handle desktop size changes by sending a message to the desktop owner.
2008-01-17 19:53:59 +01:00
Stefan Dösinger 5461d505d7 winex11: Activate the depth-bpp difference. 2007-12-17 12:25:50 +01:00
Stefan Dösinger ccab10bd46 winex11: Distinguish between bpp and depth. 2007-12-17 12:24:51 +01:00
Dmitry Timoshkov a7dba33cf3 winex11.drv: Use registry settings as a default display mode. 2007-12-05 12:21:32 +01:00
Alexandre Julliard a851854a36 configure: Merge the libX11 and libXext existence check with the soname check. 2007-07-09 22:43:45 +02:00
Alexandre Julliard 629639ee60 configure: Merge the libXrender existence check with the soname check. 2007-07-04 12:47:57 +02:00
Alexandre Julliard af928ecbfa configure: Merge the libXrandr existence check with the soname check. 2007-07-04 12:45:03 +02:00
Alexandre Julliard 5a95cfbd9c configure: Export the shared library extension instead of hardcoding .so. 2007-07-02 14:35:05 +02:00
Francois Gouget 3e6aa43229 winex11.drv: Catch and report screen resolution change errors. 2007-02-23 11:24:16 +01:00
Francois Gouget c255bf4676 xrandr: Small X11DRV_XRandR_(Get|Set)CurrentMode() code optimisations. 2007-01-12 12:33:40 +01:00
Vitaliy Margolen 6069d0d596 winex11drv: Win64 printf format warning fixes. 2006-10-09 15:23:33 +02:00
Alexandre Julliard 241abf4e1b winex11.drv: Make some functions and variables static, and get rid of x11ddraw.h. 2006-08-02 13:21:58 +02:00
Alexandre Julliard bdb4fab7a7 x11drv: Renamed the x11drv directory to winex11.drv. 2006-06-16 09:57:50 +02:00