Re: [r300] VB mode success

2005-02-18 Thread Nicolai Haehnle
On Thursday 17 February 2005 22:34, Rune Petersen wrote:
 On my system it works on my X800 with no lockups.
 For now I have only tested with glxgears and q3demo.
 So I won't be of much help fixing this apart from being a success-vector.
 
 Are there any pattern in what systems works with VB? 

I have an R300 ND (PCI ID 0x4E44), and it doesn't work (i.e. it locks up 
after some time).

 Also an observation:
 With VB mode running glxgears I can get an extra 100 fps by moving the 
 window left. If I move it too much it goes back to the initial fps.
 This doesn't happen with immediate mode.
 are there a good reason for this?
 
 14345 frames in 5.0 seconds = 2868.983 FPS
 14357 frames in 5.0 seconds = 2871.259 FPS
 14332 frames in 5.0 seconds = 2866.250 FPS
 14324 frames in 5.0 seconds = 2864.621 FPS
 move
 14837 frames in 5.0 seconds = 2967.306 FPS
 14905 frames in 5.0 seconds = 2980.958 FPS
 14913 frames in 5.0 seconds = 2982.533 FPS
 14897 frames in 5.0 seconds = 2979.251 FPS

Huh, that's really weird :)
One possible cause (though this is really wild speculation) is that you're 
outputting debug messages somewhere, and moving the window reduces the 
volume of debug messages.

I also have news regarding the (I hope there's only one) VB lockup. I can 
launch and exit (on 0x4E44 as stated above) glxgears basically as often as 
I want, as long as I don't let it run for more than a few seconds. During 
that timeframe I can even do some things that are (used to be) notoriously 
lockup-prone, such as dragging windows around. But when I let it run more 
than a few seconds, it invariably locks up.

Now the really interesting thing is that I captured the full libGL debug 
output from several lock runs, and both the line count and the word count 
of all the logs is *exactly* the same. The byte counts differ by a very 
small amount, which appears to be due to some buffer indices being smaller 
(only one digit vs. two digits) in some cases.

So I assume that there is some kind of timebomb, at least on my machine, 
that reliably and reproducably causes the lockup, most likely when some 
counter or pointer wraps around. I haven't found the exact cause yet, but 
I'll look further into it.

cu,
Nicolai

 
 Rune Petersen
 


pgp2hEXpEbynZ.pgp
Description: PGP signature


Re: [r300] VB mode success

2005-02-18 Thread Keith Whitwell
Nicolai Haehnle wrote:
On Thursday 17 February 2005 22:34, Rune Petersen wrote:
On my system it works on my X800 with no lockups.
For now I have only tested with glxgears and q3demo.
So I won't be of much help fixing this apart from being a success-vector.
Are there any pattern in what systems works with VB? 

I have an R300 ND (PCI ID 0x4E44), and it doesn't work (i.e. it locks up 
after some time).


Also an observation:
With VB mode running glxgears I can get an extra 100 fps by moving the 
window left. If I move it too much it goes back to the initial fps.
This doesn't happen with immediate mode.
are there a good reason for this?

14345 frames in 5.0 seconds = 2868.983 FPS
14357 frames in 5.0 seconds = 2871.259 FPS
14332 frames in 5.0 seconds = 2866.250 FPS
14324 frames in 5.0 seconds = 2864.621 FPS
move
14837 frames in 5.0 seconds = 2967.306 FPS
14905 frames in 5.0 seconds = 2980.958 FPS
14913 frames in 5.0 seconds = 2982.533 FPS
14897 frames in 5.0 seconds = 2979.251 FPS

Huh, that's really weird :)
One possible cause (though this is really wild speculation) is that you're 
outputting debug messages somewhere, and moving the window reduces the 
volume of debug messages.
I would have thought it might be similar to cache lines in main memory - 
in some positions you end up dirtying fewer cache lines due to alignment.

Keith

---
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=6595alloc_id=14396op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [r300] VB mode success

2005-02-18 Thread Peter Zubaj
Hi,
I  tested latest CVS of  r300 driver. Card is Rageon 9700Pro (NE).
I tested immediate and VB mode, both of them work  ok - no locks (tested 
in glxgearx, tuxracer, nehe lesson06) . Even with x11perf -shmput 500 I 
can not lock machne.

Some screenshots from enemy territory (VB mode):
http://www.gaya.sk/~pzubaj/scr/et1.jpg
http://www.gaya.sk/~pzubaj/scr/et2.jpg
http://www.gaya.sk/~pzubaj/scr/et3.jpg
http://www.gaya.sk/~pzubaj/scr/et4.jpg
http://www.gaya.sk/~pzubaj/scr/et5.jpg
http://www.gaya.sk/~pzubaj/scr/et6.jpg
I trayed attached patch. With this patch still everything works ok - no 
lock.

