[HEADS UP] Experimental 3D HW accel support for Radeon HD
2xxx, 3xxx and 4xxx, 2nd!
rnoland at FreeBSD.org
Sun Jan 3 17:05:01 UTC 2010
On Mon, 2010-01-04 at 01:15 +0900, Norikatsu Shigemura wrote:
> Hi rnoland.
> On Tue, 22 Dec 2009 11:13:14 -0600
> Robert Noland <rnoland at FreeBSD.org> wrote:
> > The problem is that updating nouveau will mean that drm support will be
> > lost. The fake buffer object bits were removed only leaving full TTM
> > support. We don't have TTM support in the kernel yet and my kernel
> > patch relies on the fake buffer object code to function.
> > > P.S. libdrm was update to 2.4.17, so I'll update...
> > That is the issue, if we update libdrm then we lose drm support for
> > nouveau. The only immediate option that I see is to repo-copy libdrm to
> > keep 2.4.12 for nouveau, but that leads to dependency nightmares...
> I did combination tests, Mesa3D 7.4.4/libdrm 2.4.12 v.s.
> Mesa3D 7.6.1/libdrm 2.4.17, xf86-video-radeonhd-devel on
> Radeon HD 4860 v.s. xf86-video-nouveau/nvidia-driver195.22 on
> GeForce GT240 v.s. xf86-video-intel on Intel i915.
> [I] Intel i915 [G] GeForce GT240 [R] Radeon HD 4860
> NG = doesn't compile.
> OK = compile and run some 3D applications OK.
> | 2.4.12 | 2.4.17
> Mesa3D --------+---------------+------------
> 7.4.4 |OK [I][G] | NG
> 7.6.1 |NG | OK [I][R]
The key issue is libdrm_nouveau. It is needed for nouveau to continue
to work for EXA and Xv. Hardware 3d is not supported / working, so as
long as swrast is ok, then that is the only concern for mesa w/ nouveau.
One additional option that I've been considering, though I haven't tried
it yet, it to construct a patch for 2.4.17 that essentially rolls
libdrm_nouveau back to the 2.4.12 API. If we can pull that off, then
everything is solved, at least for now.
I have kernel work queued up that is going to break nouveau already. I
have additional patches that will fix things up again, but it is going
to get a bit more complicated determining which kernel patch to use for
What you have outlined seems fairly reasonable, although not a trivial
amount of work. If you would like to attempt the reverse patch on the
nouveau directory in libdrm, that may be far simpler. I will try and
put this together in the next few days if not.
> On Mesa3D 7.6.1/libdrm 2.4.17 and nvidia-driver-195.22, I
> confirmed that 3D applications run OK.
> [SEE ALSO] attached Xorg-radeon-and-geforce.log
> So I suggest that:
> 1. repocopy libdrm -> libdrm2412 and introduce WITH_NOUVEAU
> global macro for depending on libdrm2412. (fixing all
> ports depending on libdrm)
> 2. libdrm and libdrm2412 are CONFLICTS.
> 3. bsd.mesalib.mk supports 7.4.4 and 7.6.1, and switches version
> WITH_NOUVEAU. Of course switch pkg_plist WITH_NOUVEAU.
> 4. xf86-video-nouveau depends on libdrm2412, explicitly.
> 5. update libdrm to 2.4.17.
> 6. on no 'WITH_NOUVEAU' (= default), Mesa3D 7.6.1 and libdrm 2.4.17
> are installing.
> Maybe, I should be announce on UPDATING before these update for
> xf86-video-nouveau user, do 'portupgrade -o graphics/libdrm2412
> How about? If OK, I'll make patches and write closeup procedure manual.
> I have some additional ideas:
> [no repocopy idea]
> libdrm supports 2.4.12 and 2.4.17 switching WITH_NOUVEAU.
> [OPTIONS idea]
> I can add OPTIONS=NOUVEAU for all Mesa3D7.4.4 and libdrm 2.4.12
> related ports, if you hate global WITH_NOUVEAU macro.
Robert Noland <rnoland at FreeBSD.org>
More information about the freebsd-ports