# ati on freebsd



## martins (Jun 27, 2010)

Hi all,

I'm new to *BSD. Can you tell me how to install/configure ATI drivers so that I could have 3d acceleration? 

I'm running FreeBSD 8.0 64 bit and the card is:


```
vgapci0@pci0:1:0:0:     class=0x030000 card=0x3600103c chip=0x95c41002 rev=0x00 hdr=0x00
    vendor     = 'ATI Technologies Inc. / Advanced Micro Devices, Inc.'
    device     = 'ATI Mobility Radeon HD 3450 (ATI Mobility Radeon HD 3450)'
    class      = display
    subclass   = VGA
```

thank you


----------



## adamk (Jun 27, 2010)

For 3D acceleration on that GPU, you need to be using 8-STABLE or 9-CURRENT.  You need to be using the latest Xorg and Mesa from ports and set the WITHOUT_NOUVEAU option to 'yes' in /etc/make.conf.  Then reboot, startx, and enjoy 3D acceleration.

Adam


----------



## martins (Jun 27, 2010)

Thank you.
I'm using 8-stable. I've added the entry to make.conf. Xorg was installed from ports today. The only thing is that I can't find mesa in ports. Where is it?

thank you


----------



## adamk (Jun 27, 2010)

It's graphics/libGL, iirc.  If you installed Xorg, then the libGL port was installed as well.  Install graphics/mesa-demos and run 'glxinfo' as a normal user to see if you have 3D acceleration.


----------



## martins (Jun 27, 2010)

Thanks

I've got the following errors while installing mesa-demos:


```
shadowtex.c: In function 'Idle':
shadowtex.c:687: warning: implicit declaration of function 'glutGet'
shadowtex.c:694: warning: implicit declaration of function 'glutPostRedisplay'
shadowtex.c: In function 'Key':
shadowtex.c:708: warning: implicit declaration of function 'glutIdleFunc'
shadowtex.c: In function 'SpecialKey':
shadowtex.c:800: warning: implicit declaration of function 'glutGetModifiers'
shadowtex.c: In function 'Init':
shadowtex.c:877: warning: implicit declaration of function 'glutExtensionSupported'
shadowtex.c: In function 'main':
shadowtex.c:1025: warning: implicit declaration of function 'glutInit'
shadowtex.c:1026: warning: implicit declaration of function 'glutInitWindowPosition'
shadowtex.c:1027: warning: implicit declaration of function 'glutInitWindowSize'
shadowtex.c:1028: warning: implicit declaration of function 'glutInitDisplayMode'
shadowtex.c:1029: warning: implicit declaration of function 'glutCreateWindow'
shadowtex.c:1031: warning: implicit declaration of function 'glutReshapeFunc'
shadowtex.c:1032: warning: implicit declaration of function 'glutKeyboardFunc'
shadowtex.c:1033: warning: implicit declaration of function 'glutSpecialFunc'
shadowtex.c:1034: warning: implicit declaration of function 'glutDisplayFunc'
shadowtex.c:1039: warning: implicit declaration of function 'glutMainLoop'
gmake[2]: *** [shadowtex.o] Error 1
gmake[2]: Leaving directory `/usr/ports/graphics/mesa-demos/work/Mesa-7.6.1/progs/demos'
gmake[1]: *** [subdirs] Error 1
gmake[1]: Leaving directory `/usr/ports/graphics/mesa-demos/work/Mesa-7.6.1/progs'
gmake: *** [default] Error 1
*** Error code 1
```


----------



## adamk (Jun 27, 2010)

Make sure graphics/libglut is installed.  It should be, but that's the only thing that comes to mind.

Adam


----------



## martins (Jun 27, 2010)

Ok thanks that helped. Apparently an older version of libglut was installed so I upgraded it to the port version and mesa-demos installed fine. It seems that direct rendering is enabled. 

Thanks a lot.


----------



## martins (Jun 27, 2010)

I can't see any option to mark the thread solved?!


----------



## adamk (Jun 27, 2010)

Having glxinfo show that direct rendering is enabled isn't enough to know if you have 3D acceleration.  You can have direct rendering even with software rendering.  What's the output of `glxinfo | grep -i render`
?

