On Tue, 2002-07-02 at 00:32, Tim Smith wrote:
> Here it is. It'll need cleaning up if it works, but it'll do as a test.
Took me quite some fiddling to get it working here, but that's mostly
due to the non-standard and not-quite-finished agpgart implementation
for Macs. Nothing to worry about, works great now (just played a couple
minutes of bzflag with it :).
Comments:
> + fprintf( stderr, "%s( %d )\n", __FUNCTION__, clear );
s/clear/frame/ - typo, I presume.
> @@ -1189,7 +1188,11 @@ drm_buf_t *radeon_freelist_get( drm_devi
> start = dev_priv->last_buf;
>
> for ( t = 0 ; t < dev_priv->usec_timeout ; t++ ) {
> + /* Testing scratch register writeback
> u32 done_age = RADEON_READ( RADEON_LAST_DISPATCH_REG );
> + */
> + u32 done_age = dev_priv->scratch[1];
> + DRM_DEBUG("done_age = %d\n",done_age);
> for ( i = start ; i < dma->buf_count ; i++ ) {
> buf = dma->buflist[i];
> buf_priv = buf->dev_private;
[...]
> Index: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/radeon_state.c
> ===================================================================
> RCS file:
>/cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/radeon_state.c,v
> retrieving revision 1.17
> diff -u -3 -p -r1.17 radeon_state.c
> --- xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/radeon_state.c 27 Jun
>2002 17:56:39 -0000 1.17
> +++ xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/radeon_state.c 1 Jul
>2002 21:36:58 -0000
> @@ -1878,6 +1878,15 @@ int radeon_cp_getparam( struct inode *in
> case RADEON_PARAM_AGP_BUFFER_OFFSET:
> value = dev_priv->agp_buffers_offset;
> break;
> + case RADEON_PARAM_LAST_FRAME:
> + value = dev_priv->scratch[0];
> + break;
> + case RADEON_PARAM_LAST_DISPATCH:
> + value = dev_priv->scratch[1];
> + break;
> + case RADEON_PARAM_LAST_CLEAR:
> + value = dev_priv->scratch[2];
> + break;
> default:
> return -EINVAL;
> }
The scratch register values need to be read with DRM_READ32(), which
accounts both for endianness and memory barriers. So it would be
u32 done_age = DRM_READ32(&dev_priv->scratch[1]);
etc.
Nice work!
--
Earthling Michel D�nzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
XFree86 and DRI project member / CS student, Free Software enthusiast
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
We have stuff for geeks like you.
http://thinkgeek.com/sf
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel