Gnome & EXA - Any progress ?

Alan Coopersmith Alan.Coopersmith at Sun.COM
Thu Dec 22 12:26:55 PST 2005


Adam Jackson wrote:
> So what you really want here is a statistical view of what the backtrace looks 
> like when fbCopyAreammx gets called.  That will tell you why you're hitting 
> the fallback path, and therefore what needs to get implemented to get it 
> called less.
> 
> The radeon driver's EXA support does include UTS and DFS hooks for all radeon 
> chips, so it's likely that this is a bug such that they're not getting 
> called.

I have RC2 on my laptop at the moment with Radeon Mobility 9700 and EXA turned
on.   It's not built with MMX support, so I traced on fbCopyNtoN instead,
since that's what calls fbCopyAreammx if built with MMX.   I had a GNOME 2.6
session up, started up a gnome-terminal and firefox, moved windows around,
switched some workspaces and the stack trace distribution I got for calls to
fbCopyNtoN vs. RADEONUploadToScreenMMIO was:

               radeon_drv.so`RADEONUploadToScreenMMIO
               libexa.so`exaMoveInPixmap+0x9d
               libexa.so`exaDrawableUseScreen+0x5b
               libexa.so`exaCopyNtoN+0x1e9
               libfb.so`fbCopyRegion+0x509
               libfb.so`fbDoCopy+0x3d1
               libexa.so`exaCopyArea+0x4f
               Xorg`damageCopyArea+0x257
               Xorg`ProcCopyArea+0x1fe
               Xorg`Dispatch+0x4c7
               Xorg`main+0x50c
               Xorg`0x46938c
          412

               libfb.so`fbCopyNtoN
               libexa.so`exaCopyNtoN+0x5be
               libfb.so`fbCopyRegion+0x509
               libfb.so`fbDoCopy+0x3d1
               libexa.so`exaCopyArea+0x4f
               Xorg`damageCopyArea+0x257
               Xorg`fbShmPutImage+0x25b
               Xorg`ProcShmPutImage+0x46e
               Xorg`ProcShmDispatch+0x22a
               Xorg`Dispatch+0x4c7
               Xorg`main+0x50c
               Xorg`0x46938c
          641

               libfb.so`fbCopyNtoN
               libexa.so`exaCopyNtoN+0x5be
               libfb.so`fbCopyRegion+0x509
               libfb.so`fbDoCopy+0x3d1
               libexa.so`exaCopyArea+0x4f
               Xorg`damageCopyArea+0x257
               Xorg`ProcCopyArea+0x1fe
               Xorg`Dispatch+0x4c7
               Xorg`main+0x50c
               Xorg`0x46938c
         6263


(For those playing at home, the dtrace script to get this was:
#!/usr/sbin/dtrace -s

#pragma D option quiet

pid$1:radeon_drv:RADEONUploadToScreenMMIO:entry {
         @[ustack()] = count();
}

pid$1:libfb:fbCopyNtoN:entry {
         @[ustack()] = count();
}

pid$1:libfb:fbCopyArea:entry {
         @[ustack()] = count();
}

I included fbCopyArea, but as you can see it got no calls.)


-- 
	-Alan Coopersmith-           alan.coopersmith at sun.com
	 Sun Microsystems, Inc. - X Window System Engineering



More information about the xorg mailing list