Re: gallium (was Re: radeon r6xx DRM...)

2008-06-06 Thread José Fonseca
On Fri, Jun 6, 2008 at 10:47 AM, Younes Manton [EMAIL PROTECTED] wrote:
 I think this would be a good time to speak up. My GSoC project
 involves writing a state tracker for XvMC, aside from the mesa state
 tracker I understand this is the only other public state tracker
 around. I don't have any complaints about the current gallium
 interface, but maybe someone could elaborate on what they have in mind
 as far as changes go, even if it's preliminary.

 One thing I've noticed about about winsys is that from my
 understanding, the state tracker is supposed to be OS and driver
 independent,

The conclusion we're reaching is that while the bulk of the state
tracker is OS independent (like current mesa state tracker is), there
is a small part which will have some OS dependency (the part that will
talk to DRI, GLX, WGL, etc.)

 but for XvMC and VAAPI the following situation exists:
 both are passed the drawable that will get rendered to late (after
 creation), and that forces me to pass the drawable to the winsys
 throught the state tracker as winsys-flush_frontbuffer(.., ...,
 drawable) when it seems that last param is intended for
 pipe_context-priv.
 Not sure what the intention behind the priv member is, so maybe this
 might be a bad idea when I target a HW driver instead of softpipe.

We are also reaching the conclusion that the os-dependent part of the
state tracker generally needs a special interface between the winsys.
That

At any rate it is impossible at the moment to guess how these changes
will exactly turn out to be. So my suggestion is keep doing as you've
been doing, and then this happens just make the similar move.

I'm pretty sure that whatever works best for the existing state
trackers should also works for your state tracker, but we can take a
look at your code and ensure it does.

 As an aside, is there any preferred directory structure people would
 like to see for state trackers? Right now I'm using Nouveau's gallium
 but this isn't necessarily nouveau specific and may find a home
 elsewhere in the future. I'll be putting things in
 gallium/state_trackers/g3dvl (g3dvl being gallium3d video layer) with
 the following structure:

 src/
 libXvMC/
  tests/
 libVAAPI/
   tests/
 vl/
 tests/
 winsys/

 vl/ is where the state tracker stuff is, although since VAAPI and XvMC
 are somewhat similar (especially for mpeg2) I'm hoping to use the same
 state tracker. For that reason things don't look like they do in the
 mesa state tracker, I don't use XvMC types in the state tracker and
 don't necessarily map 1:1 with XvMC functions.

Directory structure is not entirely consensual. But the general
existing principles are:
- standalone libraries (no gallium dependency) in src/
- gallium auxiliary libraries (gallium dependency) in src/gallium/auxiliary/
- in lack of better place, state trackers in src/gallium/state_trackers/
- pipe drivers in src/gallium/drivers/
- winsys in src/gallium/winsys/

So according to that above, your tree would be separated and go into
- src/libXvMC/
- src/libVAAPI/
- src/gallium/state_trackers/vl
- src/gallium/winsys/vl

But I wouldn't worry too much about this. Especially if it would
affect your productivity. We can always discuss this again if/when
merging. (Another option is having state trackers out of the gallium
source tree. We have done it, and it is nice because avoids merges
back-n-forth, but still didn't wrote any howto instructions on this
regard.)

BTW, do you have your code available somewhere?

Jose

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: gallium (was Re: radeon r6xx DRM...)

