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
|
Thu Aug 23 12:33:57 CEST 2007 - sndirsch@suse.de
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ BuildRequires: libjpeg-devel
|
|||||||
URL: http://xorg.freedesktop.org/
|
URL: http://xorg.freedesktop.org/
|
||||||
%define EXPERIMENTAL 0
|
%define EXPERIMENTAL 0
|
||||||
Version: 7.2
|
Version: 7.2
|
||||||
Release: 123
|
Release: 129
|
||||||
License: X11/MIT
|
License: X11/MIT
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
Group: System/X11/Servers/XF86_4
|
Group: System/X11/Servers/XF86_4
|
||||||
@ -93,6 +93,12 @@ Patch67: xorg-docs.diff
|
|||||||
Patch68: xephyr-sig11-fix.diff
|
Patch68: xephyr-sig11-fix.diff
|
||||||
Patch69: xserver-mode-fuzzy-check.diff
|
Patch69: xserver-mode-fuzzy-check.diff
|
||||||
Patch70: i810_dri_fix_freeze.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
|
Patch334: p_pci-domain.diff
|
||||||
Patch357: p_pci-ce-x.diff
|
Patch357: p_pci-ce-x.diff
|
||||||
|
|
||||||
@ -206,6 +212,12 @@ popd
|
|||||||
%patch68
|
%patch68
|
||||||
%patch69 -p1
|
%patch69 -p1
|
||||||
%patch70 -p1
|
%patch70 -p1
|
||||||
|
%patch71 -p1
|
||||||
|
%patch72 -p1
|
||||||
|
%patch73 -p1
|
||||||
|
%patch74 -p1
|
||||||
|
%patch75 -p1
|
||||||
|
%patch76 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
pushd xorg-docs-*
|
pushd xorg-docs-*
|
||||||
@ -541,6 +553,33 @@ exit 0
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%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
|
* Thu Aug 23 2007 - sndirsch@suse.de
|
||||||
- i810_dri_fix_freeze.diff:
|
- i810_dri_fix_freeze.diff:
|
||||||
* fixes freeze after pressing Ctrl-Alt-BS (X.Org Bug #10809)
|
* fixes freeze after pressing Ctrl-Alt-BS (X.Org Bug #10809)
|
||||||
|
Loading…
Reference in New Issue
Block a user