Re: [Mesa-dev] Four questions about DRI1 drivers

2012-03-01 Thread Jose Fonseca

There is one thing you didn't cover in your questions/myths: old hardware is 
often very limited by today standards, and removing it allows the code to 
become simpler (less fallbacks, more shared code, uniform code paths), as we 
can raise the assumptions of what a driver can and cannot do. And this has 
happened already.

I'm not familiar r128 so I can't answer your effort estimation questions, but 
IMO support for old Mesa drivers development should happen in a separate 
branch/tree (forked from the point where the driver existed), so that 
development of new features for modern GPUs is not hindered by limitations of 
ancient hardware.

I'm not sure how easy it would be to physically separate libGL.so into a 
separate repository. It might still be be possible to produce a xxx_dri.so from 
such legacy branch, that can be loaded by a modern libGL.so. This could be 
accomplished by referring to Mesa master's libGL.so headers from that branch.

Another alernative would be for that legacy branch to just build both libGL.so 
and foo_dri.so. It creates a bit of extra work for distros, but distros already 
need to cope with that for the proprietary nvidia/amd drivers anyway, so it 
would be one more case. It won't solve the case of your docking station though.


Concerning some of the myths/rants, I think that there's no merit in arguing 
retrospectively what we should have done, so I won't.  If there are enough 
people interested and capable of maintaining old drivers I'm sure that the 
community as a whole can find some technical solution to accommodate those 
interests, as everybody benefits indirectly from a bigger development 
community.  But it's unrealistic to expect that individuals/companies working 
on Mesa to put large amount time on unmaintained code, as simply there is no 
return.  After all, we're all scratching our itches one way or the other..


Jose

- Original Message -
 I am a first time mailing list joiner, long time user of exclusively
 free video drivers. I was very upset to see the DRI1 drivers removed
 from the codebase in August and I waited until now to complain
 because I
 wanted to see if the good changes like OpenGL3 would at least make it
 into the 8.0 release. My questions (mainly about r128) are the
 following:
 
 1. If someone learns how to port a DRI1 driver to DRI2 and does this
 (which in my case would take years), will it be accepted back into
 mesa?
 Or would this person have to personally maintain r128_dri2.so forever
 after with no help from other mesa developers?
 
 2. Is there any realistic hope that a current mesa developer will
 undertake this task? MostAwesomeDude spoke about looking into this
 one
 day but says he does not have the time right now. Has this changed
 yet?
 I should add that if your full time employer doesn't pay you to work
 on
 mesa I'd be willing to pay you to work on this aspect of it.
 
 3. Would hacking r128 into compatibility with DRI2 only require
 changes
 to the mesa code or would one need to hack the kernel and the DDX as
 well?
 
 4. In all honesty, are the 2D X drivers and DRM kernel modules
 corresponding to the DRI1 drivers that got axed slated for removal as
 well?
 
 ==
 
 Please don't think that I feel entitled to the fruits of your labour.
 I'm sure many of you develop mesa on a volunteer basis and choose the
 parts of the code that are interesting to you. I'm not saying that
 you
 should work on something less enjoyable because the free software
 community depends on you (even though it does) and I'm not asking you
 to
 make regular updates to r128 or anything else. I just think that the
 reasons for removing these drivers are based on enduring myths.
 
 Myth: The drivers never worked to begin with. I haven't tried all
 of
 them but I know r128, mga and i810 did. While my r128 driver was
 clearly
 not perfect, it led to a dramatic performance increase with 3D
 screensavers and video playback. Unlike radeon drivers that were
 being
 worked on heavily, the r128 driver did not break for me with any mesa
 update.
 
 Myth: Nobody uses this hardware anymore. I'm not the only example
 of
 someone who still uses an r128 card (in a laptop where it cannot be
 upgraded). When phoronix covered this story some people who posted in
 those forums had complaints that were similar to my own. Every time I
 see the death sentence discussed in distro forums, there is at least
 one
 person upset about support for one of their old cards being dropped.
 I
 know this is a sampling bias because people happy with the changes
 tend
 not to post but one of the triumphs of free software is that it can
 free
 people from the endless cycle of having to upgrade hardware. Is it so
 hard to believe that people save money because of this and want such
 freedom to stay around?
 
 Myth: People who use this hardware already have a system frozen in
 the
 past. I use kernel 3.2.7, gcc 4.6.2, a 2012 ffmpeg build from git
 and a
 2012 mplayer build from svn. 

Re: [Mesa-dev] Four questions about DRI1 drivers

2012-03-01 Thread Dave Airlie
On Thu, Mar 1, 2012 at 7:36 AM, Connor Behan connor.be...@gmail.com wrote:
 I am a first time mailing list joiner, long time user of exclusively free
 video drivers. I was very upset to see the DRI1 drivers removed from the
 codebase in August and I waited until now to complain because I wanted to
 see if the good changes like OpenGL3 would at least make it into the 8.0
 release. My questions (mainly about r128) are the following:

You can still build r128_dri.so from Mesa 7.11 and it will work with
later Mesa libGLs fine.

