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?
Announcement
Collapse
No announcement yet.
AMD Catalyst 9.7 For Linux Released
Collapse
X
-
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
-
Originally posted by xeizo View PostEventually 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
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
-
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
-
Is Team Fortress 2 working?
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.1Last edited by McDuck; 24 July 2009, 09:39 AM.
Comment
-
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 sayLast edited by bulletxt; 24 July 2009, 09:55 AM.
Comment
-
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"
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); +} +
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)
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
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
Comment