Then I removed all  occurrence of (from r300 driver):
reg_start(0x4f18,0);
e32(0x0003);
Still everything works ok - no lock.
Then I removed every
reg_start(R300_RB3D_DSTCACHE_CTLSTAT,0);
e32(0x000a);
computer immediately lock.
For me looks like (my opinions):
R300_RB3D_DSTCACHE_CTLSTAT is needs to be regural inserted to stream.
Register 0x4f18  is only need at begin and end of 3d drawing.
Peter Zubaj
diff -u o/radeon_cp.c n/radeon_cp.c
--- o/radeon_cp.c	2005-01-02 07:18:39.0 +0100
+++ n/radeon_cp.c	2005-02-18 21:36:51.0 +0100
@@ -984,32 +984,14 @@
 	RING_LOCALS;
 	DRM_DEBUG(\n);
 
-	if (IS_FAMILY_R300(dev_priv)) {
-		BEGIN_RING( 10 );
-
-		OUT_RING_REG(R300_RB3D_DSTCACHE_CTLSTAT, 0x0002);
-		OUT_RING_REG(0x4F18, 0x0001); /* Z cache? */
-
-		/* It seems a delay is needed */
-  	OUT_RING( CP_PACKET3( RADEON_CP_NOP, 0 ) );
-	OUT_RING( 0x0 );
-
-		RADEON_PURGE_CACHE();
-
-		RADEON_WAIT_UNTIL_IDLE();
-
-		ADVANCE_RING();
-	} else {
+	BEGIN_RING(6);
 
-		BEGIN_RING(6);
+	RADEON_PURGE_CACHE();
+	RADEON_PURGE_ZCACHE();
+	RADEON_WAIT_UNTIL_IDLE();
 
-		RADEON_PURGE_CACHE();
-		RADEON_PURGE_ZCACHE();
-		RADEON_WAIT_UNTIL_IDLE();
+	ADVANCE_RING();
 
-		ADVANCE_RING();
-		}
-		
 	COMMIT_RING();
 
 	return radeon_do_wait_for_idle(dev_priv);
diff -u o/radeon_state.c n/radeon_state.c
--- o/radeon_state.c	2005-02-13 11:35:54.0 +0100
+++ n/radeon_state.c	2005-02-18 21:38:41.0 +0100
@@ -1021,16 +1021,11 @@
 	/* Wait for the 3D stream to idle before dispatching the bitblt.
 	 * This will prevent data corruption between the two streams.
 	 */
-	if (IS_FAMILY_R300(dev_priv)) {
-		/* Make sure the new caches are flushed */
-		radeon_do_cp_idle(dev_priv);
-	} else {
-		BEGIN_RING(2);
+	BEGIN_RING(2);
 
-		RADEON_WAIT_UNTIL_3D_IDLE();
+	RADEON_WAIT_UNTIL_3D_IDLE();
 
-		ADVANCE_RING();
-	}
+	ADVANCE_RING();
 
 	for (i = 0; i  nbox; i++) {
 		int x = pbox[i].x1;
@@ -1348,9 +1343,12 @@
 	 */
 	if (IS_FAMILY_R300(dev_priv)) {
 	
-		BEGIN_RING(10);
-OUT_RING_REG(R300_RB3D_DSTCACHE_CTLSTAT, 0x0002);
-OUT_RING_REG(0x4F18, 0x0001); /* Z cache? */
+		/*BEGIN_RING(10);*/
+		BEGIN_RING(8);
+/*OUT_RING_REG(R300_RB3D_DSTCACHE_CTLSTAT, 0x0002);
+OUT_RING_REG(0x4F18, 0x0001);*/ /* Z cache? */
+		
+		OUT_RING_REG(R300_RB3D_DSTCACHE_CTLSTAT, 0x000A);
 
 /* It seems a delay is needed */
 OUT_RING( CP_PACKET3( RADEON_CP_NOP, 0 ) );



[r300] VB mode success

2005-02-17 Thread Rune Petersen
On my system it works on my X800 with no lockups.
For now I have only tested with glxgears and q3demo.
So I won't be of much help fixing this apart from being a success-vector.
Are there any pattern in what systems works with VB?
Also an observation:
With VB mode running glxgears I can get an extra 100 fps by moving the 
window left. If I move it too much it goes back to the initial fps.
This doesn't happen with immediate mode.
are there a good reason for this?

14345 frames in 5.0 seconds = 2868.983 FPS
14357 frames in 5.0 seconds = 2871.259 FPS
14332 frames in 5.0 seconds = 2866.250 FPS
14324 frames in 5.0 seconds = 2864.621 FPS
move
14837 frames in 5.0 seconds = 2967.306 FPS
14905 frames in 5.0 seconds = 2980.958 FPS
14913 frames in 5.0 seconds = 2982.533 FPS
14897 frames in 5.0 seconds = 2979.251 FPS
Rune Petersen
---
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=6595alloc_id=14396op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel