From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jacob Gorm Hansen Subject: ATI fglrx OpenGL working in Xen! Date: Mon, 07 Feb 2005 18:22:12 -0800 Message-ID: <42082254.7070902@diku.dk> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080307030909040509010209" Sender: xen-devel-admin@lists.sourceforge.net Errors-To: xen-devel-admin@lists.sourceforge.net List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , List-Archive: To: xen-devel List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------080307030909040509010209 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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 --------------080307030909040509010209 Content-Type: text/plain; name="fglrx.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="fglrx.diff" ------------------------ 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 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"); --------------080307030909040509010209-- ------------------------------------------------------- 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