dri + ATI: dramatic performance slowdown

Norbert Papke npapke at acm.org
Thu Apr 23 02:38:15 UTC 2009

On April 22, 2009, Robert Noland wrote:
> On Wed, 2009-04-22 at 17:39 -0700, Norbert Papke wrote:
> > 0x0/0x100000000 BIOS write-back set-by-firmware active
> > 0x100000000/0x40000000 BIOS write-back set-by-firmware active
> > 0xc0000000/0x40000000 BIOS uncacheable set-by-firmware active
> MTRR is failing in many cases... It seems that your BIOS is doing what
> both of my newer machines are doing and setting a global range to
> write-back.  I'm also guessing that 0xc0000000 is your framebuffer. 

Correct.  The framebuffer starts at 0xd0000000, still covered by that last 

> We 
> aren't allowed to overlap either of these ranges with a write combined
> region according to the specs.  We would have to handle
> splitting/merging regions which we don't currently do.  I looked at this
> just the other day, but it is reasonably complex to make that work right
> and accommodate all of the merging/splitting of regions.
> We are allowed to use PAT on either of these types of regions to enable
> write-combining.  The drm code already does this for some allocations
> that are not mapped to user space.  The problem with PAT is that all
> mappings of a given region need to have the same type and we don't
> currently have any way to specify that for user space mappings.  This is
> fwiw, the last of Nvidia's feature requests as well.  I've started
> looking at it, but I have a lot of learning to do on the vm system
> still.

Thanks for taking the time to explain.  Your posts are always very 
informative.  I am learning quite a lot about the complexities involved.

There is yet another thing I don't understand.  With other graphics cards, 
including my G45 internal graphics adaptor, the /dev/agpgart device is 
created.  I don't see this device with the Radeon card.  Is this expected 
because it is not needed for PCIe?


-- Norbert Papke.
   npapke at acm.org

More information about the freebsd-stable mailing list