On Wed, Oct 19, 2011 at 11:20:54AM -0700, Jeremy Huddleston wrote:
> On Oct 19, 2011, at 1:02 AM, Zhigang Gong wrote:
> > Just as I said above. Your thought do make sense. Currently glamor
> > implements some GL based rendering functions. And in the long term,
> > we may merge those functions into cairo or pixman, and let glamor
> > call them directly. Just as the relation between libfb(which belongs
> > to X server) and pixman.
> > 
> > To achieve that goal, I think we still need more time. And now I
> > want to open glamor at this point, and move to that direction step
> > by step. And eventually, there will be a thinner glamor module. 

I completely understand your desire to get this merged. Until that
happens you can't have a clear idea of how to make further progress.
Unfortunately, that's exactly why open source communities need to hear
about projects like this earlier in the development cycle. Earlier
notice lets us tell you about problems or concerns before you do so much
work, and gets you community support for your project while you work on
it.

Since that didn't happen this time, we have a bigger challenge: how can
we work with you to make sure your effort isn't wasted? Although I'm
very excited to see effort toward implementing 2D acceleration with 3D
drivers, I'm sorry to say that I don't think this method of integrating
it should be merged. I do have an alternative proposal, though, below.

> What existing problem does your solution solve?  Can you give me an
> example of a configuration which doesn't have 2D acceleration now
> which will with glamor or a case where 2D performance has
> significantly improved by switching to your codepath?

To partially answer these questions: glamor is a great idea in principle
for at least two cases.

I've been listening to driver developers moan for years about having to
write a 2D driver, then turn around and write a separate 3D driver,
every time a new piece of hardware comes out. Glamor may enable writing
only a kernel modesetting driver and a Mesa 3D driver, and using the
generic xf86-video-modesetting userspace driver for 2D X.

For nested X (Xnest/Xephyr/Xdmx/xf86-video-nested), glamor could reduce
or eliminate the software-render-and-PutImage cycle, instead letting the
backend X server use suitably accelerated 3D. In the case where the
backend server is on the same machine as the nested server, the nested
server should wind up direct-rendering straight to the video hardware.

Based on public statements from Intel developers I'd speculate that
they're interested in both cases. I don't know what will happen with
Tizen, but the Meego development environment used Xephyr as the fake
phone screen, and apparently its lack of rendering performance was
painful. And of course like any good developers, the graphics team is
lazy and would like to spend less effort on writing drivers. :-)

Jeremy, if glamor works out, OS X should benefit eventually too. Ideally
you'll have a variant of xf86-video-dummy that direct-renders to
offscreen video memory, which you'd composite into native windows using
GL handles. Glamor ought to enable 2D offscreen acceleration there too.

> We want to minimize the API boundary between the server and its
> drivers.  Rather than provide a server module which will present
> glamor API exposed by the Xserver for drivers to use, I'd prefer you
> provide this as a library that drivers (or even non-Xorg DDX) can link
> against.

Just so this is very clear: The *reason* we want to minimize the
server's API boundary is because anything that we expose in the server's
API, we have to continue to support. That ongoing support burden is why
Jeremy is pushing you to expose this functionality in a different way.

Here's my proposal: extract what you have in xserver/glamor as a
library, then use that library in xf86-video-modesetting (instead of the
glamor DDX) and xf86-video-nested (instead of Xephyr). Dave Airlie has
put a lot of work into the modesetting driver over the past few weeks,
and Jeremy and I have been working on the nested driver, so hopefully
you can get community support for any issues you run into in those
drivers.

> XGL tried to solve this same problem ... how do we know this won't
> flop?

This is also like Xgl, as I recall, in that Xgl was a large development
effort happening inside a company (Novell, in that case) and then being
dropped on the X.Org community. I'd say that had a lot to do with it
eventually failing.

A bunch of this work has Eric Anholt's and Kristian Høgsberg's names on
it, and I'd have expected them to remember that debacle.

Jamey

Attachment: signature.asc
Description: Digital signature

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to