Hi,
after the integration of the R600 functions my xorg log is being flooded
with the following messages:
(EE) RADEON(0): BEGIN_RING without end at radeon_accel.c:860
(EE) RADEON(0): ADVANCE_RING without begin at radeon_accel.c:883
I'm using an RS690. The messages occur during video playback, one
message for each frame. After some more study I found the messages
originated from RADEONCopyMungedData called from RADEONPutImageTextured.
I checked the changes introduced with the R600 adoptions and finally
found the problem was introduced by the RADEONCP_REFRESH "calls" in
RADEONCPFlushIndirect and RADEONCPReleaseIndirect. Moving the "calls" to
the R600 specific part fixed the error messages for me.
I've attached a patch with this change. The one question left for me is
if the behavior with the "call" can be explained or if this is just
showing a problem somewhere else in the code.
Regds,
Christiaan van Dijk.
diff -u -r xf86-video-ati-6.12.0/src/radeon_accel.c
xf86-video-ati-6.12.0-work/src/radeon_accel.c
--- xf86-video-ati-6.12.0/src/radeon_accel.c 2009-03-14 00:23:19.000000000
+0100
+++ xf86-video-ati-6.12.0-work/src/radeon_accel.c 2009-03-15
13:12:33.000000000 +0100
@@ -689,7 +689,6 @@
int start = info->cp->indirectStart;
drm_radeon_indirect_t indirect;
RING_LOCALS;
- RADEONCP_REFRESH(pScrn, info);
if (!buffer) return;
if (start == buffer->used && !discard) return;
@@ -700,6 +699,7 @@
}
if (info->ChipFamily >= CHIP_FAMILY_R600) {
+ RADEONCP_REFRESH(pScrn, info);
while (buffer->used & 0x3c){
BEGIN_RING(1);
OUT_RING(CP_PACKET2()); /* fill up to multiple of 16 dwords */
@@ -736,10 +736,9 @@
int start = info->cp->indirectStart;
drm_radeon_indirect_t indirect;
RING_LOCALS;
- RADEONCP_REFRESH(pScrn, info);
-
if (info->ChipFamily >= CHIP_FAMILY_R600) {
+ RADEONCP_REFRESH(pScrn, info);
if (buffer) {
while (buffer->used & 0x3c) {
BEGIN_RING(1);
_______________________________________________
xorg-driver-ati mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-driver-ati