1
0
OBS User unknown 2007-08-24 00:13:26 +00:00 committed by Git OBS Bridge
parent 1c4696e9f6
commit 235c909b1b
4 changed files with 110 additions and 1 deletions

50
i810_dri_fix_freeze.diff Normal file
View File

@ -0,0 +1,50 @@
diff --git a/GL/mesa/X/xf86glx.c b/GL/mesa/X/xf86glx.c
index df9be07..679d55c 100644
--- a/GL/mesa/X/xf86glx.c
+++ b/GL/mesa/X/xf86glx.c
@@ -296,7 +296,7 @@ static void init_screen_visuals(__GLXMESAscreen *screen)
__GLcontextModes *modes;
XMesaVisual *pXMesaVisual;
int *used;
- int i, j, size;
+ int num_vis, j, size;
/* Alloc space for the list of XMesa visuals */
size = screen->base.numVisuals * sizeof(XMesaVisual);
@@ -312,7 +312,7 @@ static void init_screen_visuals(__GLXMESAscreen *screen)
used = (int *) xalloc(pScreen->numVisuals * sizeof(int));
memset(used, 0, pScreen->numVisuals * sizeof(int));
- i = 0;
+ num_vis = 0;
for ( modes = screen->base.modes; modes != NULL; modes = modes->next ) {
const int vis_class = _gl_convert_to_x_visual_type( modes->visualType );
const int nplanes = (modes->rgbBits - modes->alphaBits);
@@ -327,7 +327,8 @@ static void init_screen_visuals(__GLXMESAscreen *screen)
!used[j]) {
/* Create the XMesa visual */
- pXMesaVisual[i] =
+ assert(num_vis < screen->base.numVisuals);
+ pXMesaVisual[num_vis] =
XMesaCreateVisual(pScreen,
&pVis[j],
modes->rgbMode,
@@ -364,13 +365,15 @@ static void init_screen_visuals(__GLXMESAscreen *screen)
FatalError( "Matching visual found, but visualID still -1!\n" );
}
- i++;
+ num_vis++;
}
xfree(used);
- screen->num_vis = pScreen->numVisuals;
+ screen->num_vis = num_vis;
screen->xm_vis = pXMesaVisual;
+
+ assert(screen->num_vis <= screen->base.numVisuals);
}
static __GLXscreen *

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Thu Aug 23 12:33:57 CEST 2007 - sndirsch@suse.de
- i810_dri_fix_freeze.diff:
* fixes freeze after pressing Ctrl-Alt-BS (X.Org Bug #10809)
-------------------------------------------------------------------
Thu Aug 23 05:32:04 CEST 2007 - sndirsch@suse.de
- xserver-mode-fuzzy-check.diff:
* Fix for Xserver being more fuzzy about mode validation
(Bug #270846)
-------------------------------------------------------------------
Sat Aug 18 11:05:14 CEST 2007 - sndirsch@suse.de

View File

@ -21,7 +21,7 @@ BuildRequires: libjpeg-devel
URL: http://xorg.freedesktop.org/
%define EXPERIMENTAL 0
Version: 7.2
Release: 121
Release: 123
License: X11/MIT
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@ -91,6 +91,8 @@ Patch65: remove__GLinterface.patch
Patch66: commit-c09e68c
Patch67: xorg-docs.diff
Patch68: xephyr-sig11-fix.diff
Patch69: xserver-mode-fuzzy-check.diff
Patch70: i810_dri_fix_freeze.diff
Patch334: p_pci-domain.diff
Patch357: p_pci-ce-x.diff
@ -202,6 +204,8 @@ pushd xorg-docs-*
%patch67
popd
%patch68
%patch69 -p1
%patch70 -p1
%build
pushd xorg-docs-*
@ -537,6 +541,13 @@ exit 0
%endif
%changelog
* Thu Aug 23 2007 - sndirsch@suse.de
- i810_dri_fix_freeze.diff:
* fixes freeze after pressing Ctrl-Alt-BS (X.Org Bug #10809)
* Thu Aug 23 2007 - sndirsch@suse.de
- xserver-mode-fuzzy-check.diff:
* Fix for Xserver being more fuzzy about mode validation
(Bug #270846)
* Sat Aug 18 2007 - sndirsch@suse.de
- disable AIGLX by default; without enabled Composite extension
(still problematic on many drivers) it's rather useless anyway

View File

@ -0,0 +1,35 @@
diff --git a/hw/xfree86/modes/xf86Modes.c b/hw/xfree86/modes/xf86Modes.c
index ea9f85b..0ead704 100644
--- a/hw/xfree86/modes/xf86Modes.c
+++ b/hw/xfree86/modes/xf86Modes.c
@@ -389,8 +389,8 @@ xf86ValidateModesSync(ScrnInfoPtr pScrn,
bad = TRUE;
for (i = 0; i < mon->nHsync; i++) {
- if (xf86ModeHSync(mode) >= mon->hsync[i].lo &&
- xf86ModeHSync(mode) <= mon->hsync[i].hi)
+ if (xf86ModeHSync(mode) >= mon->hsync[i].lo - .5 &&
+ xf86ModeHSync(mode) <= mon->hsync[i].hi + .5)
{
bad = FALSE;
}
@@ -400,8 +400,8 @@ xf86ValidateModesSync(ScrnInfoPtr pScrn,
bad = TRUE;
for (i = 0; i < mon->nVrefresh; i++) {
- if (xf86ModeVRefresh(mode) >= mon->vrefresh[i].lo &&
- xf86ModeVRefresh(mode) <= mon->vrefresh[i].hi)
+ if (xf86ModeVRefresh(mode) >= mon->vrefresh[i].lo - .5 &&
+ xf86ModeVRefresh(mode) <= mon->vrefresh[i].hi + .5)
{
bad = FALSE;
}
@@ -434,7 +434,7 @@ xf86ValidateModesClocks(ScrnInfoPtr pScr
for (mode = modeList; mode != NULL; mode = mode->next) {
Bool good = FALSE;
for (i = 0; i < n_ranges; i++) {
- if (mode->Clock >= min[i] && mode->Clock <= max[i]) {
+ if (mode->Clock >= min[i] - .5 && mode->Clock <= max[i] + .5) {
good = TRUE;
break;
}