forked from pool/xorg-x11-server
This commit is contained in:
parent
235c909b1b
commit
026ed22056
13
randr12-2926cf1da7e4ed63573bfaecdd7e19beb3057d9b.diff
Normal file
13
randr12-2926cf1da7e4ed63573bfaecdd7e19beb3057d9b.diff
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
|
||||
index 889be6f..9d74e53 100644
|
||||
--- a/hw/xfree86/modes/xf86RandR12.c
|
||||
+++ b/hw/xfree86/modes/xf86RandR12.c
|
||||
@@ -716,7 +716,7 @@ xf86RandR12CrtcSet (ScreenPtr pScreen,
|
||||
xf86CrtcPtr *save_crtcs;
|
||||
Bool save_enabled = crtc->enabled;
|
||||
|
||||
- save_crtcs = ALLOCATE_LOCAL(config->num_crtc * sizeof (xf86CrtcPtr));
|
||||
+ save_crtcs = ALLOCATE_LOCAL(config->num_output * sizeof (xf86CrtcPtr));
|
||||
if ((randr_mode != NULL) != crtc->enabled)
|
||||
changed = TRUE;
|
||||
else if (randr_mode && !xf86RandRModeMatches (randr_mode, &crtc->mode))
|
94
randr12-5b424b562eee863b11571de4cd0019cd9bc5b379.diff
Normal file
94
randr12-5b424b562eee863b11571de4cd0019cd9bc5b379.diff
Normal file
@ -0,0 +1,94 @@
|
||||
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
|
||||
index 6c3bf8d..889be6f 100644
|
||||
--- a/hw/xfree86/modes/xf86RandR12.c
|
||||
+++ b/hw/xfree86/modes/xf86RandR12.c
|
||||
@@ -951,7 +951,6 @@ xf86RandR12SetInfo12 (ScreenPtr pScreen)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
- RROutputSetCrtc (output->randr_output, randr_crtc);
|
||||
RROutputSetPhysicalSize(output->randr_output,
|
||||
output->mm_width,
|
||||
output->mm_height);
|
||||
diff --git a/randr/randrstr.h b/randr/randrstr.h
|
||||
index 4cc3a46..bd19fe9 100644
|
||||
--- a/randr/randrstr.h
|
||||
+++ b/randr/randrstr.h
|
||||
@@ -694,9 +694,6 @@ RROutputSetCrtcs (RROutputPtr output,
|
||||
RRCrtcPtr *crtcs,
|
||||
int numCrtcs);
|
||||
|
||||
-void
|
||||
-RROutputSetCrtc (RROutputPtr output, RRCrtcPtr crtc);
|
||||
-
|
||||
Bool
|
||||
RROutputSetConnection (RROutputPtr output,
|
||||
CARD8 connection);
|
||||
@@ -802,7 +799,6 @@ Query state:
|
||||
1.2:
|
||||
RRScreenSetSizeRange
|
||||
RROutputSetCrtcs
|
||||
- RROutputSetCrtc
|
||||
RRModeGet
|
||||
RROutputSetModes
|
||||
RROutputSetConnection
|
||||
@@ -822,7 +818,6 @@ Query state:
|
||||
RRCrtcCreate
|
||||
RROutputCreate
|
||||
RROutputSetCrtcs
|
||||
- RROutputSetCrtc
|
||||
RROutputSetConnection
|
||||
RROutputSetSubpixelOrder
|
||||
RROldModeAdd • This adds modes one-at-a-time
|
||||
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
|
||||
index 3ce9e21..db5007e 100644
|
||||
--- a/randr/rrcrtc.c
|
||||
+++ b/randr/rrcrtc.c
|
||||
@@ -134,6 +134,7 @@ RRCrtcNotify (RRCrtcPtr crtc,
|
||||
break;
|
||||
if (j == crtc->numOutputs)
|
||||
{
|
||||
+ outputs[i]->crtc = crtc;
|
||||
RROutputChanged (outputs[i], FALSE);
|
||||
RRCrtcChanged (crtc, FALSE);
|
||||
}
|
||||
@@ -149,6 +150,7 @@ RRCrtcNotify (RRCrtcPtr crtc,
|
||||
break;
|
||||
if (i == numOutputs)
|
||||
{
|
||||
+ crtc->outputs[j]->crtc = NULL;
|
||||
RROutputChanged (crtc->outputs[j], FALSE);
|
||||
RRCrtcChanged (crtc, FALSE);
|
||||
}
|
||||
diff --git a/randr/rrinfo.c b/randr/rrinfo.c
|
||||
index 5ef1a6b..858b1ed 100644
|
||||
--- a/randr/rrinfo.c
|
||||
+++ b/randr/rrinfo.c
|
||||
@@ -98,7 +98,6 @@ RRScanOldConfig (ScreenPtr pScreen, Rotation rotations)
|
||||
if (!output)
|
||||
return;
|
||||
RROutputSetCrtcs (output, &crtc, 1);
|
||||
- RROutputSetCrtc (output, crtc);
|
||||
RROutputSetConnection (output, RR_Connected);
|
||||
#ifdef RENDER
|
||||
RROutputSetSubpixelOrder (output, PictureGetSubpixelOrder (pScreen));
|
||||
diff --git a/randr/rroutput.c b/randr/rroutput.c
|
||||
index e001162..1e1cfa5 100644
|
||||
--- a/randr/rroutput.c
|
||||
+++ b/randr/rroutput.c
|
||||
@@ -286,15 +286,6 @@ RROutputSetCrtcs (RROutputPtr output,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
-void
|
||||
-RROutputSetCrtc (RROutputPtr output, RRCrtcPtr crtc)
|
||||
-{
|
||||
- if (output->crtc == crtc)
|
||||
- return;
|
||||
- output->crtc = crtc;
|
||||
- RROutputChanged (output, FALSE);
|
||||
-}
|
||||
-
|
||||
Bool
|
||||
RROutputSetConnection (RROutputPtr output,
|
||||
CARD8 connection)
|
12
randr12-8d230319040f0a7f72231da2bf5ec97dc3612e21.diff
Normal file
12
randr12-8d230319040f0a7f72231da2bf5ec97dc3612e21.diff
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/randr/rrinfo.c b/randr/rrinfo.c
|
||||
index 858b1ed..bd5d5b1 100644
|
||||
--- a/randr/rrinfo.c
|
||||
+++ b/randr/rrinfo.c
|
||||
@@ -98,6 +98,7 @@ RRScanOldConfig (ScreenPtr pScreen, Rotation rotations)
|
||||
if (!output)
|
||||
return;
|
||||
RROutputSetCrtcs (output, &crtc, 1);
|
||||
+ output->crtc = crtc;
|
||||
RROutputSetConnection (output, RR_Connected);
|
||||
#ifdef RENDER
|
||||
RROutputSetSubpixelOrder (output, PictureGetSubpixelOrder (pScreen));
|
41
randr12-aec0d06469a2fa7440fdd5ee03dc256a68704e77.diff
Normal file
41
randr12-aec0d06469a2fa7440fdd5ee03dc256a68704e77.diff
Normal file
@ -0,0 +1,41 @@
|
||||
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
|
||||
index d92a0ff..8798b42 100644
|
||||
--- a/randr/rrscreen.c
|
||||
+++ b/randr/rrscreen.c
|
||||
@@ -738,6 +738,7 @@ ProcRRSetScreenConfig (ClientPtr client)
|
||||
int rate;
|
||||
Bool has_rate;
|
||||
RROutputPtr output;
|
||||
+ RRCrtcPtr crtc;
|
||||
RRModePtr mode;
|
||||
RR10DataPtr pData = NULL;
|
||||
RRScreenSizePtr pSize;
|
||||
@@ -783,7 +784,9 @@ ProcRRSetScreenConfig (ClientPtr client)
|
||||
rep.status = RRSetConfigFailed;
|
||||
goto sendReply;
|
||||
}
|
||||
-
|
||||
+
|
||||
+ crtc = output->crtc;
|
||||
+
|
||||
/*
|
||||
* if the client's config timestamp is not the same as the last config
|
||||
* timestamp, then the config information isn't up-to-date and
|
||||
@@ -831,7 +834,7 @@ ProcRRSetScreenConfig (ClientPtr client)
|
||||
return BadValue;
|
||||
}
|
||||
|
||||
- if ((~output->crtc->rotations) & rotation)
|
||||
+ if ((~crtc->rotations) & rotation)
|
||||
{
|
||||
/*
|
||||
* requested rotation or reflection not supported by screen
|
||||
@@ -914,7 +917,7 @@ ProcRRSetScreenConfig (ClientPtr client)
|
||||
}
|
||||
}
|
||||
|
||||
- if (!RRCrtcSet (output->crtc, mode, 0, 0, stuff->rotation, 1, &output))
|
||||
+ if (!RRCrtcSet (crtc, mode, 0, 0, stuff->rotation, 1, &output))
|
||||
rep.status = RRSetConfigFailed;
|
||||
else
|
||||
rep.status = RRSetConfigSuccess;
|
13
randr12-b2dcfbca2441ca8c561f86a78a76ab59ecbb40e4.diff
Normal file
13
randr12-b2dcfbca2441ca8c561f86a78a76ab59ecbb40e4.diff
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/randr/rrinfo.c b/randr/rrinfo.c
|
||||
index 8b0c93d..7e77d39 100644
|
||||
--- a/randr/rrinfo.c
|
||||
+++ b/randr/rrinfo.c
|
||||
@@ -104,7 +104,7 @@ RRScanOldConfig (ScreenPtr pScreen, Rotation rotations)
|
||||
#endif
|
||||
}
|
||||
|
||||
- output = RRFirstOutput (pScreen);
|
||||
+ output = pScrPriv->outputs[0];
|
||||
if (!output)
|
||||
return;
|
||||
crtc = pScrPriv->crtcs[0];
|
32
randr12-b4193a2eee80895c5641e77488df0e72a73a3d99.diff
Normal file
32
randr12-b4193a2eee80895c5641e77488df0e72a73a3d99.diff
Normal file
@ -0,0 +1,32 @@
|
||||
diff --git a/randr/rrinfo.c b/randr/rrinfo.c
|
||||
index bd5d5b1..8b0c93d 100644
|
||||
--- a/randr/rrinfo.c
|
||||
+++ b/randr/rrinfo.c
|
||||
@@ -98,7 +98,6 @@ RRScanOldConfig (ScreenPtr pScreen, Rotation rotations)
|
||||
if (!output)
|
||||
return;
|
||||
RROutputSetCrtcs (output, &crtc, 1);
|
||||
- output->crtc = crtc;
|
||||
RROutputSetConnection (output, RR_Connected);
|
||||
#ifdef RENDER
|
||||
RROutputSetSubpixelOrder (output, PictureGetSubpixelOrder (pScreen));
|
||||
@@ -108,7 +107,9 @@ RRScanOldConfig (ScreenPtr pScreen, Rotation rotations)
|
||||
output = RRFirstOutput (pScreen);
|
||||
if (!output)
|
||||
return;
|
||||
- crtc = output->crtc;
|
||||
+ crtc = pScrPriv->crtcs[0];
|
||||
+ if (!crtc)
|
||||
+ return;
|
||||
|
||||
/* check rotations */
|
||||
if (rotations != crtc->rotations)
|
||||
@@ -168,7 +169,7 @@ RRScanOldConfig (ScreenPtr pScreen, Rotation rotations)
|
||||
|
||||
/* notice current mode */
|
||||
if (newMode)
|
||||
- RRCrtcNotify (output->crtc, newMode, 0, 0, pScrPriv->rotation,
|
||||
+ RRCrtcNotify (crtc, newMode, 0, 0, pScrPriv->rotation,
|
||||
1, &output);
|
||||
}
|
||||
#endif
|
@ -1,3 +1,33 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 31 17:02:26 CEST 2007 - sndirsch@suse.de
|
||||
|
||||
- added several RANDR 1.2 fixes (Bug #306699)
|
||||
* randr12-2926cf1da7e4ed63573bfaecdd7e19beb3057d9b.diff
|
||||
Allocate the right number of entries for saving crtcs
|
||||
* randr12-5b424b562eee863b11571de4cd0019cd9bc5b379.diff
|
||||
Set the crtc before the output change is notified. Set the new
|
||||
randr crtc of the output before the output change notification
|
||||
is delivered to the clients. Remove RROutputSetCrtc as it is
|
||||
not really necessary. All we have to do is set the output's
|
||||
crtc on RRCrtcNotify
|
||||
* randr12-8d230319040f0a7f72231da2bf5ec97dc3612e21.diff
|
||||
Fix the output->crtc initialization in the old randr setup
|
||||
* randr12-aec0d06469a2fa7440fdd5ee03dc256a68704e77.diff
|
||||
Fix a crash when rotating the screen. Remember output->crtc
|
||||
before setting a NULL mode because RRCrtcNotify now sets
|
||||
output->crtc to NULL. Use the saved crtc to set the new mode.
|
||||
* randr12-b2dcfbca2441ca8c561f86a78a76ab59ecbb40e4.diff
|
||||
RRScanOldConfig cannot use RRFirstOutput before output is
|
||||
configured. RRFirstOutput returns the first active output,
|
||||
which won't be set until after RRScanOldConfig is finished
|
||||
running. Instead, just use the first output (which is the only
|
||||
output present with an old driver, after all).
|
||||
* randr12-b4193a2eee80895c5641e77488df0e72a73a3d99.diff
|
||||
RRScanOldConfig wasn't getting crtcs set correctly. The output
|
||||
crtc is set by RRCrtcNotify, which is called at the end of
|
||||
RRScanOldConfig. Several uses of output->crtc in this function
|
||||
were wrong.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 23 12:33:57 CEST 2007 - sndirsch@suse.de
|
||||
|
||||
|
@ -21,7 +21,7 @@ BuildRequires: libjpeg-devel
|
||||
URL: http://xorg.freedesktop.org/
|
||||
%define EXPERIMENTAL 0
|
||||
Version: 7.2
|
||||
Release: 123
|
||||
Release: 129
|
||||
License: X11/MIT
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Group: System/X11/Servers/XF86_4
|
||||
@ -93,6 +93,12 @@ Patch67: xorg-docs.diff
|
||||
Patch68: xephyr-sig11-fix.diff
|
||||
Patch69: xserver-mode-fuzzy-check.diff
|
||||
Patch70: i810_dri_fix_freeze.diff
|
||||
Patch71: randr12-5b424b562eee863b11571de4cd0019cd9bc5b379.diff
|
||||
Patch72: randr12-8d230319040f0a7f72231da2bf5ec97dc3612e21.diff
|
||||
Patch73: randr12-aec0d06469a2fa7440fdd5ee03dc256a68704e77.diff
|
||||
Patch74: randr12-b4193a2eee80895c5641e77488df0e72a73a3d99.diff
|
||||
Patch75: randr12-b2dcfbca2441ca8c561f86a78a76ab59ecbb40e4.diff
|
||||
Patch76: randr12-2926cf1da7e4ed63573bfaecdd7e19beb3057d9b.diff
|
||||
Patch334: p_pci-domain.diff
|
||||
Patch357: p_pci-ce-x.diff
|
||||
|
||||
@ -206,6 +212,12 @@ popd
|
||||
%patch68
|
||||
%patch69 -p1
|
||||
%patch70 -p1
|
||||
%patch71 -p1
|
||||
%patch72 -p1
|
||||
%patch73 -p1
|
||||
%patch74 -p1
|
||||
%patch75 -p1
|
||||
%patch76 -p1
|
||||
|
||||
%build
|
||||
pushd xorg-docs-*
|
||||
@ -541,6 +553,33 @@ exit 0
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Aug 31 2007 - sndirsch@suse.de
|
||||
- added several RANDR 1.2 fixes (Bug #306699)
|
||||
* randr12-2926cf1da7e4ed63573bfaecdd7e19beb3057d9b.diff
|
||||
Allocate the right number of entries for saving crtcs
|
||||
* randr12-5b424b562eee863b11571de4cd0019cd9bc5b379.diff
|
||||
Set the crtc before the output change is notified. Set the new
|
||||
randr crtc of the output before the output change notification
|
||||
is delivered to the clients. Remove RROutputSetCrtc as it is
|
||||
not really necessary. All we have to do is set the output's
|
||||
crtc on RRCrtcNotify
|
||||
* randr12-8d230319040f0a7f72231da2bf5ec97dc3612e21.diff
|
||||
Fix the output->crtc initialization in the old randr setup
|
||||
* randr12-aec0d06469a2fa7440fdd5ee03dc256a68704e77.diff
|
||||
Fix a crash when rotating the screen. Remember output->crtc
|
||||
before setting a NULL mode because RRCrtcNotify now sets
|
||||
output->crtc to NULL. Use the saved crtc to set the new mode.
|
||||
* randr12-b2dcfbca2441ca8c561f86a78a76ab59ecbb40e4.diff
|
||||
RRScanOldConfig cannot use RRFirstOutput before output is
|
||||
configured. RRFirstOutput returns the first active output,
|
||||
which won't be set until after RRScanOldConfig is finished
|
||||
running. Instead, just use the first output (which is the only
|
||||
output present with an old driver, after all).
|
||||
* randr12-b4193a2eee80895c5641e77488df0e72a73a3d99.diff
|
||||
RRScanOldConfig wasn't getting crtcs set correctly. The output
|
||||
crtc is set by RRCrtcNotify, which is called at the end of
|
||||
RRScanOldConfig. Several uses of output->crtc in this function
|
||||
were wrong.
|
||||
* Thu Aug 23 2007 - sndirsch@suse.de
|
||||
- i810_dri_fix_freeze.diff:
|
||||
* fixes freeze after pressing Ctrl-Alt-BS (X.Org Bug #10809)
|
||||
|
Loading…
Reference in New Issue
Block a user