FC2 3d acceleration- fglrx / nforce2 issues.
gary c lucas
gary_lucas at telus.net
Mon Jun 28 08:54:37 UTC 2004
Got it working, here's the scoop should anyone run into the same brick
wall:
1) cleared out all previous fglrx stuff
removed /lib/modules/fglrx directory
rpm -e fglrx
reboot
2) downloaded fglrx-4.3.0-3.9.0.i386.rpm
rpm -Uvh --replacefiles fglrx-4.3.0-3.9.0.i386.rpm
got an error message saying that I would have to compile my own
kernel.
got the patches (at end of file)
vmalloc.patch
fglrx-3.9.0-fc2.patch
badPointer.patch
ran the patch's
patch -p1 -i /dir_to_patch/patchname.patch
cd /lib/modules/fglrx/build_mod/
sh make.sh
cd ..
sh make_install.sh
3) Set up the XF86config file in /etc/X11
linked it to xorg.conf
4) reboot
and it works.
I'm getting around 1800 fps in glxgears on screen double that
offscreen, I have no idea if that's good.
And 350 fps in fgl_glxgears double that off screen.
In any case it beats the 95 I was getting before.
Hardware:
amd 2400 athlon xp, a7n8x-vm 1gb ram. sapphire radeon 9600 atlantis.
fedora core 2 (kernel 2.6.6-1.435)
These patch files were obtained from from rage3d. I had no part in
making them.
This one seems to solve an invalid pointer issue, I'm curious as to
where the issue originates.
There is one patch that I'm not including (Too large) but here's a link:
http://rambo.its.tudelft.nl/~ewald/patches/fglrx-3.9.0-fc2.patch
(http://www.rage3d.com/board/showthread.php?s=&threadid=33737573)
-----------------------------------------------------------------------------------
diff -uprN build_mod-mreg_new/agpgart_be.c
build_mod-mreg_new-mm/agpgart_be.c
--- build_mod-mreg_new/agpgart_be.c 2004-05-15 03:45:48.000000000
+0300
+++ build_mod-mreg_new-mm/agpgart_be.c 2004-05-15 03:18:30.000000000
+0300
@@ -1402,7 +1402,8 @@ unsigned long agp_generic_alloc_page(voi
}
#endif
- atomic_inc(&page->count);
+ //atomic_inc(&page->count);
+ get_page(page);
set_bit(PG_locked, &page->flags);
atomic_inc(&agp_bridge.current_memory_agp);
@@ -4413,7 +4414,8 @@ static unsigned long ali_alloc_page(void
if (page == NULL)
return 0;
- atomic_inc(&page->count);
+ //atomic_inc(&page->count);
+ get_page(page);
set_bit(PG_locked, &page->flags);
atomic_inc(&agp_bridge.current_memory_agp);
diff -uprN build_mod-mreg_new/firegl_public.c
build_mod-mreg_new-mm/firegl_public.c
--- build_mod-mreg_new/firegl_public.c 2004-05-15 03:45:06.000000000
+0300
+++ build_mod-mreg_new-mm/firegl_public.c 2004-05-15
03:25:13.000000000 +0300
@@ -2066,7 +2066,8 @@ static vm_nopage_ret_t vm_shm_nopage(str
pMmPage = virt_to_page(kaddr);
#endif /* LINUX_VERSION_CODE < 0x020400 */
- atomic_inc(&(pMmPage->count)); /* inc usage count of page */
+ //atomic_inc(&(pMmPage->count)); /* inc usage count of page */
+ get_page(pMmPage);
#if LINUX_VERSION_CODE >= 0x020400
// __KE_DEBUG3("vm-address 0x%08lx => kernel-page-address 0x%p\n",
-----------------------------------------------------------------------------------------
vmalloc.patch
-----------------------------------------------------------------------------------------
diff -ruN build_mod.orig/firegl_public.c build_mod/firegl_public.c
--- build_mod.orig/firegl_public.c 2003-09-05 00:45:33.539384168 +0200
+++ build_mod/firegl_public.c 2003-09-05 00:47:13.193234480 +0200
@@ -129,7 +129,9 @@
#define pte_offset pte_offset_map
#endif
#endif
-
+#ifndef VMALLOC_VMADDR
+#define VMALLOC_VMADDR(x) ((unsigned long)(x))
+#endif
// ============================================================
#ifndef TRUE
#define TRUE 1
------------------------------------------------------------------------------------------
More information about the fedora-list
mailing list