Announcement

Collapse
No announcement yet.

AMD Releases Catalyst 9.6 For Linux

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

  • Originally posted by RealNC View Post
    I suppose AMD doesn't intent to give us a "hotfix" with new kernel support like they do with Windows.
    Why not, for Arch Linux, since we are a rolling release, you get the latest fixes, so we can slip it in in an update. For Ubuntu and the others the hotfix can be provided by SP1. LOL

    Comment


    • Originally posted by djdoo View Post
      Wow guys I am really happy about this release!!

      At LAST Hybrid Crossfire worked for me!!! Hurray!!

      And I see no garbage at my screen when the PC shuts down!!

      I recommend all of you to upgrade to this driver 9.6!
      Wow! (BTW, are you the same djdoo from the compiz-fusion forums?)

      This is awesome, how did you get the hybrid Crossfire set up? From the amdcccle GUI? If you posted a mini-howto or blog somewhere I'd love to take a look. I have an HD 3200 IGP, and I am planning to buy a dedicated ATI card to work in hybrid mode later this year.

      Thanks in advance!

      Comment


      • Originally posted by bridgman View Post
        Thanks, kensai. There were reports of a stream of kernel error messages when using one of these patches (but that might have been a KCL patch rather than kernel patch). Did you see anything like that ?

        The errors come from the binary blob. This can only be fixed by the ATI/AMD devs.

        the patch to get the source compile with 2.6.30:
        Code:
        diff -Nru fglrx-orig/build_mod/drm_os_linux.h fglrx/build_mod/drm_os_linux.h
        --- fglrx-orig/build_mod/drm_os_linux.h	2009-05-30 01:21:53.000000000 +0200
        +++ fglrx/build_mod/drm_os_linux.h	2009-06-17 14:08:22.000000000 +0200
        @@ -42,7 +42,7 @@
         #define DRM_IRQ_ARGS		int irq, void *arg, struct pt_regs *regs
         /** backwards compatibility with old irq return values */
         #ifndef IRQ_HANDLED
        -typedef void irqreturn_t;
        +//typedef void irqreturn_t;
         #define IRQ_HANDLED   /* nothing */
         #define IRQ_NONE      /* nothing */
         #endif
        diff -Nru fglrx-orig/build_mod/firegl_public.c fglrx/build_mod/firegl_public.c
        --- fglrx-orig/build_mod/firegl_public.c	2009-05-30 01:21:53.000000000 +0200
        +++ fglrx/build_mod/firegl_public.c	2009-06-17 15:21:09.000000000 +0200
        @@ -282,6 +282,18 @@
         
         // ============================================================
         /* global structures */
        +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,29)
        +#undef pci_enable_msi
        +int pci_enable_msi(struct pci_dev* dev)
        +{
        +	int status;
        +
        +	status = pci_enable_msi_block(dev, 1);
        +
        +	return status;
        +}
        +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,29)
        +
         int ip_firegl_open(struct inode* inode, struct file* filp)
         {
             int m;
        @@ -1226,8 +1238,6 @@
          */
         int ATI_API_CALL KCL_SetPageCache_Array(unsigned long *pt, int pages, int enable)
         {
        -    unsigned int i;
        -    int ret = 0;
         #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
             if (enable)
             {
        @@ -1238,6 +1248,8 @@
                 return set_memory_array_uc(pt, pages);
             }  
         #else               
        +    unsigned int i;
        +    int ret = 0;
             for( i = 0; i < pages; i++ )
             {
                 ret = KCL_SetPageCache((void *)pt[i], 1, enable);
        @@ -1448,7 +1460,11 @@
          */
         KCL_TYPE_Uid ATI_API_CALL KCL_GetEffectiveUid(void)
         {
        +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
        +    return current->cred->euid;
        +#else
             return current->euid;
        +#endif
         }
         
         /** /brief Delay execution for the specified number of microseconds
        @@ -1820,15 +1836,28 @@
          */
         void ATI_API_CALL KCL_PosixSecurityCapSetIPCLock(unsigned int lock)
         {
        +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
        +    struct cred *new = prepare_creds();
        +    if (!new) {
        +        printk(KERN_ERR "fglrx: could not allocate memory\n");
        +        return;
        +    }
        +#else
        +#define new current
        +#endif
             if (lock == 0 )
             {
        -        cap_lower(current->cap_effective, CAP_IPC_LOCK);
        +	cap_lower(new->cap_effective, CAP_IPC_LOCK);
             }
             else
             {
        -        cap_raise(current->cap_effective, CAP_IPC_LOCK);
        -    }    
        -    return; 
        +	cap_raise(new->cap_effective, CAP_IPC_LOCK);
        +    }
        +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
        +    commit_creds(new);
        +#else
        +#undef new
        +#endif
         }
         
         /** \brief Get number of available RAM pages
        diff -Nru fglrx-orig/build_mod/firegl_public.h fglrx/build_mod/firegl_public.h
        --- fglrx-orig/build_mod/firegl_public.h	2009-05-30 01:21:53.000000000 +0200
        +++ fglrx/build_mod/firegl_public.h	2009-06-17 14:11:15.000000000 +0200
        @@ -18,6 +18,7 @@
         #define _FIREGL_PUBLIC_H_
         
         #include <stdarg.h>
        +#include <asm/pgtable.h>
         #include "kcl_pci.h"
         #include "kcl_io.h"
         
        @@ -600,6 +601,11 @@
         #define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)
         #endif
         
        +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
        +#undef pgprot_writecombine
        +#undef pgprot_noncached
        +#endif#
        +
         #ifndef pgprot_writecombine
         #define pgprot_writecombine(prot) __pgprot((pgprot_val(prot) & ~(_PAGE_PCD)) | _PAGE_PWT)
         #endif
        diff -Nru fglrx-orig/build_mod/kcl_acpi.c fglrx/build_mod/kcl_acpi.c
        --- fglrx-orig/build_mod/kcl_acpi.c	2009-05-30 01:21:53.000000000 +0200
        +++ fglrx/build_mod/kcl_acpi.c	2009-06-17 14:33:21.000000000 +0200
        @@ -18,6 +18,12 @@
         #include <linux/autoconf.h>
         #include <linux/acpi.h>
         
        +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
        +#include <../drivers/acpi/acpica/acconfig.h>
        +#include <../drivers/acpi/acpica/aclocal.h>
        +#include <../drivers/acpi/acpica/acobject.h>
        +#endif
        +
         #include "kcl_config.h"
         #include "kcl_type.h"
         #include "kcl_acpi.h"
        Changes on the linux source aren't necessary.

        Comment


        • Did not try your patch yet, but how do you get rid of flush_tlb_page which is in the binary part?

          Comment


          • Kindly ask AMD for an fglrx build with the debug symbol still in :P

            Comment


            • Originally posted by Kano View Post
              Did not try your patch yet, but how do you get rid of flush_tlb_page which is in the binary part?
              Not sure, but either it's because auf my kernel config (had the same issue with nvidia some time ago) or flush_tlb_page ist x86 specific und doesn't occour on x86_64.
              But I think we should be able to create flush_tlb_page in the fglrx sources as I've done with pci_enable_msi, if necessary.

              edit:
              It's the config (I'm not using SMP here) and also flush_tlb_page is only called in firegl_public.c
              Last edited by PuckPoltergeist; 06-17-2009, 08:18 PM.

              Comment


              • Wow 9.6 already I bailed out after 9.4

                Open source is great, open source drivers are great. But when you pay over 500 bucks for what you think is the best high end card at the time 4870 X2 and the proprietary drivers are crap it kind of makes you want to never buy ATI again. I bought the 4870 x 2 so I could play the new GTA game. It was unplayable with the settings set below half. The previous
                GTA looked better at this point and played smoother. At first I blamed Vista. Then I dumped Windows and Learned Linux then I dumped the ATI card and bought a mid range Nvidia card and am now playing games Google Earth works great in Jaunty as well.
                Lessons learned Windows sucks, ATI's drivers suck!
                P.S no I'm not playing GTA in Linux
                Linux Games Publishing has some great games now ported to Linux and they run great!!

                Comment


                • Originally posted by hpestilence View Post
                  In current wine-git + catalyst 9.6 eve-online is working perfectly without patches, probably a lot of other shader model 3 games too.
                  Yes. That wasn't actually a driver fix, but a wine fix.

                  http://ati.cchtml.com/show_bug.cgi?id=1575

                  The problem when most developers only have one brand of card is that they assume that the implementation is correct and begin to assume that the way the majority driver is implemented is the right way.

                  I am not saying any driver does not have bugs, but a monoculture isn't healthy either.

                  Regards,

                  Matthew

                  Comment


                  • Originally posted by mtippett View Post
                    Yes. That wasn't actually a driver fix, but a wine fix.

                    http://ati.cchtml.com/show_bug.cgi?id=1575

                    The problem when most developers only have one brand of card is that they assume that the implementation is correct and begin to assume that the way the majority driver is implemented is the right way.

                    I am not saying any driver does not have bugs, but a monoculture isn't healthy either.

                    Regards,

                    Matthew
                    Actually it was this bug that was mostly the problem.

                    http://ati.cchtml.com/show_bug.cgi?id=1462

                    Once it was fixed Henri was quick to fix a wine bug in which a shader used 15 vec4 varyings + gl_FrontColor and gl_FrontSecondaryColor.

                    The describeDrawable wine bug was only hit if you ran WINEDEBUG=wgl along with wine.

                    Comment


                    • Originally posted by hpestilence View Post
                      Actually it was this bug that was mostly the problem.

                      http://ati.cchtml.com/show_bug.cgi?id=1462

                      Once it was fixed Henri was quick to fix a wine bug in which a shader used 15 vec4 varyings + gl_FrontColor and gl_FrontSecondaryColor.

                      The describeDrawable wine bug was only hit if you ran WINEDEBUG=wgl along with wine.
                      Okay my bad.

                      Note to others: If you find a bug, making a reproducable reduced test-case really helps. Also note the delay between engagement and release.

                      Matt

                      Comment


                      • Originally posted by mirv View Post
                        Cheers energyman.
                        I was going to make my own ebuild tonight, but you've saved me the trouble!
                        my ebuild is incomplete - it always patches for 2.6.29 and it doesn't patch for .30 yet - because I was lazy Also: no reiser4 for .30 yet.

                        but if you have to use 2.6.28 you can comment out the epatch - and if you need .30 - adding a patch to an ebuild is easily done.

                        Comment


                        • I just tried 9.6 with fc11 userspace and 2.6.28.10, no go.

                          9.5 worked with the same kernel using fc10 userspace though.

                          Comment


                          • Originally posted by energyman View Post
                            my ebuild is incomplete - it always patches for 2.6.29 and it doesn't patch for .30 yet - because I was lazy Also: no reiser4 for .30 yet.

                            but if you have to use 2.6.28 you can comment out the epatch - and if you need .30 - adding a patch to an ebuild is easily done.
                            It's all good - I'm still running 2.6.29 anyways (I just like seeing Tuz for a bit longer).

                            Comment


                            • Originally posted by blindfrog View Post
                              Downgrade to Fedora 10, compile wine-git and HL2 with catalyst 9.6 works great with radeon 4850 here all the DX9 effects on!
                              That depends. With 1.1.23 (wine) and the default fbo backbuffering mode a large number of D3D apps are crashing with catalyst. Apparently some sort of inability to render a particular texture type.

                              Changing the rendering type to backbuffer allows some apps to get a bit further, but the only D3D app that I've tried (Guild Wars) crashing after loading when it begins to render the playscreen.

                              X3 Reunion doesn't render menus/text and many textures properly(black areas) using either native .dlls or wine versions so I'm inclined to believe that this is yet another catalyst bug as replacing some of the wine .dlls with native ones apparently allows it run well on nVidia parts.

                              Opengl based windows apps seem to work OK, or at least the only one that I tried, Minions of Mirth runs fine.

                              At least the horrible flickering that opengl apps exhibited a while ago is gone, just wish that they'd fix the compiz/beryl awake from sleep freeze, video playback freezes, texture rendering, etc. (These all have entries in the unofficial bugzilla already and in wine's bugzilla as well, but those are mostly broken catalyst problems and have been marked as such.)

                              I feel like an beta tester.

                              Comment


                              • Originally posted by cutterjohn View Post
                                ...

                                I feel like an beta tester.
                                Well, the last "stable" WINE release *is* 1.0.1.
                                1.1.23 broke a lot of Windows installers for me; almost none of my games can install. 1.1.18-1.1.21 seem to be the best revisions.

                                Comment

                                Working...
                                X