[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [RFC] Remove AGP support from Radeon/Nouveau/TTM



Am 12.05.20 um 22:12 schrieb Dave Airlie:
On Wed, 13 May 2020 at 04:21, Alex Deucher <alexdeucher@gmail.com> wrote:
On Tue, May 12, 2020 at 1:02 PM Rui Salvaterra <rsalvaterra@gmail.com> wrote:
On Tue, 12 May 2020 at 17:38, Daniel Vetter <daniel@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 1.5V.

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.

Christian.


Dave.


Reply to: