http://bugs.winehq.org/show_bug.cgi?id=25312
Summary: WINE needs to support XRandR 1.2 Product: Wine Version: unspecified Platform: All OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winex11.drv AssignedTo: wine-bugs@winehq.org ReportedBy: owen.riddy@gmail.com
Created an attachment (id=32154) --> (http://bugs.winehq.org/attachment.cgi?id=32154) A patch to add support for XRandA 1.2. It will break many things.
Wine currently supports XRandR 1.1, which is fine for single-monitor users. It is bad for multi-monitor users because every time wine tries to change the resolution it completely mucks everything up, and usually switches off a monitor, eg, bug 16958 (which is a XRandR problem).
XRandR 1.2 introduced some very major architecture changes (*) to support multi-monitor setups.
I've attached a badly formatted & crufty patch that implements the required bits of XRandR 1.2. Some issues remain:
A) Fullscreen applications no longer occupy the whole X Screen - only one physical screen. Games will need to confine the mouse pointer to that screen to remain playable, and I don't know where in Wine to do this. This may run afoul of bug 6971.
B) I'm not certain how this patch might interact with DirectDraw & Direct3D - it probably breaks the screen co-ordinate assumptions in wine.
I don't think it is worth tidying this patch to the formatting standard required for Wine until A is dealt with.
The patch includes a lot of garbage included as I tried to work out how ddraw and xrandr interacted (sorry), and what Xinerama was doing in the mix. The really important parts are X11DRV_XRandR_Init(void), make_modes(void), int X11DRV_XRandR_GetCurrentMode(void) and LONG X11DRV_XRandR_SetCurrentMode(int mode) in xrandr12.c.
(*) http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt - Sec. 1.2 - wine should be resizing crtc, not the screen.
http://bugs.winehq.org/show_bug.cgi?id=25312
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
http://bugs.winehq.org/show_bug.cgi?id=25312
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Platform|All |Other Summary|WINE needs to support |Add support for XRandR 1.2 |XRandR 1.2 | Severity|normal |minor
http://bugs.winehq.org/show_bug.cgi?id=25312
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |1.3.7
--- Comment #1 from Dmitry Timoshkov dmitry@codeweavers.com 2010-11-29 02:33:28 CST --- Some comments:
1. do not add not related or not necessary changes like
- static int warned;
- static int warned = 0;
renaming xinerama_init() to monitors_init() and similar.
2. keep the xrandr.c file and make all chnages there
3. xrandr support should compile with either 1.1 or 1.2 headers, and detect the version it runs on at runtime, so it should be possible to compile with 1.2 headers and run with 1.1 implementation, and vice versa.
http://bugs.winehq.org/show_bug.cgi?id=25312
Owen owen.riddy@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #32154|0 |1 is obsolete| |
--- Comment #2 from Owen owen.riddy@gmail.com 2010-12-05 00:13:30 CST --- Created an attachment (id=32363) --> (http://bugs.winehq.org/attachment.cgi?id=32363) Quite concise patch that adds support for XRandR 1.2
This patch will break many games on two-screen systems. It works by only resizing /one/ screen, and leaving other screens untouched - which breaks mouse interactions with many full screen games.
This patch works very well with Diablo II, which was the game used for testing.
http://bugs.winehq.org/show_bug.cgi?id=25312
Jerome Leclanche adys.wh@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |adys.wh@gmail.com
--- Comment #3 from Jerome Leclanche adys.wh@gmail.com 2010-12-05 00:23:09 CST --- (In reply to comment #2)
Created an attachment (id=32363)
--> (http://bugs.winehq.org/attachment.cgi?id=32363) [details]
Quite concise patch that adds support for XRandR 1.2
This patch will break many games on two-screen systems. It works by only resizing /one/ screen, and leaving other screens untouched - which breaks mouse interactions with many full screen games.
This patch works very well with Diablo II, which was the game used for testing.
You are mixing tabs and spaces.
http://bugs.winehq.org/show_bug.cgi?id=25312
Owen owen.riddy@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #32363|0 |1 is obsolete| |
--- Comment #4 from Owen owen.riddy@gmail.com 2010-12-05 04:39:16 CST --- Created an attachment (id=32365) --> (http://bugs.winehq.org/attachment.cgi?id=32365) Preliminary XRandR 1.2 support
I'm very sorry - I thought I'd set my editor not to use tabs :(. Last patch for the evening.
http://bugs.winehq.org/show_bug.cgi?id=25312
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |cf6f8d2eb50aa28829ee2b76c61 | |aab411f8730ae Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #5 from Austin English austinenglish@gmail.com 2012-07-16 14:24:59 CDT --- http://source.winehq.org/git/wine.git/commitdiff/cf6f8d2eb50aa28829ee2b76c61...
http://bugs.winehq.org/show_bug.cgi?id=25312
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #6 from Alexandre Julliard julliard@winehq.org 2012-07-17 13:52:30 CDT --- Closing bugs fixed in 1.5.9.