You are not logged in.
Sorry for being unclear. I mean JGC's xorg 7.0 PKGBUILDs. I've just changed them to use either 7.1RC1 (xorg-server 1.0.99.901, xf86-video-i810 1.6.0), or cvs (mesa, libgl-dri).
Offline
I guess this one will help you out:
http://lists.freedesktop.org/archives/x … 11626.htmlChange the file on your system and all should be fine. I'll update glibc somewhere this week.
I'm having compilation issues with the new xorg-server (part of 7.1RC2), and suspecting it might be further glibc issues. So, thought I'd just ask how it's going with glibc 2.4? Can we expect it anytime soon? Thanks. ![]()
Offline
I compiled xserver 1.0.99.902 from http://xorg.freedesktop.org/releases/in … l/xserver/ and with mesa 6.5 but got errors about default colour depth. I think I'm quite close but really don't want to spend any more time on it at this time (I've got uni exams coming up soon). But will pass on any PKGBUILDs/patches I've got if needed
Offline
I'd be very interested in what you got ![]()
I shouldn't be playing with these things either right now, as I have to hand in my B.A. thesis in a couple of weeks, but maybe I'll just find some spare time between now and then...
Offline
This is all based upon current repo xserver and gandalfn's ubuntu builds. Rather than mesa 6.5 I would also try mesa-cvs from shadowhand's repo and change the PKGBUILD for xorg to reference against it, compiz-cvs can be got from shadowhand's but needs to be built with --strict-binding. Get *protos from shadowhand also. Not sure what changes required it but ubuntu guide recommends getting a cvs version of kernel drm. Also used an updated libgl-dri based upon current repo PKGBUILD. I can email you other PKGBUILDs, can't be bother to cut & paste
. I used the same i810 driver as you.
www.compiz.net is a good source of information. Look in the packages section for aiglx patches topic for speed enhancing aiglx patches if you get that far ![]()
PS. I did my dissertation in 2 days/nights and it came out looking like it :S. Better luck with yours ![]()
PKGBUILD
# $Id: PKGBUILD,v 1.9 2006/03/20 22:54:55 jgc Exp $
#Maintainer: Jan de Groot <jgc>
pkgname=xorg-server
pkgver=1.0.99.902
pkgrel=1
pkgdesc="X.Org X servers"
url="http://xorg.freedesktop.org"
depends=(gcc libxkbui ncurses libxi libxxf86misc libxfont libxrender libdmx liblbxutil libxaw libxxf86vm xorg-fonts-misc xcursor-themes xkeyboard-config ttf-bitstream-vera xorg-server-utils xorg-utils)
makedepends=(pkgconfig xf86driproto xcmiscproto xtrans bigreqsproto xf86bigfontproto resourceproto evieext damageproto compositeproto)
provides=(x-server)
_mesaver=6.5
source=(${url}/releases/individual/xserver/${pkgname}-${pkgver}.tar.bz2
http://dl.sourceforge.net/mesa3d/MesaLib-${_mesaver}.tar.bz2
aiglx-compiz.patch
stop-glibc-types-error.patch)
build() {
cd ${startdir}/src/${pkgname}-${pkgver}
echo "Applying aiglx-compiz.patch"
patch -Np1 -i ${startdir}/src/aiglx-compiz.patch || return 1
echo "Applying stop-glibc-types-error.patch"
patch -Np0 -i ${startdir}/src/stop-glibc-types-error.patch || return 1
./configure --prefix=/usr
--with-mesa-source=${startdir}/src/Mesa-${_mesaver}
--enable-dri
--enable-glx
--enable-aiglx
--disable-dmx
--disable-xvfb
--disable-xnest
--disable-xorgconfig
--disable-xorgcfg
--disable-lbx
--enable-xorg
--enable-xtrap
--disable-xprint
--sysconfdir=/etc/X11
--localstatedir=/var
--with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/TTF,/usr/share/fonts/Type1
--with-rgb-path=/usr/share/X11/rgb
--with-xkb-path=/usr/share/X11/xkb
--with-xkb-output=/usr/share/X11/xkb/compiled
--disable-static
make || return 1
make DESTDIR=${startdir}/pkg install || return 1
find ${startdir}/pkg -name '*.la' -exec rm {} ;
install -m644 hw/xfree86/parser/xf86{Optrec,Parser}.h
${startdir}/pkg/usr/include/xorg/
mkdir -p ${startdir}/pkg/etc/X11
mkdir -p ${startdir}/pkg/var/lib
mv ${startdir}/pkg/usr/share/X11/xkb/compiled ${startdir}/pkg/var/lib/xkb
ln -sf /var/lib/xkb ${startdir}/pkg/usr/share/X11/xkb/compiled
cd ${startdir}/pkg/usr/lib/xorg/modules/extensions
mv libGLcore.so libGLcore.xorg
mv libglx.so libglx.xorg
}stop-glibc-types-error.patch
--- hw/xfree86/os-support/linux/lnx_agp.c.bak 2006-04-11 19:08:13.000000000 +0100
+++ hw/xfree86/os-support/linux/lnx_agp.c 2006-05-02 23:18:54.000000000 +0100
@@ -9,6 +9,7 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_agp.c,v 3.11 2003/04/03 22:47:42 dawes Exp $ */
+#include <linux>
#ifdef HAVE_XORG_CONFIG_H
#include <xorg>
#endifaiglx-compiz.patch
--- xorg-air-1.0.99.902~/GL/glx/glxcmds.c 2006-05-01 21:50:16.000000000 +0200
+++ xorg-air-1.0.99.902/GL/glx/glxcmds.c 2006-05-01 21:50:56.000000000 +0200
@@ -1271,6 +1271,7 @@
pGlxPixmap->pGlxScreen = pGlxScreen;
pGlxPixmap->pScreen = pScreen;
pGlxPixmap->idExists = True;
+ pGlxPixmap->pDamage = NULL;
pGlxPixmap->refcnt = 0;
pGlxPixmap->modes = modes;
--- xorg-air-1.0.99.902~/GL/glx/glxdrawable.h 2006-05-01 21:50:16.000000000 +0200
+++ xorg-air-1.0.99.902/GL/glx/glxdrawable.h 2006-05-01 21:50:56.000000000 +0200
@@ -41,6 +41,8 @@
**
*/
+#include <damage>
+
typedef struct {
DrawablePtr pDraw;
@@ -49,7 +51,7 @@
ScreenPtr pScreen;
Bool idExists;
int refcnt;
-
+ DamagePtr pDamage;
} __GLXpixmap;
struct __GLXdrawable {
--- xorg-air-1.0.99.902~/GL/glx/glxdri.c 2006-05-01 21:50:16.000000000 +0200
+++ xorg-air-1.0.99.902/GL/glx/glxdri.c 2006-05-01 21:50:56.000000000 +0200
@@ -335,13 +335,36 @@
int buffer,
__GLXpixmap *glxPixmap)
{
+ RegionPtr pRegion;
PixmapPtr pixmap;
- int bpp;
- Bool npot;
+ int bpp, xoff, yoff, width, height;
+ GLenum target, format, type;
pixmap = (PixmapPtr) glxPixmap->pDraw;
- bpp = pixmap->drawable.depth >= 24 ? 4 : 2; /* XXX 24bpp packed, 8, etc */
-
+ if (!glxPixmap->pDamage) {
+ glxPixmap->pDamage = DamageCreate(NULL, NULL, DamageReportNone,
+ TRUE, glxPixmap->pScreen, NULL);
+ if (!glxPixmap->pDamage)
+ return BadAlloc;
+
+ DamageRegister ((DrawablePtr) pixmap, glxPixmap->pDamage);
+ } else {
+ pRegion = DamageRegion(glxPixmap->pDamage);
+ if (REGION_NIL(pRegion))
+ return Success;
+ }
+
+ /* XXX 24bpp packed, 8, etc */
+ if (pixmap->drawable.depth >= 24) {
+ bpp = 4;
+ format = GL_BGRA;
+ type = GL_UNSIGNED_BYTE;
+ } else {
+ bpp = 2;
+ format = GL_RGB;
+ type = GL_UNSIGNED_SHORT_5_6_5;
+ }
+
CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,
pixmap->devKind / bpp) );
CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,
@@ -352,22 +375,27 @@
if (pixmap->drawable.depth == 24)
glxFillAlphaChannel(pixmap);
- npot = !(glxCountBits(pixmap->drawable.width) == 1 &&
- glxCountBits(pixmap->drawable.height) == 1) /* ||
- strstr(CALL_GetString(GL_EXTENSIONS,
- "GL_ARB_texture_non_power_of_two")) */ ;
-
+ if (!(glxCountBits(pixmap->drawable.width) == 1 &&
+ glxCountBits(pixmap->drawable.height) == 1)
+ /* || strstr(CALL_GetString(GL_EXTENSIONS,
+ "GL_ARB_texture_non_power_of_two")) */)
+ target = GL_TEXTURE_RECTANGLE_ARB;
+ else
+ target = GL_TEXTURE_2D;
+
CALL_TexImage2D( GET_DISPATCH(),
- ( npot ? GL_TEXTURE_RECTANGLE_ARB : GL_TEXTURE_2D,
+ ( target,
0,
bpp == 4 ? 4 : 3,
pixmap->drawable.width,
pixmap->drawable.height,
0,
- bpp == 4 ? GL_BGRA : GL_RGB,
- bpp == 4 ? GL_UNSIGNED_BYTE : GL_UNSIGNED_SHORT_5_6_5,
+ format,
+ type,
pixmap->devPrivate.ptr ) );
+ DamageEmpty(glxPixmap->pDamage);
+
return Success;
}
--- xorg-air-1.0.99.902~/GL/glx/glxext.c 2006-05-01 21:50:16.000000000 +0200
+++ xorg-air-1.0.99.902/GL/glx/glxext.c 2006-05-01 21:50:56.000000000 +0200
@@ -141,6 +141,10 @@
pGlxPixmap->idExists = False;
if (!pGlxPixmap->refcnt) {
+ if (pGlxPixmap->pDamage) {
+ DamageUnregister (pGlxPixmap->pDraw, pGlxPixmap->pDamage);
+ DamageDestroy(pGlxPixmap->pDamage);
+ }
/*
** The DestroyPixmap routine should decrement the refcount and free
** only if it's zero.
--- xorg-air-1.0.99.902~/hw/xfree86/dri/dri.c 2006-05-01 21:50:16.000000000 +0200
+++ xorg-air-1.0.99.902/hw/xfree86/dri/dri.c 2006-05-01 21:55:21.000000000 +0200
@@ -1017,6 +1017,7 @@
pDRIDrawablePriv->pScreen = pScreen;
pDRIDrawablePriv->refCount = 1;
pDRIDrawablePriv->drawableIndex = -1;
+ pDRIDrawablePriv->includeInferiors = TRUE;
/* save private off of preallocated index */
pWin->devPrivates[DRIWindowPrivIndex].ptr =
@@ -1028,6 +1029,7 @@
break;
case 2:
DRITransitionToSharedBuffers( pScreen );
+ pDRIDrawablePriv->includeInferiors = FALSE;
break;
default:
break;
@@ -1134,6 +1136,7 @@
{
DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
DRIDrawablePrivPtr pDRIDrawablePriv, pOldDrawPriv;
+ RegionPtr pClipList;
WindowPtr pWin, pOldWin;
int i;
@@ -1227,8 +1230,14 @@
#endif
*W = (int)(pWin->drawable.width);
*H = (int)(pWin->drawable.height);
- *numClipRects = REGION_NUM_RECTS(&pWin->clipList);
- *pClipRects = (drm_clip_rect_t *)REGION_RECTS(&pWin->clipList);
+
+ if (pDRIDrawablePriv->includeInferiors)
+ pClipList = &pWin->borderClip;
+ else
+ pClipList = &pWin->clipList;
+
+ *numClipRects = REGION_NUM_RECTS(pClipList);
+ *pClipRects = (drm_clip_rect_t *)REGION_RECTS(pClipList);
if (!*numClipRects && pDRIPriv->fullscreen) {
/* use fake full-screen clip rect */
--- xorg-air-1.0.99.902~/hw/xfree86/dri/dristruct.h 2006-01-06 19:06:02.000000000 +0100
+++ xorg-air-1.0.99.902/hw/xfree86/dri/dristruct.h 2006-05-01 21:53:05.000000000 +0200
@@ -53,6 +53,7 @@
drm_drawable_t hwDrawable;
int drawableIndex;
ScreenPtr pScreen;
+ Bool includeInferiors;
int refCount;
} DRIDrawablePrivRec, *DRIDrawablePrivPtr;Edit: errrr..... I just noticed errors in the patches that were still ok syntax but missing crucial strings. Something wierd happened when I copied/pasted. I think I fixed it, but if you get errors building the server I'll send the files via email.
ReEdit: What the frig! The forum keeps chopping out parts of strings between <> tags. These patches won't work, send your email via pm.
Offline
ReEdit: What the frig! The forum keeps chopping out parts of strings between <> tags. These patches won't work, send your email via pm.
You could also upload them to http://arch.pastebin.com
Offline
Alright! I have now compiled xorg-server 1.0.99.902, and AIGLX + compiz works somewhat, but it's definitely not usable. I haven't had time to play around much with it though.
When I start compiz, the window borders and titlebars dissapear (this happens with XGL as well), I get a hard freeze when doing alt+tab, sometimes windows don't even contain anything. As far as I know, the relevant aiglx patches are included in compiz nowadays, but I'm not sure. I haven't compiled my own version of it, using shadowhand's. Might need to dig into that later.
Another weird thing is that glxinfo says that I have no direct rendering, but glxgears gives a high enough fram rate to believe the report is wrong. However, sometimes when glxgears is running, I get a hard freeze.
Anyway, thanks for the patches. I'll get back with more news.
Offline
You will need to start compiz with --strict-binding and --indirect-rendering. Are you starting gnome-window-decorator before compiz? Does the Xorg log report any errors on dri?
Again from the ubuntu guys, LIBGL_ALWAYS_INDIRECT environment variable should be set to TRUE for compiz.
Offline
I think part of the problem is that mesa's a bit messed up right now (I'm compiling everything against mesa-cvs). So I'm gonna wait a couple of days and try again then.
Thanks for the tips though.
Offline
I have AIGLX working now, more or less. It's not much better than XGL on my machine (855GM). But it's nice to know that it works somewhat for now. Hopefully it'll get better.
The packages I'm using now are:
mesa-cvs
libgl-dri-cvs
xorg-server 1.0.99.903 (RC3)
i810, compiled from git
+ compiz from shadowhand's repo
I'm really tired now, but it if anyone want me to post any PKGBUILD post a reply, and I'll do it tomorrow.
Offline
Oh yeah... Isn't Xorg 7.1 suposed to be out by next week or so?
Offline
i think it's supposed to be out tomorrow ![]()
Offline
I have AIGLX working now, more or less. It's not much better than XGL on my machine (855GM). But it's nice to know that it works somewhat for now. Hopefully it'll get better.
The packages I'm using now are:
mesa-cvs
libgl-dri-cvs
xorg-server 1.0.99.903 (RC3)
i810, compiled from git
+ compiz from shadowhand's repoI'm really tired now, but it if anyone want me to post any PKGBUILD post a reply, and I'll do it tomorrow.
good news
could you make a pkgbuild ?
Offline
Here's some sort of aiglx-overlay. I'm not sure about dependencies or if anything works at all. Give it a try if you feel heroic.
xorg-server is compiled against mesa 6.5, instead of CVS, because otherwise it would break. I'm not even sure if mesa-cvs + libg-dril-cvs are needed. If you want you could just start by installing mesa 6.5 & libgl-dri 6.5 (just change the pkgver in abs, they will compile cleanly).
Good luck!
Edit:
(forgot the url)
http://naderehvandi.net/arch/aiglx-overlay.tar.gz
Offline
Would be nice to include libdrm-cvs for those who don't use Intel graphics, a PKGBUILD for that is available in the XGL overlay and should probably work with minimal modification.
Edit: Never mind, Xorg 7.1 is officially released on Monday according to OSNews.
Offline
Would be nice to include libdrm-cvs for those who don't use Intel graphics, a PKGBUILD for that is available in the XGL overlay and should probably work with minimal modification.
Edit: Never mind, Xorg 7.1 is officially released on Monday according to OSNews.
Added libdrm-cvs to the tar ball. I'm not quite sure how it would help though. But it's there now ![]()
Offline
Wait a minute... You're right, it wouldn't matter if you don't have the CVS version of the drivers too. Right. Never mind. :oops:
*sounds of head banging on keyboard*
Offline
Wait a minute... You're right, it wouldn't matter if you don't have the CVS version of the drivers too. Right. Never mind. :oops:
*sounds of head banging on keyboard*
Hehe, no worries
Like you said, this tarball will be useless from monday onwards (hopefully) anyway...
Offline