From: Jon Smirl <jonsmirl@gmail.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Keith Whitwell <keith@tungstengraphics.com>,
Dave Jones <davej@redhat.com>,
Christoph Hellwig <hch@infradead.org>,
Dave Airlie <airlied@linux.ie>, Jon Smirl <jonsmirl@yahoo.com>,
DRI Devel <dri-devel@lists.sourceforge.net>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
mharris@redhat.com
Subject: Re: New proposed DRM interface design
Date: Sun, 5 Sep 2004 17:12:42 -0400 [thread overview]
Message-ID: <9e47339104090514122ca3240a@mail.gmail.com> (raw)
In-Reply-To: <1094398257.1251.25.camel@localhost.localdomain>
Sure you can use this to get around both fbdev and DRM trying to claim
the resource. But it doesn't help at all to fix the problem that fbdev
and DRM are programming the radeon chip in conflicting ways.
Look at the case of two independent users, one logged into each head.
One is running DRI and one fbdev. On every process swap I am going to
have to save graphics state, stop the coprocessor, flush the drawing
queue, etc because fbdev runs the chip in 2D mode and DRM runs it in
3D. It may take longer than a timeslice to flush the graphics queue.
In a coordinated driver world I can leave the chip in 3D mode and
processes swap without overhead. The coordinated driver can also
manage allocating the VRAM between users.
How is multihead mode setting going to work with separate drivers? Set
head #1 using fbdev and head #2 using DRM? I can't imagine how merged
fb will work in that model. Or am I supposed to teach existing fbdev
how to do merged fb?
Some of the fbdev drivers are starting to attempt acceleration using
3D mode. This is going to be a complete mess when swapping to DRM.
What is so awful about merging the code? I'm the one doing the all of
the work. I intend to use 95% of the code extracted from fbdev without
change. I'm not getting rid of fbdev capability in the merged code,
I'm just coordinating use of the hardware.
On Sun, 05 Sep 2004 16:31:15 +0100, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> The only glue structure you need for most of this is
>
> struct fb_device
> {
> struct fb_info *fb; /* NULL or frame buffer device */
> struct dri_whatever *dri; /* As yet not nicely extracted DRI
> object */
> atomic_t refcnt;
> void *private
> };
>
> Right now the drvdata for most PCI/AGP frame buffers is set to the
> fb_info. If that is set to the shared object then you can attach DRI and
> or FB first and they can find and call each others methods.
>
> It might also need a single lock just to avoid DRI deciding to go away
> while fb is calling dri and the reverse although I think the refcnt is
> easier and cheaper.
>
> With that in place if X tells DRI "640x480 starting here" then DRI can
> tell fb "640x480 starting here". Similarly fb and dri can find each
> other for acceleration and the kernel can become a DRI client for
> console acceleration.
>
> Once you have this object you can start attaching memory managers and
> mode setup pointers to the shared structure so that they live
> independantly.
>
>
--
Jon Smirl
jonsmirl@gmail.com
next prev parent reply other threads:[~2004-09-05 21:12 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-04 0:12 New proposed DRM interface design Dave Airlie
2004-09-04 0:44 ` Jon Smirl
2004-09-04 0:51 ` Dave Airlie
2004-09-04 1:20 ` Jon Smirl
2004-09-04 4:58 ` Dave Airlie
2004-09-04 9:29 ` Christoph Hellwig
2004-09-04 9:43 ` Dave Airlie
2004-09-04 9:47 ` Christoph Hellwig
2004-09-04 9:48 ` Arjan van de Ven
2004-09-04 9:50 ` Christoph Hellwig
2004-09-04 9:45 ` Keith Whitwell
2004-09-04 9:48 ` Christoph Hellwig
2004-09-04 10:23 ` Keith Whitwell
2004-09-04 10:25 ` Christoph Hellwig
2004-09-04 10:30 ` Keith Whitwell
2004-09-04 10:44 ` Nick Piggin
2004-09-04 10:54 ` Dave Airlie
2004-09-04 11:17 ` Dave Jones
2004-09-04 12:58 ` Sam Ravnborg
2004-09-04 21:06 ` Lee Revell
2004-09-05 10:14 ` Donnie Berkholz
2004-09-04 10:57 ` Keith Whitwell
2004-09-04 11:03 ` Christoph Hellwig
2004-09-04 11:12 ` Dave Airlie
2004-09-04 11:13 ` Christoph Hellwig
2004-09-04 11:24 ` Dave Airlie
2004-09-04 11:26 ` Christoph Hellwig
2004-09-04 21:34 ` Lee Revell
2004-09-04 22:41 ` viro
2004-09-04 23:33 ` Lee Revell
2004-09-05 2:10 ` Horst von Brand
2004-09-05 3:42 ` Lee Revell
2004-09-04 11:42 ` Dave Jones
2004-09-04 11:50 ` Keith Whitwell
2004-09-04 21:35 ` Lee Revell
2004-09-04 22:06 ` Dave Airlie
2004-09-05 12:00 ` Alan Cox
2004-09-04 11:18 ` Keith Whitwell
2004-09-04 11:20 ` Christoph Hellwig
2004-09-04 11:30 ` Keith Whitwell
2004-09-04 11:33 ` Christoph Hellwig
2004-09-04 11:44 ` Keith Whitwell
2004-09-04 11:29 ` Dave Jones
2004-09-04 11:41 ` Keith Whitwell
2004-09-04 11:46 ` Christoph Hellwig
2004-09-04 12:04 ` Dave Airlie
2004-09-04 12:10 ` Dave Jones
2004-09-04 12:35 ` Keith Whitwell
2004-09-04 12:25 ` Christoph Hellwig
2004-09-04 21:45 ` Lee Revell
2004-09-04 16:39 ` Alan Cox
2004-09-04 11:54 ` Dave Jones
2004-09-04 12:08 ` Keith Whitwell
2004-09-04 12:17 ` Dave Airlie
2004-09-04 12:21 ` Christoph Hellwig
2004-09-04 12:32 ` Dave Airlie
2004-09-04 12:30 ` Arjan van de Ven
2004-09-04 12:36 ` Dave Airlie
2004-09-04 22:17 ` Dave Airlie
2004-09-04 22:21 ` Christoph Hellwig
2004-09-04 23:08 ` Felix Kühling
2004-09-04 12:20 ` Dave Jones
2004-09-04 13:52 ` Keith Whitwell
2004-09-04 15:36 ` Jon Smirl
2004-09-04 15:56 ` Dieter Nützel
2004-09-04 17:43 ` Keith Whitwell
2004-09-04 18:03 ` Jon Smirl
2004-09-05 12:07 ` Alan Cox
2004-09-05 15:05 ` Jon Smirl
2004-09-05 14:15 ` Alan Cox
2004-09-05 15:33 ` Jon Smirl
2004-09-05 14:44 ` Alan Cox
2004-09-05 14:58 ` Alan Cox
2004-09-05 16:05 ` Jon Smirl
2004-09-05 15:13 ` Alan Cox
2004-09-07 8:43 ` Helge Hafting
2004-09-07 14:04 ` Jon Smirl
2004-09-08 11:09 ` Helge Hafting
2004-09-06 6:06 ` Ryan Underwood
2004-09-05 15:31 ` Alan Cox
2004-09-05 17:27 ` Jesse Barnes
2004-09-05 21:12 ` Jon Smirl [this message]
2004-09-05 20:53 ` Alan Cox
2004-09-05 22:11 ` Jon Smirl
2004-09-05 22:59 ` Alan Cox
2004-09-06 20:58 ` Hamie
2004-09-06 20:15 ` Alan Cox
2004-09-06 21:38 ` Hamie
2004-09-06 21:47 ` Jon Smirl
2004-09-06 22:18 ` Patrick McFarland
2004-09-07 19:21 ` Ian Romanick
2004-09-04 0:54 ` Alex Deucher
2004-09-04 0:59 ` Dave Airlie
2004-09-04 1:25 ` Jon Smirl
2004-09-04 19:03 ` Alex Deucher
2004-09-04 3:51 ` Jon Smirl
2004-09-04 4:52 ` Dave Airlie
2004-09-04 6:04 ` Jon Smirl
2004-09-04 7:36 ` Keith Whitwell
2004-09-04 7:53 ` Dave Airlie
2004-09-04 8:25 ` Keith Whitwell
2004-09-04 8:37 ` Dave Airlie
2004-09-04 9:02 ` Keith Whitwell
2004-09-04 16:01 ` Jon Smirl
2004-09-04 17:44 ` Keith Whitwell
2004-09-04 7:52 ` Dave Airlie
2004-09-04 15:46 ` Jon Smirl
[not found] ` <2191E8A1-FE89-11D8-BFDA-000A95F07A7A@fs.ei.tum.de>
2004-09-04 15:59 ` Jon Smirl
2004-09-04 21:35 ` Eric Anholt
2004-09-07 21:01 ` Ian Romanick
2004-09-04 9:27 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9e47339104090514122ca3240a@mail.gmail.com \
--to=jonsmirl@gmail.com \
--cc=airlied@linux.ie \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=davej@redhat.com \
--cc=dri-devel@lists.sourceforge.net \
--cc=hch@infradead.org \
--cc=jonsmirl@yahoo.com \
--cc=keith@tungstengraphics.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mharris@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox