Archived

This topic is now archived and is closed to further replies.

dave_cz

Mesa3.1 under Linux and performance

Recommended Posts

Ahoy, I am Dave and I have a question: Why is Mesa (OpenGL API) under Linux so slow? Where is the main problem? I have heard something about how Linux Xserver works (based on server and clients system), but I havent understood it yet. Can you explain me how it works and why is the performance under Linux so decreased? (now, I can try my applications only in very small windows ... refresh rate is too small ...). Thanks for your suggestions.

Share this post


Link to post
Share on other sites
Hi Dave
I am not a Linux guy, but I have Suse on my hard disk. I think that Mesa is so slow because the implentation (included in Xserver) is only software based, so you only get the performance of opengl/mesa in software mode. I think it has nothing to do with the client/server system of Xserver. When you want you could write your own hardware accelerating impl. for your graphics board.

Edited by - TheMummy on 4/5/00 8:39:13 AM

Share this post


Link to post
Share on other sites
Did you get the Mesa or XServer for your video card? Depending on your manufacturer and the flavor of linux your using, it might not be that hard to install their XServer and Mesa package. I know Nvidia and 3DFx have the files on their site. They mostly favor Debian and Redhat though.
Hope this helps.

Share this post


Link to post
Share on other sites
Actually, XFree86 4.0 just came out recently, and while the drivers are still limited, fairly soon there will be standard hardware acceleration for most 3d cards on the market. I''m not absolutely sure, but I think 4.0 is still a test release, so you might need to wait a little while before it''s all totally stable....now, if someone could just make a DirectX-esque unified gaming API for Linux...

Share this post


Link to post
Share on other sites
>now, if someone could just make a DirectX-esque unified gaming API for Linux...

Could be fine...

This makes an ideal opportunity to extend OpenGL (Mesa) under Linux with some new libs for supporting the rest. As far as DirectX goes...it is still COM-based. Personally I have nothing against object structure but... any talented developers out there caring to build a decent non-COM based API?

RedRicK



-----------------------------
For I have come to serve you
and to support you...
-----------------------------

Share this post


Link to post
Share on other sites
Hi friends,
So, I use Standard SVGA Xserver with my videocard(I have NVIDIA TNT2) and it works well, I think (it is very stable), but TNT2 is very good and very fast accelerator, so I would like to use his features in my MESA programs.
Yes, NVIDIA has some packages on the site and I have them, I tried them also, but they have only 2D acceleration.
I need 3D ... :-(

Thanks for your message, DuhMe

Share this post


Link to post
Share on other sites
Once more, do you have some experience with XFree4.0?
And a stupid question: what does /non-COM based API/ mean?
Can you explain me this topic?
I am grateful for your suggestions :-))

Share this post


Link to post
Share on other sites
(From my memory. You should check Microsoft's site for more accurate infos. It must be www.msdn.microsoft.com/com or something like that)







COM (Component Object Models) is a binary standard (as Microsoft likes to call it) which implement object oriented programming through standard interfaces through COM servers (an ActiveX control is a specialized COM control, for example).







The client first asks the COM server if it supports the requested interface (an interface being sort of a list of functions), and then the COM server provide the client with an array of function pointers (like the v_table in C++). Standard COM functions should always return a status (failure or success) code, and everything the COM object has to change must be passed as a parameter. For example, a COM function for returning the size of something would be defined like this:



HRESULT GetSize (int* size);



I think there are some other standards in function naming and parameters, but I do not use COM that much.







And last, COM objects should be completely managed by the COM server. Every data access should be done via function calls (like HRESULT SetValue(int newVal); ) and the server is responsible to clean itself.







I think that's about it.







Eric Laberge

Edited by - Demon Lord on 4/6/00 10:05:29 AM

Share this post


Link to post
Share on other sites