2008-06-06 Thread Younes Manton
On Fri, Jun 6, 2008 at 6:12 AM, José Fonseca
[EMAIL PROTECTED] wrote:
 On Fri, Jun 6, 2008 at 10:47 AM, Younes Manton [EMAIL PROTECTED] wrote:
 As an aside, is there any preferred directory structure people would
 like to see for state trackers? Right now I'm using Nouveau's gallium
 but this isn't necessarily nouveau specific and may find a home
 elsewhere in the future. I'll be putting things in
 gallium/state_trackers/g3dvl (g3dvl being gallium3d video layer) with
 the following structure:

 src/
 libXvMC/
  tests/
 libVAAPI/
   tests/
 vl/
 tests/
 winsys/

 vl/ is where the state tracker stuff is, although since VAAPI and XvMC
 are somewhat similar (especially for mpeg2) I'm hoping to use the same
 state tracker. For that reason things don't look like they do in the
 mesa state tracker, I don't use XvMC types in the state tracker and
 don't necessarily map 1:1 with XvMC functions.

 Directory structure is not entirely consensual. But the general
 existing principles are:
 - standalone libraries (no gallium dependency) in src/
 - gallium auxiliary libraries (gallium dependency) in src/gallium/auxiliary/
 - in lack of better place, state trackers in src/gallium/state_trackers/
 - pipe drivers in src/gallium/drivers/
 - winsys in src/gallium/winsys/

 So according to that above, your tree would be separated and go into
 - src/libXvMC/
 - src/libVAAPI/
 - src/gallium/state_trackers/vl
 - src/gallium/winsys/vl

Assuming I had my own repo you mean, or in mesa? I was planning on
using nouveau/mesa for the near future since Stephane is my mentor and
nouveau is what I plan to move on to once things are working with
softpipe, which would put libXvMC/ and libVAAPI/ alongside mesa/.
Don't know how others would feel about non mesa libs at the top of the
mesa tree, or if that's not a big deal.

 BTW, do you have your code available somewhere?

Uploaded a copy to http://www.bitblit.org/gsoc/g3dvl/src/ and will
soon commit current work to nouveau/mesa,
http://www.bitblit.org/gsoc/g3dvl/ is where I keep general info and
progress, etc.

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: gallium (was Re: radeon r6xx DRM...)

2008-06-06 Thread José Fonseca
On Sat, Jun 7, 2008 at 12:07 AM, Younes Manton [EMAIL PROTECTED] wrote:
 On Fri, Jun 6, 2008 at 6:12 AM, José Fonseca
 [EMAIL PROTECTED] wrote:
 On Fri, Jun 6, 2008 at 10:47 AM, Younes Manton [EMAIL PROTECTED] wrote:
 As an aside, is there any preferred directory structure people would
 like to see for state trackers? Right now I'm using Nouveau's gallium
 but this isn't necessarily nouveau specific and may find a home
 elsewhere in the future. I'll be putting things in
 gallium/state_trackers/g3dvl (g3dvl being gallium3d video layer) with
 the following structure:

 src/
 libXvMC/
  tests/
 libVAAPI/
   tests/
 vl/
 tests/
 winsys/

 vl/ is where the state tracker stuff is, although since VAAPI and XvMC
 are somewhat similar (especially for mpeg2) I'm hoping to use the same
 state tracker. For that reason things don't look like they do in the
 mesa state tracker, I don't use XvMC types in the state tracker and
 don't necessarily map 1:1 with XvMC functions.

 Directory structure is not entirely consensual. But the general
 existing principles are:
 - standalone libraries (no gallium dependency) in src/
 - gallium auxiliary libraries (gallium dependency) in src/gallium/auxiliary/
 - in lack of better place, state trackers in src/gallium/state_trackers/
 - pipe drivers in src/gallium/drivers/
 - winsys in src/gallium/winsys/

 So according to that above, your tree would be separated and go into
 - src/libXvMC/
 - src/libVAAPI/
 - src/gallium/state_trackers/vl
 - src/gallium/winsys/vl

 Assuming I had my own repo you mean, or in mesa?

I was referring to mesa.

 I was planning on
 using nouveau/mesa for the near future since Stephane is my mentor and
 nouveau is what I plan to move on to once things are working with
 softpipe, which would put libXvMC/ and libVAAPI/ alongside mesa/.
 Don't know how others would feel about non mesa libs at the top of the
 mesa tree, or if that's not a big deal.

 BTW, do you have your code available somewhere?

 Uploaded a copy to http://www.bitblit.org/gsoc/g3dvl/src/ and will
 soon commit current work to nouveau/mesa,
 http://www.bitblit.org/gsoc/g3dvl/ is where I keep general info and
 progress, etc.

