[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] ATI fglrx OpenGL working in Xen!


  • To: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxxx>
  • From: Jacob Gorm Hansen <jacobg@xxxxxxx>
  • Date: Mon, 07 Feb 2005 18:22:12 -0800
  • Delivery-date: Tue, 08 Feb 2005 02:23:31 +0000
  • List-id: List for Xen developers <xen-devel.lists.sourceforge.net>

hi,

I gave the closed-source fglrx-driver another try, and with the latest xeno-unstable and some patching of the open-source wrapper provided with fglrx, I managed to get my ATI Radeon 9600SE accellerated OpenGL running at what appears to be full speed, in dom0.

I have attached diffs to the two source files that need changing, below. Basically, I replaced all CONFIG_X86* ifdefs with CONFIG_XEN*, and I replaced the calls to remap_page_range() with calls to io_remap_page_range().

This is not a very clean or nice patch, but it does the job. Does anyone know where to send fglrx-patches, once I have a nicer version?

Jacob
------------------------ agpgart_be.c ------------------
140a141
> 
1053c1054
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1162c1163
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1167c1168
<       agp_bridge.gatt_table = ioremap_nocache(virt_to_phys(table),
---
>       agp_bridge.gatt_table = ioremap_nocache(virt_to_bus(table),
1173c1174
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1248c1249
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1405c1406
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1446c1447
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
3179c3180
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
3199c3200
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
3204c3205
<         page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real), 
---
>         page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real), 
3209c3210
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
3238c3239
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4407c4408
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4485c4486
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4506c4507
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4600c4601
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4621c4622
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4626c4627
<       page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real), 
---
>       page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real), 
4631c4632
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4658c4659
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
------------------------ firegl_public.c ------------------
34a35
> #include <asm/pgtable.h>
41,48c42,49
< #if !defined(CONFIG_X86_PC) 
< #if !defined(CONFIG_X86_64)
< #if !defined(CONFIG_X86_VOYAGER)
< #if !defined(CONFIG_X86_NUMAQ)
< #if !defined(CONFIG_X86_SUMMIT)
< #if !defined(CONFIG_X86_BIGSMP)
< #if !defined(CONFIG_X86_VISWS)
< #if !defined(CONFIG_X86_GENERICARCH)
---
> #if !defined(CONFIG_XEN) 
> #if !defined(CONFIG_XEN_64)
> #if !defined(CONFIG_XEN_VOYAGER)
> #if !defined(CONFIG_XEN_NUMAQ)
> #if !defined(CONFIG_XEN_SUMMIT)
> #if !defined(CONFIG_XEN_BIGSMP)
> #if !defined(CONFIG_XEN_VISWS)
> #if !defined(CONFIG_XEN_GENERICARCH)
2556a2558
> 
2558c2560
<     __KE_DEBUG3("start=0x%08lx, "
---
>     printk("start=0x%08lx, "
2564a2567,2569
>       printk("__ke_vm_map\n");
>       //return -EPERM;
> 
2589c2594
<             if (remap_page_range(FGL_VMA_API_PASS
---
>             if (io_remap_page_range(vma,
2595c2600
<                 __KE_DEBUG("remap_page_range failed\n");
---
>                 __KE_DEBUG("io_remap_page_range failed\n");
2656c2661
<                               if (remap_page_range(FGL_VMA_API_PASS
---
>                               if (io_remap_page_range(vma,
2662c2667
<                                       __KE_DEBUG("remap_page_range failed\n");
---
>                                       __KE_DEBUG("io_remap_page_range 
> failed\n");
2693c2698
<                               if (remap_page_range(FGL_VMA_API_PASS
---
>                               if (io_remap_page_range(vma,
2699c2704
<                                       __KE_DEBUG("remap_page_range failed\n");
---
>                                       __KE_DEBUG("io_remap_page_range 
> failed\n");

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.