You just can't build it from Mesa 8.0 source anymore.

To do a DRI2 driver you really need kms + memory manager support,
anyone who looked at this for
r128 said merging it into radeon as the best plan.

Dave.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Four questions about DRI1 drivers

2012-03-01 Thread Connor Behan

On 01/03/12 01:36 AM, Dave Airlie wrote:
You can still build r128_dri.so from Mesa 7.11 and it will work with 
later Mesa libGLs fine. You just can't build it from Mesa 8.0 source 
anymore. 
Really? Even if no one updates r128 to stay compatible with new libGLs 
and no one updating libGL gives a second thought as to whether that 
update will break r128? I thought the whole point of removing DRI1 
drivers is that most of you are too pressured to keep that promise. If 
the plan really is to update libGL carefully so that DRI1 drivers will 
always work with it, then it seems like their removal does nothing but 
save a few MB of space on the git server.

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Four questions about DRI1 drivers

2012-03-01 Thread Dave Airlie
On Thu, Mar 1, 2012 at 7:25 PM, Connor Behan connor.be...@gmail.com wrote:
 On 01/03/12 01:36 AM, Dave Airlie wrote:

 You can still build r128_dri.so from Mesa 7.11 and it will work with later
 Mesa libGLs fine. You just can't build it from Mesa 8.0 source anymore.

 Really? Even if no one updates r128 to stay compatible with new libGLs and
 no one updating libGL gives a second thought as to whether that update will
 break r128? I thought the whole point of removing DRI1 drivers is that most
 of you are too pressured to keep that promise. If the plan really is to
 update libGL carefully so that DRI1 drivers will always work with it, then
 it seems like their removal does nothing but save a few MB of space on the
 git server.

Thats the plan, some distros have to keep shipping older drivers, but
also want to ship newer drivers.

the libGL - driver interface is a lot more standard than the internal
mesa-driver interfaces, and are not the same thing.

Removing the drivers allowed major simplification of mesa internal
interfaces not the GL-driver interface.

It doesn't save any space on the git server since git holds all the
history ever.

Dave.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Four questions about DRI1 drivers

2012-03-01 Thread Patrick Baggett
Now I'm curious. Is it the case that every DRI1 driver *could be* a DRI2
driver with enough effort? Not talking about emulating hardware features.

Patrick

On Thu, Mar 1, 2012 at 1:46 PM, Dave Airlie airl...@gmail.com wrote:

 On Thu, Mar 1, 2012 at 7:25 PM, Connor Behan connor.be...@gmail.com
 wrote:
  On 01/03/12 01:36 AM, Dave Airlie wrote:
 
  You can still build r128_dri.so from Mesa 7.11 and it will work with
 later
  Mesa libGLs fine. You just can't build it from Mesa 8.0 source anymore.
 
  Really? Even if no one updates r128 to stay compatible with new libGLs
 and
  no one updating libGL gives a second thought as to whether that update
 will
  break r128? I thought the whole point of removing DRI1 drivers is that
 most
  of you are too pressured to keep that promise. If the plan really is to
  update libGL carefully so that DRI1 drivers will always work with it,
 then
  it seems like their removal does nothing but save a few MB of space on
 the
  git server.

 Thats the plan, some distros have to keep shipping older drivers, but
 also want to ship newer drivers.

 the libGL - driver interface is a lot more standard than the internal
 mesa-driver interfaces, and are not the same thing.

 Removing the drivers allowed major simplification of mesa internal
 interfaces not the GL-driver interface.

 It doesn't save any space on the git server since git holds all the
 history ever.

 Dave.
 ___
 mesa-dev mailing list
 mesa-dev@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/mesa-dev

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Four questions about DRI1 drivers

2012-03-01 Thread Connor Behan

On 01/03/12 11:46 AM, Dave Airlie wrote:

On Thu, Mar 1, 2012 at 7:25 PM, Connor Behanconnor.be...@gmail.com  wrote:

On 01/03/12 01:36 AM, Dave Airlie wrote:

You can still build r128_dri.so from Mesa 7.11 and it will work with later
Mesa libGLs fine. You just can't build it from Mesa 8.0 source anymore.

Really? Even if no one updates r128 to stay compatible with new libGLs and
no one updating libGL gives a second thought as to whether that update will
break r128? I thought the whole point of removing DRI1 drivers is that most
of you are too pressured to keep that promise. If the plan really is to
update libGL carefully so that DRI1 drivers will always work with it, then
it seems like their removal does nothing but save a few MB of space on the
git server.

Thats the plan, some distros have to keep shipping older drivers, but
also want to ship newer drivers.

the libGL -  driver interface is a lot more standard than the internal
mesa-driver interfaces, and are not the same thing.

Removing the drivers allowed major simplification of mesa internal
interfaces not the GL-driver interface.

It doesn't save any space on the git server since git holds all the
history ever.

Dave.
If you're doing this with distros in mind then I guess that relieves my 
fears about r128.ko. I don't know any distro that ships kernel modules 
in individual packages compiled for different kernel versions.

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Four questions about DRI1 drivers

