Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 May 2008 17:49:33 -0400
From:      Coleman Kane <cokane@FreeBSD.org>
To:        Eric Anholt <eric@anholt.net>
Cc:        arch@FreeBSD.org
Subject:   Re: Feature requests for open-source graphics
Message-ID:  <1210801773.2466.12.camel@localhost>
In-Reply-To: <1210352688.2152.78.camel@localhost>
References:  <1210352688.2152.78.camel@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help

--=-yBBmb6AbjuCblXyHzTIP
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Fri, 2008-05-09 at 10:04 -0700, Eric Anholt wrote:
> (Re-sent after I dragged a discussion of NVIDIA on FreeBSD off-topic on
> developers@)
>=20
> On Wed, 2008-05-07 at 10:37 -0700, Marcel Moolenaar wrote:
> > On May 7, 2008, at 8:29 AM, John Baldwin wrote:
> >=20
> > > Quite, and this has been covered several times already.  In fact, =20
> > > they engage
> > > in several hacks to support Linux.  Other OS's such as Solaris and =20
> > > OS X have
> > > cleaner interfaces for many of the things they wish to do.
> >=20
> > I think this is where I normally say that we need kernel drivers
> > for graphics hardware. I'm not going to do that anymore; I've been
> > stating the obvious too often already...
>=20
> It's OK, we're finally listening.  By the end of the year, major Linux
> distributions should be shipping "DRM modesetting" -- the DRM device
> takes over your graphics card and manages memory, execution, and
> suspend/resume.  Your kernel console and X Server then sit on top of
> that, submitting video mode setting and command execution requests to
> the DRM.  The chips I would expect to be supported by then are all
> Intel, pre-r500 ATI at least, and a subset of nvidia through nouveau.
>=20
> What FreeBSD needs to do to keep up is implement the memory manager
> part.  I think I've got a reasonable design going that should take about
> a month of reimplementing for the FreeBSD kernel.  If someone wanted to
> get us closer to doing that,
>=20
> git clone anongit.freedesktop.org:/git/mesa/drm=20
>=20
> and make everything but TTM (the *_HAVE_FENCE and *_HAVE_BUFFER defines)
> work on -current.
>=20
> To see what we're working on for what we're calling the "graphics
> execution manager" now (memory management plus caching management plus
> plans for execution scheduling),
>=20
> git-remote add anholt people.freedesktop.org:~anholt/drm
> git-fetch anholt
> git-checkout anholt/drm-gem
>=20
> The interesting things we're needing from the kernel:
> - Private storage associated with file descriptors
> - Callback to driver on destruction of file descriptor
> - Ability to allocate a swap-backed pile of memory
> - Ability to pin pages from that object and get addresses for them to
>   stuff into the GTT.
> - Ability to map pages in the kernel with the uncached bits set
>   (non-intel)
> - Ability to map pages to userland with the uncached bits set
>   (non-intel, likely not required, but may come at a performance
>   cost).
>=20
> Interesting things we're likely going to need from the kernel:
> - Ability to create fds above 1024 from our driver, associated with our
>   own set of file operations (read/write/mmap/ioctl/close).
> - Ability to look up those fds and get our private storage associated
>   with them.
>=20
> If above goes through, then another likely adventure:
> - Creating a filesystem exposing those objects we've been making fds
>   for.
>=20
> email message attachment, "Forwarded message - Re: Forward: Updated
> FreeBSD kernel feature requests (NVIDIA graphics)"
> > -------- Forwarded Message --------
> > From: Eric Anholt <eric@anholt.net>
> > To: Marcel Moolenaar <xcllnt@mac.com>
> > Cc: John Baldwin <jhb@freebsd.org>, Coleman Kane
> > <cokane@freebsd.org>, Dag-Erling Sm=C3=B8rgrav <des@des.no>, Martin
> > Cracauer <cracauer@cons.org>, gnn@freebsd.org,
> > developers@freebsd.org
> > Subject: Re: Forward: Updated FreeBSD kernel feature requests
> > (NVIDIA graphics)
> > Date: Thu, 08 May 2008 15:54:17 -0700
> > Mailer: Evolution 2.22.0 FreeBSD GNOME Team Port
> >=20
> > On Wed, 2008-05-07 at 10:37 -0700, Marcel Moolenaar wrote:
> > > On May 7, 2008, at 8:29 AM, John Baldwin wrote:
> > >=20
> > > > Quite, and this has been covered several times already.  In fact, =20
> > > > they engage
> > > > in several hacks to support Linux.  Other OS's such as Solaris and =
=20
> > > > OS X have
> > > > cleaner interfaces for many of the things they wish to do.
> > >=20
> > > I think this is where I normally say that we need kernel drivers
> > > for graphics hardware. I'm not going to do that anymore; I've been
> > > stating the obvious too often already...
> >=20
> > It's OK, we're finally listening.  By the end of the year, major Linux
> > distributions should be shipping "DRM modesetting" -- the DRM device
> > takes over your graphics card and manages memory, execution, and
> > suspend/resume.  Your kernel console and X Server then sit on top of
> > that, submitting video mode setting and command execution requests to
> > the DRM.  The chips I would expect to be supported by then are all
> > Intel, pre-r500 ATI at least, and a subset of nvidia through nouveau.
> >=20
> > What FreeBSD needs to do to keep up is implement the memory manager
> > part.  I think I've got a reasonable design going that should take abou=
t
> > a month of reimplementing for the FreeBSD kernel.  If someone wanted to
> > get us closer to doing that,
> >=20
> > git clone anongit.freedesktop.org:/git/mesa/drm=20
> >=20
> > and make everything but TTM (the *_HAVE_FENCE and *_HAVE_BUFFER defines=
)
> > work on -current.
> >=20
> > To see what we're working on for what we're calling the "graphics
> > execution manager" now (memory management plus caching management plus
> > plans for execution scheduling),
> >=20
> > git-remote add anholt people.freedesktop.org:~anholt/drm
> > git-fetch anholt
> > git-checkout anholt/drm-gem
> >=20
> > The interesting things we're needing from the kernel:
> > - Private storage associated with file descriptors
> > - Callback to driver on destruction of file descriptor
> > - Ability to allocate a swap-backed pile of memory
> > - Ability to pin pages from that object and get addresses for them to
> >   stuff into the GTT.
> > - Ability to map pages in the kernel with the uncached bits set
> >   (non-intel)
> > - Ability to map pages to userland with the uncached bits set
> >   (non-intel, likely not required, but may come at a performance
> >   cost).
> >=20
> > Interesting things we're considering needing from the kernel:
> > - Ability to create fds above 1024 from our driver, associated with our
> >   own set of file operations (read/write/mmap/ioctl/close).
> > - Ability to look up those fds and get our private storage associated
> >   with them.
> >=20
> > Down the line, likely to happen:
> > - Creating a filesystem exposing those objects we've been making fds
> >   for.

