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
range.
> 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?
Cheers,
-- Norbert Papke.
npapke at acm.org
More information about the freebsd-stable
mailing list