PDA

View Full Version : AMD 8.42 Driver Brings Fixes, AIGLX!


phoronix
10-23-2007, 01:20 PM
Phoronix: AMD 8.42 Driver Brings Fixes, AIGLX!

Today it's now time where the fglrx driver reaches yet another milestone. Not only does today's release address many of the outstanding bugs for the earlier GPU generations while also introducing a few new features, but it also delivers AIGLX support! Yes, you read that right. You can finally run your ATI graphics card with the fglrx driver and run Compiz, Beryl, or Compiz Fusion without using XGL! This is coming 13 months after NVIDIA had introduced its AIGLX support, but now just days after the release of Ubuntu 7.10 Gutsy Gibbon it's here for ATI hardware. Granted, if you were using an older ATI GPU with the open-source Radeon driver, you could have been benefiting from AIGLX already.

http://www.phoronix.com/vr.php?view=11287

d2kx
10-23-2007, 01:32 PM
Faster than light... and AMD.com.

jojo_beef
10-23-2007, 03:28 PM
I'm using a Mobility Radeon X1400 with Ubuntu 7.10, and when I try to start Compiz (or Beryl), the whole screen goes grey. I can move my mouse cursor around (it even changes to text- or hand-style cursor as I move over my invisible windows), but I can't see anything!

Any ideas? I've added fglrx to the Compiz whitelist, and I've put 'Option "Composite" "Enable"' in my xorg.conf... anything else?

Michael
10-23-2007, 03:29 PM
I'm using a Mobility Radeon X1400 with Ubuntu 7.10, and when I try to start Compiz (or Beryl), the whole screen goes grey. I can move my mouse cursor around (it even changes to text- or hand-style cursor as I move over my invisible windows), but I can't see anything!

Any ideas? I've added fglrx to the Compiz whitelist, and I've put 'Option "Composite" "Enable"' in my xorg.conf... anything else?

See this thread for a lot of information: http://www.phoronix.com/forums/showthread.php?t=5947

jojo_beef
10-23-2007, 03:53 PM
Yup... I enabled Composite, but forgot AIGLX.

Thanks!

rolz
10-23-2007, 04:09 PM
anybody any luck with .23? it says the issues are with 64 bit, how about on 32bit?

fixing the compile issues is no problem, but after that it just segfaults

Game_boy
10-23-2007, 04:13 PM
Please help! I have two cursors (one embedded on the screen), my xorg.conf is messed up, aticccle has a "segmentation fault", aticonfig crashed X and I don't know what'll happen if I restart.

I used sudo sh <filename> and chose Manual then ticked all the boxes.

What can I do to cleanly reinstall it? I disabled the old version of fglrx that came with Ubuntu in the manager, but I did it between the install and the reinstall.

Should I re-enable it? Reinstall 8.42? Give up?

I have Ubuntu 7.10 x86 and an X1950PRO (R500).

bitfoo
10-23-2007, 04:18 PM
Will this driver allow those of us with two screens to run Compiz across both? Before with my ATI card I had to use xinerama, which compiz didn't support because apparently it only did textures up to 2048x2048. Now I have Gutsy and I read that xrandr is available and should alleviate these concerns, especially with this new driver?

adamk
10-23-2007, 05:27 PM
Well I'm having no luck so far... Using opensuse 10.3. From /var/log/Xorg.0.log:

(II) fglrx(0): [DRI] installation complete
(II) fglrx(0): Direct rendering enabled
<snip>
(EE) AIGLX error: dlsym for __driCreateNewScreen_20050727 failed (/usr/lib64/dri/fglrx_dri.so: undefined symbol: __driCreateNewScreen_20050727)
(EE) AIGLX: reverting to software rendering

[adamk@sorrow ~]$ LIBGL_DEBUG=verbose glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: No
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_hyperpipe,
GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig, GLX_MESA_copy_sub_buffer
client glx vendor string: SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGIS_multisample,
GLX_SGIX_fbconfig, GLX_EXT_texture_from_pixmap
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.5 Mesa 6.5.2)

I'm guessing this is all caused by the undefined symbol...

EDIT:

Well, I'm a fool. I have direct rendering working now... compiz still won't start up, but I'm getting closer.

gummybearx
10-23-2007, 07:15 PM
i have opensuse 10.3 and 64 bit, and i got it working. SaX2 wont work for me though, it sets up the display, but just flashes the cursor at me.