Adam


----------



## martins (Jun 27, 2010)

It's:

```
direct rendering: Yes
OpenGL renderer string: Software Rasterizer
```

Is that ok?


----------



## adamk (Jun 27, 2010)

Nope, that means it's using the software renderer.  Attach your full /var/log/Xorg.0.log file, please (though I likely won't be able to check it till tomorrow morning).

Adam


----------



## martins (Jun 27, 2010)

Thanks a lot. I do appreciate your help.

The file seems too long to post here so here it is:
http://pastebin.com/euMUYhui


----------



## adamk (Jun 27, 2010)

So direct rendering is getting enabled in the X server.  Set the environmental variable LIBGL_DEBUG to true, and run  `glxinfo`.  Then show us the full output.

Adam


----------



## martins (Jun 27, 2010)

Thanks Adam. Sorry, where would I set that variable?


----------



## adamk (Jun 27, 2010)

If you are using the csh or tcsh, you would run  `setenv LIBGL_DEBUG verbose; glxinfo`

If you are using sh or bash, you could run `LIBGL_DEBUG=verbose glxinfo`

Adam


----------



## martins (Jun 27, 2010)

i'm using BASH:
http://pastebin.com/qLiv3DHJ


----------



## adamk (Jun 27, 2010)

You didn't have WITHOUT_NOUVEAU=yes set in /etc/make.conf at the time you installed graphics/libGL.  Add that option and rebuild that port.

Adam


----------



## martins (Jun 27, 2010)

Just to make sure if I do it properly. Shall I make deinstall and then make install clean or is there any other recommended way?

thanks


----------



## adamk (Jun 27, 2010)

I would do `make clean deinstall` (the "clean" to wipe out the source for the previous build in case it causes problems) followed by `make install clean`


----------



## martins (Jun 27, 2010)

Thanks


```
bsdtop# less /etc/make.conf 
# added by use.perl 2010-06-25 23:40:00
PERL_VERSION=5.10.1
X_WINDOW_SYSTEM=xorg
WITHOUT_NOUVEAU="YES"
WITH_MUTT_IMAP_HEADER_CACHE="YES"
WITH_MUTT_MAILDIR_HEADER_CACHE="YES"
WITH_MUTT_CYRUS_SASL2="YES"
WITH_MUTT_SIDEBAR_PATCH="YES"
WITH_MUTT_SMTP="YES"
```

and glxinfo
http://pastebin.com/Y0RGLUjr


----------



## adamk (Jun 27, 2010)

Still looks like it's using the old version of Mesa.  Search /usr/ports/UPDATING for NOUVEAU to make sure I gave you the correct option.  I'm not in front of a FreeBSD box at the moment.

Adam


----------



## martins (Jun 27, 2010)

That's what it says:


> 20100207:
> AFFECTS: users of Mesa3D libraries and x11-drivers/xf86-video-nouveau
> AUTHOR: nork@FreeBSD.org
> 
> ...




I also upgraded libdrm and dri. I seems we're getting somewhere:

http://pastebin.com/XCceecjV

It still gives errors but it 'seems' better now


----------



## martins (Jun 27, 2010)

I also installed driconf to get rid of the conf errors in glxinfo.


----------



## martins (Jun 27, 2010)

So generally, how would I know if 3d acceleration is enabled? Is it when those entries ending with "SLOW" or "NONE" disappear?


----------



## Beastie (Jun 27, 2010)

As adamk said, *OpenGL renderer string* should not be *Software Rasterizer*.


----------



## martins (Jun 27, 2010)

Does that mean that it's fully enabled now?

d
	
	



```
irect rendering: Yes
OpenGL renderer string: Mesa DRI R600 (RV620 95C4) 20090101  TCL
```


----------



## adamk (Jun 27, 2010)

Your Renderer string should show "Mesa DRI R600", just as it does on line 42 of your pastebin   Which means you now have 3D acceleration.


----------



## martins (Jun 27, 2010)

Thanks, I rebooted the system just to make sure everything works fine and now everything seems slow.