It's looking good. Looking forward to see the final outcome.

Jose

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: gallium (was Re: radeon r6xx DRM...)

2008-06-05 Thread Matthias Hopf
On Jun 04, 08 18:30:56 -0600, Brian Paul wrote:
 Gallium might ultimately wind up in its own repository as a stand-alone 
 project.  Afterall, Gallium drivers could be used by APIs other than OpenGL.

Yes, but the base project is called Mesa and not OpenGL. So that
wouldn't exactly stop that ;-)

 When either of those things happens a Mesa 8.0 release would probably be 
 appropriate.  I haven't thought about a time frame yet, but the end of 
 the year might be a good goal.

Sounds good. Especially as nobody really has to wait until then to dig
into it.

Matthias

-- 
Matthias Hopf [EMAIL PROTECTED]  ____   __
Maxfeldstr. 5 / 90409 Nuernberg   (_   | |  (_   |__  [EMAIL PROTECTED]
Phone +49-911-74053-715   __)  |_|  __)  |__  R  D   www.mshopf.de

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: gallium (was Re: radeon r6xx DRM...)

2008-06-05 Thread Younes Manton
On Wed, Jun 4, 2008 at 8:30 PM, Brian Paul
[EMAIL PROTECTED] wrote:
 Dave Airlie wrote:
   Stephane wrote:
 Hi Brian,

 It seems like people are mostly concerned about gallium stability
 right now. How stable wioll the interfaces be in the future ? Maybe if
 you could tell us, that'd help others jump in.

 The gallium interfaces won't change radically, but we are looking at
 some changes.

I think this would be a good time to speak up. My GSoC project
involves writing a state tracker for XvMC, aside from the mesa state
tracker I understand this is the only other public state tracker
around. I don't have any complaints about the current gallium
interface, but maybe someone could elaborate on what they have in mind
as far as changes go, even if it's preliminary.

 In particular, the winsys stuff is kind of complicated and we're hoping
 to simplify and re-organize it somewhat.  Winsys basically includes
 all the stuff needed to interface a portable gallium driver into the
 non-portable window system and OS which hosts it.  The dividing lines,
 modularity and terminology(!) can be improved in that area.  Jakob
 Bornecrantz may be commiting some changes soon.

One thing I've noticed about about winsys is that from my
understanding, the state tracker is supposed to be OS and driver
independent, but for XvMC and VAAPI the following situation exists:
both are passed the drawable that will get rendered to late (after
creation), and that forces me to pass the drawable to the winsys
throught the state tracker as winsys-flush_frontbuffer(.., ...,
drawable) when it seems that last param is intended for
pipe_context-priv.
Not sure what the intention behind the priv member is, so maybe this
might be a bad idea when I target a HW driver instead of softpipe.

 Beyond that, there'll probably always be some evolutionary changes to
 the gallium interfaces.  It'll have to evolve just has Mesa has had to
 evolve since we can't predict future needs.

 None of this should stop anyone from digging into gallium though.


 Even when it might make it to master, is it planned to land in master..

 I would assume Mesa 8.0 or something.

 Gallium might ultimately wind up in its own repository as a stand-alone
 project.  Afterall, Gallium drivers could be used by APIs other than OpenGL.

As an aside, is there any preferred directory structure people would
like to see for state trackers? Right now I'm using Nouveau's gallium
but this isn't necessarily nouveau specific and may find a home
elsewhere in the future. I'll be putting things in
gallium/state_trackers/g3dvl (g3dvl being gallium3d video layer) with
the following structure:

src/
 libXvMC/
  tests/
 libVAAPI/
   tests/
 vl/
 tests/
 winsys/

