* ATI fglrx OpenGL working in Xen!
@ 2005-02-08 2:22 Jacob Gorm Hansen
2005-02-08 8:13 ` Jacob Gorm Hansen
2005-02-08 23:08 ` Jacob Gorm Hansen
0 siblings, 2 replies; 6+ messages in thread
From: Jacob Gorm Hansen @ 2005-02-08 2:22 UTC (permalink / raw)
To: xen-devel
[-- Attachment #1: Type: text/plain, Size: 639 bytes --]
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
[-- Attachment #2: fglrx.diff --]
[-- Type: text/plain, Size: 3947 bytes --]
------------------------ 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");
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ATI fglrx OpenGL working in Xen!
2005-02-08 2:22 ATI fglrx OpenGL working in Xen! Jacob Gorm Hansen
@ 2005-02-08 8:13 ` Jacob Gorm Hansen
2005-02-12 16:53 ` Christian Limpach
2005-02-08 23:08 ` Jacob Gorm Hansen
1 sibling, 1 reply; 6+ messages in thread
From: Jacob Gorm Hansen @ 2005-02-08 8:13 UTC (permalink / raw)
To: xen-devel
[-- Attachment #1: Type: text/plain, Size: 220 bytes --]
Jacob Gorm Hansen wrote:
> 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?
Here is a diff -Naur version, see attached.
Jacob
[-- Attachment #2: fglrx.patch --]
[-- Type: text/plain, Size: 8727 bytes --]
diff -Naur old/agpgart_be.c new/agpgart_be.c
--- old/agpgart_be.c 2005-02-07 23:32:27.881712680 -0800
+++ new/agpgart_be.c 2005-02-07 23:48:18.705165544 -0800
@@ -138,6 +138,7 @@
#include <asm/system.h>
#include <asm/uaccess.h>
#include <asm/io.h>
+
#include <asm/page.h>
#include "agp_backend.h"
@@ -1050,7 +1051,7 @@
#ifndef AGPGART_2_2
struct page *page;
#endif /* !AGPGART_2_2 */
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
int err;
#endif
@@ -1159,18 +1160,18 @@
agp_bridge.gatt_table_real = (unsigned long *) table;
CACHE_FLUSH();
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
err = change_page_attr(virt_to_page(table), 1<<page_order, PAGE_KERNEL_NOCACHE);
if (!err)
#endif
{
- agp_bridge.gatt_table = ioremap_nocache(virt_to_phys(table),
+ agp_bridge.gatt_table = ioremap_nocache(virt_to_bus(table),
(PAGE_SIZE * (1 << page_order)));
}
CACHE_FLUSH();
if (agp_bridge.gatt_table == NULL
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
|| (err)
#endif
)
@@ -1245,7 +1246,7 @@
* from the table.
*/
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
change_page_attr(virt_to_page(agp_bridge.gatt_table_real), 1<<page_order,
PAGE_KERNEL);
#endif
@@ -1402,7 +1403,7 @@
return 0;
}
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
if (change_page_attr(page, 1, PAGE_KERNEL_NOCACHE) < 0) {
__free_page(page);
return 0;
@@ -1443,7 +1444,7 @@
}
page = virt_to_page((unsigned long)pt);
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
change_page_attr(page, 1, PAGE_KERNEL);
#endif
@@ -3176,7 +3177,7 @@
static int amd_create_page_map(amd_page_map *page_map)
{
int i;
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
int err;
#endif
@@ -3196,17 +3197,17 @@
set_bit(PG_reserved, &virt_to_page((unsigned long)page_map->real)->flags);
CACHE_FLUSH();
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
err = change_page_attr(virt_to_page(page_map->real), 1, PAGE_KERNEL_NOCACHE);
if (!err)
#endif
{
- page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
+ page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
PAGE_SIZE);
}
if ( (page_map->remapped == NULL)
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
|| (err)
#endif
)
@@ -3235,7 +3236,7 @@
&mem_map[MAP_NR(page_map->real)].flags);
#else /* !AGPGART_2_2 */
iounmap(page_map->remapped);
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
change_page_attr(virt_to_page(page_map->real), 1, PAGE_KERNEL);
#endif
clear_bit(PG_reserved,
@@ -4404,7 +4405,7 @@
// 2.4.8-ac7 and 2.4.13
unsigned long page_addr;
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
page_addr = agp_generic_alloc_page();
if (page_addr == 0)
return 0;
@@ -4482,7 +4483,7 @@
static void ali_destroy_page(unsigned long addr)
{
void *pt = (void *) addr;
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
/* no more vars needed */
#else
struct page *page;
@@ -4503,7 +4504,7 @@
ALI_CACHE_FLUSH_EN));
}
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
agp_generic_destroy_page(addr);
#else
page = virt_to_page((unsigned long)pt);
@@ -4597,7 +4598,7 @@
static int serverworks_create_page_map(serverworks_page_map *page_map)
{
int i;
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
int err;
#endif
@@ -4618,17 +4619,17 @@
set_bit(PG_reserved, &virt_to_page((unsigned long)page_map->real)->flags);
CACHE_FLUSH();
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
err = change_page_attr(virt_to_page(page_map->real), 1, PAGE_KERNEL_NOCACHE);
if (!err)
#endif
{
- page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
+ page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
PAGE_SIZE);
}
if ( (page_map->remapped == NULL)
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
|| (err)
#endif
)
@@ -4655,7 +4656,7 @@
clear_bit(PG_reserved,
&mem_map[MAP_NR(page_map->real)].flags);
#else /* !AGPGART_2_2 */
-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
change_page_attr(virt_to_page(page_map->real),1,PAGE_KERNEL);
#endif
iounmap(page_map->remapped);
diff -Naur old/firegl_public.c new/firegl_public.c
--- old/firegl_public.c 2005-02-07 23:32:37.832199976 -0800
+++ new/firegl_public.c 2005-02-07 23:49:50.919146888 -0800
@@ -32,13 +32,14 @@
// ============================================================
#include <linux/version.h>
#include <linux/autoconf.h>
+#include <asm/pgtable.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,71)
#define EXPORT_SYMTAB 1
#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,71)
-#if !defined(CONFIG_X86_PC)
+#if !defined(CONFIG_X86)
#if !defined(CONFIG_X86_64)
#if !defined(CONFIG_X86_VOYAGER)
#if !defined(CONFIG_X86_NUMAQ)
@@ -46,6 +47,7 @@
#if !defined(CONFIG_X86_BIGSMP)
#if !defined(CONFIG_X86_VISWS)
#if !defined(CONFIG_X86_GENERICARCH)
+#if !defined(CONFIG_XEN)
#error unknown or undefined architecture configured
#endif
#endif
@@ -55,6 +57,7 @@
#endif
#endif
#endif
+#endif
#endif /* LINUX_VERSION_CODE */
// ============================================================
@@ -2554,8 +2557,9 @@
enum __ke_vm_maptype type,
int readonly)
{
+
unsigned int pages;
- __KE_DEBUG3("start=0x%08lx, "
+ __KE_DEBUG("start=0x%08lx, "
"end=0x%08lx, "
"offset=0x%08lx\n",
vma->vm_start,
@@ -2586,13 +2590,13 @@
#endif /* __ia64__ */
vma->vm_flags |= VM_IO; /* not in core dump */
}
- if (remap_page_range(FGL_VMA_API_PASS
+ if (io_remap_page_range(vma,
vma->vm_start,
__ke_vm_offset(vma),
vma->vm_end - vma->vm_start,
vma->vm_page_prot))
{
- __KE_DEBUG("remap_page_range failed\n");
+ __KE_DEBUG("io_remap_page_range failed\n");
return -EAGAIN;
}
vma->vm_flags |= VM_SHM | VM_RESERVED; /* Don't swap */
@@ -2653,13 +2657,13 @@
{
if (__ke_vm_offset(vma) >= __pa(high_memory))
vma->vm_flags |= VM_IO; /* not in core dump */
- if (remap_page_range(FGL_VMA_API_PASS
+ if (io_remap_page_range(vma,
vma->vm_start,
__ke_vm_offset(vma),
vma->vm_end - vma->vm_start,
vma->vm_page_prot))
{
- __KE_DEBUG("remap_page_range failed\n");
+ __KE_DEBUG("io_remap_page_range failed\n");
return -EAGAIN;
}
#ifdef __x86_64__
@@ -2690,13 +2694,13 @@
{
if (__ke_vm_offset(vma) >= __pa(high_memory))
vma->vm_flags |= VM_IO; /* not in core dump */
- if (remap_page_range(FGL_VMA_API_PASS
+ if (io_remap_page_range(vma,
vma->vm_start,
__ke_vm_offset(vma),
vma->vm_end - vma->vm_start,
vma->vm_page_prot))
{
- __KE_DEBUG("remap_page_range failed\n");
+ __KE_DEBUG("io_remap_page_range failed\n");
return -EAGAIN;
}
#ifdef __x86_64__
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ATI fglrx OpenGL working in Xen!
2005-02-08 2:22 ATI fglrx OpenGL working in Xen! Jacob Gorm Hansen
2005-02-08 8:13 ` Jacob Gorm Hansen
@ 2005-02-08 23:08 ` Jacob Gorm Hansen
1 sibling, 0 replies; 6+ messages in thread
From: Jacob Gorm Hansen @ 2005-02-08 23:08 UTC (permalink / raw)
To: xen-devel
Jacob Gorm Hansen wrote:
> 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 accelerated OpenGL running
> at what appears to be full speed, in dom0.
(...and I'll stop whining about the drivers being in dom0 for now ;-))
Jacob
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ATI fglrx OpenGL working in Xen!
2005-02-08 8:13 ` Jacob Gorm Hansen
@ 2005-02-12 16:53 ` Christian Limpach
2005-02-13 7:28 ` Jacob Gorm Hansen
0 siblings, 1 reply; 6+ messages in thread
From: Christian Limpach @ 2005-02-12 16:53 UTC (permalink / raw)
To: Jacob Gorm Hansen; +Cc: xen-devel
On Tue, 08 Feb 2005 00:13:25 -0800, Jacob Gorm Hansen <jacobg@diku.dk> wrote:
> Jacob Gorm Hansen wrote:
>
> > 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?
>
> Here is a diff -Naur version, see attached.
I think you can skip the additional tests for CONFIG_XEN since
CONFIG_X86 should be defined if building a xen/i386 kernel.
christian
> -#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
> +#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ATI fglrx OpenGL working in Xen!
2005-02-12 16:53 ` Christian Limpach
@ 2005-02-13 7:28 ` Jacob Gorm Hansen
2005-02-13 11:10 ` Christian Limpach
0 siblings, 1 reply; 6+ messages in thread
From: Jacob Gorm Hansen @ 2005-02-13 7:28 UTC (permalink / raw)
To: Christian.Limpach; +Cc: xen-devel
Christian Limpach wrote:
> I think you can skip the additional tests for CONFIG_XEN since
> CONFIG_X86 should be defined if building a xen/i386 kernel.
>
> christian
>
>
>>-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
>>+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
It seemed to need these when running from gentoo's 'ati-drivers' ebuild
script, but perhaps I did something wrong.
thanks,
Jacob
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ATI fglrx OpenGL working in Xen!
2005-02-13 7:28 ` Jacob Gorm Hansen
@ 2005-02-13 11:10 ` Christian Limpach
0 siblings, 0 replies; 6+ messages in thread
From: Christian Limpach @ 2005-02-13 11:10 UTC (permalink / raw)
To: Jacob Gorm Hansen; +Cc: xen-devel
On Sat, Feb 12, 2005 at 11:28:38PM -0800, Jacob Gorm Hansen wrote:
> Christian Limpach wrote:
>
> >I think you can skip the additional tests for CONFIG_XEN since
> >CONFIG_X86 should be defined if building a xen/i386 kernel.
> >
> > christian
> >
> >
> >>-#if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
> >>+#if (defined(CONFIG_X86) || defined(CONFIG_XEN)) && (PAGE_ATTR_FIX != 0)
>
> It seemed to need these when running from gentoo's 'ati-drivers' ebuild
> script, but perhaps I did something wrong.
hmm, don't you usually need to point module builds at the kernel
sources and the .config file of the kernel you're building the kernel for?
If that's not the case, then it would be simpler to #define CONFIG_X86
when CONFIG_XEN is set inside the driver source file...
christian
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2005-02-13 11:10 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-08 2:22 ATI fglrx OpenGL working in Xen! Jacob Gorm Hansen
2005-02-08 8:13 ` Jacob Gorm Hansen
2005-02-12 16:53 ` Christian Limpach
2005-02-13 7:28 ` Jacob Gorm Hansen
2005-02-13 11:10 ` Christian Limpach
2005-02-08 23:08 ` Jacob Gorm Hansen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.