Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 05 Oct 2007 10:04:51 -0400
From:      Coleman Kane <cokane@FreeBSD.org>
To:        Olivier Brisson <oli@unixcraft.org>,  x11@freebsd.org
Subject:   Re: ATI drivers version 6.7.194
Message-ID:  <47064483.3050304@FreeBSD.org>
In-Reply-To: <20071005123240.GA5428@haribo.unixcraft.org>
References:  <4704FB61.1080708@FreeBSD.org>	<20071004202242.GA1847@haribo.unixcraft.org> <20071005123240.GA5428@haribo.unixcraft.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------080604020400050201030904
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Olivier Brisson wrote:
> * Olivier Brisson <oli@unixcraft.org> [071004 22:56]:
>   
>> * Coleman Kane <cokane@freebsd.org> [071004 16:49]:
>>     
>>> Hey,
>>>
>>> The latest round of fixes for xf86-video-ati came out (6.7.194).
>>>
>>> I put together the attached patch to the current port for the update. If 
>>> anyone is still having trouble, try this one out or get the latest out 
>>> of the repository. Seems to fix some breakage in Xv as well as some LVDS 
>>> issues.
>>>
>>> Works fine for me so far!
>>>
>>> --
>>> Coleman Kane
>>>       
>> Thank you very much for your work, but after patching and
>> recompiling xorg with the ati-driver, it still doesn't work right
>> for me.  I still get a lot of flickering and scrolling Firefox or
>> {snip]
>>     
>
> The bug has been confirmed by many people here:
>
> http://bugs.freedesktop.org/show_bug.cgi?id=12490
>
> It does not only affect FreeBSD but also Rawhide
> (https://bugzilla.redhat.com/show_bug.cgi?id=261021)
> and many problems have been reported with single headed radeon
> cards. http://bugs.freedesktop.org/show_bug.cgi?id=12490#c1
>
> But there seems to be some hope as written here: 
> http://bugs.freedesktop.org/show_bug.cgi?id=12490#c22
>
> I will try to give a try this weekend and test this. Does someone
> has some nice hints to use git and build everything? Where should I
> be careful?
>
> Olivier
>   
Last time that I did that, I followed these steps:

1. cd /usr/ports/x11-drivers/xf86-video-ati
2. make extract
3. cd work
4. git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-ati 
(yields a ./xf86-video-ati directory)
5. cd xf86-video-ati
6. ./autogen.sh
7. cd ..
8. mv xf86-video-ati-6.7.194 xf86-video-ati-6.7.194-orig
9. mv xf86-video-ati xf86-video-ati-6.7.194
10. cd ..
11. make && make deinstall && make install

That should install (quick & dirtily) the HEAD revision from git, built 
from ports.

In fact, I just did this on my system and it built fine (minus a bunch 
of 64-bit pointer printf warnings on my amd64 box). I am attaching a 
patch that isolates where these are, and fixes the warnings (and the log 
output) with the properly formatted hex fields for 8-byte pointers on 
amd64. You should apply this within work/xf86-video-ati-6.7.194/src.

Preparing to restart the X server w/ the new driver.

--
Coleman Kane

--------------080604020400050201030904
Content-Type: text/x-patch;
 name="radeon_dri.c-64bit-clean.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="radeon_dri.c-64bit-clean.diff"

--- radeon_dri.c.orig	2007-10-05 09:45:37.000000000 -0400
+++ radeon_dri.c	2007-10-05 10:01:05.000000000 -0400
@@ -849,7 +849,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
-	       "[agp] %d kB allocated with handle 0x%08x\n",
+	       (sizeof(drm_handle_t) == 8)?"[agp] %d kB allocated with handle 0x%016lx\n":
+                                           "[agp] %d kB allocated with handle 0x%08x\n",
 	       info->gartSize*1024, info->agpMemHandle);
 
     if (drmAgpBind(info->drmFD,
@@ -867,7 +868,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
-	       "[agp] ring handle = 0x%08x\n", info->ringHandle);
+	       (sizeof(drm_handle_t) == 8)?"[agp] ring handle = 0x%016lx\n":"[agp] ring handle = 0x%08x\n",
+               info->ringHandle);
 
     if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize,
 	       &info->ring) < 0) {
@@ -875,7 +877,7 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
-	       "[agp] Ring mapped at 0x%08lx\n",
+	       (sizeof(void*) == 8)?"[agp] Ring mapped at 0x%016lx\n":"[agp] Ring mapped at 0x%08lx\n",
 	       (unsigned long)info->ring);
 
     if (drmAddMap(info->drmFD, info->ringReadOffset, info->ringReadMapSize,
@@ -885,7 +887,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
- 	       "[agp] ring read ptr handle = 0x%08x\n",
+ 	       (sizeof(drm_handle_t) == 8)?"[agp] ring read ptr handle = 0x%016lx\n":
+                                           "[agp] ring read ptr handle = 0x%08x\n",
 	       info->ringReadPtrHandle);
 
     if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize,
@@ -895,7 +898,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
-	       "[agp] Ring read ptr mapped at 0x%08lx\n",
+	       (sizeof(drm_handle_t) == 8)?"[agp] Ring read ptr mapped at 0x%016lx\n":
+                                           "[agp] Ring read ptr mapped at 0x%08x\n",
 	       (unsigned long)info->ringReadPtr);
 
     if (drmAddMap(info->drmFD, info->bufStart, info->bufMapSize,
@@ -905,7 +909,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
- 	       "[agp] vertex/indirect buffers handle = 0x%08x\n",
+ 	       (sizeof(drm_handle_t) == 8)?"[agp] vertex/indirect buffers handle = 0x%016lx\n":
+                                           "[agp] vertex/indirect buffers handle = 0x%08x\n",
 	       info->bufHandle);
 
     if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize,
@@ -915,7 +920,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
-	       "[agp] Vertex/indirect buffers mapped at 0x%08lx\n",
+	       (sizeof(drmAddress) == 8)?"[agp] Vertex/indirect buffers mapped at 0x%016lx\n":
+                                         "[agp] Vertex/indirect buffers mapped at 0x%08lx\n",
 	       (unsigned long)info->buf);
 
     if (drmAddMap(info->drmFD, info->gartTexStart, info->gartTexMapSize,
@@ -925,7 +931,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
- 	       "[agp] GART texture map handle = 0x%08x\n",
+ 	       (sizeof(drm_handle_t) == 8)?"[agp] GART texture map handle = 0x%016lx\n":
+                                           "[agp] GART texture map handle = 0x%08x\n",
 	       info->gartTexHandle);
 
     if (drmMap(info->drmFD, info->gartTexHandle, info->gartTexMapSize,
@@ -958,7 +965,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
-	       "[pci] %d kB allocated with handle 0x%08x\n",
+	       (sizeof(drm_handle_t) == 8)?"[pci] %d kB allocated with handle 0x%016lx\n":
+                                           "[pci] %d kB allocated with handle 0x%08x\n",
 	       info->gartSize*1024, info->pciMemHandle);
 
     RADEONDRIInitGARTValues(info);
@@ -970,7 +978,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
-	       "[pci] ring handle = 0x%08x\n", info->ringHandle);
+	       (sizeof(drm_handle_t) == 8)?"[pci] ring handle = 0x%016lx\n":"[pci] ring handle = 0x%08x\n",
+               info->ringHandle);
 
     if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize,
 	       &info->ring) < 0) {
@@ -991,7 +1000,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
- 	       "[pci] ring read ptr handle = 0x%08x\n",
+ 	       (sizeof(drm_handle_t) == 8)?"[pci] ring read ptr handle = 0x%016lx\n":
+                                           "[pci] ring read ptr handle = 0x%08x\n",
 	       info->ringReadPtrHandle);
 
     if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize,
@@ -1014,7 +1024,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
- 	       "[pci] vertex/indirect buffers handle = 0x%08x\n",
+ 	       (sizeof(drm_handle_t) == 8)?"[pci] vertex/indirect buffers handle = 0x%016lx\n":
+                                           "[pci] vertex/indirect buffers handle = 0x%08x\n",
 	       info->bufHandle);
 
     if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize,
@@ -1037,7 +1048,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
- 	       "[pci] GART texture map handle = 0x%08x\n",
+ 	       (sizeof(drm_handle_t) == 8)?"[pci] GART texture map handle = 0x%016lx\n":
+                                           "[pci] GART texture map handle = 0x%08x\n",
 	       info->gartTexHandle);
 
     if (drmMap(info->drmFD, info->gartTexHandle, info->gartTexMapSize,
@@ -1065,7 +1077,8 @@
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
-	       "[drm] register handle = 0x%08x\n", info->registerHandle);
+	       (sizeof(drm_handle_t) == 8)?"[drm] register handle = 0x%016lx\n":
+                                           "[drm] register handle = 0x%08x\n", info->registerHandle);
 
     return TRUE;
 }

--------------080604020400050201030904--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47064483.3050304>