Announcement

Collapse
No announcement yet.

AMD Catalyst 9.7 For Linux Released

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

  • #41
    I've not tried the latest drivers yet (might plug away at an ebuild tonight) but I notice that the windows version contains some additional opengl support (EXT_provoking_vertex and EXT_vertex_array_bgra) - anyone know if this is also in the linux version (I would suspect so, given they moved to a common opengl base), and if anything else new is listed?

    Comment


    • #42
      Just downloading the driver (90 Mb, c'mon), did anyone try out the Compiz blur plugin with this driver, yet?

      Also, does xinit xterm -- :2 work finally? This one keeps segfaulting for me everytime I try it...

      Another issue I was having with > 9.2 was that I could alt+tab out of games (which support that feature), but then everything would just be overdrawn by the game graphics (i.e. same visual result as if alt+tab would not work), although everything was working as if the game was really minimized.

      Comment


      • #43
        Originally posted by xeizo View Post
        Eventually I will switch back to ATI when drivers are more mature, but for now I'm looking forward to investigating the very fullfeatured 190.18 Nvidia-drivers
        So sad, then we won't see you again in ATI camp, you honestly think they will mature?

        Every nvidia driver is full of many new features anticipated by many, almost every ATI driver has no new features and very poor bug fixes.

        Comment


        • #44
          Originally posted by Hasenpfote View Post
          Is Team Fortress 2 working?
          Sorry I don't have TF2 But source games run.

          Comment


          • #45
            I think that most of you are missing the strategy....

            Catalyst should and probably WILL be discontinued as far as end users go. It will probably be maintained *enough* for some of their embedded clients/other weird proprietary configurations/etc. For end users, it WILL be replaced by the open source driver (as it has been already for everything up to and including R500).

            With the condition of the open source support for R600/R700, I *really* doubt that there will be any major new features added to fglrx. The beginnings of usable 3D in open source will hopefully happen within the next few weeks.


            And for everybody complaining about how bad fglrx is compared to nvidia... I remember (not too long ago) having a regression SO BAD that their driver was absolutely and completely unusable. It started with the first beta 165.xx version and it lasted for the better part of a YEAR. The result of this bug was that DPMS/mode switching would put the GPU into a really nice "limbo" state that required a radical reboot. Combine that with the poor manufacturing quality for 8000 models and higher (you know, the one where the temperature fluctuations will cause the GPU to flex and ultimately self destruct), and I'm afraid that the last nvidia I have and most likely will EVER own is my 7800 (which I've been meaning to yank for several months, but house construction has interfered).

            Comment


            • #46
              Is Team Fortress 2 working?
              Wine
              TF2 runs, kind of. Enabling multicore doesn't work and it is crash prone.

              L4D runs, but flashlight doesn't work and mat_hdr_level 0 is well, not an option :P. Enabling multicore makes it extremely dark.

              Cedega
              TF2 doesn't work with DX9, only DX8.1.

              L4D doesn't run at all.

              Edit: With hd4850 catalyst 9.7, Wine 1.1.26, Cedega 7.3.1
              Last edited by McDuck; 24 July 2009, 09:39 AM.

              Comment


              • #47
                Seriously, I think Cedega is a mess.

                Comment


                • #48
                  I'm quite sure fglrx source code is so dirty and messed up that it is the team itself that has serious problems adding new features to the driver, or even actually fixing bugs without generating 200 new ones.

                  Fglrx is a lost case, and now that they are writing an oss driver fglrx is more obsolete than Windows 3.1 . Maybe phoronix should even just stop publishing articles of fglrx since it's funny to read them.


                  "but there are some bug-fixes too."

                  more than saying lol to that I'm not sure what else one could say
                  Last edited by bulletxt; 24 July 2009, 09:55 AM.

                  Comment


                  • #49
                    Originally posted by d2kx View Post
                    Seriously, I think Cedega is a mess.
                    Sure it is, agreed. But those games does work with nvidia and cedega.
                    Afaik the games runs without major problems with nvidia&wine aswell.

                    Comment


                    • #50
                      the gentoo-patches, adapted for catalyst-9.7:

                      2.6.29-cat9.7.patch
                      Code:
                      diff -Nparu catalyst-9.7/common/lib/modules/fglrx/build_mod/firegl_public.c catalyst-9.7-2.6.29/common/lib/modules/fglrx/build_mod/firegl_public.c
                      --- catalyst-9.7/common/lib/modules/fglrx/build_mod/firegl_public.c     2009-07-11 01:02:14.000000000 +0200
                      +++ catalyst-9.7-2.6.29/common/lib/modules/fglrx/build_mod/firegl_public.c      2009-07-24 15:51:30.946052492 +0200
                      @@ -1448,7 +1448,11 @@ KCL_TYPE_Pid ATI_API_CALL KCL_GetTgid(vo
                        */
                       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 +1824,30 @@ int ATI_API_CALL KCL_PosixSecurityCapChe
                        */
                       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);
                      +        cap_raise(new->cap_effective, CAP_IPC_LOCK);
                           }
                      -    return;
                      +
                      +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
                      +    commit_creds(new);
                      +#else
                      +#undef new
                      +#endif
                       }
                      
                       /** \brief Get number of available RAM pages
                      diff -Nparu catalyst-9.7/common/lib/modules/fglrx/build_mod/firegl_public.h catalyst-9.7-2.6.29/common/lib/modules/fglrx/build_mod/firegl_public.h
                      --- catalyst-9.7/common/lib/modules/fglrx/build_mod/firegl_public.h     2009-07-11 01:02:14.000000000 +0200
                      +++ catalyst-9.7-2.6.29/common/lib/modules/fglrx/build_mod/firegl_public.h      2009-07-24 15:51:30.946052492 +0200
                      @@ -18,6 +18,7 @@
                       #define _FIREGL_PUBLIC_H_
                      
                       #include <stdarg.h>
                      +#include <asm/pgtable.h>
                       #include "kcl_pci.h"
                       #include "kcl_io.h"
                      
                      @@ -603,6 +604,11 @@ extern unsigned long        KCL_SYSINFO_
                       #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
                      @@ -611,6 +617,7 @@ extern unsigned long        KCL_SYSINFO_
                       #define pgprot_noncached(prot) __pgprot(pgprot_val(prot) | _PAGE_PCD | _PAGE_PWT)
                       #endif
                      
                      +
                       #endif //FIREGL_USWC_SUPPORT
                      
                      
                      diff -Nparu catalyst-9.7/common/lib/modules/fglrx/build_mod/kcl_acpi.c catalyst-9.7-2.6.29/common/lib/modules/fglrx/build_mod/kcl_acpi.c
                      --- catalyst-9.7/common/lib/modules/fglrx/build_mod/kcl_acpi.c  2009-07-11 01:02:14.000000000 +0200
                      +++ catalyst-9.7-2.6.29/common/lib/modules/fglrx/build_mod/kcl_acpi.c   2009-07-24 15:51:30.946052492 +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"
                      2.6.30-enable_msi-cat9.7.patch
                      Code:
                      diff -Nparu catalyst-9.7-2.6.29/common/lib/modules/fglrx/build_mod/kcl_pci.c catalyst-9.7-2.6.30-enable_msi/common/lib/modules/fglrx/build_mod/kcl_pci.c
                      --- catalyst-9.7-2.6.29/common/lib/modules/fglrx/build_mod/kcl_pci.c    2009-07-11 01:02:14.000000000 +0200
                      +++ catalyst-9.7-2.6.30-enable_msi/common/lib/modules/fglrx/build_mod/kcl_pci.c 2009-07-24 15:55:04.586051435 +0200
                      @@ -310,3 +310,9 @@ void ATI_API_CALL KCL_PCI_FreeDmaCoheren
                       }
                       #endif //__x86_64__
                      
                      +#undef pci_enable_msi
                      +int pci_enable_msi(struct pci_dev *pdev)
                      +{
                      +    return pci_enable_msi_block(pdev, 1);
                      +}
                      +
                      2.6.30-irqreturn_t-cat9.7.patch
                      Code:
                      diff -Nparu catalyst-9.7-2.6.30-enable_msi/common/lib/modules/fglrx/build_mod/drm_os_linux.h catalyst-9.7-2.6.30-irqreturn_t/common/lib/modules/fglrx/build_mod/drm_os_linux.h
                      --- catalyst-9.7-2.6.30-enable_msi/common/lib/modules/fglrx/build_mod/drm_os_linux.h    2009-07-11 01:02:14.000000000 +0200
                      +++ catalyst-9.7-2.6.30-irqreturn_t/common/lib/modules/fglrx/build_mod/drm_os_linux.h   2009-07-24 16:01:19.354051852 +0200
                      @@ -42,10 +42,12 @@
                       #define DRM_IRQ_ARGS           int irq, void *arg, struct pt_regs *regs
                       /** backwards compatibility with old irq return values */
                       #ifndef IRQ_HANDLED
                      +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
                       typedef void irqreturn_t;
                       #define IRQ_HANDLED   /* nothing */
                       #define IRQ_NONE      /* nothing */
                       #endif
                      +#endif
                      
                       /** AGP types */
                       #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,70)
                      2.6.30-rt_compat-9.7.patch
                      Code:
                      diff -Nparu catalyst-9.7-2.6.30-irqreturn_t/common/lib/modules/fglrx/build_mod/firegl_public.c catalyst-9.7-2.6.30-rt_compat/common/lib/modules/fglrx/build_mod/firegl_public.c
                      --- catalyst-9.7-2.6.30-irqreturn_t/common/lib/modules/fglrx/build_mod/firegl_public.c  2009-07-24 15:51:30.946052492 +0200
                      +++ catalyst-9.7-2.6.30-rt_compat/common/lib/modules/fglrx/build_mod/firegl_public.c    2009-07-24 16:04:37.254053559 +0200
                      @@ -1284,8 +1284,12 @@ unsigned int ATI_API_CALL KCL_ProcessIsT
                          struct task_struct *p;
                          int process_terminated = 1;
                      
                      -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17)
                      +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17)
                      +#if !defined(CONFIG_PREEMPT_RT)
                          rcu_read_lock();
                      +#else
                      +   preempt_disable();
                      +#endif
                       #else
                          read_lock(&tasklist_lock);
                       #endif
                      @@ -1306,7 +1310,11 @@ unsigned int ATI_API_CALL KCL_ProcessIsT
                             }
                          }
                       #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17)
                      +#if !defined(CONFIG_PREEMPT_RT)
                          rcu_read_unlock();
                      +#else
                      +   preempt_disable();
                      +#endif
                       #else
                          read_unlock(&tasklist_lock);
                       #endif
                      2.6.30-tlb_flush-cat9.7.patch
                      Code:
                      diff -Nparu catalyst-9.7-2.6.30-rt_compat/common/lib/modules/fglrx/build_mod/firegl_public.c catalyst-9.7-2.6.30-tlb_flush/common/lib/modules/fglrx/build_mod/firegl_public.c
                      --- catalyst-9.7-2.6.30-rt_compat/common/lib/modules/fglrx/build_mod/firegl_public.c    2009-07-24 16:04:37.254053559 +0200
                      +++ catalyst-9.7-2.6.30-tlb_flush/common/lib/modules/fglrx/build_mod/firegl_public.c    2009-07-24 16:08:07.778051481 +0200
                      @@ -2342,7 +2342,7 @@ void ATI_API_CALL KCL_flush_tlb_onepage(
                        * kernel <  2.6.27, on_each_cpu has 4 parameters.
                        * kernel >= 2.6.27, on_each_cpu has 3 parameters (removed the "retry" parameter)
                        */
                      -#if defined(__x86_64__) && (defined(__SMP__) || defined(CONFIG_SMP)) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25))
                      +#if defined(CONFIG_SMP) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25))
                       #   if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27))
                               on_each_cpu(KCL_flush_tlb_one, &va, 1, 1);
                       #   else

                      Comment

                      Working...
                      X