# Who still needs / can benefit from agpgart?

## Havin_it

Hi,

The linux documentation says this about the agpgart module:

```

 CONFIG_AGP:                                                             │  

  │                                                                         │  

  │ AGP (Accelerated Graphics Port) is a bus system mainly used to          │  

  │ connect graphics cards to the rest of the system.                       │  

  │                                                                         │  

  │ If you have an AGP system and you say Y here, it will be possible to    │  

  │ use the AGP features of your 3D rendering video card. This code acts    │  

  │ as a sort of "AGP driver" for the motherboard's chipset.                │  

  │                                                                         │  

  │ If you need more texture memory than you can get with the AGP GART      │  

  │ (theoretically up to 256 MB, but in practice usually 64 or 128 MB       │  

  │ due to kernel allocation issues), you could use PCI accesses            │  

  │ and have up to a couple gigs of texture space.                           │  

  │                                                                         │  

  │ Note that this is the only means to have X/GLX use                      │  

  │ write-combining with MTRR support on the AGP bus. Without it, OpenGL    │  

  │ direct rendering will be a lot slower but still faster than PIO.        │  

  │                                                                         │  

  │ To compile this driver as a module, choose M here: the                  │  

  │ module will be called agpgart.                                          │  

  │                                                                         │  

  │ You should say Y here if you want to use GLX or DRI.                    │  

  │                                                                         │  

  │ If unsure, say N.
```

Now most of this is still gobbledegook to me, but since having a new enough laptop that I was pretty sure had no AGP hardware (GPU is part of an AMD APU), I've said N. I certainly do want to use GLX and DRI (insofar as I understand what they are), but saying N doesn't seem to have prevented this.

Would it benefit me anything to say Y? (Using radeon, not fglrx, if that matters)

----------

## s4e8

AGP is obsoleted very long time. Old kernel may required it due to i915 driver required it even w/o real AGP hardware. Intel remove this dependency since kernel v3.14.

----------

## Havin_it

 *s4e8 wrote:*   

> AGP is obsoleted very long time. Old kernel may required it due to i915 driver required it even w/o real AGP hardware. Intel remove this dependency since kernel v3.14.

 

Hi s4e8, thanks for the quick reply  :Very Happy: 

I thought that might be the case. My last two machines were i915 so I guess it was needed then (indeed the oldest is still alive, but I'm no longer running Gentoo on that so kernel config isn't my concern).

In that case, I might file a documentation bug against the kernel to get the above write-up clarified.

While we're at it, is it then also a bug that, when built as a module, agpgart does get loaded on my system?

Or is it that the ttm and radeon modules automatically pull it in and load it as a dependency if it's enabled in kernel config, whether it's actually needed or not? I'd still call that a bug but the scope would be different then I guess.

----------

## NeddySeagoon

Havin_it,

AGP isn't really a bus as only two things can be connected to it.  The GPU at one end and the chipset at the other.

AGP is derived from PCI. It uses a 66MHz clock, rather that 33MHz and in its x2 x4 and x8 transfers that many data cycles per clock.  Much like DDR RAM performs a data transfer on ever clock edge.

AGP has been missing as a motherboard slot for a long time but in integrated graphics solutions, where its still adequate for the performance of the GPU, it may still be used.

ISA is still around in several forms in modern systems too and it disappeared as a slot when PCI came in.

----------

## energyman76b

AGPGART was/is used as IOMMU on AMD64. So... it doesn't hurt to keep it turned on, if you are not sure that your setup uses the new iommu scheme.

----------

## Havin_it

Thanks for the further replies!

@Neddy, I was aware it's major legacy in discrete hardware terms, but not that it was still being used in this fashion. When poking around I did notice that there was a sub-option to support "Athlon64/Opteron on-chip AGP bus" or somesuch, but I don't think that module gets loaded on my system so I guess it doesn't apply to these APUs.

 *energyman76b wrote:*   

> AGPGART was/is used as IOMMU on AMD64. So... it doesn't hurt to keep it turned on, if you are not sure that your setup uses the new iommu scheme.

 

There's only one thing about this that I don't understand ... um, all of it   :Embarassed: 

Is there any way I could tell whether it was used? Anything to look for in dmesg? I do see this, even with agpgart loaded:

```
[drm] PCIE GART of 1024M enabled (table at 0x0000000000274000).
```

----------

## s4e8

 *Havin_it wrote:*   

> Thanks for the further replies!
> 
> Is there any way I could tell whether it was used? Anything to look for in dmesg? I do see this, even with agpgart loaded:
> 
> 

 

If you built kernel w/ AGPGART=m, it loaded by DRM drivers, because the DRM drivers' contains the AGP support, it need some symbol from AGPGART module and will probe the AGP hardware.

----------

## Havin_it

 *s4e8 wrote:*   

>  *Havin_it wrote:*   Thanks for the further replies!
> 
> Is there any way I could tell whether it was used? Anything to look for in dmesg? I do see this, even with agpgart loaded:
> 
>  
> ...

 

OK, I think I follow. So actually I'm best to keep it disabled then, as probing for non-existent hardware is just a waste of cycles. Unless there is an on-chip implementation of an AGP gart/bridge/thingy, which the non-loading of the corresponding sub-module seems to indicate there is not.

----------

## energyman76b

 *Havin_it wrote:*   

> Thanks for the further replies!
> 
> @Neddy, I was aware it's major legacy in discrete hardware terms, but not that it was still being used in this fashion. When poking around I did notice that there was a sub-option to support "Athlon64/Opteron on-chip AGP bus" or somesuch, but I don't think that module gets loaded on my system so I guess it doesn't apply to these APUs.
> 
>  *energyman76b wrote:*   AGPGART was/is used as IOMMU on AMD64. So... it doesn't hurt to keep it turned on, if you are not sure that your setup uses the new iommu scheme. 
> ...

 

different beast. Look for IOMMU

----------