vl/ is where the state tracker stuff is, although since VAAPI and XvMC
are somewhat similar (especially for mpeg2) I'm hoping to use the same
state tracker. For that reason things don't look like they do in the
mesa state tracker, I don't use XvMC types in the state tracker and
don't necessarily map 1:1 with XvMC functions.

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


gallium (was Re: radeon r6xx DRM...)

2008-06-04 Thread Brian Paul
Dave Airlie wrote:
  Stephane wrote:
 Hi Brian,

 It seems like people are mostly concerned about gallium stability
 right now. How stable wioll the interfaces be in the future ? Maybe if
 you could tell us, that'd help others jump in.

The gallium interfaces won't change radically, but we are looking at 
some changes.

In particular, the winsys stuff is kind of complicated and we're hoping 
to simplify and re-organize it somewhat.  Winsys basically includes 
all the stuff needed to interface a portable gallium driver into the 
non-portable window system and OS which hosts it.  The dividing lines, 
modularity and terminology(!) can be improved in that area.  Jakob 
Bornecrantz may be commiting some changes soon.

Beyond that, there'll probably always be some evolutionary changes to 
the gallium interfaces.  It'll have to evolve just has Mesa has had to 
evolve since we can't predict future needs.

None of this should stop anyone from digging into gallium though.


 Even when it might make it to master, is it planned to land in master..
 
 I would assume Mesa 8.0 or something.

Gallium might ultimately wind up in its own repository as a stand-alone 
project.  Afterall, Gallium drivers could be used by APIs other than OpenGL.

Before then though, the gallium branch could be merged into Mesa master 
(if not git-merged, simply copied over).  There's been a bit of code 
divergence in core Mesa between master and gallium-0.1 which will need 
attention (nothing too serious though).

When either of those things happens a Mesa 8.0 release would probably be 
appropriate.  I haven't thought about a time frame yet, but the end of 
the year might be a good goal.

-Brian

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: gallium (was Re: radeon r6xx DRM...)

2008-06-04 Thread Dave Airlie

 
 Gallium might ultimately wind up in its own repository as a stand-alone 
 project.  Afterall, Gallium drivers could be used by APIs other than OpenGL.

The question is mainly from a distro point of view what do we need to ship 
a gallium driver. The current method would mean we need a Mesa tree for 
normal DRI drivers and a gallium-mesa tree for gallium based drivers. This 
isn't brutal but I'd hate to spend a lot of time on the setup phase just 
to find the target moved.

So if gallium is in a separate project will it need parts of Mesa to 
build. If it needs parts of mesa to build does it make sense in another 
project.

Will the gallium/mesa interface move. so we end up having to provide 
synced version in any case, in which case why have different trees.

Dave.

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] gallium (was Re: radeon r6xx DRM...)

2008-06-04 Thread Zack Rusin
On Thursday 05 June 2008 12:47:07 am Dave Airlie wrote:
  Gallium might ultimately wind up in its own repository as a stand-alone
  project.  Afterall, Gallium drivers could be used by APIs other than
  OpenGL.

 The question is mainly from a distro point of view what do we need to ship
 a gallium driver. The current method would mean we need a Mesa tree for
 normal DRI drivers and a gallium-mesa tree for gallium based drivers. This
 isn't brutal but I'd hate to spend a lot of time on the setup phase just
 to find the target moved.

 So if gallium is in a separate project will it need parts of Mesa to
 build.

No it won't. Gallium doesn't depend on Mesa at all. In a gross simplification 
Gallium is simply an interface that can be seen as the communication protocol 
between the API and the driver. For Mesa that API is OpenGL, so Mesa 
implements a Gallium state-tracker and that's it.
Gallium shouldn't care whether it's Mesa or Bobs-Api that's running on top of 
it. (currently winsys kinda has a fixed dependency on state-trackers but 
we're working on fixing that).

 Will the gallium/mesa interface move. 

The changes to the api when it comes software can be taken for granted, it's 
the how frequent that matters. Having said that we certainly want to keep 
Gallium interface stable for a long time.

z

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel