How to access graphic hardware acceleration while running as a service

Because of Microsoft’s security policies, creating a window while running as a service causes the creation of a new window station as well as a new desktop exclusively for this service.
The result is, the application is running but without showing a window at the visible desktop. The problem is that rendering for invisible windows acts like clipping away the whole scene.
My question is, is there a way to access the graphic hardware acceleration without actually drawing a scene on the screen? In other words the whole rendering should take place with or without a visible window.

…without actually drawing a scene on the screen?
Try experimenting with pbuffer or FBO.

Thanks, sounds good! I will do that…

Before you do anything… check GL_RENDERED & GL_VENDOR strings. If it reports something like “GDI generic” (by Microsoft) service will not be able to use hw acceleration.

You can make a regular application and use some inter-process communication (or even TCP) between service and application.

Okay, thanks for the good advice! That’s exactly what I need to differ between local and remote access.
By the way: It’s working! Using pbuffer rendering nearly solved my problem. Nearly because it’s working fine while running as a local service. But via remote access, which is also a feature request, there is only the generic driver available which does not support pbuffer rendering.
This leads to an other question: Is there a way to create a valid, hardware accelerated opengl context which is also available from remote?

Please clarify what you mean by, “via remote access”. For example, do you mean terminal services (remote desktop)?

When you connect via terminal services (remote desktop), the OS creates a new “desktop”, or something like that. From experience it looks like a desktop that is not connected to the physical terminal cannot use HW opengl acceleration.

VNC is a third party application that also allows remote access by sharing the real desktop with a remote machine. VNC does not disable opengl HW acceleration, although sometimes a window with animating OpenGL content lags before the client sees the updates, so VNC should not be thought of as a windows equivalent to GLX indirect rendering.

(edited to fix typo)

Yes, we’re talking about terminal services. But using VNC instead is realy a great idea! Technically it solves all our problems.
Hmm… let me see if I can inspire the local administrators to use VNC instead of remote desktops…

Anyway, thanks for your help!!

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