```
LIBGL_DEBUG=verbose glxinfo
name of display: :0.0
libGL error: XF86DRIQueryDirectRenderingCapable returned false
libGL: OpenDriver: trying /usr/local/lib/dri/swrast_dri.so
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
```

What could have happened?


----------



## adamk (Jun 27, 2010)

Your X server has DRI disabled for some reason.  Pastebin your new /var/log/Xorg.0.log file now.

Adam


----------



## martins (Jun 27, 2010)

Here you go:
http://pastebin.com/CqSPjwzH

thank you


----------



## martins (Jun 27, 2010)

Here's my xorg.conf

```
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        ModulePath   "/usr/local/lib/xorg/modules"
        FontPath     "/usr/local/lib/X11/fonts/misc/"
        FontPath     "/usr/local/lib/X11/fonts/TTF/"
        FontPath     "/usr/local/lib/X11/fonts/OTF"
        FontPath     "/usr/local/lib/X11/fonts/Type1/"
        FontPath     "/usr/local/lib/X11/fonts/100dpi/"
        FontPath     "/usr/local/lib/X11/fonts/75dpi/"
EndSection

Section "Module"
        Load  "extmod"
        Load  "record"
        Load  "dbe"
        Load  "glx"
        Load  "dri"
        Load  "dri2"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/sysmouse"
```


----------



## adamk (Jun 27, 2010)

Did you reboot or simply restart X (or reboot and then restart X)?  There was  a bug in the driver for a while (might still be there), only on FreeBSD, where if you used too much system ram, and then restart X, the DRI driver wouldn't be able to allocate enough system RAM, and you'd get that same "Out of memory" error from the X server.  I haven't personally seen that particular bug in a while, but that's the only thing I can think of.

Adam


----------



## martins (Jun 27, 2010)