i had to run "aticonfig --initial --input=/etc/X11/xorg.conf" or w/e. then x (7.3) could start.

but compiz dies when i try to load it, complaining about GL extentions or something. also, chromium bsu freezes EVERYTHING.

Kano
10-23-2007, 09:56 PM
Well the test results with Xorg 7.3/Xserver 1.4 are not that positive as the review only uses Xorg 7.2/Xserver 1.3. There you have got no AIGLX support, also there must be a driver init failure, as the first 3d app with Xserver 1.4 never works (you have to stop it!), only the ones after. This did not happen with 8.41.7 - needed -ignoreABI however, so I would call it a regression as older drivers work better with it. That the packageing scripts are only tested with 32 bit I would say is "normal" for ATI ;) For Debian/Ubuntu users I added already the needed patch to my script - for others wait for someone else *g*

SlickMcRunfast
10-24-2007, 04:04 AM
It works!

I'm on Ubuntu 7.10 with a Dell Ins 8600 Ati Mobile Rad 9600.

All I used was these two links and magic happened.

http://ubuntuforums.org/showthread.php?t=575843

http://ubuntuforums.org/showthread.php?t=588605&highlight=ati+8.42.3+compiz

I came up with the same problems many other people seem to have with slow scrolling in Firefox.

dmn56
10-31-2007, 05:22 AM
anybody any luck with .23? it says the issues are with 64 bit, how about on 32bit?

fixing the compile issues is no problem, but after that it just segfaults

Using the 2.6.23 kernel on X1600 hardware (Macbook Pro), the following patch seems to work for me:

--- modules/fglrx/firegl_public.c 2007-10-31 12:23:44.000000000 +1100
+++ modules/fglrx/firegl_public.c.orig 2007-10-27 12:42:40.000000000 +1000
@@ -2486,24 +2486,10 @@
kunmap((struct page*) page_addr);
}

-#ifndef ptep_test_and_clear_dirty
-#define ptep_test_and_clear_dirty(__vma, __address, __ptep) \
-({ \
- pte_t __pte = *__ptep; \
- int r = 1; \
- if (!pte_dirty(__pte)) \
- r = 0; \
- else \
- set_pte_at((__vma)->vm_mm, (__address), (__ptep), \
- pte_mkclean(__pte)); \
- r; \
-})
-#endif
-
#ifndef ptep_clear_flush_dirty
#define ptep_clear_flush_dirty(__vma, __address, __ptep) \
({ \
- int __dirty = ptep_test_and_clear_dirty(__vma, __address, __ptep); \
+ int __dirty = ptep_test_and_clear_dirty(__ptep); \
if (__dirty) \
flush_tlb_page(__vma, __address); \
__dirty; \
@@ -3534,9 +3520,6 @@
return buf;
}

-static inline int pte_user(pte_t pte) { return (pte).pte_low & _PAGE_USER; }
-static inline int pte_read(pte_t pte) { return (pte).pte_low & _PAGE_USER; }
-
static
char *__ke_pte_phys_addr_str(pte_t pte, char *buf, __ke_dma_addr_t* phys_address)
{
@@ -3552,7 +3535,7 @@
pte_present (pte) ? 'p' : '-',
pte_read (pte) ? 'r' : '-',
pte_write (pte) ? 'w' : '-',
- pte_user (pte) ? 'x' : '-',
+ pte_exec (pte) ? 'x' : '-',
pte_dirty (pte) ? 'd' : '-',
pte_young (pte) ? 'a' : '-');
}
@@ -5453,7 +5436,7 @@
/** \brief Type definition of the structure describing Slab Cache object */
typedef struct tag_kasSlabCache_t
{
- struct kmem_cache* cache; /* OS slab cache object */
+ kmem_cache_t* cache; /* OS slab cache object */
spinlock_t lock; /* OS spinlock object protecting the cache */
unsigned int routine_type; /* Type of routine the cache might be accessed from */
char name[14]; /* Cache object name (kernel 2.4 restricts its length to 19 chars) */
@@ -5499,7 +5482,7 @@
DBG_TRACE("creating slab object '%s'", slabcache_obj->name);

if ((slabcache_obj->cache =
- kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL )))
+ kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL, NULL)))
{
ret = 1;
}