Announcement

Collapse
No announcement yet.

AMD 8.40.4 Driver -- One Bug A Day Keeps AIGLX Away

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

  • AMD 8.40.4 Driver -- One Bug A Day Keeps AIGLX Away

    AMD 8.40.4 Driver Released -- One Bug A Day Keeps AIGLX Away

    First off, congratulations to Yoshi with the extremely creative Phoronix codename for this release. The fglrx 8.40 driver (a.k.a. "One Bug A Day Keeps AIGLX Away") has been released but with not much changes. There is now a 64-bit AMDCCCLE, some TV-out options, and a couple of bug fixes. But there isn't much more beyond that.

    I guess the good news coming out of this is that you now have a better idea when the new driver will come now that another month has passed... 8.41, 8.42, 8.43, or 8.44.

    As always, the Phoronix review: http://www.phoronix.com/vr.php?view=10789

    Originally posted by Phoronix
    Last month marked the introduction of Fedora 7 support with the fglrx 8.39.4 ATI/AMD driver but not much more than that was to be found aside from an undocumented XML file. This driver did also present watermark problems that led to the driver being recalled and a corrected driver being pushed out. Today the fglrx 8.40.4 driver has been released and while many had speculated the 8.40 series would mark the introduction of the new Linux driver code-base, that's not the case for 8.40.4 driver. What changes does the 8.40.4 driver hold in store for Linux users? We'll tell you today but there isn't much.
    Michael Larabel
    http://www.michaellarabel.com/

  • #2
    The title really is the best I have read, great work

    Let's wait for the same shit release called 8.41. If you ask me, you should open another new thread once it gets nearer in September and I want all people to write bad names for the upcoming driver so AMD that seems to do nothing can see what we think about them.

    # edit:

    And now to the driver: for some reason I was able to install the 64bit build on my 32bit system and it works hehe and another thing is that you can start the Xserver with Composite and AIGLX etc. options enabled that's no problem now but it still doesn't support AIGLX.
    Last edited by d2kx; 08-13-2007, 01:39 PM.

    Comment


    • #3
      Order parts for my new system last week (still waiting for them)...was seriously considering getting a ati based GFX because of all the expectations that were on this driver....thank god I stuck with nvidia, phew!

      Comment


      • #4
        Originally posted by conholster View Post
        Order parts for my new system last week (still waiting for them)...was seriously considering getting a ati based GFX because of all the expectations that were on this driver....thank god I stuck with nvidia, phew!
        The new driver isn't out yet till later this year.
        Michael Larabel
        http://www.michaellarabel.com/

        Comment


        • #5
          Originally posted by Michael View Post
          The new driver isn't out yet till later this year.
          I dont like waiting

          Comment


          • #6
            am I the only one who doesn't appear to be able to dowload this one? i don't see it on amd.com.

            anyhow, not that the api chasing would be worth it on my .23-rc3 but hey.

            old codebase/new codebase I wonder if my apathy is justified.

            Comment


            • #7
              The site is still being updated.

              The download location is mentioned @ http://phoronix.com/forums/showthread.php?t=4691
              Michael Larabel
              http://www.michaellarabel.com/

              Comment


              • #8
                Here's a bandaid patch to get the module to compile against 2.6.23-rc3. Works here so far (i386 non PAE)

                The CCC still won't run on my XCB-enabled system

                Code:
                --- firegl_public.c.orig	2007-08-10 23:59:21.000000000 +0200
                +++ firegl_public.c	2007-08-13 20:00:26.000000000 +0200
                @@ -214,6 +214,56 @@
                 #define preempt_enable()
                 #endif
                 
                +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,22)
                +#if defined(__i386__)
                +#define ptep_test_and_clear_dirty(vma, addr, ptep) ({                  \
                +       int __ret = 0;                                                  \
                +       if (pte_dirty(*(ptep)))                                         \
                +               __ret = test_and_clear_bit(_PAGE_BIT_DIRTY,             \
                +                                               &(ptep)->pte_low);      \
                +       if (__ret)                                                      \
                +               pte_update((vma)->vm_mm, addr, ptep);                   \
                +       __ret;                                                          \
                +})
                +
                +static inline int pte_read(pte_t pte)	{ return (pte).pte_low & _PAGE_USER; }
                +static inline int pte_user(pte_t pte)	{ return (pte).pte_low & _PAGE_USER; }
                +#ifdef CONFIG_X86_PAE
                +/*
                + * Is the pte executable?
                + */
                +static inline int pte_x(pte_t pte)
                +{
                +        return !(pte_val(pte) & _PAGE_NX);
                +}
                + 
                +/*
                + * All present user-pages with !NX bit are user-executable:
                + */
                +static inline int pte_exec(pte_t pte)
                +{
                +        return pte_user(pte) && pte_x(pte);
                +}
                +#else
                +static inline int pte_exec(pte_t pte)
                +{
                +        return pte_user(pte);
                +}
                +#endif	/* PAE */
                +
                +#elif defined(__x86_64__)
                +static inline int ptep_test_and_clear_dirty(struct vm_area_struct *vma,
                +					unsigned long addr, pte_t *ptep)
                +{
                +	if (!pte_dirty(*ptep))
                +		return 0;
                +	return test_and_clear_bit(_PAGE_BIT_DIRTY, &ptep->pte);
                +}
                +static inline int pte_read(pte_t pte)	{ return pte_val(pte) & _PAGE_USER; }
                +static inline int pte_exec(pte_t pte)	{ return !(pte_val(pte) & _PAGE_NX); }
                +#endif
                +#endif
                +
                 // ============================================================
                 /* globals */
                 
                @@ -2356,7 +2406,7 @@ void ATI_API_CALL __ke_put_vm_page_table
                 #ifndef ptep_clear_flush_dirty
                 #define ptep_clear_flush_dirty(__vma, __address, __ptep) \
                 ({							 \
                -    int __dirty = ptep_test_and_clear_dirty(__ptep);	 \
                +    int __dirty = ptep_test_and_clear_dirty(__vma, __address, __ptep);	 \
                     if (__dirty)					 \
                         flush_tlb_page(__vma, __address);		 \
                     __dirty;						 \
                @@ -5303,7 +5353,7 @@ unsigned int ATI_API_CALL KAS_Spinlock_R
                 /** \brief Type definition of the structure describing Slab Cache object */
                 typedef struct tag_kasSlabCache_t
                 {
                -    kmem_cache_t* cache;        /* OS slab cache object */
                +    struct kmem_cache *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) */
                @@ -5349,7 +5399,7 @@ unsigned int ATI_API_CALL KAS_SlabCache_
                     DBG_TRACE("creating slab object '%s'", slabcache_obj->name);
                 
                     if ((slabcache_obj->cache =
                -            kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL, NULL)))
                +            kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL)))
                     {
                         ret = 1;
                     }
                Last edited by mlau; 08-13-2007, 02:28 PM.

                Comment


                • #9
                  fglrx 8.40.4 releae notes are still not uploaded at the AMD.com server and the driver itself is not avaible there... hehe.

                  Comment


                  • #10
                    Xv? Or am i hoping for to much?

                    Comment


                    • #11
                      Xv is working fine as always for me.

                      Comment


                      • #12
                        Manage to install.

                        However, I can't run amdcccle. It just hanged on start. Anyone facing this problem?

                        Comment


                        • #13
                          Works for me. I had this problem with some older versions... what distribution are you using and how did you install it?

                          Btw. this driver is still not official.

                          Comment


                          • #14
                            heh i won!
                            ...
                            now, where's the food? ;-)

                            i'm not even touching this one. this will be one fglrx release i won't even bother to download.

                            i'm happy with opensource x300 driver right now. and judging how the things are - that won't change anytime soon.

                            personally i believe ati should time their linux driver cycle to kernel/x.org releases (or mostly x.org, since there are usually minor patches needed to make kernel part work between new versions) and keep working on the driver in the meantime, releasing just bugfixes. early and often.

                            i think we would greatly benefit from this. linux is not a stable-api-land like windows is.

                            Comment


                            • #15
                              All the fglrx flaming is ok and to be honest I love reading your posts yoshi314, because I am always laughing about them and always imagine a poor driver developer at AMD that likes his work, but that has found and read your posts :P Keep 'em coming!

                              But: since 8.30, fglrx' stability has been improving for me. I had many crashes when playing games for 5 minutes, shutdown crashes, Xserver restart crashes, idle crashes, VT console switch crashes, crashes, crashes, video playback issues, crashes and colour problems, AMDCCCLE didn't start up, ... all that has been fixed in the latest versions for me, so I only get poor performance, poor wine game support and no AIGLX, but the driver itself is really getting better.

                              Comment

                              Working...
                              X