2012-03-01 Thread Jerome Glisse
On Thu, 2012-03-01 at 13:56 -0600, Patrick Baggett wrote:
 Now I'm curious. Is it the case that every DRI1 driver could be a DRI2
 driver with enough effort? Not talking about emulating hardware
 features.
 
 
 Patrick

DRI2 impose nothing on hw capabilities. So any hw can do DRI2 even hw
without 3d engine (see virtual gem for instance).

Cheers,
Jerome


___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Four questions about DRI1 drivers

2012-03-01 Thread Dave Airlie
On Thu, Mar 1, 2012 at 7:56 PM, Patrick Baggett
baggett.patr...@gmail.com wrote:
 Now I'm curious. Is it the case that every DRI1 driver could be a DRI2
 driver with enough effort? Not talking about emulating hardware features.

In theory yes. in some situations its sub-optimal like low VRAM cards,
since DRI1 was based around shared back/depth buffers,
and DRI2 isn't. But then again DRI1 can't do compositing properly.

like we've made a DRI2 driver out of radeon r100 which is pretty basic hardware.

Dave.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] Four questions about DRI1 drivers

2012-02-29 Thread Connor Behan
I am a first time mailing list joiner, long time user of exclusively 
free video drivers. I was very upset to see the DRI1 drivers removed 
from the codebase in August and I waited until now to complain because I 
wanted to see if the good changes like OpenGL3 would at least make it 
into the 8.0 release. My questions (mainly about r128) are the following:


1. If someone learns how to port a DRI1 driver to DRI2 and does this 
(which in my case would take years), will it be accepted back into mesa? 
Or would this person have to personally maintain r128_dri2.so forever 
after with no help from other mesa developers?


2. Is there any realistic hope that a current mesa developer will 
undertake this task? MostAwesomeDude spoke about looking into this one 
day but says he does not have the time right now. Has this changed yet? 
I should add that if your full time employer doesn't pay you to work on 
mesa I'd be willing to pay you to work on this aspect of it.


3. Would hacking r128 into compatibility with DRI2 only require changes 
to the mesa code or would one need to hack the kernel and the DDX as well?


4. In all honesty, are the 2D X drivers and DRM kernel modules 
corresponding to the DRI1 drivers that got axed slated for removal as well?


==

Please don't think that I feel entitled to the fruits of your labour. 
I'm sure many of you develop mesa on a volunteer basis and choose the 
parts of the code that are interesting to you. I'm not saying that you 
should work on something less enjoyable because the free software 
community depends on you (even though it does) and I'm not asking you to 
make regular updates to r128 or anything else. I just think that the 
reasons for removing these drivers are based on enduring myths.


Myth: The drivers never worked to begin with. I haven't tried all of 
them but I know r128, mga and i810 did. While my r128 driver was clearly 
not perfect, it led to a dramatic performance increase with 3D 
screensavers and video playback. Unlike radeon drivers that were being 
worked on heavily, the r128 driver did not break for me with any mesa 
update.


Myth: Nobody uses this hardware anymore. I'm not the only example of 
someone who still uses an r128 card (in a laptop where it cannot be 
upgraded). When phoronix covered this story some people who posted in 
those forums had complaints that were similar to my own. Every time I 
see the death sentence discussed in distro forums, there is at least one 
person upset about support for one of their old cards being dropped. I 
know this is a sampling bias because people happy with the changes tend 
not to post but one of the triumphs of free software is that it can free 
people from the endless cycle of having to upgrade hardware. Is it so 
hard to believe that people save money because of this and want such 
freedom to stay around?


Myth: People who use this hardware already have a system frozen in the 
past. I use kernel 3.2.7, gcc 4.6.2, a 2012 ffmpeg build from git and a 
2012 mplayer build from svn. If I have to freeze my mesa package at 
7.11, it will become one of the first programs that I have to freeze.


Myth: Freezing mesa at 7.11 does no harm to users of legacy hardware. 
I may be a special case here but I use r128 AND radeon hardware in the 
same machine. When my laptop is docked I use an r500 card in the docking 
station which would still benefit from updates to radeon. When my laptop 
is not docked I need the r128 card to be functional.


Myth: Anyone who wants an old driver can maintain it. Sure I've told 
people to patch their own programs before. When I suggest doing this on 
a mailing list it's common to hear the groan but I don't {want, know 
how} to. In the case of mesa though, I think it is justified as it's 
hard enough for people with a decade of experience to maintain. Here's 
an idea. If you want to drop r128 and never have to add a line of code 
to it again and never have to worry about whether a diff to the mesa 
core is going to break it, take the one time effort of making mesa 
modular! Then I'll be able to download r128_dri.so source from another 
site and neatly add it to a three-driver-mesa that is already installed. 
Then when updates to mesa make this impossible, it will be my 
responsibility to fix the source in this external tree. And in all 
honesty, doing this on a case by case basis is the best way to make me 
learn an unfamiliar API.


Okay, maybe the subject should've been four questions and five myths / 
rants but when it comes to the myth arguments I have heard it all 
before. Please try to answer my questions.

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev