# Help getting 3D acceleration to work with ATI 9800



## Rookie (Feb 1, 2011)

Hi!

I have a problem with 3D acceleration on FreeBSD with my ATI Radeon 9800 as you can guess from the title. Glxinfo always says I have software rendering and I have no idea how to get 3D working properly. I'm new to FreeBSD so please keep it simple if possible 

What I already have tried are the steps from this Thread - http://forums.freebsd.org/showthread.php?t=19386 So I set the WITHOUT_NOUVEAU option in /etc/make.conf and recompiled graphics/libdrm, graphics/dri and graphics/libGL. Still I don't have 3D acceleration. Any tips to get it working?

I installed Xorg and Xfce via packages, not ports and run 8.1 Release if that matters.

I will append my Xorg.0.log and apologize for my English, I'm not a native speaker.


----------



## wblock@ (Feb 1, 2011)

Hmm.

```
(WW) RADEON(0): [agp] AGP not available
(EE) RADEON(0): [agp] AGP failed to initialize. Disabling the DRI.
(II) RADEON(0): [agp] You may want to make sure the agpgart kernel module is loaded before the radeon kernel module.
```


----------



## Rookie (Feb 2, 2011)

Thank you for the response wblock.
I'm sorry but I think I need further help. Of course you gave me the right hint, problem is the agpgart module. When I check kldstat I get the following output:`$ kldstat`

```
Id Refs Address    Size     Name
 1   13 0xc0400000 bb5504   kernel
 2    1 0xc6208000 26000    linux.ko
 3    1 0xc63ed000 68000    radeon.ko
 4    1 0xc6463000 14000    drm.ko
```
So of course the agp module is not loaded as I can see and `$ dmesg | grep agp` returns nothing.
The agp module should be in the GENERIC Kernel which I use shouldn't it? If I try to load it manually I get the following output:
`$ sudo kldload agp`

```
kldload: can't load agp: File exists
```
I also tried to add

```
agp_load="YES"
```
in loader.conf without success.
How to fix this problem? I searched the web and this forum but did not find an answer helping me.


----------



## wblock@ (Feb 2, 2011)

Rookie said:
			
		

> The agp module should be in the GENERIC Kernel which I use shouldn't it? If I try to load it manually I get the following output:
> `$ sudo kldload agp`
> 
> ```
> ...



Yes, it's in GENERIC.  Do you have a /dev/agpgart?  Look through your dmesg for errors; they may not specifically say "agp".  I'd check the BIOS settings, too; maybe AGP size or mode settings are off.  At present, I don't have an AGP machine with X on it, so can't think of much else to suggest.  Trying a Linux live CD might provide something for comparison.


----------



## wblock@ (Feb 2, 2011)

Additional: there's an interesting note from Ubuntu about certain 9800-series cards here: https://help.ubuntu.com/community/RadeonDriver


> ChipID  0x4144 # some cards (i.e. 9800SE, or partially broken) with reduced capabilities work fine accessing only parts of the hardware (by supplying the PCI ChipID of a lower end card, http://pci-ids.ucw.cz/read/PC/1002)



It's ambiguously worded.  I think they're suggesting using ChipID 0x4144 (which is from a 9500) if you have a problem card.  Worth a try, since your card is a 9800-series.


----------



## Rookie (Feb 3, 2011)

Hm currently trying Ubuntu Live 10.10 and as I expected 3d acceleration works fine here: 
`$ glxinfo | grep render`

```
direct rendering: Yes
OpenGL renderer string: Mesa DRI R300 (R350 4E48) 20090101 x86/MMX/SSE2 TCL DRI2
```

[CMD=]/dev$ ls agp*[/cmd]

```
agpgart
```
and finally
`$ dmesg | grep agp`

```
[    4.423050] Linux agpgart interface v0.103
[    4.449920] agpgart: Detected VIA PT880 Ultra chipset
[    4.454499] agpgart-via 0000:00:00.0: AGP aperture is 64M @ 0xf8000000
[    5.477929] agpgart-via 0000:00:00.0: AGP 3.5 bridge
[    5.477965] agpgart-via 0000:00:00.0: putting AGP V3 device into 8x mode
```

So here everything works fine and I don't have an idea why in FreeBSD it does not... I installed everything straight forward as described in the FreeBSD handbook because as I wrote I'm a beginner.
Any ideas?


----------



## adamk (Feb 3, 2011)

Well, as wblock asked already, does /dev/agpgart exist?

Adam


----------



## Rookie (Feb 3, 2011)

No it does not exist under FreeBSD.


----------



## adamk (Feb 3, 2011)

Well, then FreeBSD seems to have a problem with your AGP device.  You could try adjusting various AGP related settings that likely exist in your computers BIOS.  You could also try to force the card into PCI mode.  In the Device section of your xorg.conf file, you would add this line:


```
Option "BusType" "PCI"
```

Less than ideal, but it might just get 3D going.

Adam


----------



## Rookie (Feb 3, 2011)

There are several settings in the BIOS but most of them are set to "auto". Any settings that come to your mind trying to switch? (Most of them don't mention much to me...) While it looks like FreeBSD having a problem with my card it nevertheless recognizes it I think:
`$ dmesg | grep drm`

```
drm0: <ATI Radeon NH R350 9800 Pro> on vgapci0
vgapci0: child drm0 requested pci_enable_busmaster
info: [drm] Initialized radeon 1.31.0 20080613
drm0: <ATI Radeon NH R350 9800 Pro> on vgapci0
vgapci0: child drm0 requested pci_enable_busmaster
info: [drm] Initialized radeon 1.31.0 20080613
```
(Yes the output comes twice, don't know if that is normal) Did you expect this or is there a chance get it running now we know FreeBSD at least recognizes it?
What is less than ideal by forcing it in pci mode? Lower speed or what is the problem with that? (Trying that solution right now...)
Thank you for your advise.


----------



## adamk (Feb 3, 2011)

Your video card is not really the issue here.  It's the AGP device, as I said.  The only way to possibly get 3D working without a functioning AGP driver is to force it into PCI mode, again as I said.  PCI is slower than AGP.  If the card/motherboard only supports AGP 2x, the difference is probably negligible. 

Adam


----------



## Rookie (Feb 3, 2011)

Got it working with the option to run in PCI Mode. Thanks a lot! I don't know how to mark this thread as "solved" but it is.


----------



## goodfella (Sep 26, 2013)

adamk said:
			
		

> Your video card is not really the issue here.  It's the AGP device, as I said.  The only way to possibly get 3D working without a functioning AGP driver is to force it into PCI mode, again as I said.  PCI is slower than AGP.  If the card/motherboard only supports AGP 2x, the difference is probably negligible.
> 
> Adam


I have had this issue with Linux and FreeBSD using a ATI 9500 Pro (R300) graphics card.

In Linux I have had to configure the kernel so that the Radeon card is forced into PCI mode. Otherwise if AGP is enabled the system runs for a random amount of time and then the display/mouse hangs.

In FreeBSD I notice in /var/log/Xorg.0.log That the AGP mode is 8. System runs for while and then the system hangs. If I specify PCI mode in /etc/X11/xorg.conf the system runs okay. Sure would like to find out what is going on.

One thing that I noticed in FreeBSD is that you cannot enable a individual AGP driver. You get the entire set.


----------

