# Accelerated 3D for Radeon HD 3300 or 4550?



## SageRaven (Feb 23, 2010)

(I wasn't sure if this was best posted here or on the Xorg or multimedia sections.)

This has been a source of continual frustration for me.  I run
FreeBSD/amd64 8.0p2 and I'm trying to get accelerated 3D working.

I have an Asus M4A78T-E motherboard with integrated Radeon HD 3300 GPU (from dmesg: "drm0: <ATI Radeon 3300 Graphics> on vgapci0") and an MSI Radeon HD 4550 PCIe card ("drm1: <ATI Radeon HD 4550> on vgapci1").

I've got the "xf86-video-radeonhd-devel-1.3.0.20091101_2" port installed.  glxinfo shows "direct rendering: Yes".

Yet the glxgears numbers are only about 500fps at the default size and around 30fps at full-screen (1920x1080).  I installed Neverball and the game is completely unplayable.

This is the case with either video device, having switched to the onboard after no luck with the PCIe card.

I note that my Xorg log shows a supported line for the HD3300 ("RS780 : Radeon HD 3100/3200/3300 Series.") by not for the HD4550, though I was under the impression that the Radeon HD driver supports both.

I forced a reconfig for neverball and all dependencies, then rebuilt everything.  Didn't help.

Are there any special config options I want to explicitly enable (or disable) for the ports?  I assume I want to make sure any OpenGL options are selected (which I've done)?  Are there any points of minutia I should be aware of here?

For now, I'd be happy with using either device for 3D.  Any current FAQs or HOWTOs dealing with newer Radeon HD chipsets?  The few I've found weren't overly helpful.


----------



## thuglife (Feb 23, 2010)

Hi,

If you want hw acceleration on your 4550 i am pretty sure you that will have to follow STABLE.
Read this post also, http://forums.freebsd.org/showpost.php?p=68837&postcount=5


----------



## SageRaven (Feb 23, 2010)

thuglife said:
			
		

> Hi,
> 
> If you want hw acceleration on your 4550 i am pretty sure you that will have to follow STABLE.
> Read this post also, http://forums.freebsd.org/showpost.php?p=68837&postcount=5



Ugh.... csup'ing now.  Hope this doesn't break anything.  I'll report back with the results later.  Much compiling to do...


----------



## fronclynne (Feb 24, 2010)

What version of Mesa/opengl/dri do you have?


----------



## SageRaven (Feb 24, 2010)

fronclynne said:
			
		

> What version of Mesa/opengl/dri do you have?



Until about 5 minutes ago, I had 7.4.4 installed.  After my kernel/world compile/reboot, I ran portsnap to find a bunch of X-related ports upgraded to 7.6.1 so I'm rebuilding those right now.

I don't know whether to be annoyed or glad is these actually fix the problems *after* having done sync to CURRENT and a entire rebuild.  

Please stand by...


----------



## fronclynne (Feb 24, 2010)

Well, I'll say that here (8.-RELEASE-p2 amd64 OpenGL renderer string: Mesa DRI R300 (RS690 791F) 20090101  NO-TCL), 3d is several times faster with 7.6.1 using the ati driver (not radeon-hd).  Like 7fps v. 40fps in games/oolite.


----------



## adamk (Feb 24, 2010)

SageRaven said:
			
		

> I don't know whether to be annoyed or glad is these actually fix the problems *after* having done sync to CURRENT and a entire rebuild.



Both -STABLE and those updated ports are needed. -CURRENT will work as well, but only -STABLE is needed.

Adam


----------



## SageRaven (Feb 24, 2010)

adamk said:
			
		

> Both -STABLE and those updated ports are needed. -CURRENT will work as well, but only -STABLE is needed.
> 
> Adam



My typo -- I did sync to STABLE, not CURRENT.


----------



## SageRaven (Feb 24, 2010)

*Update -- gained some ground, lost some*

So, based on info here, I'm now running 8.0-STABLE, plus I've updated to 7.6.1 for all the related X stuff.

The good news, is that glxgears now runs at 1800fps at default size and 80fps at full-screen of 1920x1080, large jump over previous numbers in my original post.

The bad news is that glxgears and glxinfo now give me the following error, even though they work:


```
IRQ's not enabled, falling back to busy waits: 2 0
```

This error has a lot of hits on google.

Also, everything using opengl/sdl (including Neverball and sdlmame) now refuse to run at all, giving me:


```
No available video device
```

This error has far fewer hits, and almost none in the context of FreeBSD.

This happens whether or not I use "radeon" (the ATI driver, right?) or "radeonhd" driver in my Xorg.conf file, though I'm not entirely certain exactly which one I should officially be using.

Thoughts?


----------



## adamk (Feb 24, 2010)

Either radeon or radeonhd is acceptable.  They are both open source, and they are both written from the specifications provided by AMD.  Though neither is really "the ATI driver" per se, the 'radeon' driver certainly see more active development these days and more testing.  The reasons for two drivers are largely historical (and stupid, IMHO) and unless you have a specific reason to use 'radeonhd' (like you want HDMI audio, which is, again IMHO, the *only* reason to use radeonhd) I would stick with 'radeon'.

Anywho...  The IRQ error is normal.  IRQs are not supported.   It was introduced to the radeon driver about a month or two ago, but only via KMS, which is not available on FreeBSD.  To my knowledge, the only real downside to this is the lack of sync-to-vblank in the driver.

As for the "No available video device"...  I think that error is coming directly from SDL, though I'm not sure what would be causing that (unless SDL was somehow built without opengl support).  You could confirm that, I think, by running other opengl applications that don't use SDL (though I'm having a hard time coming up with any other than the ones installed by the mesa-demos port).

But we can at least make sure that your drivers are properly installed.  What is the output of 'glxinfo | grep -i render'?

Adam


----------



## SageRaven (Feb 24, 2010)

> installed.  What is the output of 'glxinfo | grep -i render'?



Here ya go...


```
direct rendering: Yes
OpenGL renderer string: Mesa DRI R600 (RV710 9540) 20090101  TCL
```

I've got complete ports rebuild going, and I'll report back yet again once done.


----------



## SageRaven (Feb 24, 2010)

*Solved!*

Turns out that, for some reason, the SDL package was configured with without X11 support (???), but after changing that, everything is working.

Neverball and sdlmame are working better than I've ever seen them run, and I've got openarena and a host of other open source 3D programs lined up for building.    At long last, I have well-performing 3D on FreeBSD/amd64!

Thanks to everyone for the help!


----------



## aragon (Feb 24, 2010)

adamk said:
			
		

> unless you have a specific reason to use 'radeonhd' (like you want HDMI audio, which is, again IMHO, the *only* reason to use radeonhd) I would stick with 'radeon'.


I tried switching from radeonhd to radeon the other day, but struggled with dual monitor support.  I want to hard code my dual head layout in xorg.conf, but the radeon driver seems to lack the configuration directives I need, namely a directive to reorder connector priority.  I know I'm drifting OT here, but have you played much with multimonitor configuration and the radeon driver?


----------



## adamk (Feb 24, 2010)

Yeah, the radeon driver doesn't have such an option for your xorg.conf file.  You use the --primary option for xrandr to set the primary monitor, though (ie. 'xrandr --output DVI-0 --primary').

Adam


----------

