LWN.net Logo

Between Fedora 12 and 13

Between Fedora 12 and 13

Posted Dec 1, 2009 1:51 UTC (Tue) by drag (subscriber, #31333)
In reply to: Between Fedora 12 and 13 by jspaleta
Parent article: Between Fedora 12 and 13

Well... 3D graphics is important for a lot of reasons.

Think about the things you've been reading lately:

TTM (and Intel's GEM) --- Unified Memory Management system is required for many basic features in OpenGL 2+ and other 3D related APIs. (Nvidia proprietary drivers had this feature since day 1.)

KMS --- Required for unified memory management. Also this effectively solves the problems Linux users experience when doing things like presentations on projectors (given the previous inability to hotplug monitors and such). Previously you'd have to do things like edit your Xorg.conf and all that happy crap. Plus having it in the kernel makes it useful for things other then just X, makes it faster, makes it more reliable, and is much easier to deal with.

No-DDX --- Getting rid of Device Dependent X Drivers is necessary for very good unified memory management. It'll make it easier to improve performance for desktops that have a mixture of 2D and 3D elements (although in micro benchmarks it probably won't look like a big difference). It makes it possible to support multiple GUI logged in users in a meaningful way. It will eliminate the requirement to run X as setuid root. It'll make getting working 2D AND 3D drivers vastly easier. Etc. Etc.

Gallium --- Provides a unified driver framework on top of the unified memory management framework. It'll allow Linux to have multiple effective ways to access the processing power of GPUs. Help make making drivers easier, help making performance improvements easier, etc etc. Right now Linux only really supports EXA and OpenGL in a useful manner.. with OpenGL only being barely useful. (with Open Source drivers). If you want to have GLSL shaders done right, Media encoding/decoding, raytracing acceleration, OpenCL, or any other GPU-related technology working well Gallium will need to be perfected. Of course this has to wait for all the other building blocks above to get done and mature a bit first.

You have a couple major things happening:

Video cards no longer support 2D acceleration in any way shape or manner. No 2D engines. On the newest ATI cards it's only done through firmware emulation, and that will end pretty quickly in itself once ATI stops having to give a shit about XP support.

All 'acceleration' will actually be done through the '3D pipelines' which is slowly turning into little more then a pure software solution that is optimized to run your CPU and your GPU. The GPU being nothing more then dozens or even hundreds of little 'micro processor cores' that are programmable in how they are accessed and what they are used for.

And eventually the GPU will be integrated as a Core on your CPU to save expense, improve performance, and should be available to all applications through for doing all sorts of calculations beyond those designed just for rendering something on your monitor.

----------------------------------

Basically the business model is:

"If you give a shit about anything remotely to do with Linux combined with graphics in any way shape or manner, plus you care about Linux being able to effectively use the multiprocessor machines of the future (GPGPU) then you should really really really really really care about this sort of thing. It is exceptionally critical and without this Linux will not be able to do even relatively basic functions that users of other OSes will take for granted".

Keep in mind that the technical equivalents of everything I described up there have been present in Windows since Windows XP came out, more or less. Some of it was not really native to Windows until Vista, but it's all been in their drivers. (well none of the GP-GPU type stuff.)

So Novell, Redhat, Canonical, and anybody who hopes that Linux will be competitive into the next decade should be willing to put money and developer time behind this sort of thing.

Right now the champions of Linux graphics seem to be Redhat, Vmware, Intel, and ATI since I think they are the ones putting the most money into it. But I am not sure.. I am sure that somebody involved in X development would have a much better idea.

Forgive me if I said something ignorant above, I could be quite mistaken about specifics, but I should be generally right.


(Log in to post comments)

3D overload

Posted Dec 1, 2009 8:12 UTC (Tue) by eru (subscriber, #2753) [Link]

I fear you are right about the future, but I find all this emphasis on 3D pretty annoying, a waste of resources. Who cares about 3D? Gamers and those working on CAD. For me and (gazing around) everyone in the big open-plan office around me, good 2D acceleration with maybe some live video support thrown in (for those internal corporate clips featuring flying logos and the talking head of some boss) is all that is required. Its just text and pictures. Stuff that graphics cards circa 1999 already did pretty well...

Compiz and similar? Seriously, what are they for? I tried, for all of 5 minutes, felt nauseated and went back to ye olde desktop.

3D overlord

Posted Dec 1, 2009 8:50 UTC (Tue) by kragil (guest, #34373) [Link]

Well, Compiz is not the real goal. Having fast smooth non-flickering non-tearing graphics and tapping into the power of the GPU is.
The GPU is a powerful friend for doing a lot of things.
On Windows IE and Firefox will render their web pages with the GPU which provides a lot of acceleration.

I'm not 100% sure, but couldn't almost all of things in X be done by the GPU? (Drawing, hinting, font rendering etc.) Wouldn't that be something?

And I grow quite tired of the memory consumption whining. If done right only the memory on the graphics card will be used and not having 512 mb gfx memory laying around dormant is only a good thing in my book.(Win7 already does it that way .. Vista didn't.)

@drag: Thankfully Windows XP support will be with us for years and years to come. Hell, it is still being sold. So before 2015 we don't have to worry that much. Linux is lucky in that regard, but that is just for the fairly broken status quo.

3D overlord

Posted Dec 1, 2009 9:16 UTC (Tue) by eru (subscriber, #2753) [Link]

And I grow quite tired of the memory consumption whining. [...]

Actually, when writing about resources, I wasn't whining about memory consumption (this time... normally I whine about it a lot). What I meant is the extensive need of bright mind time to debug 3D support and (even worse) reverse-engineer proprietary 3D hardware and drivers for things like Nouveau.

But I guess I just have to stop worrying and learn to love 3D cards.

3D overlord

Posted Dec 1, 2009 17:11 UTC (Tue) by drag (subscriber, #31333) [Link]

Well don't worry to much about the concentration on '3D'. The GPU is really just a bunch of tiny processor cores, really. We (in Linux) can't use them for anything to substantial in distros because the proprietary software, well, is proprietary, and the open source stuff is not up to snuff yet. Think about it like a math co-processor in a 286 machine.

The 'fixed function' "OpenGL Accelerator" or "DirectX Accelerator" style graphics card which was designed to specifically acceleration one or two APIs started dying off with the introduction of things like 'Geforce 256'. Every since then they are growing more and more general purpose. The DDX and Mesa DRI drivers were designed specifically for that sort of 'fixed function' were you hand off certain OpenGL functions to hardware. This is one of the reasons that hardware support is so slow coming and it's so difficult to make them stable and useful.

The Geforce 256 was the first major step away from that sort of concept and it was introduced around mid-1999, which goes to show you how far behind Linux really is.

Nowadays they can be used for just about anything. Accelerating media decoding/encoding, (certain types of) super-fast floating point calculations for scientific calculations and stuff like that. Hell I expect that they could possibly be used for some sort of crypto or random number generation. The push for the '3D' desktop is partially just a vehicle for change. To get users to actually start caring and heavily use 3D stuff; especially open source drivers. The unified memory management and related items (KMS/DRI2/etc) are a basic dependency for Linux to take advantage of the power the GPU can unlock. Besides all that, of course, it will help with security since we can separate graphical users from root in a much more substantial way and it will help making the desktop more attractive due to the increase in performance, stability, and that sort of thing.

3D overload

Posted Dec 1, 2009 11:58 UTC (Tue) by tialaramex (subscriber, #21167) [Link]

2D is just a special case of 3D with very boring matrices. The "2D acceleration" in older chips tended to mean acceleration of the Windows GDI functions, whereas at least "3D acceleration" is more generally applicable stuff.

AMD/ATI do make a chip with no 3D features, they sell it for inclusion in rack servers which they rightly theorise will be connected to an LCD panel for maybe 5 minutes if they're being installed by someone who is new to the business and doesn't have a reliable network based auto-installer yet. It has basically the same framebuffer setup and so on as their 3D chips, just no 3D. I would not be surprised to discover that this is actually just as expensive to make, and is done purely because 3D drivers are notoriously complicated, therefore unreliable and no-one wants their web server crashed with an Oops message saying the 3D rendering engine lost an interrupt. Not providing the hardware is a 100% effective way to prevent people installing unreliable 3D drivers on their server.

If you're able to convince business PC makers that these framebuffer-only chips are the Right Thing for corporate desktops, you may be onto something. But I suspect that with e.g. Excel and Powerpoint already taking advantage of the 3D acceleration, you won't get much traction.

3D overload

Posted Dec 3, 2009 20:38 UTC (Thu) by anton (subscriber, #25547) [Link]

We have older servers with the ATI Rage XL, and middle-aged servers with the ATO ES1000. I once ran X on the ES1000, and X recognized it as a Radeon 7000 or somesuch. We have free accelerated 3D drivers for the Radeon 7000. IIRC I even tried 3D, and it worked.

BTW, normally we run our servers in text mode, not for fear of getting an oops from the 3D driver (if the X server crashes, we don't care), but because we only need the console when we boot the thing, and when it does not react to the network. And then we want to see what the kernel said on the console, and X having blanked the screen or displaying anything but the console is not very helpful.

3D overload

Posted Dec 5, 2009 1:29 UTC (Sat) by tialaramex (subscriber, #21167) [Link]

“I once ran X on the ES1000, and X recognized it as a Radeon 7000 or somesuch. We have free accelerated 3D drivers for the Radeon 7000. IIRC I even tried 3D, and it worked.”

I guess everybody has their memory play tricks on them sometimes. The ES1000 has no 3D capability. If you don't believe me you might read ATI's specifications for it, or the source of the free driver you're talking about.

3D overload

Posted Dec 16, 2009 19:03 UTC (Wed) by daenzer (✭ supporter ✭, #7050) [Link]

> The ES1000 has no 3D capability.

Actually, at least initially the 3D hardware was there, just not validated during production (probably that's cheaper than actually removing the hardware). So with luck it might work at least to some degree, but if it breaks you get to keep both pieces. The X.Org radeon driver currently disables all functionality using 3D hardware by default on these cards but it can be enabled via xorg.conf options for giggles (the extremely low video memory bandwidth probably precludes any non-trivial 3D usage anyway).

3D overload

Posted Dec 1, 2009 23:35 UTC (Tue) by bojan (subscriber, #14302) [Link]

> but I find all this emphasis on 3D pretty annoying, a waste of resources

90% or more of silicon real estate of graphics chips these days is dedicated to 3D. Using that to display 2D is actually faster and works better than using the 2D hardware. This whole thing is not about 3D effects, 3D for CAD or anything like that. It is about using the hardware so that the regular desktop works smoothly.

For instance, I use compiz but I do not enable any of the fancy 3D effects (e.g. wobbly windows, workspaces on the cube), because they are annoying to me. However, windows move better around the screen with compiz (because it's using 3D hardware to draw them), zooming is better, small objects are displayed more precisely (just look at the workspace switcher), scrolling is faster, CPU utilisation is lower etc.

3D overload

Posted Dec 2, 2009 19:34 UTC (Wed) by drag (subscriber, #31333) [Link]

From what I understand is that for video cards still containing 2D
acceleration those 2D acceleration processors are just little more then
copy-n-paste versions of the processors developed over a decade ago when
people still cared about 2D performance.

Once popular gaming switched gears from 2D side-scrollers to 3D shoot-em-ups
then all development regarding 2D processor cores halted completely for
mainstream systems. I figure all advancements in graphics and rendering
acceleration have occurred on the '3D' side of the hardware since around
1998 or so.

3D overload

Posted Dec 3, 2009 11:19 UTC (Thu) by nix (subscriber, #2304) [Link]

There's another reason why graphics card vendors only pay attention to 3D performance... because even with old cards like the Radeon r100 series, 2D performance is limited by memory bandwidth these days, not by GPU speed. Screen updates are pretty much instantaneous as long as the CPU can get the data to the card fast enough. Graphics card vendors are paying attention to 3D because there's nothing left for them to do in the 2D arena.

3D overload

Posted Dec 6, 2009 1:23 UTC (Sun) by numasan (guest, #62353) [Link]

"Who cares about 3D? "

Well, I and a whole industry do. I guess you don't watch "blockbuster" movies if you feel nauseated by Compiz, but +90% of all visual effects in big budget movies are created (not just rendered) on Linux, and great OpenGL acceleration is very much needed. Right now Nvidia is King with their proprietary driver, and will be for some time yet.

As others have stated 3D is not only for games and Compiz (which I don't use). Perhaps you could couple CAD and DCC together, but with a modern graphics card and Blender you have the tools to create without it being "exclusively highend-only". Unfortunately the open source stack is not yet capable or stable for this task. I personally hope that 3D will get a lot more attention, especially for serious work. What good is a "multi-teraFLOP" GPU when it can only drive wobbly windows?

About Fedora12, we are currently running F10 on our graphics workstations albeit very customized. I'm planning to evaluate F12 soonish but have thought about looking for another distro... F10 is working decently for us though.

Between Fedora 12 and 13

Posted Dec 1, 2009 8:29 UTC (Tue) by roblucid (subscriber, #48964) [Link]

> Video cards no longer support 2D acceleration in any way shape or manner.
> No 2D engines. On the newest ATI cards it's only done through firmware
> emulation, and that will end pretty quickly in itself once ATI stops
> having to give a shit about XP support.

> All 'acceleration' will actually be done through the '3D pipelines' which
> is slowly turning into little more then a pure software solution that is
> optimized to run your CPU and your GPU. The GPU being nothing more then
> dozens or even hundreds of little 'micro processor cores' that are
> programmable in how they are accessed and what they are used for.

But Windows 7 has as a new feature, 2D acceleration for GDI graphics like XP. That'll have to be supported for a while you know. They have now implemented a new accelerated framework for drawing text, and plan to add support for accelerated text into IE9 to improve scrolling.

Why can't a generalised GPU accelerate 2D? In general lusers don't give a monkeys if it's done in pure hardware or hardware + software; it just needs to do the drawing primitives fast, and offload stuff from main memory. The 3D solutions today, basically are hardware + software in the cards so accelerating 2D ought to be very doable.

Between Fedora 12 and 13

Posted Dec 1, 2009 17:59 UTC (Tue) by drag (subscriber, #31333) [Link]

Your right, of course.

Modern (or at least future) video cards accelerate 2D operations through the
3D pipelines. From the programmer's perspective they can still be
programming GDI or EXA or XRender, but from the driver's perspective you'll
still need to support 3D operations and have a unified memory management
scheme for all the different APIs you want to support.

What I was merely talking about is the 2D processor engines that you
traditionally targeted through 2D drivers like 'nv' or other X.org DDX stuff
is going away.

Between Fedora 12 and 13

Posted Dec 1, 2009 9:06 UTC (Tue) by luya (subscriber, #50741) [Link]

"Video cards no longer support 2D acceleration in any way shape or manner. No 2D engines. On the newest ATI cards it's only done through firmware emulation, and that will end pretty quickly in itself once ATI stops having to give a shit about XP support. "

Depend which videocard because PowerVR series (found on majority of mobile device include Apple IPhone and Nokia N900) supports 2D acceleration due to its tile-based architecture.

Between Fedora 12 and 13

Posted Dec 1, 2009 13:18 UTC (Tue) by nix (subscriber, #2304) [Link]

Um, just about every graphics card out there has some sort of tiling (it's useful for locality-of-reference because it means that things close in space are close in memory). That doesn't mean it necessarily supports any 2D acceleration to speak of.

Between Fedora 12 and 13

Posted Dec 3, 2009 9:09 UTC (Thu) by luya (subscriber, #50741) [Link]

Except majority of modern videocards does not use deferred rendering method i.e only visible pixels are rendered, they use immediate mode rendering. That method reduces memory usage and can save power as well which explains why PowerVR chipset has become defacto in mobile world. Check out: http://www.imgtec.com/powervr/powervr-technology.asp

The videocard of old Dremcast uses same method being the predecessor of those chipsets.

Between Fedora 12 and 13

Posted Dec 1, 2009 18:15 UTC (Tue) by drag (subscriber, #31333) [Link]

The stuff for embedded systems is going to be trailing PC-based systems by a
few years.

The PowerVR situation is one of the major things that sucks about Linux on
ARM. With Linux on x86 you can get open source 3D acceleration through Intel
and, in a way, through ATI pretty easily. But to do that on ARM still
requires very proprietary drivers, as far as I know.

Between Fedora 12 and 13

Posted Dec 3, 2009 9:16 UTC (Thu) by luya (subscriber, #50741) [Link]

Maybe somebody should bring back the old Kyro (PowerVR Series 3) module that was removed from kernel 2.6.

Between Fedora 12 and 13

Posted Dec 4, 2009 17:35 UTC (Fri) by leoc (subscriber, #39773) [Link]

I am no expert, but it seems to me that if/when the graphics functions do move into the CPU, it would by necessity have to be much more open than the situation we have now.

For example, how could ATI/AMD could keep its video technology a "secret" without hindering the CPU as a result? Would you have to load a "proprietary blob" to be able to run anything on it under Linux?

Between Fedora 12 and 13

Posted Dec 4, 2009 22:39 UTC (Fri) by nix (subscriber, #2304) [Link]

Um, CPUs already contain secret proprietary magic uploadable binary blobs.
Neither AMD nor Intel publicise the format of their CPU microcode.

Between Fedora 12 and 13

Posted Dec 11, 2009 21:21 UTC (Fri) by leoc (subscriber, #39773) [Link]

Yes, but once they are loaded you have access to the instruction set of the CPU, unlike say with NVIDIA video cards that hide everything behind the closed driver.

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds