Slashdot Mirror


Hardware Based XRender Slower than Software Rendering?

Neon Spiral Injector writes "Rasterman of Enlightenment fame has finally updated the news page of his personal site. It seems that the behind the scenes work for E is coming along. He is investigating rendering backends for Evas. The default backend is a software renderer written by Raster. Trying to gain a little more speed he ported it to the XRender extension, only to find that it became 20-50 times slower on his NVidia card. He has placed some sample code on this same news page for people to try, and see if this is also experienced on other setups."

297 comments

  1. are the drivers installed? by efishta · · Score: 3, Funny

    last time I checked all graphix cards need drivers to enable their acceleration.

    1. Re:are the drivers installed? by dustwun · · Score: 1

      Okay, this guy is the driving force behind the Enlightenment window manager. He's written several libraries and other X related apps in fairly common usage. This level of troubleshooting is just a bit of an insult don't you think?

    2. Re:are the drivers installed? by Fishead · · Score: 2

      To discount this as not being possible is foolish. I am sure I am not the only /.er who has racked his brains trying to find a solution only to have someone (less skilled even) come over and point out the obvious solution. Yes this is an insult, and yes you wanna punch the smart alec in the mouth, but it doesn't mean he is wrong to suggest the solution.

  2. 2D acceleration using OpenGL? by gloth · · Score: 5, Interesting

    He didn't really get too far into that, but it would be interesting to see how feasible it is to do all the 2D rendering using OpenGL, encapsulated by some layer, like his Evas.

    Has anyone done that? Any interesting results? One would think that there's a lot of potential here...

    1. Re:2D acceleration using OpenGL? by Animats · · Score: 4, Interesting
      That's technically viable, and I've worked with some widget toolkits for Windows that render everything through OpenGL. On modern graphics hardware, this has good performance. After all, the hardware can draw complex scenes at the full refresh rate; drawing some flat bitmaps through the 3D engine isn't too tough.

      One problem is that multi-window OpenGL doesn't work that well. Game-oriented graphics boards don't have good support for per-window unsynchronized buffer swapping, so you tend to get one window redraw per frame time under Windows. (How well does Linux do with this?) Try running a few OpenGL apps that don't stress the graphics hardware at the same time. Do they slow down?

      One of the neater ways to do graphics is to use Flash for 2D and OpenGL for 3D. Quite a number of games work that way internally. The Flash rendering engine typically isn't Macromedia's, but Macromedia authoring tools are used. This gives the user interface designers great power without having to program.

    2. Re:2D acceleration using OpenGL? by Rabid+Penguin · · Score: 4, Informative

      Yes, and yes. :-)

      The current version of Evas is actually the second iteration. The first version had a backend written for OpenGL, which performed quite well for large drawing areas, but was sluggish with many small areas (bad for window managers). The software engine easily outperformed in those cases, and will be used for the resulting window manager's border drawing.

      For now, there is not an OpenGL engine in Evas, because of time constraints. E has a relatively small active development team atm, so it's difficult to say when someone will get around to adding the OpenGL engine. There should be one eventually, all nicely encapsulated except for a couple setup functions.

    3. Re:2D acceleration using OpenGL? by Anonymous Coward · · Score: 0

      Apple's Quartz Extreme (or whatever it's called) uses OpenGL to provide some 2D acceleration.

    4. Re:2D acceleration using OpenGL? by mvdwege · · Score: 4, Informative

      On using OpenGL in multiple windows....

      How well does Linux do with this?) Try running a few OpenGL apps that don't stress the graphics hardware at the same time. Do they slow down?

      While my graphics hardware is not quite representative (the Matrox G450 is not known for great 3D performance), I ran two instances of glxgears.

      Short conclusion: MesaGL on Linux has the same problem. Long conclusion: the windows showed noticable slowdowns, up to the point where animation was suspended in one window while the other ran, with the system switching the running window at seemingly random intervals.

      System specs:

      • Athlon 1600XP
      • MSI K7TPro2 Motherboard
      • Matrox G450 AGP Graphics Card
      • Linux kernel 2.6.0-test3
      • XFree86 4.2.1 (Debian patchlevel 9)

      Hope this helps,


      Mart

      --
      "I know I will be modded down for this": where's the option '-1, Asking for it'?
    5. Re:2D acceleration using OpenGL? by Rufus211 · · Score: 4, Informative

      Must be your hardware. I have an Ath 2700 XP with a ATI 9800 running Debian with X 4.3

      Single glxgears: 3600
      3 glxgears: 1200
      5 glxgears: 700

      (All aprox numbers). So basically it scales almost perfectly with the number of open windows.

    6. Re:2D acceleration using OpenGL? by harlows_monkeys · · Score: 2, Insightful
      ...it would be interesting to see how feasible it is to do all the 2D rendering using OpenGL

      Isn't that what Blender does? They implement their GUI using OpenGL, drawing all the widgets themselves, so that their interface is the same on all platforms they are ported to.

    7. Re:2D acceleration using OpenGL? by H*(BZ_2)-Module · · Score: 1

      I have a similar machine, which kernel 2.4.21, XFree86 4.2.0 running at 16 bpp, and a PCI TNT2. One instance of glxgers runs at around 720 fps, and two instances run at 330 fps. As I ran more instances, the fps degraded linearly, so that with 12 running, I was seeing about 55 fps on each one.

    8. Re:2D acceleration using OpenGL? by Anonymous Coward · · Score: 2, Interesting

      On modern graphics hardware, this has good performance.

      Exactly, on modern hardware. If you have anything less than ATI 9700, NV "hottest and greatest" or the only third (but really expensive, why I won't name them) vendor OpenGL-supporting 3D cards, you are indeed screwed. Bigtime!

      To explain what I'm talking about here: On a 2D card you can easily often move a full screen/vblank (OK, not true for PCI cards if you're like me using 1600x1200x32 ~= 7.32MB/frame, and at just 75Hz that's 549MB/second).

      That's obviously impossible, right? But what if you pushed e.g. MP3 video at 480x480 (plain VCD) in non-RGB format, but in some other fomrat. Let's call it YUV. Oh, I hear you say now. Yes, that's data rates the card cant complain too much about. Furthermore, it has support to stretch the image in hardware.

      But what about what we're talking about here? We're talking about plain RGB, 24/32-bit obviously. If using a 3D API you'd first have to create a quad, then *upload* the image you already have in memory to the card, and finally have the card "paint" that quad, stretched or not, onto the screen.

      Let me tell you, the amount of games that do this and manage to bring down the frame-rate for just shitty 2D work (this *includes* the mouse cursor) to less than 1 FPS (frame per second) has been enough to tell me:
      1. The world is full of idiots.
      2. The designers (of that software) are not really competent enough to make the decisions they do.
      3. Even if *you* happen to have an ATI9800, are you willing to byu such a card for everyone not having it?

      Had these people staied with a 2D API and only used the available 2D primitives for the 2D API they'd had an order of magnitude if not more higher framerate on all hardware.

      In all, it could be fun to look at, running at a machine suitably equipped (meaning, the "baddest" and most expensive money can buy) - but to actually use on the machines we own, I don't think so...

      To even suggest to use Flash for gfx IMO validates a combination of web-cameras, pieces of led forced to a somewhat hight velocity by chemical reactions and lots of cheering people.

    9. Re:2D acceleration using OpenGL? by Anonymous Coward · · Score: 0

      Wow. Whatever you're on, I want some of it.

    10. Re:2D acceleration using OpenGL? by Motor · · Score: 1

      Hmmm... I'm seeing the same thing.

      • Athlon 2000XP
      • Gigibyte K7 Triton motherboard
      • Matrox G550 AGP (yeah, 550)
      • Software is Red Hat 9 with all the updates

      I ran glxgears four times, and the first two instances were just as your described. Processor time seemed to switch randomly between the two while the other was starved completely. Instance three only got processor time rarely, and four none at all. Odd.

      --
      We all know that crap is king
      Give us dirty laundry!
    11. Re:2D acceleration using OpenGL? by Mr+Z · · Score: 3, Informative

      I have a dual Athlon MP 2600 running w/ an nVidia GeForce 4 MX440. Here's what I get for 1 through 4 glxgears:

      1. ~7400 frames / 5 seconds
      2. ~3000 frames / 5 seconds
      3. ~1500 frames / 5 seconds
      4. ~1300 frames / 5 seconds

      The fall-off is slightly more harsh than linear for 1 through 3, probably synchronization overhead. 4 seems to get faster in terms of total frame rate across all four instances. 2*3000 == 6000, 3*1500 = 4500, 4*1300 = 5200(!)

      --Joe
    12. Re:2D acceleration using OpenGL? by Mr+Z · · Score: 1, Troll

      I read as far as "MP3 video." WTF? MPEG Audio Layer 3 is an audio layer for MPEG-2 Video streams. (We just happen to ship audio-only streams because MP3 is good at encoding music.) MP3 Video? It's like saying "training-wheel bicycle" or "non-dairy creamer coffee beans."

      Like the other poster said, can I have a hit of what you're tokin'?

      --Joe
    13. Re:2D acceleration using OpenGL? by Trojan · · Score: 1

      I'm guessing this has to do with how the Matrox DRI drivers do locking. Here the NVidia drivers might have an (architectural?) advantage.

    14. Re:2D acceleration using OpenGL? by JBv · · Score: 1

      Numbers for a duron 900Mhz, 512Mb pc133 ram with a GF ti4200 from creative (64Mb) running on an updated Mandrake 9.1 distro:

      1 glxgears 3750 fps
      2 glxgears 1850 fps
      3 glxgears 1250 fps

      (subjective estimated fluctuation of +- 50fps)

      screen #0:
      dimensions: 1152x864 pixels (305x229 millimeters)
      resolution: 96x96 dots per inch
      depths (7): 24, 1, 4, 8, 15, 16, 32
      depth of root window: 24 planes

    15. Re:2D acceleration using OpenGL? by wes33 · · Score: 1

      on my old laptop, running two instances of gears is so slow they run backwards !!

    16. Re:2D acceleration using OpenGL? by anno1a · · Score: 2, Interesting

      I have an Athlon 1400 and a GeForce2Ultra... While the framerates more or less fits yours:
      1: 1871
      3: 630
      5: 372
      When you look at them it's obvious that they're not running simultaniously, but get a little bit of gfx-time each, stopping and waiting for the other gears to stop moving. Utterly useless!

      --
      ------- I fumbled my registration and I now must suffer
    17. Re:2D acceleration using OpenGL? by Anonymous Coward · · Score: 0

      Nitpick:

      MP3 is MPEG-1 Audio Layer 3, not MPEG-2

    18. Re: 2D acceleration using OpenGL? by Black+Parrot · · Score: 1


      > While my graphics hardware is not quite representative (the Matrox G450 is not known for great 3D performance), I ran two instances of glxgears. Short conclusion: MesaGL on Linux has the same problem. Long conclusion: the windows showed noticable slowdowns, up to the point where animation was suspended in one window while the other ran, with the system switching the running window at seemingly random intervals.

      That's interesting. I also have a Matrox G450 AGP card, but running two instances of gears or glxgears works smoothly, and at almost exactly half the speed of a single instance. Three instances also scale linearly.

      FWIW I'm running a 2.4 kernel and XF86 4.3.0.

      --
      Sheesh, evil *and* a jerk. -- Jade
    19. Re:2D acceleration using OpenGL? by Mr+Z · · Score: 1

      Oops.... you're right. My basic point still stands, of course.

      --Joe
    20. Re:2D acceleration using OpenGL? by crawling_chaos · · Score: 1

      Tell me about it. The Neverwinter Nights toolset uses multiple OpenGL windows and it crashes -- a lot. Evidently it's stable enough if you're running the exact GeForce cards that the devs use, but anything else and it can be troublesome.

      --
      You can only drink 30 or 40 glasses of beer a day, no matter how rich you are.
      -- Colonel Adolphus Busch
    21. Re:2D acceleration using OpenGL? by Xerithane · · Score: 1

      You seem to be in the know, so I'll ask my offtopic question to you, hope you don't mind. Is it possible to run an OpenGL screen in the background (root window) and then have X windows on top of it? I mean, "Run smoothly on decent (not modern) hardware?"

      --
      Dacels Jewelers can't be trusted.
    22. Re:2D acceleration using OpenGL? by Heretik · · Score: 1

      Uh, the old evas did exactly that.

    23. Re:2D acceleration using OpenGL? by smeat · · Score: 1

      Man I must be the luckiest person alive, every time I change my video card Bioware must recompile the Neverwinter Nights program just for me! I have never had NWN crash on me. All through the betas it has been stable. I think you are making shit up.

      smeat!

      --
      "Let's not bicker about who killed who." Monty Python
    24. Re:2D acceleration using OpenGL? by Anonymous Coward · · Score: 0

      One word Apple

      Since they switched ot OpenGL the desktop is much faster allows transparancy shadiung and lots of animationw without any speed hit...

      Well on X it would be possible as well but you would lose the holy network transparency. I guess our last best hope for getting a decent desktop performance proably really will be DirectFB :-(

    25. Re:2D acceleration using OpenGL? by noselasd · · Score: 1

      Err.. MesaGL is only a software render. Naturally it's slow. Well, it probably does accerlate some Matrox card, bit that's it. Running 2 glxgears here gives me a fps of about 750 each , while only on yields 1650.(geforce4 , nvidia drivers)

    26. Re:2D acceleration using OpenGL? by Anonymous Coward · · Score: 0

      True. And its interface is (on machines with hw accelerated OpenGL drivers) steaming fast. Much faster than ordinary KDE/Gnome applications.

    27. Re:2D acceleration using OpenGL? by darc · · Score: 1

      He's not joking, the damn thing crashes like crazy, ALOT. It isn't exactly stable, and did indeed crash frequently on non nVidia cards. ATI owners everywhere know about the instability in the toolset, inability to open the console without crashing, and the lack of vertex shaders working.

      Perhaps you should read information, or check outside, before assuming that everyone elses experiences are the same as your own.

      --
      Tired of legitimate data sources? Try UNCYCLOPEDIA
    28. Re:2D acceleration using OpenGL? by be-fan · · Score: 1

      Actually, that might not be the case. Because glxgears is such a simple benchmark, it redraws ridiculously fast. As a result, you might get weird artifacts. Try a more complicated benchmark. Also, what kernel are you running? The 2.5 series is supposed to be much better for this sort of thing.

      --
      A deep unwavering belief is a sure sign you're missing something...
    29. Re:2D acceleration using OpenGL? by Rabid+Penguin · · Score: 2, Informative

      Yes, and in the end, there is a good chance this will be an option for Enlightenment. Raster has been hard at work on an image layout/animation engine for theming borders and backgrounds, and I would be willing to bet once the OpenGL evas backend is in place, there will be an option to use it for animated backgrounds. Borders will most likely be software only until a hardware solution is found that provides increased performance for small drawing areas.

    30. Re:2D acceleration using OpenGL? by anno1a · · Score: 1

      "Because glxgears is such a simple benchmark, it redraws ridiculously fast. "
      Which makes it so much more obvious... Especially when I run 5-6 instances, because it just switches between them.

      I'm running the 2.6.0test2 kernel...

      --
      ------- I fumbled my registration and I now must suffer
    31. Re:2D acceleration using OpenGL? by Dr_Auknix · · Score: 1

      I don't remember what this was called, but back when 3DFX was all the rage,

      a utility came out that allowed you to play 2d movies, and your 3dfx card would blur the movie, allowing low resolution movies to be played at full screen and look a little more presentable.

      I can't remember what the process is called, but it was the same blurring effect that happened when you walked up to a wall in GL_Quake. instead of getting blocky it would get blury.

    32. Re:2D acceleration using OpenGL? by Animats · · Score: 1

      That's a known Red Hat scheduler bug. Red Hat blames it on NVidia, but you're seeing it for Matrox as well, so it's probably Red Hat's fault after all. You might want to update that bug report.

    33. Re:2D acceleration using OpenGL? by Animats · · Score: 4, Informative
      So basically it scales almost perfectly with the number of open windows.

      Which means it's broken. All the windows should run at full speed until the graphics pipeline saturates.

      There are several problems. First, make sure that you're not running with "wait for VBLANK" off. There's a stupid overclocker mania for running the graphics system faster than the display can refresh. This leads to high, meaningless frame rates, and to lower system performance because the useless redraws are using up all the CPU time.

      Once you're past that, the issues are more fundamental.

      The real problem is that OpenGL is double-buffered, but most windowing systems don't understand double-buffering or frame-synchronous drawing very well. Even OpenGL has no notion of time. But this could be fixed.

      Usually, each app draws into the back buffer, then makes the OpenGL call to swap the buffers. This blocks the app (older NVidia drivers for Windows spin-locked, but I got them to fix that), but worse, it typically locks up the OpenGL subsystem until the frame ends and the buffer swap occurs. Implementations like that can only draw one window per frame time, obviously.

      What ought to happen is that a request for a buffer swap should schedule a buffer swap for the next frame cycle, block the app, then let other apps get in their draw time. At the end of the frame, when everybody is done drawing, all windows get buffer swapped, and all the apps stuck in the OpenGL buffer swap call then unblock simultaneously. That way, multiple OpenGL apps running in different windows all run at full frame rate, until the scene complexity hits the limits of the graphics hardware.

      Part of the problem is that X and OpenGL are such drastically different architectures that making them play well together is tough. X assumes a network-centric model; OpenGL assumes you're local. X expects a weak terminal; OpenGL needs good graphics acceleration. X is built around a windowing concept; OpenGL doesn't know about windows. X and OpenGL are defined by different organizations.

      Microsoft is pulling this together in the Windows world, but it's all done with Microsoft APIs, and, recently, undocumented hardware that favors those APIs.

    34. Re:2D acceleration using OpenGL? by mprinkey · · Score: 1

      It is called bi-linear filtering...instead of making pixels larger when zooming, it interpolates to fill in the in-between pixels using the four nearest "real" pixels. There is a fair amount of linear algebra involved and that made it impossible for CPUs of that era to do it in real time. 3DFX was noteworthy for being the first hardware manufacturer to implement bi-linear filtering in hardware (Voodoo 1).
      </useless-info>

    35. Re:2D acceleration using OpenGL? by Anonymous Coward · · Score: 0

      I thought GLX does a pretty good job of making X play nice with OpenGL. I can run remote GLX programs surprisingly well.

      I remember reading a paper once on how GLX worked and being quite impressed. I forget how it went, but they used some clever technique to make it network transparent without causing performance to suffer.

      Probably, the quality of GLX varies from server to server, driver to driver. But in theory, it shouldn't be all that bad if done right.

    36. Re:2D acceleration using OpenGL? by Anonymous Coward · · Score: 0

      This is one of my favorite things to do! If you have the XScreenSaver OpenGL packages, try something like this for example:

      $ /usr/lib/xscreensaver/glplanet -root

    37. Re:2D acceleration using OpenGL? by Xerithane · · Score: 1

      Yes, and in the end, there is a good chance this will be an option for Enlightenment. Raster has been hard at work on an image layout/animation engine for theming borders and backgrounds, and I would be willing to bet once the OpenGL evas backend is in place, there will be an option to use it for animated backgrounds. Borders will most likely be software only until a hardware solution is found that provides increased performance for small drawing areas.

      What I was thinking (and the reason for the question) is having a GL area in the background that draws the borders overlaid. It breaks when you have overlapping windows, but I was trying to think of ways around that. For non-stackable views that would definitely be a cool way to render the scene.

      One solution to that is capturing the output of a window to a buffer, and then just texturing it until it gets focus, which would only work if you raised the window to the foreground on focus. Limiting, but it's just some bizarre ideas I'm kicking around.

      Things you guys have probably already thrown out :)

      --
      Dacels Jewelers can't be trusted.
    38. Re:2D acceleration using OpenGL? by crawling_chaos · · Score: 1
      Try the toolset. Open a module, find a placeable and view its properties. Alter the color on something and close it. Now open another and chances are you'll hit a nice big oops in one of the OpenGL DLLs. Now search "Toolset crash" on nwn.bioware.com. The game runs fine but the toolset has issues, particularly with ATI gear. Bioware's developers have specifically stated that it has to do with the fact that the Toolset opens multiple OpenGL windows and many video drivers have problems with that. I finally fixed the issue by finding a hacked version of the Catalysts that would run on the Mobility Radeon 9000 in my Dell, now I only get the crash every six hours or so, instead of inside the first 15 minutes.

      Still think I'm making shit up? If so, it's a shared hallucination with a large part of the NWN developer community. Try to hold your bile a little next time.

      --
      You can only drink 30 or 40 glasses of beer a day, no matter how rich you are.
      -- Colonel Adolphus Busch
    39. Re:2D acceleration using OpenGL? by default+luser · · Score: 1

      Not quite true useless info.

      Companies like SGI and 3dlabs had been making dedicated graphics hardware with this particular feature for years, even for consumers ( N64 and Permedia predate the Voodoo Graphics ).

      Even so, you forget that the Rendition Verite graphics chip ( with a similar feature set ) was released at the same time as the Voodoo Graphics, and even had the first 3D-accelerated version of Quake.

      Hell, if Intel hadn't been stupid enough to reuse the floating-point registers to implement MMX, there's no telling what would have happened to the graphics accelerator market. Bilinear Filtering in software was one of the target applications of MMX, but the combined registers meant you couldn't render the 3D scene and use your integer MMX unit to filter it at the same time. Now THAT's useless info.

      --

      Man is the animal that laughs.
      And occasionally whores for Karma.

  3. Re:Wait a second... by Anonymous Coward · · Score: 0

    And what does that have to do with the questions and issues raised in the story?

  4. The damndest thing. by Raven42rac · · Score: 4, Informative

    I have used both ATI and NVIDIA,(and 3dfx, and matrox, but staying relevant). Generally the NVIDIA cards I have owned have been vastly outperformed by the ATI cards right off the bat, without tweakage. (This is under Linux, mind you) Even with tweakage, in my experience, you rarely get the full potential from your card.

    --
    I hate sigs.
    1. Re:The damndest thing. by efishta · · Score: 1

      That's why every new "generation" of drivers by NVIDIA helps a bit in the performance department. The 20.xx series helped out dramatically for the GeForce3 series; and so on with the GF4 and GF5, each new generation of drivers help out more than the previous one. Otherwise, there wouldn't be a new driver released every week, which to me shows the dedication they have for their products. Some other companies release drivers ever few months or so (like ATI, which has a dismal driver quality record, much improved recently)

    2. Re:The damndest thing. by Raven42rac · · Score: 1

      They have been getting better, I will give them that. One of the reasons ATI's drivers are better is because the 9800 driver is a sexed-up 9700 driver, so they have had a head start, which isn't honestly a bad thing.

      --
      I hate sigs.
    3. Re:The damndest thing. by TomServo · · Score: 1

      Tell me about it. I've been using nVidia since 3Dfx kinda died, but I finally buckled and picked up a Radeon 9800 Pro. What a difference from the old ATi stuff I had...this thing flies. I don't see weird artifacts like I used to with ATi cards/drivers, the image quality is amazing, and it renders fast.

      It's nice to see two players in the high-end 3D market again, now lets see nVidia show up ATi with something amazing in their next iteration.

    4. Re:The damndest thing. by Dillon2112 · · Score: 1

      I'm a hardcore gamer and I use exclusively Linux, so I try to follow card performance... NVIDIA, in my experience, has always provided the best drivers, especially in Linux.
      I guess this could be chalked up to inferior hardware performance on NVIDIA's side of things, but I'm not sure that would account for a vast difference that you're describing.
      As someone who's looking for what new card to buy for my Linux box in anticipation of things like Doom 3, what do you folks recommend?

    5. Re:The damndest thing. by Anonymous Coward · · Score: 0

      Hardcore Gamer... Linux...

      How can that be used in the same sentence without a negative on one of those:-)

    6. Re:The damndest thing. by riko_at_anubics · · Score: 1

      unfortunately as far as i know they are not open source

      --
      I don't want to start any blasphemous rumors but I think that God's got a sick sense of humor. DM
    7. Re:The damndest thing. by jdooley · · Score: 1

      It could be an issue of proper drivers. If ya head
      to Accel-X and
      get a commercial-quality Linux X Server you might
      get better performance.

    8. Re:The damndest thing. by Dillon2112 · · Score: 1

      Well, I'll be honest...it's a rough life. =)

      Honestly, I *was* a hardcore gamer, and then ditched windows because I was tired of the BS, so now I run Linux and still maintain my self image as a hardcore gamer, playing things like MoH beta, Return to Castle Wolfenstein, Quake 3, Rune, Unreal Tournament 2003, Neverwinter Nights, and Kohan. Good times.

  5. Re:Some Suggestions for Rasterman by SubjunctiveSam · · Score: 0, Offtopic

    Sorry, but that was the funniest thing I've read all month.

  6. accelerated? by Spy+Hunter · · Score: 3, Interesting

    Is XRender really accelerated? I thought that most Render operations were still unaccelerated on most video cards, and how and if they could be accelerated was still an open question. Maybe the real problem here is Render's software rendering code?

    --
    main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
    1. Re:accelerated? by saikatguha266 · · Score: 3, Interesting

      The NVidia drivers say something about Render Accleration as someone already pointed out. However, there is definitely some glitch somewhere. I tried the benckmark with the RenderAccel both turned off and on on my GeForce 3 with the 4496 drivers and perceived no significant difference in the tests except for test 1. (11s for no accel, 2.5s for accel, 0.62 for imlib2). The rest of the tests sucked for the driver (11s, 215s, 183s, 356s for tests 2 to 5 -- both with and without render accel as opposed to 0.21s, 4.5s, 2.7s, 5.8s for imlib2).

      I use Xinerama with the secondary display on an ATI 98 Pro (Yay for college tuitions). One thing I did notice was that even in render-acclerated mode, if I drag the window to the middle straddling the screen split, the images display on both sides -- though ATI's side is scaled down even at the same resolution for some reason). However, if I use a gl application (glxgears, mplayers -vo gl2 etc) then straddling the screen only gives half a display on the GeForce board. So in this case, X is either not using XRender either because of NVidia drivers or is picking the lower of the capabilities of the video card. Or is doing something in the middle causing the GeForce and ATI displays to be different.

      I wonder if there is any way to explicitly force X to use the hardware for XRender as you can do with GL.

    2. Re:accelerated? by whereiswaldo · · Score: 1

      Obviously, something is wrong here. Hardware rendering should always be faster than software rendering, if the hardware is being used properly.

      In the stuff I've done, I'd guess a factor of 4 increase in speed at least.

    3. Re:accelerated? by Spy+Hunter · · Score: 4, Informative
      Well I ran Renderman's benchmark on my Radeon 9100/Athlon XP 2800 system, and here are the results (edited for lameness filter):

      *** ROUND 1 ***
      Test: Test Xrender doing non-scaled Over blends
      Time: 15.925 sec.
      ---
      Test: Test Xrender (offscreen) doing non-scaled Over blends
      Time: 15.927 sec.
      ---
      Test: Test Imlib2 doing non-scaled Over blends
      Time: 0.321 sec.
      *** ROUND 2 ***
      Test: Test Xrender doing 1/2 scaled Over blends
      Time: 7.125 sec.
      ---
      Test: Test Xrender (offscreen) doing 1/2 scaled Over blends
      Time: 7.134 sec.
      ---
      Test: Test Imlib2 doing 1/2 scaled Over blends
      Time: 0.133 sec.
      *** ROUND 3 ***
      Test: Test Xrender doing 2* smooth scaled Over blends
      Time: 131.495 sec.
      ---
      Test: Test Xrender (offscreen) doing 2* smooth scaled Over blends
      Time: 131.703 sec.
      ---
      Test: Test Imlib2 doing 2* smooth scaled Over blends
      Time: 2.487 sec.
      *** ROUND 4 ***
      Test: Test Xrender doing 2* nearest scaled Over blends
      Time: 113.890 sec.
      ---
      Test: Test Xrender (offscreen) doing 2* nearest scaled Over blends
      Time: 113.945 sec.
      ---
      Test: Test Imlib2 doing 2* nearest scaled Over blends
      Time: 1.778 sec.
      *** ROUND 6 ***
      Test: Test Xrender doing general nearest scaled Over blends
      Time: 197.817 sec.
      ---
      Test: Test Xrender (offscreen) doing general nearest scaled Over blends
      Time: 197.800 sec.
      ---
      Test: Test Imlib2 doing general nearest scaled Over blends
      Time: 5.171 sec.
      *** ROUND 7 ***
      Test: Test Xrender doing general smooth scaled Over blends
      Time: 268.509 sec.
      ---
      Test: Test Xrender (offscreen) doing general smooth scaled Over blends
      Time: 268.656 sec.
      ---
      Test: Test Imlib2 doing general smooth scaled Over blends
      Time: 7.507 sec.

      Obviously XRender is getting crushed here by Imlib2. There are a million reasons this might be happening, it's definitely worth looking into. In the best Slashdot tradition, here's some wild speculation about what might be causing the slowdown:

      • Renderman's code might be giving an unfair advantage to Imlib2. The Imlib2 results are never shown on the screen. However, XRender is tested both with display and without, so it seems like it should be fair.
      • Renderman's code might be using XRender in an inefficient way. I'm no X programming expert so I have no idea if what he's doing is the best way to do it, but Rasterman is supposed to be some sort of expert in producing nice fast graphics on X so I'd say this is unlikely.
      • XRender might not be hardware accelerated for some reason, probably having to do with driver configuration or something. But geez, does the software rendering have to be that slow? Maybe they could learn something from Imlib2.
      • The hotly debated "X protocol overhead" might be causing this slowdown. But given the magnitude of the slowdown, I think this is unlikely.
      Hopefully someone knowledgeable like Keith Packard himself will come and enlighten us with the true cause.
      --
      main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
    4. Re:accelerated? by Spy+Hunter · · Score: 1

      Argh! I even used the preview button, and I still spelled Rasterman Renderman? Must have had Pixar on the brain...

      --
      main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
    5. Re:accelerated? by cduffy · · Score: 2, Insightful

      ...Rasterman is supposed to be some sort of expert in producing nice fast graphics on X so I'd say this is unlikely.

      I'm not so sure of that. Rasterman may have been the first person to write a window manager with quite that much eye candy -- but god, man, have you seen his code?

      I can't speak for anything he's written within the last 18 months or so (maybe it's been longer now?), but last time I looked at his C it was ugly, unportable sh*t.

      That said, I'll be curious to see what the XRender folks have to say re these benchmarks.

    6. Re:accelerated? by Anonymous Coward · · Score: 0

      His code has always been ugly shit. Ugly shit that they keep reimplementing over and over, because he has no concept of software engineering.

    7. Re:accelerated? by Doug+Neal · · Score: 3, Informative

      The NVidia drivers provide experimental RENDER acceleration. I tried it out recently on my laptop and it's not called experimental for nothing - it's rather unstable. Every so often XFree86 would lock up. Mouse cursor freezing, nothing moving etc. The kernel would still be fine so I could ssh in and kill X, which would be running at 99% CPU usage.

      Certain things seemed to trigger it, e.g. loading up OpenOffice would guarantee a lock-up.

      So yes, hardware RENDER acceleration isn't really there at the moment. I expect this has something to do with the poor results the Rasterman got.

    8. Re:accelerated? by Anonymous Coward · · Score: 0

      You've never tried '3d acceleration' on a ATI Rage IIC AGP card, have you? ;p

      -- vranash

    9. Re:accelerated? by Anonymous Coward · · Score: 0

      XRenderaccel is horribly _broken_ under nvidia drivers. And i think it is on purpose. Since somewhere late in the 2xxx drivers (or early 3xxx) machines start crashing when scrolling in apps like mozilla, this was due to xrender support having a bug.
      I assumed they fixed it, but actually, they did not, to me it seems the crippeled XRENDER somehow, and in fact, under specific circumstances you can still trigger the bug.

      I am not 100% sure the bug is in X or in nvidia's driver, but it is a nice example to show that close drivers suck.

      Wouldn't surprise me if |Rasterman did get increased performance would he have used an ATI card....

    10. Re:accelerated? by SmallFurryCreature · · Score: 1
      mmm, and since when does ugly and unportable say anything about speed? I presume here with ugly you mean lots of hags, lousy variable names and incosistent layout style stuff.

      None of this has anything to do with efficiency. You sound like those people who say a clean desk is better then a cluttered one. It isn't it is just a reflection on style, not on work efficiency.

      Of course you may be using ugly as in badly coded in wich case I hang my head in shame.

      --

      MMO Quests are like orgasms:

      You may solo them, I prefer them in a group.

    11. Re:accelerated? by cduffy · · Score: 3, Insightful

      I mean unportable as in making assumptions about data types which are only valid on the architecture the developer is currently using. I mean ugly as in failing to initialize all his data. Even the very latest build of Evolution out of Debian unstable isn't even capable of running under valgrind, and a friend of mine -- one of the MIPS kernel folks and an *extremely* skilled hacker -- who was at one point working on a portable version of E simply threw up his hands in disgust.

      So no, I'm not talking about aesthetics.

      That said, I disagree that writing cluttered code is at all analogous to having a cluttered room. Efficiency, in the case of code, isn't just how quickly someone can get a first copy written, and it's not just about how fast that copy runs on the developer's box. Code that's blindingly fast on one particular configuration but won't run at all on a different machine (or which loses its performance edge when moved too far) is far worse than code written with attention to algorithmic optimizations, or -- even better -- code which is written with cleanliness and maintainability in mind (to allow for simpler refactoring later, be it for performance or features -- not to mention the far greater advantage of straightforward debugging).

      Let me propose an alternate analogy: Cluttered code is akin to poorly-written English -- think of an ill-structured essay or book, full of not only spelling and grammatical errors but logical fallacies to boot. While a cluttered room or desk might be excusable as personal style -- as you put such down to -- cluttered English or cluttered code are both symptomatic of poor thought processes going into their making.

    12. Re:accelerated? by vandan · · Score: 1
      last time I looked at his C it was ugly, unportable sh*t

      Oh really?
      One thing you forgot to mention in your post was the location of the alternative window manager you have been developing which demonstrates how things *should* be coded. Armchair critics...
      Last time I checked, evas was running on systems from x86 linux to win32 to Shaps' Zaurus to Qtopia to win32 ce to directfb. And a MacOS port is on the way.
      Of course compared to your cutting-edge window manager and 2d / 3d rendering backend ( that is 50 times faster than hardware acceleration ), Rasterman's effort must look like a child's 3-day venture into BASIC programming on his daddy's old Commodore 64.
      Where's that link again? Armchair boy?
    13. Re:accelerated? by doja · · Score: 1

      Even the very latest build of Evolution out of Debian... E simply threw up his hands in disgust.

      Um... Are you talking about Evolution or Enlightenment? They're not developed by the same person. And, from what I understand, the code for the latest stable version of Enlightenment has pretty much been scrapped, and they've started over almost completely to make the code small, portable, and fast.

    14. Re:accelerated? by cduffy · · Score: 1

      Last time I checked, evas was running on systems from x86 linux to win32 to Shaps' Zaurus to Qtopia to win32 ce to directfb. And a MacOS port is on the way.

      When was this? I already said that the last time I looked at the code (which was at the time unportable shit) was a few years ago; I can believe that there's been improvement since.

      Anyhow, though, unportable shit C is hardly something specific to window managers. If you want me to show you someone who does it better, I'll gladly do that -- but it won't be from a WM; I only rarely dabble in window manager code.

      As for my window manager, I use ion.

    15. Re:accelerated? by cduffy · · Score: 1

      Enlightenment. That was just a brief brain/fingers disconnect. Oops.

  7. Re:Wait a second... by Sp4c3+C4d3t · · Score: 1

    The fact that he's working on it again. A sudden change of heart, apparently. I can remember slashdotters posting hate about this guy because he was claiming the Linux desktop was dead; claims like E having failed and that being his way of taking it.

    --
    Happy New Year, it's 1984!
  8. Where is Keith Packard? by HanzoSan · · Score: 0, Troll


    Keith please explain this! This shouldnt happen.

    Also how many more years will it take before Linux can compete with OSX? 5 more years? Maybe 10? We have forever and a day you know.

    --
    If you use Linux, please help development of Autopac
    1. Re:Where is Keith Packard? by KentoNET · · Score: 1

      Err...Keith Packard ditched XFree86 to start his own fork, xwin...

      And you're right...it does take longer to get complicated stuff done in free software land than it does when you've got how many guys being paid to do it.

      --
      "You tried your best and failed miserably. The lesson is...never try. Heh!" -Homer
    2. Re:Where is Keith Packard? by Anonymous Coward · · Score: 0

      mod up +2 informative.

      no i am not the parent poster, just a concerned /.er

  9. duh by SHEENmaster · · Score: 2, Interesting

    graphics cards work quickly because they cut every corner that can possibly be cut. It makes sense that they would run computer software slower.

    I'm more interested in using them for specific calculations. Imagine if one of these things was accidentally embued with the ability to factor gigantic numbers. The AGP slot is just an excuse to keep us from beowulfing them over PCI-X

    --
    You can't judge a book by the way it wears its hair.
    1. Re: duh by Black+Parrot · · Score: 1


      > I'm more interested in using them for specific calculations. Imagine if one of these things was accidentally embued with the ability to factor gigantic numbers.

      Maybe that's the breakthrough that will allow us to factor large primes!

      --
      Sheesh, evil *and* a jerk. -- Jade
    2. Re:duh by be-fan · · Score: 1

      What? He was trying to use Render, a *graphics* API, to render *graphics* using hardware acceleration from the *graphics* card! He wasn't trying to run general purpose code.

      --
      A deep unwavering belief is a sure sign you're missing something...
  10. One word: by i_am_nitrogen · · Score: 4, Informative

    Irix.

    IrisGL or OpenGL (I think OpenGL is based on IrisGL, so Irix probably now uses OpenGL) is used extensively in Irix, for both 2D and 3D.

    1. Re:One word: by Anonymous Coward · · Score: 0

      Huh? There's nothing OpenGL powered in Irix's X winder's interface (known as 4DWM), as fars as I can tell.

      Can OpenGL be used for 2D? Yah; but it's a ton slower than more specialized methods.

    2. Re:One word: by Krach42 · · Score: 3, Informative

      You forgot about an even more common example... QUARTZ! Apple's OSX does all rendering through Quartz, (as PDFs) which is accelerated by OpenGL, and called QuartzExtreme.

      --

      I am unamerican, and proud of it!
    3. Re:One word: by flynn_nrg · · Score: 3, Informative

      The file manager, for example, used resizable icons. Moving a slider would make the icons bigger or smaller. Those were definitely vector graphics. I'm not 100% sure, but I'd bet those were opengl objects.

      About grandparent's comment, yes, SGI created IrisGL first, then moved onto OpenGL when they opened up the specs, and had a glue library for compatibility with old apps, called Igloo (IrisGL on OpenGL)

      Btw, I've tried rasterman's test on my ancient Riva TNT card and software rendering is indeed a lot faster.

      Building E17 from CVS right now :)

    4. Re:One word: by Talez · · Score: 4, Insightful

      Also, Microsoft are getting in on the act. The new Desktop Composition Engine for Longhorn is based on the same type of compositing but using DirectX instead of OpenGL.

      It's great for using 3D effects on 2D windows for what has normally been wasted horsepower. Finally, eye candy that won't slow down your system!

    5. Re:One word: by AntiOrganic · · Score: 3, Interesting

      Many of the drawing functions in the GDI+ graphics library in Windows 2000/XP have already been offloaded to the GPU (ever try moving translucent windows around? It's smooth.). There's really not that much left to be done.

      There are also third-party utilities (Stardock WindowFX, etc.) that create all sorts of nifty transitions, shadows, blending, etc. that are handled by the graphics device.

    6. Re:One word: by be-fan · · Score: 3, Informative

      Arg. Not again. -5 "dis"informative. Quartz "Extreme" does not accelerate any actual rendering! According to Apple's very on Siggraph presentation, all 2D rendering is still done via software. Only final window *compositing* (doing the alpha blend between all the windows) and window-level effects (like the genie effect) are done via OpenGL.

      --
      A deep unwavering belief is a sure sign you're missing something...
    7. Re:One word: by Krach42 · · Score: 1

      Ah... thanks for clearing that up. But it still does accellerate the time that matters. Namely, from something changing in software, to changing on the screen.

      That's what really matter to me. But I will retain your information that it only really composites.

      --

      I am unamerican, and proud of it!
    8. Re:One word: by be-fan · · Score: 1

      Not really. Most windowing systems use hardware blitters to accelerate moving window buffers to the screen, so they get that benifet too. Its just that Quartz requires that the blitter to alpha-blended window compositing, which can only be done via OpenGL. It does speed things up relative to non-accelerated Quartz, but not relative to other window systems. The real promise of HW-accelerated vector graphics is that it enables you to make very visually complex applications. A more sophisticated drawing system that accelerated drawing with OpenGL too would give you this, but Quartz won't.

      --
      A deep unwavering belief is a sure sign you're missing something...
    9. Re:One word: by Krach42 · · Score: 1

      My point still stands, on my Mac, in OSX, QuartzExtreme STILL ACCELERATES MY GRAPHICS WINDOW DISPLAY...

      Sheesh... get off your high horse, that this isn't the optimal solution, and see what I'm saying. It's better than it was.

      --

      I am unamerican, and proud of it!
    10. Re:One word: by be-fan · · Score: 1

      A) I'm pissed because Apple makes it out to be so much more than it is. Its not only not an optimal solution, its not even a solution to the rendering problem. Its a solution to the compositing problem, but not hyped as such.

      B) I'm going by your statement: "But it still does accellerate the time that matters."

      I interpret that as, "it accelerates the important part." The important part is the rendering, not the compositing. Rendering is useful for real progress in GUIs. Compositing just makes those transparent, shadowed windows possible.

      --
      A deep unwavering belief is a sure sign you're missing something...
    11. Re:One word: by Krach42 · · Score: 1
      B) I'm going by your statement: "But it still does accellerate the time that matters."

      I interpret that as, "it accelerates the important part." The important part is the rendering, not the compositing. Rendering is useful for real progress in GUIs. Compositing just makes those transparent, shadowed windows possible.


      It means, that it reduces the time from things changing in software to the time on the screen. Just like reducing system time in an application will reduce the total execution time, accelerating the compositing layer reduces the total rendering time.

      THAT'S what I mean. You're so pent up on Apple not saying exactly what it's doing all the time, (which no one ever does) that you're neglecting the fact that they DO say exactly what it does. They DO say that it only accelerates compositing, and that QuartzExtreme accelerates total rendering time.

      Whether it just does Compositing or optimally accelerates all rendering, it still reduces total render time. And that, I think, deserves recognition, wether you think they're being misleading about it or not.

      This argument to me, is just like all those people who refuse to see someone's valid point because their spelling or grammar is a bit off. I had one guy who wouldn't listen to my empirical evidence about Japanese, just because I spelt it with two s's. This is the most ridiculous reason to not listen to one side of an argument.

      In general, people like that, and you, are spending too much time looking at faults in someone's arguments, and nitpicking, to notice the valid and important information that they yield. Personally, I try not to disregard any information merely based off the originating source. I've learned many things from the people that I hate the most, in ways that most people would have just ignored them.
      --

      I am unamerican, and proud of it!
    12. Re:One word: by be-fan · · Score: 1

      This isn't something like a typo or grammer mistake. This is a huge exaggeration verging on blatent lie.

      A) The compositing time is not a huge part of the overall process, and more importantly, other systems do not have the overhead of doing this compositing. Saying that QE accelerates "graphics" (which is what Apple's marketing drivel says) is akin to a car manufacturer touting tuned spark-plug timings as a major new feature.

      B) Apple makes a reference to Microsoft's Longhorn technology in its QE website. Longhorn is true 3D acceleration for graphics, which accelerates actual drawing. The two aren't remotely comparable.

      C) Obviously, there is something misleading about Apple's marketing. Every time an article about *real* hardware accelerated desktops comes up, people like you come up and mention Quartz Extreme!

      --
      A deep unwavering belief is a sure sign you're missing something...
    13. Re:One word: by Krach42 · · Score: 1

      God damn dude... I'm sick of this argument, lay off.

      I've said for my last three posts that I'm sick of arguing about this, because you won't listen to my point. I've already heard your point that QE doesn't accelerate anything but the composition stage, but you still refuse to recognize my point that acceleration of composition still qualifies as acceleration of graphics.

      It is NOT like a car manufacturer touting tuned spark-plug timings as a major new feature. It's like a car-manufacturer adding a different muffler that exhausts better, and raises the HP by 10HP or so. It's not a major improvement, it doesn't actually increase the running of the engine, it just sucks off exhaust faster. But it STILL PROVIDES A BOOST IN POWER.

      The two ARE comparable. Apple's QE uses OpenGL to accelerate compositing, while Longhong uses OpenGL to perform some accelerated graphics operations. Wow, look, I just compared them (correctly, and properly) right there.

      Because while there is a difference in using OpenGL to accelerate rendering or using OpenGL to accelerate compositing, it's still similar. It's not like comparing Apples to Oranges, it's like comparing Tangerinese to Oranges. Sure, tangerines are generally smaller, and don't contain as much substance as an orange, they are still in many vital and important ways, nearly the same fruit!

      Wether you like it or not, Apple's Quartz Extreme DOES use OpenGL to accelerate a portion of their graphics routines, and they are the first company to do so.

      SO JESUS CHRIST JUST SHUT UP UNLESS YOU'RE WILLING TO SEE THE VALIDITY IN MY POINT.

      --

      I am unamerican, and proud of it!
  11. Alpha Channeling by 2010 guarenteed! by HanzoSan · · Score: 1



    This is when I predict Xrender will be complete and Linux will be set to compete with OSX and Windows Longhorn in terms of rendering.

    I suggest that Rasterman just forget about Xrender and use directfb or opengl.

    --
    If you use Linux, please help development of Autopac
    1. Re:Alpha Channeling by 2010 guarenteed! by Anonymous Coward · · Score: 0

      Neither DirectFB nor OpenGL do what the XRender extension do. I suggest you shut the fuck up.

  12. Not enough details by bobtodd · · Score: 5, Informative
    Raster doesn't say whther he had 'Option "RenderAccel" "True"' enabled, which you must do on Nvidia cards if you want XRender acceleration.

    Here is the entry from the driver README:
    Option "RenderAccel" "boolean" Enable or disable hardware acceleration of the RENDER extension. THIS OPTION IS EXPERIMENTAL. ENABLE IT AT YOUR OWN RISK. There is no correctness test suite for the RENDER extension so NVIDIA can not verify that RENDER acceleration works correctly. Default: hardware acceleration of the RENDER extension is disabled.


    Following that option, this one is noted:

    Option "NoRenderExtension" "boolean" Disable the RENDER extension. Other than recompiling the X-server, XFree86 doesn't seem to have another way of disabling this. Fortunatly, we can control this from the driver so we export this option. This is useful in depth 8 where RENDER would normally steal most of the default colormap. Default: RENDER is offered when possible.

    1. Re:Not enough details by madmarcel · · Score: 3, Interesting

      When I enabled that setting on my linux box (redhat , latest version of X and a nvidia geforce 4200)
      I got weird glitches all over the screen, most notably in the window borders and wherever windows or menu's overlapped other things on the screen. There was an increase in speed however. As you might expect I disabled it after about 15 minutes. Ugh. I'll have another look at it when it's been fixed :D

    2. Re:Not enough details by molarmass192 · · Score: 1

      Has nVIDIA worked the kinks out of this yet? I remember some bad mojo about this option with OpenOffice that makes me hesistant to re-enable it. I'm still on the 4363 release of the drivers, haven't installed the 4496 ones yet.

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    3. Re:Not enough details by bobtodd · · Score: 1

      Forgot to suggest, perhaps some Cg shaders could speed up the types of operations Raster is looking for in E 0.17? Not that I know much about Cg, but I've read some of the docs for it, and for stuff like the kind of candy the next version will have, well the shader languages appear pretty much designed to do this on the hardware.

      Basically 2D vertex programs for the widgets' dimensions, fragment programs for effects on the contents of the widget shaders. Am I smoking crack here or what? Obviously its not a solution that will cover everyone, but I get the impression the next E is some while off anyhow, by which time many more people may have shader enabled GPUs.

      (Gotta love the lack of post editing.)

    4. Re:Not enough details by bobtodd · · Score: 1

      You're absolutely right, and the other guy too. I have it disabled myself (running 4496 drivers from the portage tree, there's a patch for linux 2.6 in there), I was more pointing out that that would be a relevant factor to the tests he was running. I didn't even notice much of a speedup from enabling it on my FX 5200, but I sure noticed the bugs. Mostly Gecko-based browser crashes for me.

      But not to turn this into nvews.net or anything.

    5. Re:Not enough details by seb_kjra · · Score: 1

      I just tried enabling it with an old 4363, and the latest 4496 drivers on a geforce 256. Worked fine until I loaded this article up in slashdot in galeon. At that point, my box locked up tight each time. 550 MHz P3-550E 440BX ASUS P3B with ASUS NVIDIA GEFORCE 256 Deluxe card Disabling it again made the system revert to normal. I didn't notice any improvement in my XD2 performance either (up to it locking up).

    6. Re:Not enough details by BenjyD · · Score: 3, Informative

      It appears to be fixed in 4496, the latest version of the drivers. 4363 would crash every few minutes or so, but 4496 is very stable. Still slower than 3123 for 2D stuff though.

  13. Re:Some Suggestions for Rasterman by Anonymous Coward · · Score: 0

    This is too long. Can someone give me a summary?

  14. An important truth about X by frovingslosh · · Score: 4, Funny

    It may be big and bloated, but at least it's slow.

    --
    I'm an American. I love this country and the freedoms that we used to have.
    1. Re:An important truth about X by OrangeTide · · Score: 3, Informative

      X is small and fast(at least XFree86 is). When you look at how much virtual memory it has mapped in. (using 'ps' for example). You also are seeing the amount of memory mapped in for the video frame buffer. Have a 32Mb video card? Well at *least* 32Mb of your virtual address space isn't mapping into system ram, it's mapped into video ram.

      Also, with any application, the code space doesn't take system RAM in the same sense as data space does. Normally you map in pages of memory that point straight to the I/O device the executable exists on. (this is called mmap). You only have a few pages of system memory actually in-use, for the areas of the program that are currently executing or have executed recently. It's pretty easy to draw an analogy to this and swap memory, except this is a lot simpler to implement in a kernel.

      I've build mini systems where XFree86 and Linux and a handful of fun apps ran in 4Mb of RAM. For a diskless system, you would want to use something like XIP (eXecute-In-Place). that way you don't have to go crazy loading in applications into system RAM or have funny mmap things that try to cache memory. (if it's all in RAM disk why are you caching RAM with more RAM? :)

      Also check out the AgendaVR3 pda. I own one of these gizmos. The company is basically out of business, but their PDAs definently ran XFree86 and a ton of apps with only 8Mb of flash and 8Mb of RAM.

      Of course. If XFree86 is still too big for you, there is always The MGR Window System. This fun program is designed to basically allow you to run multiple shells on the same screen in a graphical way, with each one having it's own font size if you want. It looks like monochrome X11, but it's a lot smaller. It also works over both telnet and ssh quite transparently. (all the GUI stuff is encoded in vt100-like escape codes). You can even do real graphics with it, look at this big screen shot if you don't believe me. Also it's open source, which is good because it probably hasn't used on linux after kernel version 1.2, have fun tinking with it. :)

      --
      “Common sense is not so common.” — Voltaire
    2. Re:An important truth about X by Anonymous Coward · · Score: 0

      I think you totally missed the "slow" part. Bloated may have been a stretch, but it is certianly slow. Anyone who disagrees has obviously never used it.

      Bloated is probably geared more towards the Xlib wrappers like gdk/gtk, qt, wxWindows etc... While not all wrappers are created equal... it seems that for some reason the more popular ones are slower and more bloated. Every tried compiling QT... jesus!

      I personally abandoned linux as a desktop OS because of X. I went the Mac route. I hoped for Berlin to catch fire or something else... but to no avail. I also got tired of non-stop hacking away at linux and decided to be an enduser again... but that is another story:-)

    3. Re:An important truth about X by Anonymous Coward · · Score: 0

      Anyone claiming that X is slow, has obviously never used a decent window manager. I'll admit that gnome/kde over X is slow, but that's not the fault of X. They are slow because they don't take full advantages of the X extensions (such as using shared mem, etc.)

    4. Re:An important truth about X by Anonymous Coward · · Score: 0

      It was reasonable to consider X11 big and bloated as recently as the mid-90s, but today, I'd say that compared to current versions of Windows and MacOS X, it's small and lightweight.

      Of course if we compare to Plan9 instead...

    5. Re:An important truth about X by Anonymous Coward · · Score: 0

      Can a "decent" window manager (or working X11 extension) keep XFree86 from sending expose events to a client every time one of its windows is unobscured?

      If not, then X is still slow.

      (I'll now wait for hundreds of rabid XFree zealots to tell me to "check my configuration" or something equally stupid.)

    6. Re:An important truth about X by FooBarWidget · · Score: 1

      Even Microsoft(r) Windows(tm) XP keeps sending expose events (or the Win32 equivalent of expose events) to an app when one of it's windows is unobscured.
      People always praise how fast WinXP is. The X way is no different than the Win32 way. Yet somehow you still say X is slow?

      (I'll now wait what the hundreds of rabid anti-XFree zealots have to say)

    7. Re:An important truth about X by OrangeTide · · Score: 1

      You want those expose events, because most windowing environments don't waste gobs of memory caching the contents every obscured window. Also it saves a lot on CPU as compare to doing nothing. (Application would only update if they are exposed, and only update the parts of their screen that are exposed).

      But actually there are very simple ways to eliminate them within your application in X11. There is a concept of a background Pixmap in X11. The nice thing about this is that you can manipulate this Drawable at any time. (If you manipulate the Window Drawable outside of an expose event you will get another event saying you should not have done that, of course you can disable that event if you wish).

      int XSetWindowBackgroundPixmap(Display *display, Window w, Pixmap background_pixmap);

      On an exposure with a background Pixmap, the X server will draw the contents of the background pixmap, then it will send the application an expose event. It expects the application to draw ontop of this (like with XTerm). But you can mask off Expose events and manipulate the background all day long. This is very common for Xlib-based games.

      It's important to remember that if you do this, you will always be wasting CPU. The easy way around this is to use the Focus event to shift your application into low-gear. This works especially well for games, but it would not work so well for something like xload or xmms. (xload is rarely focused on but is looked at by the user quite often, a good rate of updates is pretty nice to have).

      I'm not sure what your idea of "slow" and "fast" are. Perhaps you're being a bit unrealistic. If you want X, MacOS X, Win32 or Photon to be as "fast" as flipping through virtual terminals in linux. Then I think that's pretty unrealistic.

      If you think X takes way too long to "start up". I think that's pretty fair. With VESA Framebuffer X11 it starts up like in 5 seconds, but with the NVidia drivers it takes like 25+ seconds. Once it's up the NVidia one is noticable faster [and less stable] than VESA fb.

      If you see big ugly solid colored boxes in your apps whenever some exposure occurs and it takes like 2-10 seconds for them to actually start interacting with you. Well that is pretty common with applications that handle exposure events poorly (netscape does this constantly). As far as I can tell the backgrounds of all the little widgets are drawn, then it looks for all the data to fill in for them. This is the price X11 pays for not having a widget set built-in.

      Of course MacOS X doesn't really have a widget set built-in to the server either. And it updates really fast. All the stuff, widgets, window borders, menu bar, buttons, etc. Are controlled by a library. So every application is drawning all of it's own parts. The trick there is to use threads to seperate your update rountines from the actual guts of your system. (something netscape didn't do). It's important to have the *appearance* of the application being ready. Even if clicking on some button would only result in it being queued up as part of some event. This is how good apps work.

      Win32 apps can suffer simular but much more severe display/interaction problems. If the message queue, which holds almost everything the program does, is not serviced at a decent rate the responsiveness of the application can suffer. You know how sometimes you can have windows that seem "clear" when you try moving them around, maximizing them, or other windows leave "streaks" through them. That's what happens in bad win32 programs.

      So was that, as you say, "something equally stupid" ?

      --
      “Common sense is not so common.” — Voltaire
  15. is this the man who said that "Windows has won"? by rxed · · Score: 3, Insightful

    Is this the same person who some time ago said that: "Windows has won. Face it. The market is not driven by a technically superior kernel, or an OS that avoids its crashes a few times a day. Users don't (mostly) care. They just reboot and get on with it. They want apps. If the apps they want and like aren't there, it's a lose-lose. Windows has the apps. Linux does not. Its life on the desktop is limited to nice areas (video production, though Mac is very strong and with a UNIX core now will probably end up ruling the roost). The only place you are likely to see Linux is the embedded space." Slashdot article is also available here: http://slashdot.org/articles/02/07/20/1342205.shtm l?tid=106

  16. Thats a myth. by HanzoSan · · Score: 2, Insightful



    What Apps can I not run under Linux?

    My browser works, most of my games work, Photoshop works, Microsoft word works,

    Do your research, Wine, Transgaming, Crossoveroffice

    --
    If you use Linux, please help development of Autopac
    1. Re:Thats a myth. by Anonymous Coward · · Score: 0

      "Works" is relative. Lots of applications will run under Wine but still exhibit quirky behavior.

    2. Re:Thats a myth. by halo1982 · · Score: 1

      What Apps can I not run under Linux?

      My browser works, most of my games work, Photoshop works, Microsoft word works,

      Do your research, Wine, Transgaming, Crossoveroffice



      Yes, true. And Joe User doesn't want to bother (or know how) installing, recompiling, etc just to get their apps to work, when they can just install the program and run it from Windows and only have a few crashes/reboots. Sad but true. I think you may be forgetting not everyone is a /.er

      Anyway though, thats totally off topic. I just had to get that in.

    3. Re:Thats a myth. by Anonymous Coward · · Score: 0

      You just completely missed the point.

    4. Re:Thats a myth. by OrangeTide · · Score: 1

      Every single app that I would want to run is already available and runs under Linux natively. For example:

      mozilla, neverwinter nights(w/ expansion pack), gcc, gdb, make, gnuplot, bc, gimp, icebreaker, valgrind, electric fence, Crossfire, LyX, angband, Nethack (falcon's eye), vim, XFree86, pekwm and netpbm.

      There are few apps that I run that are not on that list. Really, if you think about it. On any computer system the top 90% of the apps you run could probably be counted on one hand.

      But I'm one of those unusual people who has his laser printer working in Linux and only has a windows box to test the software I write. I compile the windows version on Linux of course. (using these scripts to build the cross compiler).

      --
      “Common sense is not so common.” — Voltaire
    5. Re:Thats a myth. by Anonymous Coward · · Score: 0

      Can't see Excel, Powerpoint or MS Project on that list, strangely enough.

    6. Re:Thats a myth. by Anonymous Coward · · Score: 0

      Maybe because he is talking about apps that he "would want to run." Slithy is much better than powerpoint, by the way.

    7. Re:Thats a myth. by Anonymous Coward · · Score: 0
      Animation:Master, Combustion, Motionbuilder 5 and Cinema4D are just a few apps which are keeping me on Windows (Note to apple fans; I know all those apps run on OS X, and if the hardware is there next time I upgrade my computer Apple will most likely get my money).

      Yes there are linux supstitutes for most of those, but they are several times more expensive and I'm not going to drop several thousand dollars on completely new apps just so that I can run linux.

    8. Re:Thats a myth. by Xerithane · · Score: 1

      Dumbass, he was quoting Rasterman in a previous Slashdot story. He wasn't saying that.

      --
      Dacels Jewelers can't be trusted.
  17. Putting the "wine" back in whining. by Anonymous Coward · · Score: 0

    "Also how many more years will it take before Linux can compete with OSX? 5 more years? Maybe 10? We have forever and a day you know."

    Why? Are you in a rush to be somewere?

    1. Re:Putting the "wine" back in whining. by MikeFM · · Score: 2, Insightful

      I still believe in the answer that was always given for id games when asked when they'll release the product.. "When it's done." I think that applies to opensource even more.

      Besides we shouldn't be competing with MacOS or Windows. We don't need to clone those OS's or desktops. We need to create our own desktop that is unique. Make it work.. don't make it just to attract Windows and Mac users.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    2. Re:Putting the "wine" back in whining. by HanzoSan · · Score: 0, Redundant

      How is our OS supposed to be worth using if its not better than theirs?

      The average user does not judge better by how secure or stable it is, the judge better by how it looks, how smooth and easy to use it is, and how much eye candy it has.

      --
      If you use Linux, please help development of Autopac
    3. Re:Putting the "wine" back in whining. by Anonymous Coward · · Score: 0

      Yeah, who needs this "easy to configure" stuff anyhow?

    4. Re:Putting the "wine" back in whining. by yerricde · · Score: 1

      Make it work.. don't make it just to attract Windows and Mac users.

      If an operating system doesn't have market share, developers of device drivers will tend to ignore it.

      --
      Will I retire or break 10K?
    5. Re:Putting the "wine" back in whining. by MikeFM · · Score: 1

      I have no desire to kill Windows or MacOS or win all their customers over. I want a tool designed specific to my needs. That's how Linux got to be so good in the first place. Changing our methodology to try to win your average users will hurt us in the end. If there is a feature of Windows or MacOS you truely like then add it but don't go out of your way to clone those interfaces. If those users like what you've done they'll use your interface.. if not maybe they'll stick to what they already know. It does little good to have choices in which tool you use if all the tools are exactly alike.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    6. Re:Putting the "wine" back in whining. by MikeFM · · Score: 1

      So the simple solution would be to make your own devices.. something that i already becoming quite popular. If you design it and license it free of cost you'll have somebody willing to manufacter and sale it.. and obviously if you design it then you can make the device drivers for it. ;)

      There is something to be said for your argument in the short term but I don't think that cloning Windows is going to get Linux the user base it needs to get these drivers. Instead we need to be lobbying the large companies that have a Linux interest for their support.. IBM, HP, etc.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    7. Re:Putting the "wine" back in whining. by MikeFM · · Score: 1

      You've obviously not configured many things if you think Windows is overall easier than Linux. Clicking your way through pretty menus is a lot more effort than paging through a config file. Either way if you don't know what the options mean you're most likely going to get less than optimal results. :)

      Not that I'm against making things easy to configure.. I just don't think Windows manages to live up to that hope. As for myself I'm mostly interested in making tools that makes it easy to configure and manage large numbers of machines from a single interface on a single machine. Even ssh'ing into different machines is a pain if you have to do it to often. Also I like to have server options abstracted so that they are the same regardless of the product be used to provide the service. ie I want to be able to configure all web servers with the same config spec, all email servers, etc.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  18. Re:Some Suggestions for Rasterman by Rooktoven · · Score: 1

    I actually have a mod point and I'm not going to spend it here. I'd give an underrated if it wasn't so long. I know that's the joke and parts _are_ funny, but more shock value than than witty commentary, IMO.

    Hey and at least this comment will make someone browse at -1.

    --

    Acquiescence leads to obliteration
  19. Re:is this the man who said that "Windows has won" by Anonymous Coward · · Score: 0

    yes, it is the same guy.
    just because he thinks market wise linux doesn't have a chance in taking over the desktop doesn't mean that he doesn't want to have a badass wm / suite of libs for himself (and anyone else who wants to use it)

  20. Keith IS being paid. by HanzoSan · · Score: 3, Insightful



    Also the only reason its taking so long is because they wont fork, theres millions of developers who Redhat, Suse, Lindows etc would love to pay to develop Xrender, you think Keith Packard is the only developer in the world qualified to do this? No hes not, and neither is Carl Worth, but until there is a fork, everything goes through this core group of developers who decide everything.

    Its a management issue moreso than lack of developers or lack of money, believe me if Transgaming can get money, Xfree could get about x10 that amount of money, Mandrake has 15,000 subscribers paying $60 a year or something.

    This isnt about money, its not about lack of programmers, its about management, the developers argue and fight over stupid stuff on mailing lists, theres only two developers working on Xrender and these developers seem over worked because they are doing so many other projects.

    Its more complicated than it seems.

    Xwin is not an official fork, at least I was told that it wasnt a fork, it was more of a threat of a fork, I am wishing and hoping they DO fork and then accept money somehow so we can pay developers to write this very important code.

    --
    If you use Linux, please help development of Autopac
    1. Re:Keith IS being paid. by Anonymous Coward · · Score: 0

      In defense of that poster...you're the one who brought up Keith Packard. And also, XFree is not a Linux project, it's multiplatform. Distribution money has nothing to do with what they make.

    2. Re:Keith IS being paid. by KentoNET · · Score: 2

      XWin is forking the Xlib (pretty much the heart of XFree86), though their own Xr and XCB (and a few other) projects. Check their site again, there are already CVS pservers up with code.

      --
      "You tried your best and failed miserably. The lesson is...never try. Heh!" -Homer
    3. Re:Keith IS being paid. by HanzoSan · · Score: 2, Interesting



      Interesting, but how can we fund them? They dont accept donations, they dont have a way for someone like me who doesnt have the skills to develop Xrender to pay people who do.

      2 people on Xrender is why its taking so long.

      --
      If you use Linux, please help development of Autopac
    4. Re:Keith IS being paid. by FooBarWidget · · Score: 2

      Those are X extensions, not forks.

  21. Graphics cards and computation by Amit+J.+Patel · · Score: 5, Interesting

    There has been some work on using graphics cards for computation. The tough part is figuring out how to rephrase your algorithm in terms of what the GPU can handle. You'd expect matrix math to work out but people have tried to implement more interesting algorithms too. :-)

    - Amit
    1. Re:Graphics cards and computation by cybermace5 · · Score: 1

      Back in school, a lot of discussion was being thrown around about using video cards to process the RC5 crack. Only thing was the processor may not be all that much faster than a computer processor. It would have depended on how close the graphic optimizations were to the code-crack algorithm.

      --
      ...
    2. Re: Graphics cards and computation by Black+Parrot · · Score: 4, Informative


      > There has been some work on using graphics cards for computation. The tough part is figuring out how to rephrase your algorithm in terms of what the GPU can handle.

      Isn't there a lot of sloth involved in reading your results back as well?

      Meanwhile, users of GCC can exploit whatever multimedia SIMD instructions their processor supports by telling the processor you want to use them. For x86 see this and this; for other architectures start here. (Notice the GCC version in the URL; the supported options sometimes change between versions, so you should look in a version of the GCC Manual that matches what you're actually using.)

      I confess I haven't benchmarked these options, but in theory they should boost the performance of some kinds of number-crunching algorithms.

      BTW, Linuxers can find what multimedia extensions their CPU supports with cat /proc/cpuinfo, even from a user account. Look for multimedia support in the list at the end of the cpuinfo. Lots of those extensions only support integers or low-resolution fp numbers, but IIRC SSE2 should be good for high-precision FP operations. Use google to find out what your extensions are good for.

      And post us back if you do some benchmarking, or find some good ones on the Web.

      --
      Sheesh, evil *and* a jerk. -- Jade
    3. Re: Graphics cards and computation by Piquan · · Score: 1

      Meanwhile, users of GCC can exploit whatever multimedia SIMD instructions their processor supports

      Yeah, I've always wondered about that. About how well it explots them, for example, and what GCC needs to recognize a SIMD-acceleratable bit of code. (I also wonder if it puts NaN and Inf traps around 3Dnow! instructions, or if compiling with 3Dnow! means you lose IEEE floating point.)

      Anybody have links to this kind of info?

    4. Re: Graphics cards and computation by Anonymous Coward · · Score: 0

      I fear that it probably doesn't exploit them at all. The -mmmx -msse and -msse2 options is for preoptimized internals or at least something similar to that.

    5. Re: Graphics cards and computation by BenjyD · · Score: 2, Interesting

      The compiler can make some use of multimedia extensions, but it can't exploit them fully. To get the best performance often requires a non-trivial modification of the loop you're optimising, which you can really only get (at the moment) by writing hand optimised assembly.

      I've written MMX versions of algorithms (blending, intensity etc) that are 5 times faster than their C equivalent - I've yet to see that kind of improvement from GCC.

    6. Re: Graphics cards and computation by Carewolf · · Score: 1

      Those options only enables you to use SIMD-specific extentions in your code. GCC cant do any vectorization on its own yet. People are working on it so expect something good for gcc 3.4 or 3.5.

  22. Rendering backends for Evas??? by JFMulder · · Score: 3, Funny

    What, so now they've got rendering backends in Evangelions?

    1. Re:Rendering backends for Evas??? by Anonymous Coward · · Score: 1, Funny

      I'm not sure if you've heard of them, but worldwide there are a hundreds of thousands of women called Eva. The most famous would probably be Eva Peron and Eva Braun.

    2. Re:Rendering backends for Evas??? by JFMulder · · Score: 1

      Sure, I've heard this name before. But the geek factor made me thing of evangelions first. :p

    3. Re:Rendering backends for Evas??? by Sri+Lumpa · · Score: 1


      Yeah, but a real geek is more likely to meet a real eva face to face than a real woman face to face. Thank god I am a fake geek.

      --
      "The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers." Bill Gates,
  23. Re:is this the man who said that "Windows has won" by Anonymous Coward · · Score: 0

    Here's the rasterman article at linux and main where he does indeed say what you have posted. Your post sounds like flamebait, but upon reading the links, you're right.

  24. Raster's on holiday by Rabid+Penguin · · Score: 5, Informative

    Normally, he would answer some questions or comments posted about something he has written, but he will be out of town for at least a few days.

    I highly doubt he meant for this to get wide-spread exposure beyond developers of Enlightenment or X. Since it has, this is a good opportunity. I'll make this clear for anyone that didn't catch it, raster WANTS XRENDER TO BE FASTER! If there is a way to alter configuration or to recode the benchmark to do so, he wants to know about it.

    Rather than posting questions about his configuration (which he can't answer right now), grab the benchmarks that he put up and get better results.

    Now back to your regularly scheduled trolling...

    1. Re:Raster's on holiday by bobtodd · · Score: 1

      If the past is any guide, a number of Slashdotters are awaiting E 0.17 with at least some level of hope that Raster will come through with something that rocks once again. In that light, he'd be silly not to expect his first news post in months to get some attention.

      I still have some version of E .16 installed, and use it from time to time. But then, I switch between window managers like a little girl dressing up her dolly.

      I also think its a little....unusual to expect anyone to go and tell him about configurations; I know of the guy as primarily a graphics oriented programmer, who I would expect to know his drivers already. Do you like being told how to suck eggs?

    2. Re:Raster's on holiday by Rabid+Penguin · · Score: 1

      Maybe he did expect it, he didn't mention one way or another before he left. "Some attention" is much different than making it on slashdot, which I think would fall more under the "ass-load of attention" category. :-)

      You're right, he is a graphics oriented programmer, and he does know his stuff quite well. My comment regarding configurations was addressing numerous posters asking "did he enable feature X?", "is he using kernel Y?", or "did he install the right driver?", etc.

      The point was, he made his testing methods available, if people take issue with them they are free to do something about it. He wants to be proven wrong so he has a good reason to add an Xrender backend to Evas.

    3. Re:Raster's on holiday by Crazy+Eight · · Score: 1

      I just tried it on a Ti4200 with `"RenderAccel" "True"' and got the same result. Xrender wins round 1, but blows at everything else.

    4. Re:Raster's on holiday by bobtodd · · Score: 1

      Fair enough. Its got me interested enough that I'm using my rainy Saturday downloading cvs E with the notion of doing some experiments in OpenGL and perhaps Cg, and people are testing the benchmark and trying stuff out. With any luck at least a little useful feedback will come back to the project.

      Since you're involved (according to your site), any idea to what extent CVS runs at the moment? Last time I tried a few months ago I used the Gentoo cvs packages, and wasn't sure whether I got everything working (or not) as it should have, so consequently wasn't certain what was a bug, what was stubbed out feature, and what was a distro bug.

      Building it all by hand will give me something I at least know is worth basing bug reports (or patches) on.

    5. Re:Raster's on holiday by Rabid+Penguin · · Score: 1

      Yes, I am one of the more active developers on the enlightenment project at this time.

      In all honesty, I would not bother checking the window manager out of CVS, but some of the libraries are worthwhile to look at now. The actual window manager code was more of a test bed to try out a few new ideas. Some of them panned out, others didn't, but the concensus has been to take the good things from it and work it into a new codebase. Much work is going into solidifying the library backends before work on the new window manager gets rolling.

    6. Re:Raster's on holiday by Sleuth · · Score: 1

      While Rabid Penguin doesn't run E17 day to day, others do. Your mileage may vary. Follow the CVS instructions on the web site to build it and have fun.

  25. Re:Some Suggestions for Rasterman by HBI · · Score: 0, Offtopic

    Dude, you have read some P.J. O'Rourke I see!

    Nice mixing of his themes.

    --
    HBI's Law: Frequency of calling others Nazis is directly correlated with the likelihood of the accuser being Communist.
  26. Re:Some Suggestions for Rasterman by Anonymous Coward · · Score: 0

    This is fuckin' hilarious.

  27. Lessons from the ancient by Empiric · · Score: 4, Interesting

    There's an example from back in the 80's that still probably serves as a good engineering reference for people working on hardware/software driver issues.

    In those days of yore (only in the computer industry can one refer to something 20 years ago as "yore"...) there was the Commodore 64. It retains it's place as a pioneering home computer in that it offered very good (for the time) graphics and sound capability, and an amazing 64K of RAM, in an inexpensive unit. But then came its bastard son...

    The 1541 floppy disk drive. It became the storage option for a home user once they became infuriated enough with the capabilites of cassette-tape backup to pony up for storage on a real medium. Unfortunately, the 1541 was slow. Unbelievably slow. Slow enough to think, just maybe, there were little dwarven people in your serial interface cable running your bits back and forth by hand.

    Now, a very unique attribute of the 1541 drive was that it had its own 6502 processor and firmware. Plausibly, having in effect a "disk-drive-coprocessor" would accelerate your data transfer. It did not. Not remotely. Running through a disassembly of the 6502 firmware revealed endless, meandering code to provide what would appear, on the surface, to be a pretty straightforward piece of functionality: send data bits over the data pin and handshake it over the handshake signal pin.

    As the market forces of installed base and demand for faster speed imposed themselves, solutions to the 1541 speed problem were found by third party companies. Software was released which performed such functions as loading from disk and backing up floppies as speeds that were many, many times faster than the 1541's base hardware and firmware could offer.

    The top of this particular speed-enhancement heap was a nice strategy involving utilizing both the Commodore 64's and the 1541's processors, and the serial connection, optimally. Literally optimally. Assembly routines were written to run on the both 64 and the 1541 side to exactly synchronize the sending and receiving of bits on a clock-cycle by clock-cycle basis. Taking advantage of the fact both 6502's were running at 1 Mhz, the 1541's code would start blasting the data across the serial line to the corresponding 64 code, which would pull it off the serial bus within a 3-clock-cycle window (you could not write the two routines to be any more in sync than a couple 6502 instructions). This method used no handshaking whatsoever for large blocks of data being sent from the drive to the computer, and so, in an added speed coup, the handshaking line was also used for data, doubling the effective speed.

    The 1541 still seems pertinent as an example of a computer function that one would probably think would best be done primarily on a software level (running on the Commodore 64), but was engineered instead to utilize a more-hardware approach (on the 1541), only to be rescued by better software to utilize the hardware (on both).

    There's probably still a few design lessons from the "ancient" 1541, for both the hardware and the software guys.

    --
    ~ Whence do you come, slayer of men, or where are you going, conqueror of space?
    1. Re:Lessons from the ancient by red+floyd · · Score: 2, Interesting

      The other classic example was the original PC-AT MFM controller.

      IIRC, they originally tried (slave mode -- the only available thing then) DMA, and in general, it was faster to pump the data out by hand.

      --
      The only reason we have the rights we have is that people just like us died to gain those rights. -- Cheerio Boy
    2. Re:Lessons from the ancient by The+Vulture · · Score: 4, Insightful

      The 1541 drive itself was actually quite fast, reading an entire sector in much less than a second (if you set the job code directly in the drive). It was the serial transfer that was super slow (as you stated).

      Unfortunately, the fast loaders assuming that the CPU and the drive both ran at exactly the same speed was a cause for problems. The PAL version of the C64 ran at a different speed (a bit slower, I believe), thus making fast loaders either NTSC or PAL specific (although there may have been one or two that could actually take the clock speed into consideration). The same fault meant that fast loaders sometimes didn't work with some variants of the drives (different CPU's, all supposedly 6502 compatible, but not necessarily so).

      Additionally, because these fast loaders required exact timing, something had to be done with the VIC-II (interrupts from it would cause the 6510 in the C64 to lose it's timing) - usually the screen was blanked (basically turning off the VIC-II), or at the least, turning off sprites (sprites by the way, while nice, were a PITA becuase they disrupted everything, including raster timing).

      Commodore did screw things up... They had four (or was it six?) connectors on each end of the cable, they could have made it at least quai-parallel, rather than the serial with handshaking. Unfortunately, they only hooked up two, CLK (handshaking clock) and DATA (for the data bit). However, seeing as the 1541 was the same hardware mechanism as the 1540 (it's predecessor for the VIC-20) and contained most of the same software (you could use a "user" command to change the speed for the VIC-20), they couldn't just go out and change the design. I almost get the feeling that they took the serial bus from the VIC-20, put it in the C64, figuring that they'd be able to use the 1540 drive. Then at the last minute, they realized that it wouldn't work and they made the 1541, as well as a ROM upgrade for the 1540 to work with the C64.

      While getting rid of the handshaking and transferring an extra bit over that line made sense then, with modern computers, I wouldn't trust it. There's too many components from too many manufacturers, and I really like my MP3 and pr0n collections too much to lose them to one bit being corrupted.

      -- Joe

    3. Re:Lessons from the ancient by groomed · · Score: 0, Troll

      Christ, have you been permanently disfigured by a creative writing class or something? And what does any of this have to do with the topic at hand? Jeez. Do you know anything about XRender or evas? Or do you just reflexively rehash this story any time it seems vaguely appropriate? How does your meandering demented pontification contribute to the question why XRender performs slower? What "design lessons" are to be learned from a 20 year old solution to a problem that has long since been solved? Why don't you mention some actually germane examples, such as how "blitter" chips were displaced over the course of time by ever-faster CPUs? Bah humbug. Get a grip.

    4. Re:Lessons from the ancient by Empiric · · Score: 0, Troll

      I'll take the hint of the number of your comments modded "troll", and not bite on this one.

      --
      ~ Whence do you come, slayer of men, or where are you going, conqueror of space?
    5. Re:Lessons from the ancient by Anonymous Coward · · Score: 0

      >Or do you just reflexively rehash this story any time it seems vaguely appropriate?

      Next time, do your own research.

    6. Re:Lessons from the ancient by Alien+Being · · Score: 2, Funny

      It's just like my uncle Fortranna Rosanadanna used to tell me. It's always something. Either your XRENDER is slow or you're stuck with a two bit disk drive.

      Back to you, Jane.

      -Rosanna

    7. Re:Lessons from the ancient by Trogre · · Score: 1

      It's always something. Either your XRENDER is slow or you're stuck with a two bit disk drive.

      ... or stuck with a two-bit software vendor.

      --
      "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    8. Re:Lessons from the ancient by mikolas · · Score: 1

      Actually the flaw in the design came from changing the physical interface of the peripheral bus due to some cost related issues. C64 was originally intended to use IEEE488 (or IEEE488 like) bus in order to hook up the drive, but as IEEE488 cables were too expensive and Commodore already had a shitload of old cables in stock (from VIC-20 days), the management made a decision to change the physical interface. The bus driver was designed for parallel transfers, thus making it totally unusable with the slow serial bus. As you can see from the bus protocol, it pretty much works like an IEEE488 bus having the same style device selection etc. commands.

    9. Re:Lessons from the ancient by ThrobbingGristle · · Score: 1

      I had a hardware based accelerator for my C64 floppy drive.... it was called Zip something. Anyway, you replaced a chip in the floppy drive or the commodore (or both?) and then you had drilled a hole in the back of the C64 for a switch to enable/disable the accelerated loading. It was orders of magnitude faster when enabled...

      Then my brother fried his C64 with a bad power supply. So he grabbed my C64 and fried it too!

    10. Re:Lessons from the ancient by unfortunateson · · Score: 2, Interesting

      Hmm... probably less relevant to this discussion, but the Apple ][ floppy driver had some other interesting de-optimizations:

      The way I was told the story, Apple was buying lower-quality components than those on more expensive drives, and to compensate, would do each disk operation (like a read) seven times, and vote on the result.

      Several patched drivers came out that merely read 5 or, if you were willing to risk data errors, 3 times. Greatly improved performance.

      Of course, no mention of Apple ][ disks would be complete without the mention that a blank floppy would cause some sort of infinite loop because the directory table couldn't be found. Hence:

      On a clear disk you can seek forever!

      --
      Design for Use, not Construction!
    11. Re:Lessons from the ancient by Anonymous Coward · · Score: 0

      Actually, starting in the early 90s, PC video boards started shipping with blitters, and it's standard nowadays. Well, there might be some brain-damaged built-in video units on really cheap PCs that don't have blitter functionality, but those are most certainly a nasty exception, rather than the rule.

      Since (almost) every board has one, and there's little or no general interest in 2D anymore, nobody markets them as features. It's a shame, really.

      Besides, AGP 8x is only what, two gigs a sec? Onboard video RAM is getting upwards of 30 gigs a sec now.. (GeForce 5900s)

    12. Re:Lessons from the ancient by kris · · Score: 1

      CBM did not want the 1540 and 1541 to be fast. These drives were consumer models, and sold vastly cheaper than their 4040 and 8080 drives, which had a parallel IEEE bus. CBM wanted you to buy their IEEE user port adapter and then pay for the 4040 and 8080 drives in order to get a "professional" floppy.

      The 1540 and 1541 were crippled on purpose.

      Kristian

  28. Unfair comparison by Anonymous Coward · · Score: 3, Informative

    The numbers being reported for this benchmark are at best questionable--yeah, like that's new. The imlib image is composed off-screen and then rendered at the last moment to the display. The Xrender, non-off screen, version has the penalty of having to upgrade the physical display so frequently. If you make imlib2 render the image to the screen *every* draw, you end up getting results very similar to the Xrender on-screen display. Now, the fact that the Xrender off-screen display is so poor *is* a concern.

    1. Re:Unfair comparison by Anonymous Coward · · Score: 0

      s/upgrade/update

    2. Re:Unfair comparison by Yokaze · · Score: 1

      Yes, this might be unfair, but consider the first test.
      Simply blending the images and displaying them is faster than the off-screen variant and the imlib2 code.

      So, the possible penalty seems to be irrelevant.
      Also, the "overhead" of X seems to be unrelevant, too.

      I'd say that the scaling and filtering implemented in either X or the drivers is suboptimal.

      --
      "Between strong and weak, between rich and poor [...], it is freedom which oppresses and the law which sets free"
    3. Re:Unfair comparison by Anonymous Coward · · Score: 0

      I'm not completely sure about this, but maybe the issue is not xrender related, but more pixmap related: in one of my codes, I used to do some XCopyArea from a pixmap onto another (same depth etc). It appeared that this operation was sometimes very slow, sometimes not, depending on the xfree driver (almost always fast on my old mach64, always slow on my radeon, and many users reported it to be very slow) and something else (since the mach64 was sometimes fast and sometimes very slow). Then I switched to a XCopyArea from the pixmap to the window, and all the slowdowns disappeared. If anyone has a reasonable explanation ..

    4. Re:Unfair comparison by Anonymous Coward · · Score: 0

      I have hardware render acceleration disabled, so the Xrendering was software based. With my modification to make imlib2 render the image every draw, the results for imlib2 are virtually identical to Xrender on- and off- screen. As for the penalty, I should have been more exact. The overhead of software rendering (handling by X) is apparently the cause of the problem. As you've pointed out, the scaling and filtering are apparently done in software (XRender software routines, a part of X), at least for your graphics card.

      The reason I was calling it an unfair comparison is simply because the imlib2 tests do all the drawing in a graphics buffer *in main memory*, then transfer the result to the video memory. Even with best case scenario, the AGP bus isn't as fast as the front side bus, so it's no wonder imlib2 could compete versus hardware rendering which draws to the screen each image. The fact that the first test is actually able to beat imlib2 shows that the video card must be doing a pretty good job at least in blitting.

      Now, comparing the off-screen Xrender numbers to the Imlib2 numbers would be a pretty valid comparison, as both draw off-screen. I can only guess that Xrender happens to not use a double buffer at any point under some wild assumption that it'll be faster. In that regard, if both Xrender and Imlib2 used off-screen buffers and double buffered to the screen at a rate of ~30fps, then the benchmark would produce some meaningful values. Until then, it's comparing apples and oranges, really, in the area that counts (drawing to the screen).

  29. nVidia Linux woes by bleachboy · · Score: 4, Informative
    I have an nVidia GeForce2 Ultra, and recently upgraded my kernel to 2.5.75. It caused my X graphics to become unbelievably slow -- like 2400 baud modem slow when doing a directory listing or anything where text was scrolling. Downgrading to 2.4.21-ac4 (ac4 needed for some Adaptec drivers) and it was back to fast again. Further, my favorite 3D shooter was about 60 fps faster with the 2.4 kernel. The kernels were compiled identically, or at least as identically as you can get with 2.4 vs 2.5. Here's a few tips I can offer to the nVidia users out there:
    • In case you don't know, nVidia provides official (but woefully non-GPL) drivers. They also have a message board which I found to be quite informative at times.
    • Compile your kernel with MTRR support. It will speed things up a great deal.
    • Compile your kernel without AGPGART support. The nVidia driver(s) are faster.
    • If you want to try the nVidia driver with a 2.5 kernel, you'll need a patch.
    • If you have an nForce chipset, make sure to add "mem=nopentium" to your kernel boot parameters, or else your system will be incredibly unstable. Better yet, ditch your nForce chipset (I did) since the Linux support totally blows, at least for now. Give your old nForce chipset to your wife, girlfriend, mother, Windows box, or whatever.
    1. Re:nVidia Linux woes by equiraptor · · Score: 1

      I really appreciate the insinuation that women can't do Linux. Maybe the ones you know can't, but many of us can.

    2. Re:nVidia Linux woes by Zaffle · · Score: 1, Redundant

      * If you have an nForce chipset, make sure to add "mem=nopentium" to your kernel boot parameters, or else your system will be incredibly unstable. Better yet, ditch your nForce chipset (I did) since the Linux support totally blows, at least for now. Give your old nForce chipset to your wife, girlfriend, mother, Windows box, or whatever.

      Oh how I agree with that statement.

      Recently my motherboard died of bad caps, so decided to splash out on an nvidia motherboard. Damn thing had crap all linux support. I don't know if it was the m/b manufacturer (MSI), or nvidia chipsets in general, but:

      USB didn't work (even under windows w/ or w/o nvidia special drivers), actually, the worked, but very rarely.

      Onboard Sound didn't work under linux (w/ nvidia special binary only drivers)

      Onboard network card, (again needed nvidia binary only drivers), didn't work.

      And the damn thing crashed often.

      I didn't know about the mem=nopentium trick, and would have tried it, but I sent the board back to my supplier with, "tried it, won't work, won't buy, won't recommend". They didn't put up much protest.

      I stick with the via chipsets. Sure they aren't supported by via for linux (atleast, not in any real way, they do have drivers, but they are binary only, and don't work). The opensource drivers work damn well. Infact, I suspect, better than the manufacturers binary only (provided you can get them to work).

      Then again, thats just for my home pc, which I cheap out on. For any server, I just stick with IBM parts. damn things just plain well WORK!

      --

      I use to have a funny sig, but slash cut it off, and I forgot what the punchline was.
    3. Re:nVidia Linux woes by Anonymous Coward · · Score: 0

      It also insinuates that some people's signifigant others is Windows. :)

    4. Re:nVidia Linux woes by Anonymous Coward · · Score: 0

      >your wife, girlfriend, mother, Windows box

      mmm... all with penetratable holes. yum.

    5. Re:nVidia Linux woes by crimsun · · Score: 1

      You shouldn't have to append "mem=nopentium" if you use Linux 2.4.19 or newer (all 2.6.0* as well). This is what the Nvidia driver engineers say, at least...

    6. Re:nVidia Linux woes by shellbeach · · Score: 1
      I have an nVidia GeForce2 Ultra, and recently upgraded my kernel to 2.5.75. It caused my X graphics to become unbelievably slow -- like 2400 baud modem slow when doing a directory listing or anything where text was scrolling.

      That's wierd - I haven't noticed any lag in performance using my nVidia GF4 440 MX card under 2.5.73 ...

    7. Re:nVidia Linux woes by nempo · · Score: 1

      USB does work very well actually. I have too admit that I had some trouble getting it going at first but when I realized I should use the 'ohci' driver instead of the 'uhci' everything worked out fine.

      The build-in sound card was too me very easy to get up and running, I compiled my kernel with drivers for 'AC97' (since it really is an AC97 with a few tweaks, dolby sound etc.) and OSS modules support (don't know if this one is necessary, havn't tested without). After this it was just a matter off 'insmod nvaudio' and I had audio.

      The nic was the easiest part, the only thing needed was support for 'on board controllers' and the pre-compiled module worked like it intended.

      I did have some problems with an earlier nic driver version (freezes and such when I used the nic) but these are all gone since I installed version 1.0-0256.

      --
      --- No, english is not my mother tongue.
    8. Re:nVidia Linux woes by Schugy · · Score: 1

      Just buy a board with the SIS748+963L-Chipset like the ASRock K7S8XE. Use a new Kernel like 2.4.22rc2 or you have to boot with "noapic". That board is much faster than my old (very good supported) kt133a-Chipset and it's saving much bandwith when grabbing CDs. You may have problems with some old multiwordDMA devices in DMA mode but hdparm helps here and don't bother because of 20% cpu usage. USB works (e.g. ehci or usb-ohci if you don't use USB2 hardware anyway), ALSA knows the C-Media soundchip and the LAN controller works with SIS900 module. Even 3D works without generic agpgartSISsupport. It's rock stable now, as long as I don't try to mount a CD in my old SAMSUNG CD-R/RW SW-408B BS04 (32x/8x/8x) in dma mode. I'm in contact with the SIS-IDE-hackers and I hope it will be fully supported soon. There're other advantages: Just buy one 512MB DDR module instead of 2 x 256MB. There's almost no difference between nforce2ultra (dual channel ddr) and nforce2 (single channel) because the Athlon XP hasn't more memory bandwith. The SIS748 is often just 5% behind the nforce2ultra when running 3d-Games. But this are just a few frames when only a game is running. In the real world you watch a DVD while you download pictures from your digi-cam or you wait for your hard drive loading huge 3d-Games and so on and the SIS-chip has much bandwith to do all things at the same time. But I still have to buy NVIDIA graphic cards because they are the only ones who have really good drivers for 100% power. Schugy

    9. Re:nVidia Linux woes by equiraptor · · Score: 1

      nah, could be their parent. :)

    10. Re:nVidia Linux woes by MaCa · · Score: 1

      I own an Asus A7N-266 VM ( nForce chipset ) and spent a hell of a time trying to make this board work properly with linux. But once I've got it to work haven't got what to complain about anymore.

      As they say in their driver download page, USB, IDE and basic things work OK out of the box with stock kernel drivers. Audio also work OK with the default intel i810 driver - i810 ALSA driver works well too. The audio driver provided by nVidia's drivers (based on the i810 ) is also GPL and works better then the i810, though.

      The problem arised when I tryied to make their proprietary NIC (nvnet.o) driver work. Using the module I built with the sources from their last release (1.0-0261) my system just hanged when I loaded the NIC module. Unloading it made the system behave normally. I followed an advice from the foruns and compiled the nvnet driver from the previuous release (1.0-0256) - works like a charm ;-) For the audio driver, I sticked to the one from the latest release since it works perfectly.

      I've set up a page describing what I've done.

  30. Well, yes by reynaert · · Score: 2, Interesting

    As far as I know, only the Matrox G400 card has good hardware render accelaration. NVidia's support is still experimental and rather poor. Render is still considered experimental, and speed is not yet considered to be very important. Full accelerated support is planned for XFree86 5.

  31. Re:Yawn by Anonymous Coward · · Score: 0

    a "poor" "server-only OS"... unlike IIS, which is clearly the bees testicles?

    riiiiight.

    I agree that X is slow, sucks etc etc, but fuck man - get your arguments sorted out. say that theres no apps, blahblahblah, thats more convincing than the shit you just spouted about it being a poor server OS.

  32. It takes time to talk to hardware by garyebickford · · Score: 3, Interesting

    I worked on 2D & 3D libs a while back for a graphics company. Among the biggest problems at the time was that each different output device had its own feature set, implemented slightly differently. Every designer had their own ideas of what would be 'cool' in their graphics engine, which tended to follow the latest progress in the field.

    General purpose graphics libraries such as ours ended up spending most of the time dealing with the cool features than the features saved. For example, if a plotter had a 2D perspective transform built in, was it better to do the 3D projection ourselves and just feed it untransformed vectors, or map the 3D in such a way as to allow the 2D processing of the plotter to help out? This might require pre-computing sample data.

    Also, since the plotter had 2D transforms we have to do a lot more work including reading the plotter's status and inverting the plotter's transform matrix to make sure that the resulting output didn't end up outside the plotter's viewport.

    A code analysis found that over 90% of the code and 90% of the processing time was spent preventing and dealing with input errors and handling compatibility issues.

    Nowadays, it's harder in many ways with a wide variety of hardware based texturing and other rendering - do we do the lighting model ourselves, or let the HW do it? It may depend on whether we're going for speed and 'looks' or photometric correctness.

    --
    It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
  33. Show of Hands by sharkey · · Score: 1

    Anybody else read that as "XBender"?

    --

    --
    "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
  34. Re:Some Suggestions for Rasterman by Anonymous Coward · · Score: 0

    Your a fucking asshole.

  35. Thats why theres Lindows with ClickNRun by HanzoSan · · Score: 1



    When was the last time you used Linux? In 2000? Its changed ALOT since 2000.

    --
    If you use Linux, please help development of Autopac
    1. Re:Thats why theres Lindows with ClickNRun by arkanes · · Score: 0, Troll

      The parent is correct. You are not. It's not optimal, or even fair, but it's true. Arguing with people that "you can have everything you want" under Linux won't get you far because its clearly false.

    2. Re:Thats why theres Lindows with ClickNRun by HanzoSan · · Score: 1



      That is not the arguement. The fact is, 90% of users use the same few applications, and those applications workk under Linux.

      These are the facts, this is not opinion, there is nothing to debate, people do not use the apps which dont run under Wine, and all the apps which people do use run under Wine.

      --
      If you use Linux, please help development of Autopac
    3. Re:Thats why theres Lindows with ClickNRun by arkanes · · Score: 0, Troll
      But people don't give a shit, and they don't work as well, and they certainly don't work seamlessly. Windows won because you have to present an alternative thats worth making the effort to switch to (anyone who's second to market will tell you this is hard). Telling someone that they have to spend time (and often money) in order to get back to where they are now because "Linux is better" is just going to get them pissed off.

      And, of course, in many ways Linux is NOT better. Evangelizing is all well and good, but know your audience.

    4. Re:Thats why theres Lindows with ClickNRun by HanzoSan · · Score: 0, Troll


      How do you know? You dont even use Linux.
      Windows won because you have to present an alternative thats worth making the effort to switch to (anyone who's second to market will tell you this is hard). Telling someone that they have to spend time (and often money) in order to get back to where they are now because "Linux is better" is just going to get them pissed off.

      Until they get the MSblaster worm. Thats when you switch them to Linux.

      And, of course, in many ways Linux is NOT better. Evangelizing is all well and good, but know your audience.

      Yes Windows has better fonts and eye candy, so does OSX, but in terms of software Windows no longer has the advantage, most important Windows software runs in Linux, even the games.

      No one has to be convinced that Linux is better, once Linux is preinstalled next to the Windows machine, and a person can choose a Lindows computer or a Windows computer from a store, people on their own will choose Lindows when they think back to why they are upgrading in the first place (well Windows keeps crashing, I got infected by MSblaster, I need to save money, I think I'll go with Linux)

      People will choose Linux if Linux has the same exact software, a cheaper price, and is virus proof.

      --
      If you use Linux, please help development of Autopac
    5. Re:Thats why theres Lindows with ClickNRun by arkanes · · Score: 1
      How do you know? You dont even use Linux.
      I don't? Damn. And here I thought I used it every day....

      Here's a news flash: People don't upgrade because they got a worm. People often don't upgrade at all! How about that. They've ALREADY spent the money on Windows, so it's a pretty steep uphill battle to get them to switch, especially since Lindows isn't any cheaper.

      Here's the best counterargument to what you're saying: Linux is dead on the desktop. It's market share is so small as to be a statistical abberation. No signifigant amount of people use it.

      One major reason why: People are interested in spending time or money to "upgrade" to something thats no better than what they have. They don't care that much about Blaster or other viruses - if they did, they'd use the freely available Windows tools to safeguard themselves. They don't care that "Linux" is "etter" - because for them, it's not. It is, at best, equal to Windows.

      Tell you what - when you can show me a market study that has Linux desktop machines equal in market share to OS X (ie, hardly any, but at least it's statistically measurable), then we can talk about Linux being "successful the desktop".

    6. Re:Thats why theres Lindows with ClickNRun by HanzoSan · · Score: 1



      Lindows is way cheaper

      By the way Linux has surpassed OSX, OSX is very new and not many people can afford Apple computers.

      --
      If you use Linux, please help development of Autopac
  36. I actually downloaded and ran his benchmark by LightStruk · · Score: 3, Interesting

    and I noticed something strange. For those of you who can't or won't try Rasterman's benchmark yourself, the program runs six different tests, each of which uses a different scaling technique. Each of the six tests is run on the three different test platforms: XRender onscreen, XRender offscreen, and Imlib2. Imlib2 is also written by Rasterman, and is part of Enlightenment.

    Here are the test scores from one of the rounds -

    *** ROUND 3 ***

    Test: Test Xrender doing 2* smooth scaled Over blends
    Time: 196.868 sec.

    Test: Test Xrender (offscreen) doing 2* smooth scaled Over blends
    Time: 196.347 sec.

    Test: Test Imlib2 doing 2* smooth scaled Over blends
    Time: 6.434 sec.

    Now for the strange thing. For the first platform, I watched as the program drew the enlightenment logo thousands of times in the test window, as you would expect. For the second test, it took about the same amount of time, but drew offscreen, again, as the test's name would indicate. However, for the imlib2 test, it also didn't draw anything in the test window.
    I got the impression (perhaps wrongly?) that Imlib2 would actually draw to the screen as well. Since it doesn't change the screen, I have no way of telling if imlib2 is doing any drawing at all.

    So, I'm digging into the benchmark's code... I'll let you guys know what I find.

    1. Re:I actually downloaded and ran his benchmark by saikatguha266 · · Score: 1

      I noticed that as well. I commented out test 1 since with renderaccel it was at par with imlib, but test2 was slow. As for test 2, I moved the imlib test to the top, followed by the xrender and then xrender offscreen.

      Surprise. I think I see something I shouldn't be seeing. After imlib claims that it is done I suspend the app and in my window I see 4 unequal sized rectangles slightly covering each other. on the top is a black-green diagonal gradient (NorthEast). under it is a light blue-dark blue NW gradient. Under the blue is a black-red southward gradient and covering that is a longish red-yellow Eastward gradient.

      Me thnks imlib had a brainfart ... or graphics didn't load or something. Can someone confirm this?

    2. Re:I actually downloaded and ran his benchmark by saikatguha266 · · Score: 2, Informative

      Whops. Mod me down on that last one. The image I described was the opaque image that is being used as a background, and the bufferring threw off the printf vs. x sync I am guessing. On closer examination ... imlib does seem to work ... but doesn't display anything while its doing stuff ... only the final image.

  37. But is your recollection from your impression by Anonymous Coward · · Score: 0

    from benchmarks? In case you havn't been keeping up with the latest news, nvidia have been shown to be uber cheaters going back a long way.

  38. similar experience by sporkboy · · Score: 1

    This reminds me of the experience of WindowFX, a 3d transparency/animation tool made by Stardock. They included hardware 'acceleration' as a settable option, but for most cards it was anything but an option, ran at 1fps.

    The exception being the G400, then the Radeon, and only very recently (on Windows) the GeForce. It's entirely an issue of how well the drivers are implemented, and since many of these 2d acceleration functions aren't widely used they're often overlooked in favor of the (traditionally) common case. I'd expect that NVidia hasn't been lobbied so heavily to make it's Linux drivers support these functions, as it took months for Stardock to lobby them to alter the Windows drivers to do the same.

    I guess the answer is that I'm not surprised to hear something like this, and there is hope even if it's small hope that it will get better.

    1. Re:similar experience by Krach42 · · Score: 1

      Yeah, nvidia sucks for DirectFB also... I actually saw rasterman on #directfb a lot, and talked to him while I was developing the blitting for the nvidia driver for DirectFB.

      The odd thing about DirectFB, is only the Matrox has decent acceleration for DirectFB. It's pretty frustrating in my opinion. I like DirectFB a lot, but it just doesn't have the support.

      And for all those who say it only takes "participation" I can tell you BULL on that level. I was at one point one of the most educated people on how the nvidia drivers work (outside of nvidia of course) and I didn't know how to accomplish anything besides Boxes, Lines, and Blits... and that's pitiful. But that's all that's available.

      --

      I am unamerican, and proud of it!
  39. 2D acceleration using OpenGL?-Pipe power. by Anonymous Coward · · Score: 0

    Careful design of both the pixel, and vertices programs, and intelligent scene decomposition. i.e. Look at what's presently on your screen, and ask: "What's the minimumn I can send to get this? Same with changes (caching can help here).

    Also you can get the 2D part to help out. I'm currently research what other parts (if any) I can use to help out in this task.

  40. The results are not obviously broken by asnare · · Score: 5, Insightful

    A lot of people are questioning the results claimed by Rasterman; however try downloading the thing and running it for yourself. I see the same trend that Rasterman claims when I do it.

    My system: Athlon 800, nVidia 2-GTS.
    Drivers: nVidia driver, 1.0.4363 (Gentoo)
    Kernel: 2.4.20-r6 (Gentoo)
    X11: XFree86 4.3.0

    I've checked and:

    1. agpgart is being used;
    2. XF86 option "RenderAccel" is on.

    The benchmark consists of rendering an alphablended bitmap to the screen repeatedly using Render extension (on- and off-screen) and imlib2. Various scaling modes are also tried.

    When there's no scaling involved, the hardware Render extension wins; it's over twice as fast. That's only the first round of tests though. The rest of the rounds all involve scaling (half- and double-size, various antialiasing modes). For these, imlib2 walks all over the Render extension; we're talking three and a half minutes versus 6 seconds in one of the rounds; the rest are similar.

    I'm not posting the exact figures since the benchmark isn't scientific and worrying about exact numbers isn't the point; the trend is undeniable. Things like agpgart versus nVidia's internal AGP driver should not account for the wide gap.

    Given that at least one of the rounds in the benchmark shows the Render extension winning, I'm going to take a stab at explaining the results by suggesting that the hardware is probably performing the scaling operations each and every time, while imlib2 caches the results (or something). The results seem to suggest that scaling the thing once and then reverting to non-scaling blitting would improve at least some of the rounds; this is too easy, however, since while it helps the application that knows it's going to repeatedly blit the same scaled bitmap, not all applications know this a priori.

    - Andrew

    1. Re:The results are not obviously broken by Yokaze · · Score: 2, Informative

      > I'm going to take a stab at explaining the results by suggesting that the hardware is probably performing the scaling operations each and every time, while imlib2 caches the results (or something).

      Well, you have the means at hand to confirm it.

      A quick glance reveals, no, the result is not cached in the sense you probably assume.
      The Imlib2 scales and fitlers the image in each of the REPS iterations.

      --
      "Between strong and weak, between rich and poor [...], it is freedom which oppresses and the law which sets free"
  41. Re:Yawn by OrangeTide · · Score: 2, Interesting

    client/server setup is a superior way of designing a windowing environment.

    X11 uses unix sockets (or optionally slower, less secure TCP) and shared memory.

    Win32 uses shared memory and messaging.

    MacOS X .. I don't know for certain, I hope it uses Mach kernel messages.

    QNX Photon uses qnx kernel messages and shared memory.

    The real difference is the layer at which the windowing system exists. in the case of X11, MacOS X and Photon. the windowing system is just another process.

    In Win32 it's a kernel thread (as far as I know). But still, you're sending messages from one place to another and constructing windows based on them.

    Client/Server is the natural way to build a multi-application graphical environment.

    Of course there are "fake" environments which amount of an embedded video driver and some library to draw widgets. (most DOS gui apps are like this).

    --
    “Common sense is not so common.” — Voltaire
  42. Render Bench by AstroDrabb · · Score: 4, Informative
    I just ran the render bench from the link. The results are pretty amazing.
    Available XRENDER filters:
    nearest
    bilinear
    fast
    good
    best
    Set up...
    --ROUND 1
    --
    Test: Test Xrender doing non-scaled Over blends
    Time: 22.842 sec.
    --
    Test: Test Imlib2 doing non-scaled Over blends
    Time: 0.501 sec.

    --ROUND 2
    --
    Test: Test Xrender doing 1/2 scaled Over blends
    Time: 11.438 sec.
    --
    Test: Test Imlib2 doing 1/2 scaled Over blends
    Time: 0.188 sec.

    --ROUND 3
    --
    Test: Test Xrender doing 2* smooth scaled Over blends
    Time: 225.476 sec.
    --
    Test: Test Imlib2 doing 2* smooth scaled Over blends
    Time: 3.963 sec.
    --
    If Tyranny and Oppression come to this land,
    it will be in the guise of fighting a foreign enemy. -James Madison
  43. Re:Hmm.. by dustwun · · Score: 1

    How this got modded as Interesting and not Flamebait is beyond me. As far as Raster's coding skill goes, Let's see you write something akin to Enlightenment, or edje or evas, or any number of other apps and libraries. Now, in true open source spirit, did you even install his test app and submit results to help make anything better?

  44. Re:Wait a second... by Anonymous Coward · · Score: 0

    He's been working on it constantly. Never stopped.

  45. I've experienced this myself. by Anonymous Coward · · Score: 4, Insightful

    The problem is in *sending* the graphics commands to the hardware. If you're manually sending quads one at a time, I found that for 16x16 squares on screen, it's faster to do it in software than on a GEForce 2 (that was what I had at the time - this was a few years back). Think about it:

    == Hardware ==

    Vertex coordinates, texture coordinates and primative types are DMA'd to the video card. The video card finds the texture and loads all the information into it's registers. It the executes triangle setup, then the triangle fill operation - twice (because it's drawing a quad).

    == Software ==

    Source texture is copied by the CPU to hardware memory, line by line.

    Actual peak fill rate in software will be lower than hardware - but if your code is structured correctly (textures in the right format, etc) - there's no setup. The hardware latency looses out to the speed of your CPU's cache - the software copy has the same complexity as making the calls to the graphics card. :)

    The trick is to *batch* your commands. Sending several hundred primatives to the hardware at the same time will blow software away - especially as the area to be filled increases. Well.. most of the time, but it really depends on what you're doing.

  46. the usual superficial analyses of X11 by penguin7of9 · · Score: 4, Interesting

    XRender is a new extension with only a reference implementation in XFree86. The point is to experiment with an API prior to freezing it. I know this may come as news to people who have grown up on Microsoft software, but real software developers first try out various ideas and then later start hacking it for speed. It would be quite surprising, actually, if it were faster than a hand-tuned client-side software implementation.

    It will be a while until XRender beats client-side software implementations. Furthermore, you can't just take a client-side renderer and hack in XRender calls and expect it to run fast--code that works efficiently with a client-server window system like X11 needs to be written differently than something that moves around pixels locally.

    1. Re:the usual superficial analyses of X11 by Anonymous Coward · · Score: 0

      Haha very funny. I clearly recall writing lots of code to store sprites for a game in Pixmaps, only to notice those werent hardware accelerated either.

      Are you trying to say that 'real software developers' wait 7 years before adding hardware acceleration? Tried this in 1997 and X11 is from around 1990 if I don't remember entirely wrong. My personal experience with XFree86 is that practically nothing is hardware accelerated by stock xfree86 drivers.

      Maybe this is why so many people incorrectly think the X11 client/server structure itself is flawed..

    2. Re:the usual superficial analyses of X11 by penguin7of9 · · Score: 1

      xfree86 is mostly derived from a free reference implementation. It may fail to offer hardware acceleration for many reasons. For example, the necessary hw specs may just not he published. Blit was hardware accelerated in commercial X11 servers pretty much as soon as the hardware was capable of supporting it.

      Keep in mind that there are several different, independent X11 implementations from different vendors.

  47. X11 REALLY FAST!!! by Anonymous Coward · · Score: 0

    With a few tweaks it FLIES!

    http://osnews.com/story.php?news_id=1905

  48. Nothing is wrong with XRender? by Anonymous Coward · · Score: 2, Informative

    I ran the benchmark on a VIA MVP3 motherboard with AMD K6-3+ 400 MHz CPU and GeForce2 MX 400 vide card. With RenderAccel option enabled, the unscaled test runs two times faster with XRender, but when that option is set to "false" in XF86Config, the results are as follows:

    Test: Test Xrender doing non-scaled Over blends
    Time: 16.234 sec.

    Test: Test Xrender (offscreen) doing non-scaled Over blends
    Time: 16.108 sec.

    Test: Test Imlib2 doing non-scaled Over blends
    Time: 1.932 sec.

    That was with hardware acceleration disabled. I was surprised that enabling the hardware acceleration speeds the first test up by that much (up to 32 times actually).

    I also confirm the previous posters' findings that Imlib2 tests don't draw anything onscreen.

  49. Can you learn to spell? by Anonymous Coward · · Score: 0

    Last time I checked the word "graphics" lacked an 'x'.

    1. Re:Can you learn to spell? by efishta · · Score: 2, Funny

      needless to say most english speaking people know that the "x" letter is pronounced the same way as "cs" or "ks"... so I figured it would be redundant to type to letters when I could very easily do half the work and type one letter.

      Replying to this post completely negates what I was trying to accomplish with my "x" trick, but I thought you'd like to know.

    2. Re:Can you learn to spell? by terrox · · Score: 0, Flamebait

      yu suk, sif u wud B dat dum.

      ^ is that the kind of sentences you want to read every day?

      Maybe you haven't bothered to read the news before commenting.

  50. Works nice and fast for me by Trogre · · Score: 4, Funny

    After installing imlib2, and running render_bench's 'make', it gives me the following:

    cc -g -I/usr/X11R6/include `imlib2-config --cflags` -c main.c -o main.o
    main.c: In function `xrender_surf_new':
    main.c:67: `PictStandardARGB32' undeclared (first use in this function)
    main.c:67: (Each undeclared identifier is reported only once
    main.c:67: for each function it appears in.)
    main.c:67: warning: assignment makes pointer from integer without a cast
    main.c:69: `PictStandardRGB24' undeclared (first use in this function)
    main.c:69: warning: assignment makes pointer from integer without a cast
    main.c: In function `xrender_surf_blend':
    main.c:153: `XFilters' undeclared (first use in this function)
    main.c:153: `flt' undeclared (first use in this function)
    main.c:154: `XTransform' undeclared (first use in this function)
    main.c:154: parse error before `xf'
    main.c:156: `xf' undeclared (first use in this function)
    main.c: In function `main_loop':
    main.c:439: `XFilters' undeclared (first use in this function)
    main.c:439: `flt' undeclared (first use in this function)
    make: *** [main.o] Error 1

    It seems to do this at the same speed, whether or not I have render acceleration enabled.

    --
    "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    1. Re:Works nice and fast for me by AsparagusChallenge · · Score: 1

      Same error here, debian sarge and gcc-3.3; seting CC=gcc-2.95 fixes nothing.

    2. Re:Works nice and fast for me by b-pot · · Score: 1, Informative

      You need the Xrender library/header files. If you are using debian unstable: apt-get install libxrender-dev

    3. Re:Works nice and fast for me by rizzy · · Score: 1

      Your Xrender is too old. perhaps you are running Xfree-4.2.x?

      http://mail.fontconfig.org/pipermail/fontconfig/20 03-May/000434.html

    4. Re:Works nice and fast for me by Trogre · · Score: 1

      4.2 1. Is that bad?

      --
      "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    5. Re:Works nice and fast for me by rizzy · · Score: 1

      Yeah. Looks like you need 4.3.x

  51. Re:Heh by Anonymous Coward · · Score: 0

    so what??? you think this is so easy and fast to develop quite complex window manager as E with limited resources and developers, after hours in your free time... ?

    Somebody should actually say THANKS to Rasterman, cause he done great job on E and other stuff as well!!!

    E was "the thing" which got me into Linux, when I saw it for the first time I thought: "This is damn cool! It's beautiful... ooo... and it talks to me! I wanna try it"

    So stop trolling or do better if_u_r_so_fucking_mighty.. damn stupid trolls!

  52. Re:is this the man who said that "Windows has won" by incom · · Score: 1

    Sounds like he has investments, or some other finiancial interests, in embedded linux. It really isn't realistic to say desktop linux is over at a time when it's never been so popular. Maybe "desktop linux profits" aren't so hot, but linux wasn't designed to make money with anyways. And maybe "desktop linux as #1 popular desktop" isn't seeming very likely either. But I see no reason why whithin the next few years we can't get a decent amount of application, games, and hardware support for linux. I'm doing fine right now, and since I never had ties to msoffice, photoshop etc, the native linux solutions currently available a fine for me. It's just people habits and windows app training that traps most of them. Also, as an nvidia card owner, linux gaming is good enough to fill all my gamings needs. There is a big difference between "windows has won", and "linux has lost".

    --
    True genius is grasping a situation like a peice of fruit, and peircing it just right so that it drains dry.
  53. Re:Wait a second... by Anonymous Coward · · Score: 0

    While I know Space cadet is digressing, let me answer your question...

    >> And what does that have to do with the questions and issues raised in the story?

    Just a shot in the dark, but... maybe the guy's Space Cadet is talking about is the same guy who raised the questions and issues?

    Hope this helps. (/sarcasm)

  54. Re:is this the man who said that "Windows has won" by ultrabot · · Score: 1

    Sounds like he has investments, or some other finiancial interests, in embedded linux.

    Indeed.

    Maybe "desktop linux profits" aren't so hot, but linux wasn't designed to make money with anyways.

    On the contrary, I allege that lots of money are going to be made on Linux desktops. Support, mass deployment, customization, life cycle extension... so the money will be made in corporate space, and that's the way it should be. That's where the money in Linux servers is made at the moment.

    Also, as an nvidia card owner, linux gaming is good enough to fill all my gamings needs.

    The thing is, gaming doesn't matter all that much, again because of the corporate focus. I'm looking forward to the time when every OpenGL game will have Linux binaries on the same CDs. But meanwhile, home users can just dual boot to their war3z windows installations.

    --
    Save your wrists today - switch to Dvorak
  55. Re:is this the man who said that "Windows has won" by Anonymous Coward · · Score: 1, Funny

    Yup. And of course XRender knows that, and has decided to punish him.

  56. Re:is this the man who said that "Windows has won" by ndogg · · Score: 1

    Not only does he want a good wm and some good libraries, he want's those libraries to be portable to embedded devices, epsecially since that's where he thinks part of the future for Linux is. The drawing library, Evas, has been ported to a number of devices.

    --
    // file: mice.h
    #include "frickin_lasers.h"
  57. I get different results - hardware is MUCH faster by Anonymous Coward · · Score: 1, Informative

    On my linux/itanium system (using NVIDIA's 1.0.4431/IA64 driver), xrender is always much faster than imlib. Here are the reults:

    Test: Test Xrender doing non-scaled Over blends
    Time: 0.085 sec.
    Test: Test Xrender (offscreen) doing non-scaled Over blends
    Time: 0.095 sec.
    Test: Test Imlib2 doing non-scaled Over blends
    Time: 4.893 sec.
    Test: Test Xrender doing 1/2 scaled Over blends
    Time: 0.028 sec.
    Test: Test Xrender (offscreen) doing 1/2 scaled Over blends
    Time: 0.033 sec.
    Test: Test Imlib2 doing 1/2 scaled Over blends
    Time: 1.344 sec.
    Test: Test Xrender doing 2* smooth scaled Over blends
    Time: 0.328 sec.
    Test: Test Xrender (offscreen) doing 2* smooth scaled Over blends
    Time: 0.370 sec.
    Test: Test Imlib2 doing 2* smooth scaled Over blends
    Time: 28.058 sec.
    Test: Test Xrender doing 2* nearest scaled Over blends
    Time: 0.323 sec.
    Test: Test Xrender (offscreen) doing 2* nearest scaled Over blends
    Time: 0.370 sec.
    Test: Test Imlib2 doing 2* nearest scaled Over blends
    Time: 20.745 sec.
    Test: Test Xrender doing general nearest scaled Over blends
    Time: 0.780 sec.
    Test: Test Xrender (offscreen) doing general nearest scaled Over blends
    Time: 0.855 sec.
    Test: Test Imlib2 doing general nearest scaled Over blends
    Time: 45.613 sec.
    Test: Test Xrender doing general smooth scaled Over blends
    Time: 0.611 sec.
    Test: Test Xrender (offscreen) doing general smooth scaled Over blends
    Time: 0.849 sec.
    Test: Test Imlib2 doing general smooth scaled Over blends
    Time: 74.811 sec.

  58. I ran the benchmark with RenderAccel true by Sits · · Score: 4, Informative

    And the results were pretty much the same. Using render was several magnitudes slower on tests 2 - 7. I have a GeForce1 with 1.0.4349 nvidia driver and haven't had the same trouble others have with this option on so I run with this extension on all the time.

    Here are the results for the interested:

    Available XRENDER filters:
    nearest
    bilinear
    fast
    good
    best
    Set up...
    *** ROUND 1 ***

    Test: Test Xrender doing non-scaled Over blends Time: 0.190 sec.

    Test: Test Xrender (offscreen) doing non-scaled Over blends Time: 0.303 sec.

    Test: Test Imlib2 doing non-scaled Over blends Time: 0.697 sec.

    *** ROUND 2 ***

    Test: Test Xrender doing 1/2 scaled Over blends Time: 10.347 sec.

    Test: Test Xrender (offscreen) doing 1/2 scaled Over blends Time: 10.231 sec.

    Test: Test Imlib2 doing 1/2 scaled Over blends Time: 0.315 sec.

    *** ROUND 3 ***

    Test: Test Xrender doing 2* smooth scaled Over blends Time: 207.028 sec.

    Test: Test Xrender (offscreen) doing 2* smooth scaled Over blends Time: 205.275 sec.

    Test: Test Imlib2 doing 2* smooth scaled Over blends Time: 5.695 sec.

    *** ROUND 4 ***

    Test: Test Xrender doing 2* nearest scaled Over blends Time: 164.460 sec.

    Test: Test Xrender (offscreen) doing 2* nearest scaled Over blends Time: 166.281 sec.

    Test: Test Imlib2 doing 2* nearest scaled Over blends Time: 4.119 sec.

    *** ROUND 6 ***

    Test: Test Xrender doing general nearest scaled Over blends Time: 313.187 sec.

    Test: Test Xrender (offscreen) doing general nearest scaled Over blends Time: 310.261 sec.

    Test: Test Imlib2 doing general nearest scaled Over blends Time: 11.444 sec.

    *** ROUND 7 ***

    Test: Test Xrender doing general smooth scaled Over blends Time: 477.511 sec.

    Test: Test Xrender (offscreen) doing general smooth scaled Over blends Time: 474.695 sec.

    Test: Test Imlib2 doing general smooth scaled Over blends Time: 17.290 sec.

    (reformatted to get past the lameness filter)

    1. Re:I ran the benchmark with RenderAccel true by xjqkojqxj · · Score: 0

      Comparing Round 1 to the rest, isn't it obvious that the problem is in the scaling code?

  59. WRONG! Crashing was why I switched to Linux by spineboy · · Score: 1
    I got tired of Win 98 crashing several times a day - even after vanilla installs. I started looking for another solution back in 1999. Macs were too expensive for a student budget. BeOS was just about to be bought, when I found out about a FREE OS that supposedly didn't crash. I wound up using Linux for most stuff and kept 98 around to play GAMES!.. Now that games are available on Linux, I boot into Win98 about 1x a month for some odd/nostalgic reason.

    I'm happy I made the jump, but for most people they're just too scared to try another OS. Windows barely works for them - to try another "hacker" OS is too adventurous/hard. I have a bunch of people on Mozilla now....and they see it's good. Eventually they'll switch after one propblem too many in Windows.

    --
    ..........FULL STOP.
  60. Dude! tell us WHY!! by spineboy · · Score: 1

    If you're getting unusual AND nice results, we should know WHY! What kernal, drivers (Nvidia?) Linux version, Graphics card, processor, etc. Maybe we are all missing something obvious. tell us like in a scientific paper, the exact details, so we can VERIFY your results, and maybe YOU could help out the whole community.

    --
    ..........FULL STOP.
    1. Re:Dude! tell us WHY!! by Anonymous Coward · · Score: 0

      You asked for:
      kernel: 2.6.0-test2
      driver: I already told you, read my post
      graphics card: GF4 Ti4600
      processor: I already told you, read my post
      etc: whatever. next you'll be asking what sort of hard drives I have...

  61. Java 2D will use OpenGL on Linux in 1.5 by AndersDahlberg · · Score: 1

    Java 2D (the graphics backend, also used by swing) has been hardware accelerated on windows since ~1.4 by use of directx.

    Now it seems that java 1.5 will use opengl on linux to achieve the same (or even better...;) graphics performance as seen on windows.

    i.e.: http://www.javagaming.org/cgi-bin/JGNetForums/YaBB .cgi?action=display;board=jogl;num=1060784520;star t=0#6

  62. Couldn't even get XRENDER to work. by Simon+Kongshoj · · Score: 1

    Decided to give it a try for my Matrox G400, but unfortunately, as soon as I ran his program, it died with a memory fault. It was apparently checking which XRENDER filters were available, then promptly died. All output I got was:

    Available XRENDER filters:
    Memory fault

    This was on Debian sid. Anyone else get something similar?

    --
    Six sick .sigs, the Number of the Beast!
    1. Re:Couldn't even get XRENDER to work. by GeekDork · · Score: 1

      Fails for me, too. Apparently XRenderQueryFilters() returns a null pointer. xdpyinfo shows the RENDER extension.

      --

      Fight hunger. Filet a politician and send him to a 3rd world country of your choice.

  63. Re:is this the man who said that "Windows has won" by Simon+Kongshoj · · Score: 2, Informative

    He said that over a year ago, however, when desktop Linux wasn't looking so hot. A large part of his point was that the desktop itself would be going away in the future, except as hackers' and enthusiasts' systems. In fact, he went on to state that if this is the case, Linux has a huge advantage over Windows, since Linux is not nearly as tied into the desktop as Windows is, and will have an easier time adapting to such a setting. So he ported his canvas library to run on embedded as well, without axing it for the desktop. Sounds to me like a wholly reasonable thing to do.

    --
    Six sick .sigs, the Number of the Beast!
  64. XIG drivers accelerate by Anonymous Coward · · Score: 0

    The drivers from XIG accelerate the Render extension VERY WELL.
    All others SUCK, except maybe matrox, but I have none of those to test.

  65. It's wrong to use 3D functionality for 2D graphics by master_p · · Score: 0, Insightful

    3D means:

    • very fast (and hardcoded) matrix operations
    • very fast rendering
    • passing lists of vertices, textures and shading instructions to the 3d hardware
    • do something else while the 3d hardware processes its lists
    • update the screen
    • do it in a single-multithreaded context, most possibly for a game

    2D means:

    • draw a line here, draw a line there
    • fill a shape here, fill a shape there
    • clip output
    • use brushes
    • use variable line sizes and line edge types
    • do it at the desired point in time
    • do it in a multithreaded context

    Although 2D and 3D share some concepts, there are entirely two different things. As today's software requires both windowed graphics and full screen/windowed 3D graphics, graphics cards must have circuits for both 2D and 3D graphics. A 2D graphics hardware implementation is something very trivial and very cheap these days.

    Therefore, I find it innapropriate to use 3D graphics for 2D rendering. It will certainly not speed up drawing operations, because the 3D requires more steps than 2D, even if the Z coordinate is always 0. Why Linux should use 3D for 2D operations ?

  66. oh yeah, har de har har by leonbrooks · · Score: 1

    -1 Weak joke?

    --
    Got time? Spend some of it coding or testing
    1. Re:oh yeah, har de har har by Anonymous Coward · · Score: 0

      A very good joke actually. Temporal aliasing, why wagon wheels in cowboy movies appear to go backwards, the beat frequency difference between rotation speed and frame rate. Posting anon rather than spoiling it by explaining it.

  67. 3x for Banshee by leonbrooks · · Score: 1
    Have a 32Mb video card? Well at *least* 32Mb of your virtual address space isn't mapping into system ram, it's mapped into video ram.

    The 16MB Banshee EvilQueen sitting across the room maps three copies of its 16MB into main RAM (so 48MB total, plus maybe another 4MB for a busy X server); apparently each copy is mapped in a different way optimised for different ops.

    --
    Got time? Spend some of it coding or testing
  68. Caching by BenjyD · · Score: 3, Insightful

    Somebody mentioned below that imlib is probably caching the image, whereas Xrender is doing the transformation everytime. So I thought I'd try the same caching approach with Xrender.

    The first time the scale test is called, I rendered the image to an offscreen buffer with the correct transformations set. Then after that I just XRenderComposite to the screen from the offscreen buffer. The results (NVidia 4496, RenderAccel=true, geforce2 MX,athlon XP 1800+) for one test are:

    *** ROUND 2 ***

    Test: Test Xrender doing 1/2 scaled Over blends - caching implementation
    Time: 0.126 sec.

    Test: Test Xrender doing 1/2 scaled Over blends - original implementation
    Time: 6.993 sec.

    Test: Test Imlib2 doing 1/2 scaled Over blends
    Time: 0.191 sec.

    Which shows Xrender taking two-thirds the time of imlib.

    My guess is that imlib is probably caching something. This is supported by the fact that Xrender is faster for the non-scaled composition in the original code.

    1. Re:Caching by BenjyD · · Score: 1

      OK, replying to my own post, but it's seemingly not caching that speeds up the imlib test- calling imlib_set_cache_size(0) has no effect on the speed of the imlib test.

  69. Re:It's wrong to use 3D functionality for 2D graph by Elm+Tree · · Score: 2, Informative

    Unless I'm mistaken, XRender is utilizing the 2D acceleration features of a graphics card for scaling, alpha blending, anti-aliasing, etc. It's not trying to do 2D graphics over 3D. Although if you think linux shouldn't be doing that then you really shoulod look at Microsoft, they're moving to an entirely 3D desktop for longhorn.

  70. Re:It's wrong to use 3D functionality for 2D graph by Idealius · · Score: 1

    Who's saying they are/did?

    BTW, there's also something called the Stencil Buffer, which is not completely accessible in most 2D API's. It's very useful for your third aspect listed under 2D, "clip output." In that way, using a 3D API would be much more dynamic and faster than using the 2D API.

    Basically, the 2D-only API's are limited because some hardware acclerated features on the card are only available by using a 3D-enabled API, like OpenGL. Why waste some of the abilities of the card?

    It just depends on what's most appropriate for the task at hand.

  71. Re:It's RIGHT to use 3D functionality for 2D graph by rmlane · · Score: 4, Informative
    On vaugley modern hardware the 3D path is so much faster than the 2D path that it ends up being significantly faster to use the 3D path to render your desktop if your desktop is at all complicated (not a dozen mono xterms).

    This ends up being even more true if you do any sort of complex compositing (eg: alpha blending, hardware accelerated mpeg / video, openGL windows, etc, etc). Enlightenment uses alpha channels, it would be fater to composite in hardware than software. These sorts of operations are not accelerated at all on the 2d path, and have to be done in software.

    Go check out Quartz Extreme at http://www.apple.com/macosx/jaguar/quartzextreme.h tml (excuse the space in html).

    Having used Xfree86 and Quartz extreme on the same graphics hardware, I can tell you there's no comparison. Quartz is much faster and much more capable.

  72. Re:Yeah, well... by Sp4c3+C4d3t · · Score: 1

    http://slashdot.org/articles/02/07/20/1342205.shtm l?tid=106

    --
    Happy New Year, it's 1984!
  73. Re:Hmm.. by alex_ant · · Score: 1

    That's right, nobody has written anything akin to Enlightenment or edie or evas, and thank god. If Mr. Haitzler's coding skill were as good as it is claimed to be, maybe all those rewrites over the years wouldn't have been necessary. Meanwhile WindowMaker, which is almost as old, sails along with code that's clean as a whistle. Here again we see the responsibility-avoidance mentality of the open source advocate who, in response to criticism, has nothing better to say than "it's your fault for not helping" or "you couldn't do any better anyway."

  74. Re:Wait a second... by Anonymous Coward · · Score: 0

    And NEVER finished.

  75. Results from My Machine by Anonymous Coward · · Score: 0

    Config:

    IBM T30 Laptop
    2.0 GHz
    768MB RAM
    ATI 7500 M7 Chipset in Video 16MB RAM
    XFree86-4.3.0-15.fdr.1 from fedora
    1400x1500x16bit screen rez
    RedHat 9.0 plus KDE 3.1.3 and other APT'able stuff
    kernel-2.4.20-19.9

    Available XRENDER filters:
    nearest
    bilinear
    fast
    good
    best
    Set up...

    *** ROUND 1 ***
    Test: Test Xrender doing non-scaled Over blends
    Time: 0.016 sec.
    Test: Test Xrender (offscreen) doing non-scaled Over blends
    Time: 1.269 sec.
    Test: Test Imlib2 doing non-scaled Over blends
    Time: 0.515 sec.
    *** ROUND 2 ***
    Test: Test Xrender doing 1/2 scaled Over blends
    Time: 10.245 sec.
    Test: Test Xrender (offscreen) doing 1/2 scaled Over blends
    Time: 4.779 sec.
    Test: Test Imlib2 doing 1/2 scaled Over blends
    Time: 0.180 sec.
    *** ROUND 3 ***
    Test: Test Xrender doing 2* smooth scaled Over blends
    Time: 217.934 sec.
    Test: Test Xrender (offscreen) doing 2* smooth scaled Over blends
    Time: 124.811 sec.
    Test: Test Imlib2 doing 2* smooth scaled Over blends
    Time: 3.359 sec.
    *** ROUND 4 ***
    Test: Test Xrender doing 2* nearest scaled Over blends
    Time: 163.273 sec.
    Test: Test Xrender (offscreen) doing 2* nearest scaled Over blends
    Time: 75.666 sec.
    Test: Test Imlib2 doing 2* nearest scaled Over blends
    Time: 2.147 sec.
    *** ROUND 6 ***
    Test: Test Xrender doing general nearest scaled Over blends
    Time: 282.936 sec.
    Test: Test Xrender (offscreen) doing general nearest scaled Over blends
    Time: 166.580 sec.
    Test: Test Imlib2 doing general nearest scaled Over blends
    Time: 4.703 sec.
    *** ROUND 7 ***
    Test: Test Xrender doing general smooth scaled Over blends
    Time: 0.009 sec.
    Test: Test Xrender (offscreen) doing general smooth scaled Over blends
    Time: 324.960 sec.
    Test: Test Imlib2 doing general smooth scaled Over blends
    Time: 10.415 sec.

  76. I am "average", hear me roar. by Anonymous Coward · · Score: 0

    "The average user does not judge better by how secure or stable it is, the judge better by how it looks, how smooth and easy to use it is, and how much eye candy it has."

    That's funny. A non-average user telling us what average users want. Do you really think that people enjoy virus, trojan, and worm attacks on their machines? Or crackers wandering through their data? Or BSODS on a regular basis? Your opinion is as worthless as a wooden nickel.

  77. Ok, so did he enable Hardware Acceleration ? by noselasd · · Score: 0, Redundant

    Just wondering, cause it is not enabled by default. If I'm not entirly wrong ', no X driver does hardware acceleration of the Render extension yet. Except the binary only nVidia driver. But since its hw accelerated Render extension is experimental it is not on by default.
    " Option "RenderAccel" "boolean"
    Enable or disable hardware acceleration of the RENDER
    extension. THIS OPTION IS EXPERIMENTAL. ENABLE IT ATY OUR
    OWN RISK. There is no correctness test suite for the
    RENDER extension so NVIDIA can not verify that RENDER
    acceleration works correctly. Default: hardware
    acceleration of the RENDER extension is disabled.
    "

  78. Re:Yawn by Anonymous Coward · · Score: 0

    Well yes Windows uses shared mem but there is more to the beast.

    a) It has a set of high level widgets which probably are mapped without going through several layers of libraries and vectorization into the driver. It has an optional vectorization/drawing library, many calls are rerrouted into the low level accelerator functions of the driver. Comparing an XFree Server with a WinXP installation on the same machine gives around 3-4 times the performance of Windows compared to XFree around 2-3 times the performance if the RenderAccelerator is turned on. Face it XFree in its current state is rather slow compared to Windows. I think there are many factors to the problem
    a) The network layer which possibly drags things down

    b) I'm not sure how good the internal threading of XFRee is but given the fact that you need a separate Font Server to get a threading between the X-Server and the Font handling, gives me the impression that this field definitely is a drag

    c) Probably the entire X Protocol is too bloated and needs a subset of high level functions

    d) The Libraries which probably are a real drag and the biggest cause of the problem

    e) The accelerator usage is not really that well as this article seems to show. I'm not sure how viable this is, but could it be that XRandR probably is the wrong road anyway, I think there should be a clear split between a client install and a server and with a clean client install you can drop the entire network layer and add a clean and mean OpenGL based Extension with a good redesigned high level library to hook into.

  79. Context Switching by Wolfier · · Score: 1

    Is always an operation you want to avoid.

    In addition to the OS switching among processes, the OpenGL driver has to perform context switching for the graphic hardware's registers, DMA addresses, etc.

    Plus, modern hardware drivers are optimized for games, i.e. full-screen programs. How much context-switching performance do you need? Thus, less development effort, less performance.

  80. It seems to be rather obvious... by be-fan · · Score: 1, Redundant

    The RenderAccel support in the NVIDIA drivers is not complete. That's why its disabled by default. From the benchmark results, it seems that Render wins when there is no scaling involved, and loses badly when there is scaling involved. This suggest an obvious answer --- scaling is not accelerated on the Render implementation on NVIDIA cards! As a result, when scaling is used, the card falls back on a software implementation that is obviously not as good as imlib2's very optimized software implementation. Now, why would NVIDIA bother with Render support if no scaling can be used? Because the only real user of Render at the moment is Xft, which uses it to composit AA text! Of course, the glyph bitmaps are not scaled, because that would reduce sharpness. So NVIDIA released a half-assed Render implementation (they do not, to be fair, that its incomplete, and disable it by default) so the common case of AA-text would get a speed-up!

    --
    A deep unwavering belief is a sure sign you're missing something...
  81. Quartz Extreme in a few words by The+Ego · · Score: 4, Informative

    Apple's OSX does all rendering through Quartz, (as PDFs) which is accelerated by OpenGL, and called QuartzExtreme.

    That's not accurate. Quartz is really made of two parts: Quartz 2D and the Quartz Compositor.

    The Quartz Compositor is reponsible for compositing all the layers (desktop, windows, layers inside windows) on-screen. It offers Porter-Duff compositing, which was developped at Pixar more than 15 years ago. See this post from Mike Paquette for details. Mr Paquette is one of the main developpers of Quartz. Quartz Extreme is "simply" an OpenGL implementation of Porter-Duff compositing and modern graphic cards offer the primitives needed to do that very efficiently.

    The Quartz 2D layer is what offers drawing primitives following the Postscript drawing model. The same drawing model is used with PDF (no surprise), Java2D and SVG (and Microsoft's GDI+ ?). This part is not HW accelerated. I am sure Apple is working on it, but it wouldn't surprise me if new HW will be required to make this possible. There is a strong incentive for card manufacturers to offer acceleration, since Longhorn is supposed to use GDI+ extensively. I doubt that such acceleration will fit in the traditionnal OpenGL/Direct3D rendering pipeline.

    The Apple JVM team implemented HW accelerated Java2D drawing in their 1.3.1 JVM. Their 1.4 JVM doesn't offer it (1.4.1 was a massive rewrite for them, 1.3.1 was more of a quick port to OS-X using some of their "old" carbon code). There were quite a few problems when HW acceleration was used. I hope they can and will wait for a system-wide Quartz-2D HW acceleration, it seems ludicrous to have the JVM team spend resources on an effort that will be wasted once Quartz2D is accelerated.

    See Apple Marketing page, another post from Mike Paquette, and the presentation from Apple at SIGgraph about Quartz Extreme and OpenGL.

    If that post doesn't end-up rated +5 informative, I don't know what will ! :-)

    1. Re:Quartz Extreme in a few words by Anonymous Coward · · Score: 0
      The Apple JVM team implemented HW accelerated Java2D drawing in their 1.3.1 JVM. Their 1.4 JVM doesn't offer it (1.4.1 was a massive rewrite for them, 1.3.1 was more of a quick port to OS-X using some of their "old" carbon code). There were quite a few problems when HW acceleration was used. I hope they can and will wait for a system-wide Quartz-2D HW acceleration, it seems ludicrous to have the JVM team spend resources on an effort that will be wasted once Quartz2D is accelerated.

      According to the Apple 1.4.1 release notes, the Java HW acceleration was simply replaced with the system-wide 'acceleration' of Quartz Extreme.

      "With Java 1.3.1, you could explicitly specify Java 2D graphics hardware acceleration. With Java 1.4.1, hardware acceleration is handled by the Mac OS X Quartz Extreme graphics engine with no need for developer intervention"

      Since the 1.3.1 acceleration was also based on OpenGL, this makes sense.

      So hardware acceleration hasn't been removed in 1.4 - unless you're using a Mac with less than 16 MB of video RAM. In 1.3, you could enable hardware acceleration on an 8MB machine, although it'd look like barf in 32 bit mode; it would work fine in 16-bit color.

    2. Re:Quartz Extreme in a few words by The+Ego · · Score: 1

      I am afraid the release notes are a bit misleading.

      The HW acceleration in 1.3.1 and in 1.4.1 are different beasts. 1.4.1 uses Quartz Extreme acceleration (layers/compositing), while 1.3.1 was accelerating 2D drawing (and adding visual glitches in the process).

      If you follow the java-dev mailing lists, you would see posts from Apple employees mentionning that they intend to bring back the HW acceleration for 2D drawing (IIRC Gerard Ziemski said that recently).

  82. Debian is dying by Anonymous Coward · · Score: 0

    Debian is so out of date it won't compile any modern software.

  83. Re:Yawn by OrangeTide · · Score: 1

    The network layer in X11 isn't an issue. By default applications use unix domain sockets. Which is about as light-weight as windows messaging.

    In your post, you seem to really be talking about the way a particular implementation of X11 is. XFree86.

    The X protocol is VERY fast to parse and extremely expandable. The bad part is that it is quite verbose. X protocol does have high-level functions, but not in the same way you think of them. Take the PostScript extensions for example. You can set up the set of vector operations to draw some button in postscript, send it to the server and draw it 50 times over in different places. Of course nobody uses these "new" (3 year old) extensions.

    Libraries that are a drag? Are you refering to things like QT, GTK, Motif, etc? .. Well honestly the fastest widget library is everyone's least favorite... Xaw .. .If you want to include all the 3rd party libraries as part of X and somehow blame it on X, then I really have no defense. Of course I could write a cool widget library tomorrow and then you could only complain about how everyone wasn't using my ultra fast/easy library.

    X's accelleration is broken down into a set of primative operations. X doesn't take advantage of every possible accelleration that your hardware has. It tends to only support things that the X protocol is capable of expressing in a single command. But that's XFree86, there are other X11s that run on other hardware. I assume PC graphics cards' 2D accelleration are design to be easy to interface into Win32, rather than being highly generalized. I've never written a win32 driver before so I don't really know.

    --
    “Common sense is not so common.” — Voltaire
  84. Re:is this the man who said that "Windows has won" by Anonymous Coward · · Score: 0

    And what's wrong with him expressing his opinion? I think he made a good point. Whether you agree or disagree does not disqualify him as a good programmer.

  85. simple solution by yarbo · · Score: 3, Funny

    rename the benchmark 3dmark2003.exe

  86. Re:It's RIGHT to use 3D functionality for 2D graph by master_p · · Score: 1
    On vaugley modern hardware the 3D path is so much faster than the 2D path that it ends up being significantly faster to use the 3D path to render your desktop if your desktop is at all complicated (not a dozen mono xterms).

    But a GUI is not composed of (overlapping) polygons.

    This ends up being even more true if you do any sort of complex compositing (eg: alpha blending,

    Alpha blending is a mistake for GUIs.

    hardware accelerated mpeg / video

    Windows does fine accelerated video, even with cards with 2d functionality only.

    openGL windows, etc, etc).

    Rendering OpenGL within a Window has nothing to do with the 3d hardware(especially the Window part). You can render 3d using the video card's 3d engine, but the rest of the GUI (which is composed of windows) does fine with 2D.

    Enlightenment uses alpha channels, it would be fater to composite in hardware than software.

    Translucency is wrong in a GUI. Believe me.

    These sorts of operations are not accelerated at all on the 2d path, and have to be done in software.

    You only mentioned two: alpha blending, which is irrelevant to GUIs, and hardware MPEG decompression, which has nothing to do with 3d.

    Go check out Quartz Extreme at http://www.apple.com/macosx/jaguar/quartzextreme.h tml (excuse the space in html).

    I read it. Plain BS. Here is why:

    Quartz uses the integrated OpenGL technology to convert each window into a texture, then sends it to the graphics card to render on screen

    And why is that ? just to have drop shadows and translucency ? I certainly don't want translucency, as it is a pain in the ass to work with translucent windows...Windows have very nice antialiasing (ClearType)...I don't need anything else, and I certainly don't need to make each window a texture and waste all the memory.

    The graphics processor focuses on what it does best -- graphics -- freeing the Power PC chip to do more operations in the same amount of time

    I agree that custom chips should handle trivial things, but why 3D? this functionality should have been incorporated in the 2D engine.

    The new Quartz delivers device-independent and resolution-independent rendering of anti-aliased text, bitmap images and vector graphics

    Windows does that already.

    addition, Quartz can both save and print transparency and the Preview application honors PDF file security. A "Save as PDF" button in the Print dialog streamlines PDF creation

    What does a graphic engine have to do with file security ???

    Jaguar adds more high-quality fonts to the already exquisite collection, so those who use non-Roman languages such as Arabic, Hebrew and Thai can communicate in their native tongue

    Nothing Windows does not have a long time now.

    Basically, you don't seem to know how a gui works. Since I have made a complete Window System, I can tell you that it's a big waste of resources to redraw things in a texture, then use 3D to compose the screen.

    Of course, you are a proud Mac owner. I can understand that(I just don't understand why you were modded as 4).

    Having used Xfree86 and Quartz extreme on the same graphics hardware, I can tell you there's no comparison. Quartz is much faster and much more capable.

    Then blame XFree86, don't throw it on the lack of 3D under Linux. XFree86 does not have as a good font rendering as Windows or MacOS, and that is a problem. The other stuff you are mentioning is kiddie's stuff(alpha blending, although impressive, it's like giving candies to children: good for psychological reasons, bad for anything else).

  87. so why not grafix ? by DrSkwid · · Score: 1

    I hope you never need any csenon gas or play the ksylophone

    8)

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  88. repeat after me by Anonymous Coward · · Score: 0

    a lot

  89. hardcore gamer == Quake3 by DrSkwid · · Score: 1

    dontcha know 8)

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  90. The Code Alchemist by CreatorOfSmallTruths · · Score: 1

    Although you have this unreasonable user id and I might sound as a troll I just have to reply to this;

    There is no "way" of writing "proper" code. There is no path leading to good code. Only hinches and guess work.
    You know why?
    Because computer programming is not a science. Its not a set of building blocks from which you can construct one uniform way of doing stuff. it's not electronics, it's not house building. it's the alchemist job. Turning junk into gold.
    You, in some level, claim to have some sort of a key or a solution, you are the code alchemist. a guru pertaining to have the answer.
    There is no answer and there wan't be in the near future. As with gold made out of junk - chemist today knows how to do it, it costs about 100 times the gold produces, but there is a way.
    Someday, probably after we will be gone for good someone will find the way, giving a tool with which good programs will be born but this way is far far away in the future and all we can do now is decide which of the alchemists we want to be - the one giving false hope or the one actually coding.

    I hope this wasn't too bad.
    I'll give myself +5 insightful for this one :-)

    1. Re:The Code Alchemist by cduffy · · Score: 1

      You're setting me up a strawman.

      First off, I disagree with your statement that programming is "not a set of building blocks"; writing good code is exactly that (presuming you don't have a severe case of NIH syndrome). Very few projects exist that can't take advantage of some preexisting framework or adopt preexisting code.

      At work, I'm on the development team for a large application. We follow best practices -- have frequent design and code reviews, follow the java coding standards as law, make use of design patterns when applicable, and send things back to the drawing board (or at least back for reimplementation) that aren't readable and well-documented. We have an automated test suite, and checking in code that doesn't pass the tests (or checking in new code without tests) brings the wrath of our lead architect, baseball bat in tow. When we finish some of the automation work that's slated, the revision control system will reject code outright that doesn't meet the formatting standards or pass the automated tests, meaning such code will never be checked in at all.

      Even on my personal projects, I follow good practices. When writing C, I compile my code with -Wall and run it through valgrind before release. If the design is starting to look cluttered (and the source I'm working on right now *is* getting to look that way), I refactor it before extending it too far. I don't release code to the public if I wouldn't be willing to staple it to the back of my resume.

      What I'm saying is that writing good code isn't some kind of magic that needs to come down from a guru on the hill -- yes, coming up with a particularly clever or useful algorithm *does* require intuition, but at least 80% of being a good programmer is a matter not of intuition but of being methodical and taking the time to Do It Right (ie. writing the test cases up front rather than pushing them off, cleaning the lint out of your code rather than just letting it slide as soon as it runs, etc).

    2. Re:The Code Alchemist by CreatorOfSmallTruths · · Score: 1

      Hi, thanks for the reply,

      Sadly, you missed my point entirely :-)

      What I was saying is that programming, unlike building bridges, is not an exact science but a science in the making, much like chemistry was in the 18" century.
      Seeing that, no amount of "good methodology" and "removing of lint" can create a solid (as in bridge) program.
      Yes, there are design patterns , extreme programming, chief architects with baseball bats ( and +4 HP?.. too much NWN lately ) - but neither one can actually get the singular programmer to create the perfect program. it just does not exist (yet).
      I, too, work for a very big company (C++) and I must say that no matter how much detailed design you'll do, you'll end up changing it, changing it in such a way that reusability of that code will not be possible (as far as reusability is concerned, I wouldn't get my hopes too high - STL is the highest level I've seen to work, and it has it's own problems - ever tried to use STL objects in a multithreaded environment ?)

      So, I was referring to the "philosophical level" and you were referring to the "real world" one - both are right , but we cannot possibly make the comparison (yet, someday the alchemist and the chemist will meet, I am sure).

      btw, what project do you work on? is it Open Source? and what does the idiom "setting me up a strawman" means exactly?

    3. Re:The Code Alchemist by cduffy · · Score: 1

      "setting up a strawman" -- creating a false version of your opponent's argument that you could knock down easily.

      My employer is a stealth-mode startup; I can't talk about what we do. Unlike my last job (at MontaVista Software), our product isn't open source -- but several of our components and tools are, and we've contributed some patches back.

      As for reusability, *shrug* -- it depends. I've found stuff like DB access layers (and frameworks -- see Struts for a good example) to really be quite reusable when done correctly. For that matter, though, my current personal project was able to save hundreds if not thousands of lines by reusing the parser and related framework from Checkstyle (which is extended to keep token location information accessible from the AST). Of course, that wouldn't be possible if Checkstyle weren't designed so well.

      On past projects, likewise, I've been able to really, truly and succesfully put multiple frontends to a single backend written without knowledge of any of them. This last bit is key -- if I'd been writing the backend while writing a frontend to drive it (other than the test harness), my backend probably really *would* have ended up tied to that frontend -- or at least needing changes to work elsewhere.

      BTW, I'd argue that there do exist methods for creating solid-as-a-bridge software. Look at Knuth and his creation of mathematical proofs for the algorithms he uses -- and look at just how solid TeX has been in the years since he wrote it.

      As for never seeing reusability work well beyond STL, I'd strongly advise that, should the opportunity become available, you try something other than C++. Personally I favor Python -- its introspection layer permits functionality that would just be unthinkable or could require 10-20x more code elsewhere (for instance, a paint program I wrote back in school in Jython implemented the following functionality in less characters than I'm taking to describe it: "look at the static members of java.awt.Color; find all which are instances of java.awt.Color and add them to a list of colors available to the user and to a mapping of known colors to the colors' names"). I'd call this reusability, after a fashon -- I'm reusing the list of colors in java.awt.Color, in a manner the creators of this class never expected. Java, for all its warts (of which it has fewer now than before -- as of 1.4 it has an equivalent to the select() call, and 1.5 will have some substantial language-level improvements) has a very large amount of reusable 3rd-party code available, making it frequently possible to avoid any more work than necessary writing things other than core business logic. Take a look at the Jakarta suite of libraries, frameworks and tools (particularly Struts and Torque) for an example of the goodies available to folks looking for reusable components for larger-scale projects.

      I'm also hopeful for .net after it and related projects (Mono) have had some time to mature... but in mentioning those I've wandered *very* far off topic indeed.

  91. Re:It's RIGHT to use 3D functionality for 2D graph by g_lightyear · · Score: 1

    Total disagreement, for the most part. 1) Extensive changes were made to the 'standard' windows-style GL implementation to make this possible. First and foremost, the complete virtualization of VRAM and some rather brainy texture management inside the implementation, to enable windows with backing stores to be easily shifted into/out of VRAM. 2) 2D composition is a *large* part of windowing systems' work. Moving a window becomes moving a textured quad; screen position no longer comes into play, nor does blitting large volumes of data when windows open, close, or otherwise move. Eliminating that first element of composition, at the window level, means that you can eliminate the cost of operations that users *expect* to be responsive. Regardless of how you feel about *anything* else, these two elements make possible what is a much more fluid windowing environment as a result. The ability to do anything else - whether we're talking about transparency effects, scaling window contents, or general eye-candy, are usability issues. What this does do is enable a whole new set of possible UI features. I'm not going to argue with you - you're entitled to your opinion. Perhaps you'll change your mind once Longhorn comes along and you're using it on your desktop; maybe you'll still think it's pointless then. I'll say this though: Any user who's ever enabled and disabled Quartz Extreme on their desktop mac will see the difference - and it doesn't matter whether you turn off transparency and shadowing effects to see that difference. Move that window, and you'll see it.

    --
    -- A mind is a terrible thing.
  92. Re:It's RIGHT to use 3D functionality for 2D graph by master_p · · Score: 1

    But it can't be done on X-Windows!!! It's easy to do it on the Mac, because the Mac only has ONE LEVEL of windows. Whereas in X-Windows each little rectangle is a Window. Surely you don't expect every little button on the screen to be its own texture. You will need huge amount of VRAM for that.

    That's why I say that it is impractical. Just because the window moves a little bit smoother, it just does not justify the use of 3D, especially under X-Windows.

  93. Re:It's RIGHT to use 3D functionality for 2D graph by g_lightyear · · Score: 1

    No - we're talking about compositing here; you can pretty much make every little rectangle a separate bitmap and, quite frankly, get away with it if your GL implementation does the same kind of texture optimization that Apple went through. After all, they're already all little bitmaps, in many cases, being held around in memory and then composited. Smart AGP/VRAM usage means that having to worry about where this stuff is becomes a lot less important. What you're doing is representing a 3D screen - even if you're removing all of the dimensionality of perspective from that. 3D hardware does this a lot better than just 'average', and Quartz Extreme users are the first to get it; Microsoft users of Longhorn will see something like it next, two generations behind where Mac users will be by the time Longhorn hits their desktops. Building a strong compositing engine using 3D operations is not only efficient, it's practical and effective. I have no doubt that, even if you're unwilling to come round now to the idea, you'll change your tune in two years - at which point, you'll be there alongside everyone else screaming that Windows has been doing this for years now, so it's time to change XFree86. The GL work *alone* to make this kind of thing efficient and work well isn't insurmountable, but it's a great deal of work. The community can choose to see the benefits that these changes to GL would allow on Linux, and virtualize texture memory on all supported cards, or wait until everyone else's implementations are already doing it. Someone wanted to know why Apple didn't get it added to 2D hardware accelerators: Simple. Apple, with 3% marketshare, does not call the shots. Microsoft does. Rest assured, now that Microsoft has seen fit to follow Apple into the land of accelerated composition on 3D hardware, we may indeed see some cool stuff come out of hardware; but let's not pretend that anyone other than Microsoft is in a position to do that dictation.

    --
    -- A mind is a terrible thing.
  94. bad idea by lostinchicago · · Score: 1

    i guess that turned out to be a waste of time

  95. You know jack-shit about OpenGL by Anonymous Coward · · Score: 0
    OpenGL assumes you're local.

    Bullshit. OpenGL was originally designed as and still is a client-server model. That is why it has separate client and server state, why it has separate functions for manipulating client state and server state, and why functions to set vertex arrays bind data immediately on function call. That is the point at which the array is sent from the client to the server. That is also why nVidia introduced the extension to specify only a range of an array should be bound. The original thought behind OpenGL was that the graphics engine was the server, and the program was the client. Where these are physically located is irrelevant. The truly high-end monster graphics machines were always tightly-coupled networked clusters with multiple pipes and multiple heads, often in different rooms from where the programmer was working. High-bandwidth connections don't change the fact that they're client-server.

    God, I truly despise fuckin' morons spouting bullshit about which they know nothing. And I'm quite curious how you can call 3600 fps anything less than "full speed". Local indeed! I suppose you've never seen a fully-accelerated remote GLX window, either?