Disclaimer: I have an onboard 945G based card, your milage may vary.
Also the 2nd half of this post is a bit of a rant ;-)
Background
After installing PCBSD 7.1 on my new machine, I noticed graphics performance was extremely poor. Although it's an onboard card using shared memory (256Mb) and I wasn't expecting anything wonderful, it was noticable worse than my old nvida tnt2 32mb.
Running
glxgears (yes I know it's not a benchmark, but sometimes it gives a useful indication), showed
a fps of 75! Games like Warzone2100 were also noticably slower, etc.
After much playing with xorg.conf, googling, and reading, I think I've found a possible fix.
Quick Fix
Install
driconf.
Run
driconf as a normal user.
Where it says "Synchronization with vertical refresh", select the option "Inital swap interval 0, obey application's choice".
Tada, ~ 600fps.
Explanation (As far as I can tell)
Xorg are/have moved to a new memory management (?) system called GEM. This however hasn't yet been ported to FreeBSD, AFAIK it requires kernel code changes (they should maybe change their name to linuxx.org, with apologies to Eric Anholt). This hasn't stoped them releasing drivers that assume GEM is supported, and when not fallback to a safe mode.
Thus, on FreeBSD, every X application spits out:
|
Quote:
|
|
Failed to initialize GEM. Falling back to classic.
|
When this happens, vertical synchonisation is also forced. My monitor runs at 75Hz, so my fps was limited to 75.
driconf allows us to fix this.
Acceleration Modes
The intel graphics driver currently has 3 (yes 3!) possible hardware acceleration modes. These are:
- UXA - This is the shiny new mode, and the most unstable IME. On my setup I get the black screen of death when x starts (a known bug). Not curently recommended, though if it works for you it might give the best performance.
[/*:m:20gkique]
- EXA - Older mode. I'm using this with following options:
|
Code:
|
Option "AccelMethod" "EXA"
Option "MigrationHeuristic" "greedy"
Option "ExaNoComposite" "True" |
Works ok, but sufferes from the well known missing icons in the KDE systray bug.
[/*:m:20gkique]
- XAA - old mode, and deprecated, which means that they're not even pretending to fix the bugs. Gives me random freezes/system crashs. Try it if everything else fails.[/*:m:20gkique]
The State of the Art
Important to realise, that in it's current form, the xorg intel video driver is a steaming pile of shit. Updating it to 2.7.1 and xorg-server 1.6 (no easy task with PCBSD's localbase innovation) doesn't improve matters. If it's any consolation, the Ubuntu forums are also full of reports of decreased performance, bugs, and system freezes. Hopefuly it'll get better in the future. Was nice of x.org to depreacte the old i810 driver (and it's deleted from ports) before releasing a new stable driver...