Does OpenGL affect applications running under realtime priority?

Hi @ all,
At the moment I’m developing a graphical visualization that represents the current state of a machine of our company.

Situation:

  • The OpenGL application will run on a Windows XP under normal priority.

  • On the same computer there is also a server running that communicates via CORBA with a realtime programmable logic controller. This
    server application runs under realtime priority. The server produces information for the visualization.

The data transferred by the plc to the server are forwarded by the corba notification service to the visualization which handles those information and paints them.

Question:
Is it possible that the OpenGL application could affect the server process in that way, that it’s impossible for it to handle the corba events.

On http://en.wikipedia.org/wiki/Direct3D_vs._OpenGL I read, that OpenGL drivers are written in user mode. Is there any official source I can get this information from? At the moment I’m running some performance tests but I need this information from an official source, because I’m currently writing my diploma thesis. Is there any book that describes how Windows is handling OpenGL??

Thx.
Greetings Martin

realtime CORBA on Windows XP :eek:
Go for a true real-time OS.

About your question, if you read a tiny bit more down your article :
“In practice, OpenGL drivers still must make frequent user/kernel transitions;”

What is for sure that the video card driver has access to kernel mode, and can easily stall, freeze, or even crash your whole system (cf ATI drivers… Ok I had some times where nvogl dll brought blue screen too)

If you want official sources, try asking cass (Cass Everit from nvidia) or Humus (he is from ATI). You can also ask this on some microsoft forums, but I’m sceptical about it.

I would hovewer expect that the driver interface will run with the same priority as the application (makes sence if it is just a plain DLL). I won’t expect it to interfere with your server, but you must make shure that you leave enough resources for teh server to be operable. So keep your application simple.
Also, tak einto considerations that this is an additional instability. Your application may crash, possibly affecting the server.
I would run it on another computer, but that’s me…

>>realtime CORBA on Windows XP [Eek!]
Go for a true real-time OS.
we’re going to change the os to libertos, a linux based realtime os, but at the moment it’s impossible, because there a some vb apps, that have to be rewritten in c++.

>> I would run it on another computer, but that’s me…
the machines we produce need several plcs and computers to run. on one computer runs this server, but it’s also possible, that on this computer runs this visualization also(worst case) … and in this case it should work also.

thx for your quick replies.

I would hovewer expect that the driver interface will run with the same priority as the application
I think at least some part of the driver runs at fixed priority, and this priority is lower than realtime.

At least I recall a discussion where someone had a deadlock involving different priorities. I think it was along the lines of a realtime thread blocking the driver while hanging in a swapbuffer call, which in turn was waiting for the driver to do something.

Originally posted by Overmind:
[b] [quote]I would hovewer expect that the driver interface will run with the same priority as the application
I think at least some part of the driver runs at fixed priority, and this priority is lower than realtime.

At least I recall a discussion where someone had a deadlock involving different priorities. I think it was along the lines of a realtime thread blocking the driver while hanging in a swapbuffer call, which in turn was waiting for the driver to do something. [/b][/QUOTE]I believe you are referring to this thread.
http://www.opengl.org/discussion_boards/ubb/ultimatebb.php?ubb=get_topic;f=3;t=014419#000000

This problem would apply to ba10mem if his communication to the plc involves TCP/IP which runs at a priority lower than realtime. This would render the realtime server priority as useless. Or worse yet, the server could interfere with the windows services it is trying to use.

Thx for your replies.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.