Page 19 of 22 FirstFirst ... 91718192021 ... LastLast
Results 181 to 190 of 217

Thread: AMD Releases Catalyst 9.6 For Linux

  1. #181
    Join Date
    Mar 2009
    Posts
    214

    Default

    fbo offscreen rendering appears to have been fixed in wine 1.1.24 which has just been released. Also X3R got fixed for me as well, in that the menu now renders and so do ingame textures, although all of the "normal" wine problems still exist. i.e. requires native libraries for movie playback, trading, etc. mouse is EXTREMELY laggy.

    So those, apparently were actually wine bugs and not fglrx bugs.

    GW still crashes as normal, and still wants to repair the archive every startup. The latter is definitely a wine bug, while I'm not at all sure about the cause of the former. In any even it now actually crashes in the loading screen itself instead of seeming to get as far as starting to render the playscreen.

    My sleep & video playback & other assorted bugs remain which I'm still pointing the finger at fglrx for as in the sleep freeze problem disabling compiz/beryl works around that one.

    @jdifool
    The 192SP 260 is about the same price as the 4850 while the 216SP is c. $50 more which is not alot more, and it IS a better performing card than the 4850. The 216SP 260 IS going into my i7 build because of these drivers. (Briefly consider CF 4770s, but NOT with these drivers.)
    Last edited by cutterjohn; 06-21-2009 at 10:09 PM.
    Sager NP8250-S Core i7-4800MQ/780m/32GB/128GB SSD/750GB Scorpio Black/1TB WD Blue(7mm) (win7 x64 pro)
    Acer Chromebook C720(i3-4005U/4GB) 128GB SSD(stable/crouton xfce)
    DIY ASUS P9X79/i7-3930k/64GB/multiple multiple terabyte HDDs(mostly WD 10k)/780 Ti SC (win7 x64 pro/Ubuntu 14.10)
    DIY ASROCK 990FX Extreme9/FX-9590/32GB/multiple multi-TB hdds/R9 280X

  2. #182
    Join Date
    Apr 2009
    Posts
    6

    Default

    Nice link to the 216sp, it wasn't out when I bought my 4850 (and I think my shuttle would have to be modded for the card to fit...)
    It doesn't change my point though.

    Thanks for the info.
    cheers.

  3. #183
    Join Date
    Sep 2007
    Location
    Paris, France
    Posts
    217

    Default

    Quote Originally Posted by RealNC View Post
    Gentoo isn't Slackware. You aren't supposed to do things by hand in Gentoo. There are tools you should use, or you break the system. So your instructions are not for everyone. If you don't know how to unbreak the system, don't follow them. If you know how to unbreak your system, I suppose you didn't need those instructions in the first place
    Very true.
    However, for those who feel adventurous, here's a post in Gentoo forums that explains how to install a fglrx driver which is not in the portage tree (stucked in 9.3 probably for compatibility reasons ?).
    http://forums.gentoo.org/viewtopic-t...ighlight-.html

    In a nutshell, it's about creating a local overlay, copy the ebuild files from portage tree, modify them to accept 9.5 or 9.6 drivers, manifest them and finally emerge them.

    This looks simple, but there is few caveats to avoid in order to keep a nice and clean running gentoo.

    I have to admit that I didn't follow that topic, as I'm part of the guys who don't know how to unbreak my system. So, I'm waiting patiently the update in the official portage tree. Much safer.

  4. #184
    Join Date
    Jul 2008
    Location
    Greece
    Posts
    3,801

    Default

    You can read the official documentation on how to create overlays rather than some people writing on forums :P

    http://www.gentoo.org/doc/en/handboo...ap=5#doc_chap2

  5. #185
    Join Date
    Jun 2009
    Posts
    5

    Default

    Quote Originally Posted by PuckPoltergeist View Post
    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.

    Thank you for the patch - most elegant I have found on the net.
    Kano, I can confirm it works with 2.6.30 unmodified kernel - at least on my openSUSE_11.1 system.

    For 2.6.30-git18 and catalyst 9-6 I found that the following one patch to the linux kernel:
    add "EXPORT_SYMBOL(find_task_by_vpid);" in pid.c
    also makes your patch work with 2.6.30-git18, so fglrx will probably work with 2.6.31 as well.

    Looking forward to your patch for 2.6.31 without modified kernel sources!

  6. #186
    Join Date
    Aug 2007
    Posts
    6,679

    Default

    Maybe it is only needed for 32 bit.

  7. #187

    Default

    Quote Originally Posted by Kano View Post
    Maybe it is only needed for 32 bit.
    You mean flush_tlb_page? I don't find it in the driver, neither in the glue layer nor in the binary.

  8. #188
    Join Date
    Aug 2007
    Posts
    6,679

    Default

    Did you try 9-3 and other drivers too? 9-3 is needed for older cards too. Of course not possible for Xserver 1.6.

  9. #189

    Default

    Quote Originally Posted by Kano View Post
    Did you try 9-3 and other drivers too? 9-3 is needed for older cards too. Of course not possible for Xserver 1.6.
    No, I've only checked 9.6 cause the patch is only made for 9.6.

  10. #190
    Join Date
    Aug 2007
    Posts
    6,679

    Default

    Usually the same patch works at least down to 9-2 (did not test older ones). I did not try this patch however, but the fglrx kernel module code did not change much...

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •