Announcement

Collapse
No announcement yet.

AMD 8.42 Driver Brings Fixes, AIGLX!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • AMD 8.42 Driver Brings Fixes, AIGLX!

    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

  • #2
    Faster than light... and AMD.com.

    Comment


    • #3
      AIGLX, But Not Really

      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?

      Comment


      • #4
        Originally posted by jojo_beef View Post
        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
        Michael Larabel
        http://www.michaellarabel.com/

        Comment


        • #5
          Thanks!

          Yup... I enabled Composite, but forgot AIGLX.

          Thanks!

          Comment


          • #6
            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

            Comment


            • #7
              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).
              Last edited by Game_boy; 10-23-2007, 04:16 PM.

              Comment


              • #8
                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?

                Comment


                • #9
                  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.
                  Last edited by adamk; 10-23-2007, 06:24 PM.

                  Comment


                  • #10
                    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.

                    Comment


                    • #11
                      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*

                      Comment


                      • #12
                        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.p...+8.42.3+compiz

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

                        Comment


                        • #13
                          patch for 2.6.23 kernel

                          Originally posted by rolz View Post
                          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:

                          Code:
                          --- 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;
                               }

                          Comment

                          Working...
                          X