Eric,

I mentioned earlier that I would get my local git repo's changes to the
mesa/drm tree available from fd.o up somewhere. I have them here:
  * http://www.cokane.org/cgi-bin/gitweb.cgi?p=3Ddrm.git

My custom branch is 'cokane-master'
The fd.o branch is tracked on 'fd-master'

You can ignore the 'master' branch for now... I need to re-org my git a
bit.

Right now, this gets my RS690 notebook to almost work with the
in-development radeonhd DRI code, but it causes Xorg to run in a
busyloop when I try using the xf86-video-ati driver with it. I did a run
at trying to get the vblank stuff ported over, but I got busy and
haven't touched it in a bit. I also tried to tweak anything else that
kept the radeon code from compiling under FreeBSD.

If I have another set of eyes on this it might help me front-burner it
more often to get patches in here-and-there. I've tried shoving some bug
reports up to the DRI project, but they haven't been acted upon yet...

--=20
Coleman Kane

--=-yBBmb6AbjuCblXyHzTIP
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iEYEABECAAYFAkgrXmwACgkQcMSxQcXat5dpKACfcxjNSh8P0aBxFxu1M+FJBxpf
srMAnAkJRaFXh2fRnWdW7YZbiumPDITq
=xxUW
-----END PGP SIGNATURE-----

--=-yBBmb6AbjuCblXyHzTIP--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1210801773.2466.12.camel>