It might be that. Actually I think I only logged out (know it sounds stupid but I don't remember). I still haven't created a swap partition and have got 2 GB of RAM, it might have run out of it.

I'll reboot the computer and see what happens.

thank you


----------



## martins (Jun 27, 2010)

OK

```
[xtd8865@bsdtop /usr/home/xtd8865]$ LIBGL_DEBUG=verbose glxinfo 
name of display: :0.0
libGL: XF86DRIGetClientDriverName: 4.3.0 r600 (screen 0)
libGL: OpenDriver: trying /usr/local/lib/dri/r600_dri.so
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 4, (OK)
drmOpenByBusid: Searching for BusID pci:0000:01:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 4, (OK)
drmOpenByBusid: drmOpenMinor returns 4
drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating, 
    GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_OML_swap_method, 
    GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_hyperpipe, 
    GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GLX_MESA_copy_sub_buffer
client glx vendor string: Mesa Project and S
```

It doesn't seem so sluggish anymore but as you can see, it doesn't load dri r600 properly.


----------



## adamk (Jun 27, 2010)

What do you mean it doesn't load dri r600 properly?  


```
libGL: OpenDriver: trying /usr/local/lib/dri/r600_dri.so
```

You haven't posted the full output, but does the renderer string say something other than Mesa R600 DRI?

Adam


----------



## martins (Jun 27, 2010)

Ok, I think I misinterpreted the output.

The full output is as follows:
http://pastebin.com/zJkncu6U

Does it look right?


----------



## martins (Jun 27, 2010)

One more thing. When I run gears
I get:

```
$ gears
drmRadeonCmdBuffer: -22. Kernel failed to parse or rejected command stream. See dmesg for more info.
```


```
drm0: <ATI Mobility Radeon HD 3400 Series> on vgapci0
info: [drm] MSI enabled 1 message(s)
vgapci0: child drm0 requested pci_enable_busmaster
info: [drm] Initialized radeon 1.29.0 20080528
info: [drm] Setting GART location based on new memory map
info: [drm] Loading RV620 Microcode
info: [drm] Resetting GPU
info: [drm] writeback test succeeded in 1 usecs
drm0: [ITHREAD]
pid 1360 (xfce4-power-manager), uid 1001: exited on signal 6
info: [drm] Resetting GPU
info: [drm] Setting GART location based on new memory map
info: [drm] Loading RV620 Microcode
info: [drm] Resetting GPU
info: [drm] writeback test succeeded in 1 usecs
drm0: [ITHREAD]
```


----------



## adamk (Jun 27, 2010)

Yes, your glxinfo output looks fine.  Does gears work, despite the message?

Adam


----------



## martins (Jun 27, 2010)

No, it doesn't. The window appears for a split of a second and closes.


----------



## adamk (Jun 27, 2010)

Hmmm..  That is odd.  It works fine here, though I am using -CURRENT instead of -STABLE.  Not sure if that would make the difference.  

How about other opengl applications? /usr/local/bin/glxgears or /usr/local/bin/gloss, for example.

Adam


----------



## wblock@ (Jun 27, 2010)

martins said:
			
		

> Here's my xorg.conf



No, that was only a part of it.  Please post all of it, or at least the Device section.


----------



## adamk (Jun 27, 2010)

He may not even have a Device section.  It's certainly not required.  In any case, his xorg.conf is irrelevant  at this point.  

Adam


----------



## adamk (Jun 27, 2010)

Whoa...  On page one you said you were using 8-stable.  You are not.  Your Xorg.0.log file shows that you are using 8.0-RELEASE.  You *must* be using at least -STABLE or -CURRENT.  It will not work with 8.0-RELEASE.


----------



## martins (Jun 27, 2010)

Sugar! Don't tell me that I spent the last couple of days trying to configure something that is out of date Sorry for misinforming you. I didn't know there's any difference between 8.0-Release and -STABLE. I thought that the one available in the main section of downloads on the freebsd website ie. 8.0-release IS -STABLE. 
Ok, I looked at it in the snapshot section and understand the difference between the versions. My apologies for the confusion. I've only been with FreeBSD for 2 days.
In that case I'll download an 8-STABLE version and start everything again (aagggrrrhhh!!!!)

Thank you for all your help. 

What about 9-current? Is it usable for a FreeBSD newbie? I've been successfully using Slackware-current for the last 2 years, but then again I know much more about linux than BSD. Perhaps, I should install 9-current. It's just for me to learn freebsd. I plan it to be the only OS on one of my laptops.
What would your advice be?


----------



## adamk (Jun 27, 2010)

Generally I would recommend sticking with -STABLE unless you have a specific reason to go with -CURRENT (and, in fact, I would normally recommend using -RELEASE, but you won't get 3D acceleration that way, at least not till 8.1-RELEASE and, to be honest, I don't know if the 3D DRM code will even be in 8.1).

Adam


----------



## wblock@ (Jun 27, 2010)

adamk said:
			
		

> He may not even have a Device section.  It's certainly not required.  In any case, his xorg.conf is irrelevant  at this point.
> 
> Adam



The one he posted was cut off, maybe just one line, maybe more.  But working from incomplete information has dragged out a lot of these threads.


----------



## adamk (Jun 27, 2010)

Perhaps   Having dealt with Xorg and XFree86 issues for well over a decade, I can tell you that there's very little, if anything, an xorg.conf file can tell you that an Xorg.0.log file can't.  In any case, it really is irrelevant to his current problem.

Adam


----------



## martins (Jun 27, 2010)

wblock said:
			
		

> The one he posted was cut off, maybe just one line, maybe more.  But working from incomplete information has dragged out a lot of these threads.



I'm installing -STABLE now so there's no way of telling, but it WAS the whole output of xorg.conf


----------



## adamk (Jun 27, 2010)

wblock is correct in that you did not paste your entire xorg.conf.  You are at least missing one line without which Xorg would not have started.

Adam


----------



## martins (Jun 27, 2010)

Weird. I'm usually very careful to post relevant pieces of code. But Ok. If you guys say so I must have been wrong.


----------



## wblock@ (Jun 27, 2010)

martins said:
			
		

> I'm installing -STABLE now



Remember to update your ports tree and add WITHOUT_NOUVEAU=yes to /etc/make.conf before you start installing ports.


----------



## martins (Jun 27, 2010)

Thanks, that's the first thing I did. Now I'm installing xorg


----------



## Nukama (Jun 28, 2010)

adamk said:
			
		

> Generally I would recommend sticking with -STABLE unless you have a specific reason to go with -CURRENT (and, in fact, I would normally recommend using -RELEASE, but you won't get 3D acceleration that way, at least not till 8.1-RELEASE and, to be honest, I don't know if the 3D DRM code will even be in 8.1).
> 
> Adam



Hi, 
I'm on 
	
	



```
FreeBSD 8.1-RC1 FreeBSD 8.1-RC1 #0: Mon Jun 14 13:40:28 UTC 2010 amd64
```
and with WITHOUT_NOUVEAU=yes in /etc/make.conf - before compiling xorg and mesa-demos - 3D acceleration works with the Radeon Xpress 1250 on my motherboard.  

But only after some troubleshooting influenced by
[CMD=(t)csh:]setenv LIBGL_DEBUG verbose; glxinfo[/CMD]
and
[CMD=(ba)sh:]LIBGL_DEBUG=verbose glxinfo[/CMD].

This helped to figure out, that my user hadn't the right permissions. After I added him to the group wheel following showed up:

```
OpenGL vendor string: DRI R300 Project
OpenGL renderer string: Mesa DRI R300 (RS600 7941) 20090101  NO-TCL
OpenGL version string: 1.5 Mesa 7.6.1
```

glxgears (~2500fps) and gloss (~650fps) works well with this limited hardware (in window mode).

There is also /usr/local/lib/dri/r600_dri.so in 8.1-RC1, but I'm not sure if DRI and DRM is up-to-date with 8-STABLE.


----------



## adamk (Jun 28, 2010)

Right, but that doesn't mean anything for the OP.  The 3D DRM code for the x1250 has been in FreeBSD while a while now.  That's a much older generation GPU than the HD3450 that the OP is using.


----------



## martins (Jun 29, 2010)

Ok, I followed the advice given in this thread on my new -STABLE and everything is fine. Thanks everyone.
I've got other questions but I'm going to open separate threads for them.

cheers


----------



## Woland (Oct 23, 2010)

I have an HD5700 series card.  I know that 3D acceleration is currently unsuported in the standard radeon driver for this card, but ...

Following the instructions on this page seemed to at least have given me smoother 2D acceleration (maybe by accident) but, of course, no 3D.

The question is, is there another way?  Is there a way of smoothly using more "bleeding edge" drivers that _might_ give me 3D rendering, if not now then at least sooner?  Or are there at least things I can do to make my system run smoother with this semi-supported hardware?


----------



## adamk (Oct 23, 2010)

Woland said:
			
		

> I have an HD5700 series card.  I know that 3D acceleration is currently unsuported in the standard radeon driver for this card, but ...
> 
> Following the instructions on this page seemed to at least have given me smoother 2D acceleration (maybe by accident) but, of course, no 3D.
> 
> The question is, is there another way?  Is there a way of smoothly using more "bleeding edge" drivers that _might_ give me 3D rendering, if not now then at least sooner?  Or are there at least things I can do to make my system run smoother with this semi-supported hardware?



There's not much you can do.  There is no 3D acceleration for it under FreeBSD.  3D acceleration is rather new under linux for that GPU with the open source drivers, and no one is actively working on continuing to support the DRI on FreeBSD.  There is also no 2D acceleration, just 2D modesetting.

Adam


----------



## graudeejs (Oct 23, 2010)

adamk said:
			
		

> There is also no 2D acceleration, just 2D modesetting.


Meaning, there is no 2D acceleration in Video Cards anymore?
Or there is no driver support for such thing?


----------



## wblock@ (Oct 23, 2010)

killasmurf86 said:
			
		

> Meaning, there is no 2D acceleration in Video Cards anymore?
> Or there is no driver support for such thing?



For Radeon cards on FreeBSD, there is 2D and 3D acceleration for cards up to the 4000 series.  5000- and 6000-series lack DRI and/or driver support.


----------



## adamk (Oct 23, 2010)

killasmurf86 said:
			
		

> Meaning, there is no 2D acceleration in Video Cards anymore?
> Or there is no driver support for such thing?



Actually, a little of both.  There is no 2D acceleration for HD5xxx cards on FreeBSD because there is no separate 2D chip (there hasn't been since the r500 cards, starting with the X1300, iirc). So all 2D rendering on those chips is all done with the 3D engine.  Access to the 3D engine requires kernel support.


----------



## graudeejs (Oct 23, 2010)

adamk said:
			
		

> Actually, a little of both.  There is no 2D acceleration for HD5xxx cards on FreeBSD because there is no separate 2D chip (there hasn't been since the r500 cards, starting with the X1300, iirc). So all 2D rendering on those chips is all done with the 3D engine.  Access to the 3D engine requires kernel support.



Yes, I was reading about this some pretty long time ago.
Thanks adamk, you're definitely an encyclopaedia of 3D support here :stud


----------



## narcolepsy (Oct 27, 2010)

So if 2d/3d hardware acceleration is supported, how about acceleration for vlc/mplayer? Is this possible using mesa?

Thx.


----------



## adamk (Oct 27, 2010)

There is no video acceleration in the open source radeon driver at the present moment.  Xv is certainly supported, which helps with scaling, and XvMC is being worked on in gallium (which is not yet available on FreeBSD), which would provide assistance with motion compensation, but even that's not usable on Linux yet.

Adam


----------



## Woland (Nov 4, 2010)

adamk said:
			
		

> There's not much you can do.  There is no 3D acceleration for it under FreeBSD.  3D acceleration is rather new under linux for that GPU with the open source drivers, and no one is actively working on continuing to support the DRI on FreeBSD.  There is also no 2D acceleration, just 2D modesetting.
> 
> Adam




I've been trying to figure out what does what when it comes to graphics.  My impression is that 3D acceleration comes from the OpenGL library.  For the system to be able to use it, it must communicate through the radeon driver, which is provided by X.org and is, in theory, "platform independent" meaning it needs some tweaks to work fully with BSD.

The radeon feature list for the Evergreen chip set seems nearly as complete as for older boards, and even OpenGL support is listed as "mostly"
http://www.x.org/wiki/RadeonFeature
This is good news, right? 

So the FreeBSD job would be to make sure radeon compiles and plays nicely with the kernel.  Is this what "no one is actively working on continuing to support" ?  Is there anything that someone with several hours to spend per week, a copy of the Kernighan/Ritchie book, and this graphics card can do to help?  Or did I just reveal a level of ignorance that would make any attempt at contributing futile?  Is there another place where it would be better for me to ask these questions and try to find these answers?


----------



## adamk (Nov 4, 2010)

To further work develop and support the Direct Rendering Manager under FreeBSD, a developer would need to focus on KMS and memory management support, since that's the major bit that FreeBSD is currently lacking.  rnoland, the last developer to work on DRM, once said to me that he just didn't know enough about the internals of the kernel memory management system to really work on those missing DRM features and that none of the current FreeBSD developers, proficient enough in memory management, really understood graphics cards enough.  So, unfortunately, I think it's gonna take a lot more than what you were hoping for 

On the plus side, I did recently read on one of the mailing lists that the FreeBSD Foundation was looking to fund development of these items, so hopefully FreeBSD won't get completely left behind.

Adam


----------



## oliverh (Nov 6, 2010)

> On the plus side, I did recently read on one of the mailing lists that the FreeBSD Foundation was looking to fund development of these items, so hopefully FreeBSD won't get completely left behind.



OpenBSD has got a working solution in 4.8, DragonflyBSD is working on something similar (Google SoC Project). The real problem is: even ATI-driver will be dead in no time, if there isn't a solution for FreeBSD.

http://www.dragonflybsd.org/docs/developer/GEMdrmKMS/



> It is especially vital for Linux drm GEM, TTM, KMS code to be ported immediately to the BSDs because developers are in the process of removing userland modesetting code from current graphics drivers. To paraphrase what we have been told by freedesktop.org developers, if we do not port this code, very shortly the BSDs will be left only using the simplest VESA driver at 1024 x 768 resolution with no hardware acceleration.


----------

