Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 7 of 7

Thread: How to access graphic hardware acceleration while running as a service

  1. #1

    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.
    There are only 10 types of people in the world: Those who understand binary, and those who don't

  2. #2
    Senior Member OpenGL Pro k_szczech's Avatar
    Join Date
    Feb 2006
    Location
    Poland
    Posts
    1,119

    Re: How to access graphic hardware acceleration while running as a service

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

  3. #3

    Re: How to access graphic hardware acceleration while running as a service

    Thanks, sounds good! I will do that...
    There are only 10 types of people in the world: Those who understand binary, and those who don't

  4. #4
    Advanced Member Frequent Contributor yooyo's Avatar
    Join Date
    Apr 2003
    Location
    Belgrade, Serbia
    Posts
    883

    Re: How to access graphic hardware acceleration while running as a service

    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.

  5. #5

    Re: How to access graphic hardware acceleration while running as a service

    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?
    There are only 10 types of people in the world: Those who understand binary, and those who don't

  6. #6
    Junior Member Newbie
    Join Date
    Sep 2005
    Posts
    24

    Re: How to access graphic hardware acceleration while running as a service

    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)

  7. #7

    Re: How to access graphic hardware acceleration while running as a service

    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!!
    There are only 10 types of people in the world: Those who understand binary, and those who don't

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •