[RFC] Remove AGP support from Radeon/Nouveau/TTM
ckoenig.leichtzumerken at gmail.com
Wed May 13 07:26:05 UTC 2020
Am 12.05.20 um 22:12 schrieb Dave Airlie:
> On Wed, 13 May 2020 at 04:21, Alex Deucher <alexdeucher at gmail.com> wrote:
>> On Tue, May 12, 2020 at 1:02 PM Rui Salvaterra <rsalvaterra at gmail.com> wrote:
>>> On Tue, 12 May 2020 at 17:38, Daniel Vetter <daniel at ffwll.ch> wrote:
>>>> Otherwise all agree, agp is a mighty mess and essentially just
>>>> crapshot outside of x86. It kinda worked for the much more static
>>>> allocations for dri1, but with in-kernel memory managers all the cache
>>>> flushing issues showed up big time and it all fell to pieces. Plus a
>>>> lot of these host chipset back then where designed for the rather
>>>> static windows gpu managers, so even on x86 the coherency issues for
>>>> agp mode when used together with ttm or something else really dynamic
>>>> is pretty bad because the hw just doesn't really cope and has all
>>>> kinds of flushing troubles and races. I think the later agp chipsets
>>>> were better.
>>> That was rather insightful, thanks. I was starting to doubt my own
>>> memory, as I was almost sure I never had any hangs with AGP on PowerPC
>>> before KMS was a thing. But even on x86, I distinctly remember never
>>> being able to get sideband addressing working with any AGP cards, my
>>> system would randomly hang too.
>>> I'm starting to believe AGP was shoehorned into PCI the same way VLB
>>> was shoehorned into ISA (and for the same reason). History repeats
>>> itself… :)
>> Pre-KMS, the kernel just allocated a static relatively small (e.g., 8
>> MB) AGP buffer which never changed. In that case, things were
>> somewhat more reliable.
> This is why the AGP hw on Macs has issues I believe. It was designed
> and only tested around the one static early allocation, I'm not sure
> OSX ever did dynamic.
> When it went dynamic I think the AGP bits had some problems with
> coherency of the GART tables that we never figured out.
To make things even worse AGP used two different voltages in the
standard. Before 2002 only 3.3V was used, after 2002 this got reduced to
To avoid frying the new cards in the old boards or other way around you
had a notch at a different place depending on the voltage. Unfortunately
quite a bunch of manufacturers didn't got that right.
So it wasn't just problematic on the software level, but had a rather
bad hardware specification as well.
More information about the dri-devel