rfc/headsup: graphics driver packaging in F16+

Adam Jackson ajax at redhat.com
Wed Apr 13 15:22:56 UTC 2011


On 4/12/11 11:58 PM, John Reiser wrote:
> On 04/12/2011 09:12 AM, Adam Jackson wrote:
>> Basically all of this hardware is, ahem, inept.  The most featureful
>> device supported by these drivers would be the MGA G550, which just
>> barely manages to do DirectX 7 (comparable to a Radeon 7000 or GeForce
>> 2, both ~1999 vintage).  All the others are back in the DX6 stone age.
>
> My r128 card (Rage Mobility M3 AGP 2X; pci 1002:4c46) is running
> DirectX 9.0c (4.09.0000.0904) on Windows ME.  The main driver ATI2DRAI.DRV
> says "DDI Version 7".  The machine also runs Fedora 12 using:

The DX level that the OS claims is not the DX level that the hardware 
supports.  Rage 128 doesn't have any shader hardware.  The first ATI 
card that did was the Radeon 8500, a DX8 part.

If you use any DX9 features on setup, I assure you, they're implemented 
in software.  Which is what I'm proposing for Fedora.

I should emphasize that I'm not proposing the Mesa packaging change 
(just) because it makes my life easier.  I'm proposing it because I 
think it'll make users' lives better.

>> For comparison, the baseline for the GPU in the phone in your pocket -
>> and that platform layers like clutter more or less expect - is GLES 2.0,
>> which is roughly comparable to DirectX 9.  We're rapidly approaching the
>> point where the software renderer is going to be a more satisfying
>> experience than hardware 3d support for these chips, both for features
>> and for performance.
>
> How rapidly?  Today, which one leads in "satisfying experience", and by how much?

F16 timeframe?  That's kind of why I bring it up now.

Put it this way: gnome-shell will barely work on your card as it is, if 
at all, and no DRI1 driver can or will ever handle Composite redirection 
of GL apps.

I can conjure up some benchmarks if you think they'd be relevant, I suppose.

>> So in my ideal world, we would simply drop the -dri1 subpackage (and for
>> that matter, DRI1 support in the X server).
>
> Such a wish would be better justified by statistics on usage
> (smolt, at least) and support effort (size and rate of change in
> source commits, number of maintainers with relevant experience, ...)

So, in reverse order: the number of maintainers for the DRI1 drivers is 
approximately 0.  Anyone who did have any experience with them is now 
interested in competent hardware instead.  I can probably remember how a 
Voodoo5 works if you force me, but I'd rather not.

The support effort for keeping them working at their current level is 
not zero, but it's not large.  Breakages mostly happen when mechanical 
API changes are made internally to Mesa that happen to violate some 
invariant that the old driver was relying on.  Nobody notices breakage 
like that because nobody has the hardware.  Time spent on this level of 
support is time not spent on hardware people have.

But time spent on this level of support is also time spent on a level of 
support that is not sufficient for the future.  We can either chase bugs 
in seven DX7-or-worse drivers, for hardware that is on the far end of 
the bathtub curve; or we can maintain one software-based driver that 
runs everywhere including in virtual machines, shares most of its 
internal infrastructure with r600 and nouveau, and already implements 
better than DX9-level functionality.

I know which one I'd prefer.

---

But then, smolt.  Sigh.  Smolt.  What a travesty.

You would hope that a result like:

http://smolt.fedoraproject.org/reports/view_devices?device=MGA&search=Submit+Query

would mean there's one report for each of those device, but no.  And 
then you'd hope that you could click on the first device and get a 
uniquified list, but nooooo:

http://smolt.fedoraproject.org/reports/view_device/MGA%20G200%20AGP

The one thing - the _one_ thing - I'd want out of smolt is a query by 
PCI ID tuple, and that doesn't exist.

Even this page:

http://smolt.fedoraproject.org/static/stats/by_class_VIDEO.html

is nonsense.  As of just now, the sum of the (unlabeled) column 
immediately right of the vendor name is 38553.  The "total count" above 
is 432462 and the percentage of systems reporting a video device is 
17.7%, but 38553 is not 17.7% of 432462.  Not even close.

Assuming that 38553 is anywhere close to a meaningful number, we then get:

nvidia: 38.6% (14888)
ati:    34.2% (13176)
intel:  19.1% (7347)

So that's 92% of the installed base as a ballpark, but not corrected for 
mach64, rage128, i740, i810, or (ha!) nv1.  Of the remaining 3142 
systems where DRI1 support might work:

matrox:    11.0% (347)
s3:        14.4% (451)
sis:       20.1% (633)
3dfx:       2.6% (81)
via:       20.4% (640)
total:     68.5% (2152)

Which is an overestimate:

- mga includes pre-G200 devices, P-series, and M-series
- savage includes all S3 chips, including pre-Savage devices like Virge 
and 968, and post-savage4 like savage2000 and chrome cards
- sis includes all sis variants where we only have 3d support for the 
300 series (see 'man sis' for the breakdown)
- 3dfx includes pre-voodoo3 devices
- via includes chrome9

But I have no idea how much of an overestimate, because smolt appears to 
be full of lies.  Searching for devices with the word "voodoo" in the 
name should return something other than an empty set, if there are 81 
3dfx devices, but of course:

http://smolt.fedoraproject.org/reports/view_devices?device=voodoo&search=Submit+Query

So in a sense, these numbers are completely untrustworthy.  But if we 
decide to trust them anyway, something like 8% of users will suddenly 
discover that their GL driver got a lot more capable, if they notice at 
all.  Personally I suspect it's more like 0.8%.

- ajax


More information about the devel mailing list