Well, Now that I have been a "linux only" user for a few months now, I have been looking back at what I have left behind. Not that I would ever go back now - I'm too far now:), but there are a couple features of win xx that everyone must admit are *very* nice.
1) Integration of a kernel with the actuall desktop. Not counting Win 9x - the NT based line OS's have the desktop so closely tailored and fit to the kernel that you just can't beat them numbers ( as in boot time). I can come pretty damn close to it with a slack box running a custom kernel and gnome - but still not quite beat it.
2) DirectX. Lets face it, DirectX kicks the living hell out of the x server. While there are projects that are working on something a little better (DirectFB and a couple others) from what I have heard, they are still kinda broken, and actually getting them to work with gnome or KDE seems to be a project for gurus and entry-level programmers alike.
3) A universal hardware abstraction layer. Perhaps if we all agreed on an inustry-standard, the phrase "one driver fits all" would become a reality.
I find that many of the multimedia obstacles that linux faces have been overcome by brute-force: Faster CPU's and video accelorators. But when compared to Winblows or even OSX, the gap is yet to be bridged. Keep in mind that when I say "linux", I mean a standand distribution as a whole (gnu/Linux) The kernel itself has proved to be (IMHO) far superior to the best NT kernel - in many ways.
But I think that the brute-force approach is a poor answer. Has anyone ever played a DVD flawlessly on a celeron 400 using xine or mplayer? If so, I really want to know *exectly* how you got that system configured.:) You should see how effortlessly them little iMacs play a DVD with a tiny 400 G4. Risc/Cisc my butt, playback has a big help from the software that runs the hardware.
Now before anyone goes flaming or jumping on me, I am discussing this because I would like to see more developemant done on the above mentioned topics, and might even work on it myself in the future.
Linux has come a long ways, and is actually "there". It is (IMHO) ready for the desktop - I should know, I got everyone in my family using it now. I just think things can always be better.
Then again, maybe Linux has just raised my expectations as for what an OS should be.
andysimmons
08-16-2003, 03:45 PM
Hi Dean. I'm not flaming you, just throwing out a few arguments:
If you don't start a bunch of unneccessary services on boot, and tailor the kernel to support just what you need, you can get boot times just as good as Windows. It takes me 3 seconds to startx on this 600 Mhz machine I'm using now.
Also, DirectX and Xwindows don't even do close to the same thing. Xwindows is only a gui, and DirectX is a set of libraries that gives software direct access to your hardware. But yes, I agree, DirectX rocks. It's just too bad MS will never develop it for Linux...
Regarding the MAC speeds, a 400 MHz mac works about like an 700-800 MHz Intel...it has nothing to do with the OS, it's the processor architecture. Put linux on a 400 MHz Mac and I bet you could get comparable performance.
mart_man00
08-16-2003, 06:02 PM
It's just too bad MS will never develop it for Linux...
Why doesnt some one do it then?
The API/back end is out there, how else would people make games. Why not take the DX API and switch it to Opengl or something. Winex came up with something, a free one would be great.
And i would like to see hardware acceleration like deanrantala mentioned, now its just a hack. It would be nice to have a chiode(incase you have old hardware), but were stuck right now.
Linux isnt a desktop yet, its close. Its starting to get some respect from teh hardware guys so it will be one day.
hlrguy
08-16-2003, 06:31 PM
I have never had windows, so don't know what DirectX is. I do, however, have an nvidia video card and get absolutley phenomial performance from their drivers. I max out 1600x1200X24M colors and still get a refhresh rate of over 300 fps in tuxracer. That is the way of the future, video card manufacturers supplying Linux drivers. You have to remember that 98% of the development is being done by people who want tools and productivity out of their computer. Games are generally a sideline, that is ramping up now, but not the main goal.
Edit: Missed an imporant part of my reply. The day that the kernel is imbedded with applications and X is the day I move to BSD or back to Solaris. I don't want an app to be able to cause a BSOD just like windows. Now, an app dies, who cares, it doesn't bring down the kernel. Personally, I find the boot time pretty good. About 12 seconds to log in, and about 20 seconds to bring the desktop up after I log in. By integrating everything into the kernel, maybe that could be reduced to 20 seconds total, but at a drastic cost in reliability, imho. :edit
hlrguy
mart_man00
08-16-2003, 07:07 PM
have never had windows, so don't know what DirectX is.
Seriously, your kidding right? No windows? Wow.
Direct is kind of like OpenGL. Its used mostly for games and is easily the best out there. Sometimes regular video players use it in windows.
Id love to see MS do something with it in Linux. Id pay for it. Plus my games would work :D
saithan
08-16-2003, 07:11 PM
what about SDL which works great for substitution for directX.
kerenl intergration of the desktop, sorry no thanks.
I like being able to still use my pc even if xwindows flakes out.
to play dvd and movies on lower end machines config xine and mplayer to allow frame dropping (pretty much brings it to the same quality as watching on a windows machine). also choose a less resource heavy driver (x11 works but is not a fast as Xv)
pnuts
08-16-2003, 07:24 PM
I agree with those who say that the kernel and X should remian seperate. on the boot time issue: it never crashes so I boot once in the morning and thats it for the day. I have crashed my X server today but I just crtl-alt-backspaced out of it with out having to reboot. there is some plan to intergrate drivers into the BIOS but that's a long way from being ready.
mart_man00
08-16-2003, 07:35 PM
what about SDL which works great for substitution for directX.
DirectX is basicly the standard. It really is great.
It needs it quality and compatibility, not something new.
to play dvd and movies on lower end machines config xine and mplayer to allow frame dropping (pretty much brings it to the same quality as watching on a windows machine). also choose a less resource heavy driver (x11 works but is not a fast as Xv)
We dont loose anything in Windows.
Take the tivo, its pretty low end. But it video isnt, it has its own mini computer inside. It gives great performance with hardware acceleration. No loss.
I think im going to see if there a tux racer for windows, then ill run it under Gentoo and XP Pro. If it uses DirectX id bet anything it will win.
On second thought i dont think linux likes my ATI Radeon 9700 Pro card...
<edit>
Almost forgot, i dont like the idea of X being in a kernel. But then again I dont want X, i cant wait for some decent to become stable so I can switch.
bwkaz
08-16-2003, 07:40 PM
Originally posted by mart_man00
Direct is kind of like OpenGL. Direct3D is kind of (...sort of...) like OpenGL.
DirectX is kind of (...sort of...) like SDL.
Of course, DirectX is much, much slower than SDL (and D3D is much, much slower than OpenGL), due to the simple fact that the core of the entire DX programming model is COM. Yes, COM. The crappy, cannot-work-without-a-massive-registry (expand the HKEY_CLASSES_ROOT\CLSID and HKEY_CLASSES_ROOT\Interface Registry keys sometime to see exactly what I mean; these are the keys that hold most of the information that COM requires), it-screws-up-and-you-can't-run-anything-else, including-the-COMCTL32.dll-requiring-desktop, err, thing. It's crap.
COM is more or less C++ for C compilers. Complete with vtables, and all the massive slowness that they bring, for crying out loud. Every single interface in COM requires its own vtable to be able to expose any functionality at all. Every single function call that you make requires at least two address lookups. One, to find the offset in the vtable of the function. Two to read that offset and call the function itself. This is, for the most part, simple stuff that can be done with either non-virtual functions in C++, or with any function type in C.
Winex came up with something, a free one would be great. Not free as in freedom, but this doesn't cost anything:
http://www.transgaming.com/sources.php
On second thought i dont think linux likes my ATI Radeon 9700 Pro card... Well from the way you're talking, I doubt you've ever installed drivers. Which would explain why you think Linux is slow -- get real drivers, that actually use your hardware acceleration, cooking in there and see what you think. If, that is, you can even find any that work -- ATI's Linux support is fairly crappy in my experience.
UT2k3 on my machine in '98SE (I refuse to pay for the 2K Pro kernel + Fisher-Price GUI that is XP) runs at least 20% slower than it runs in Linux. But I have a GF4 Ti4200, not an ATI card.
The vast majority of native games are like that -- Quake2, Q3, RtCW (and ET), Rune, Descent 3, UT the original, etc.
saithan
08-16-2003, 07:51 PM
DirectX is basicly the standard. It really is great.
It needs it quality and compatibility, not something new.
SDL uses openGL, which is faster (common knowlege to people coding with it).
as for the quality of SDL applications that is simply a matter of the programers making the games to use it.
look at RTCW, RTCW-ET, UT2003, Never Winter Nights, Quake
on Linux. your own milliage may vary but I get far better frame rates on native linux than I do using windows.
I could be wrong but, isn't tivo a linux born technology?
and windows does framedrop.
mart_man00
08-16-2003, 07:57 PM
Well from the way you're talking, I doubt you've ever installed drivers. Which would explain why you think Linux is slow -- get real drivers, that actually use your hardware acceleration, cooking in there and see what you think. If, that is, you can even find any that work -- ATI's Linux support is fairly crappy in my experience.
Yeah, i havnt bothered. Im using linux for nerdy interests, not desktop use.
Yeah, i wish i didnt go with ATI now. I didnt know when i ordered my PC. I figured since ATI tends to top everything it wouldnt be that bad.
DirectX on Windows runs the fastest. I dont know if they cheated and some how making OpenGL slower, but the best games are in DirectX. Most programmers seem to prefer DirectX.
Maybe this is crap, but its the 'standard'.
Then theres sound. Please correct me, but is there a decent 6.1 sound system yet? I told a couple people that i wanted a linux multimedia box(homemade tivo like thing), they almost cried :p
Maybe in a couple of years there will be a linux desktop.
saithan
08-16-2003, 08:13 PM
maybe this will help but I use MythTV for my tivo type needs.
becuase it is in development it is a royal pain in the a$$ to setup.
(there is rpm repositories ala apt-get for mythTV)
however when I want to simply record from tv I just use zapping.
as for 6.1 sound, well that is a matter of the hardware makers either opening their standards so drivers can be made or allow time for developers to create the needed drivers.
alsa does 5.1 rather well.
it seems you don't fully understand what directX does. but dirextX coders can jump right in SDL and be at home in the use of the API.
directX is notthe standard it is the common windows layer used.
as for : "couple of years there maybe a linux desktop" statment.
I think it is more like:
maybe in a couple of years you will be ready for the linux desktop.
mart_man00
08-16-2003, 08:18 PM
alsa does 5.1 rather well.
Do you have it setup? What card are you using?
Id like that kind of setup, but i dont ave alot of room for the speakers. Im used 3, all by each other.
How does a mp3 sound with 5.1?
-----
Sometimes i dont think its Linux vs Tech, i think its People vs 'Gurus'.
You know they guy, if its not one the console is pointless and should not of been made in the first place. They gui thats thinks GNOME/KDE is worthless and would hate to see a install that doesnt required a phd.
Some of thebest devs are them, huge problem.
deanrantala
08-16-2003, 08:27 PM
Hmm.. Thanks for the helpfull input. (Frame dropping in xine - I'll check that out tonight).
I was not comparing (though it might have sounded like that) DirectX with the x server. And I am still not an *expert* yet, so perhaps my experience in tweaking the multimedia performance under linux is just due to lack of experience. However, if you run UT2K3 on an NT-based box naitively, the performance is (I feel) un-comapable.
Kernel integration: You all are probably right: that has led too much disaster in the past. But a couple points. 1)Win NT- based OS's are far more stable and capable at creating time slices around non-responding apps. 2) I was thinking of merely kniting the x server with the kernel - not the whole desktop. Nonetheless, I will stick with the tried-and-true XFree right now:)
So SDL is really faster than DirectX? Maybe someone can help me out with the whole alphabet soup of standards: OpenGL, DirectX, SDL, etc.... The basic function of each is to provide direct access from program to hardware - right? So does the client-server design of the xserver hinder this at all? And do all of these provide an actuall direct channel to the hardware, or just a direct link to a high-performance api by wich software can communicate?
saithan
08-16-2003, 08:37 PM
my current desktop specs are in my signature (it is one of 12 other machines ranging from 486 boxes to 3.06ghz).
I do have alsa setup and running. my speaker setup is creative DT3500 5.1 and Klipsch ProMedia Ultra 5.1.
where I use 5.1 sound is when watching movies. using xine.
before building my present desktop box I used an amdk6-2 450mhz.
deanrantala
08-16-2003, 08:39 PM
One more thing: If you want easy 5.1 audio in all its glory: Install SuSE. In any event, if you do not have an actual AC3 or Dolby digital source (i.e. DVD) - such as an MP3 - then download emu10k1-tools. This nifty app lets you apply Passive matrix and Active matrix (Pro-logic) surround to standard 2-CH sources. There is supposed to be a GUI for emu10k1-tools, but the only version I can ever download is missing half the files....
Except for some of the nice extras that come with the live and audigy cards, I have learned this past week that linux is probably as close to the desktop as it needs to be in the audio department.
deanrantala
08-16-2003, 08:57 PM
Wheres this frame-dropping option in xine? I don't see it anywhere......
bwkaz
08-16-2003, 09:00 PM
Originally posted by deanrantala
Maybe someone can help me out with the whole alphabet soup of standards: Mmmm... alphabet soup.... I think I'm going to go get some soup in a minute here, actually. :p
Anyway,
OpenGL, DirectX, SDL, etc.... The basic function of each is to provide direct access from program to hardware - right? Right, more or less.
So does the client-server design of the xserver hinder this at all? Not really. OpenGL, for instance, has a GLX extension for using it in an X environment. Your program calls GL functions, which set up any X server-dependent stuff that they need to set up (glXCreateContext(...)), then it renders to the context that it gets. This rendering is done with completely open, standard APIs (check www.opengl.org for the API spec and, I think, a sample implementation).
If your X server is a different machine than your client program, then one of two things happens. Either GLX is disabled, or the triangle data gets shoved over the network. Which one happens depends mostly on the driver.
And do all of these provide an actuall direct channel to the hardware, or just a direct link to a high-performance api by wich software can communicate? More the second, at least in the case of OpenGL. The software is independent of the hardware that runs it, because OpenGL itself has the same interface regardless of whether you're using hardware rendering or software rendering. The program is just calling that API.
If you have hardware GL, then that API's implementation libraries are hardware-specific.
SDL is a wrapper around a whole bunch of stuff. You can use it to do drawing and blitting, much like DDraw, and it uses either OpenGL (if available) or high-performance blitting routines native to the SDL library (these can use stuff like MMX, SSE, etc., if supported by your kernel and processor). You can use it to set up GL contexts (but you have to use GL itself to do the actual 3D rendering). You can use it to do your audio (it's a wrapper around either OSS or Alsa, or even both). You can even use it to do your networking (it's a wrapper around the BSD sockets interface). But it's a very thin wrapper around all of these, and it's C, so it's fast (no vtables).
DX is, similarly, a wrapper around various things. DDraw is a wrapper around 2D graphics. D3D is a wrapper around the lowest-level 3D graphics API that a video driver exposes. DSound is a wrapper around whatever sound interface the sound card driver exposes. DPlay is a (very, very high-level) wrapper around the low-level networking API exposed by the network driver. But the COM underpinnings slow it all down.
deanrantala
08-16-2003, 09:16 PM
OK.... Well that rally helped up-to the heavy terminology part. I'm just gonna do a google on it and study up on it - I probably just got lots to learn.
As for "real-world" video performance....
Q1) Is it possible to have smooth DVD playback (or even just divx) on a celeron 400 or 450?
Q2)How???!!!!!
Q3)Why do I never see 3D hardware acceleration under linux? Even when I compile custom kernels, compile all the software from source, and do this on a distro that includes openGL and all, I see no gain in performance?
Q4) How is this remedied?
It has been my experience that any linux implimentation needs 650/700 or better to get full-screen video playback smoothly....
mart_man00
08-16-2003, 11:41 PM
Q3)Why do I never see 3D hardware acceleration under linux?
There is, atleast for some.
You have to go out of your way alittle, decent resaults supposedly(i havent tried yet, maybe tonight).
I havent heard anything about Tunner cards tho. Some have hardware that i dont think will be used. Id like to see that working.
andysimmons
08-17-2003, 02:06 AM
Originally posted by bwkaz
the core of the entire DX programming model is COM. Yes, COM. The crappy, cannot-work-without-a-massive-registry (expand the HKEY_CLASSES_ROOT\CLSID and HKEY_CLASSES_ROOT\Interface Registry keys sometime to see exactly what I mean...What the heck?! Those lists are ridiculous! You have some really interesting posts...excellent reading material.
deanrantala
08-17-2003, 09:03 AM
Have never had a problem with TV cards - at least not with mandy or SuSE. Like I said, Linux drives like a dream Multimedia box with a good 800mhz+ CPU and a 265 meg ram. It even does an excelent job at 600mhz/128 meg ram. Its just them slower-spec machines - ir seems if you want the full AV/ use out of them, you gotta go with windows.
After 3 years, I STILL haven't found all the drivers AND application software needed to use my bt787-based tv/am/fm card under windows. Unless people got the origonal disks for them things, they will probably never be able to use them.
The solution? Pop a mandrake disk in and do a standard install - everything just works.:D
glussier
08-17-2003, 09:26 AM
alsa does 5.1 rather well.
No it doesn't, the back speakers replicate the front speakers, Linux is nowhere near windows as far as sound is concerned.
justlinux.com
Copyright Internet.com Inc. All Rights Reserved.