Jump to content
  • Advertisement
Sign in to follow this  
pcmaster

OpenGL OpenGL without a console session [WinNT]

This topic is 2462 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Greetings!

I noticed that when I connect to an otherwise wonderfully functioning system via RDP and initialise an OpenGL 4.1 (but also lower) context, I get nothing. As if the card wasn't there. But when I query a DirectX 11 device context, everything seems fine and I get complete 3D acceleration. I don't need nor use any swap-chain in any case. May it be the case that I initialise OpenGL, HRC, HGLRC or something incorrectly or I'm missing something? It all (DX/GL/CL/...) works correctly as expected via a console session (when a local user is logged in and at least one display is connected) but only DX10/11 seem to work "over-network". Why??? :(

Share this post


Link to post
Share on other sites
Advertisement
I know RDP doesn't use it. But how come DX10 can use it with no problems in all scenarios? Is it caused by the stupid Windows mechanism of GL context creation? We're not talking swap-chain here.

Share this post


Link to post
Share on other sites
OpenGL will work over RDP. The problem is that the only OpenGL drivers available for it are the default Microsoft provided drivers (which I believe are OpenGL 1.1). I've never really managed to get it to work, but you could use something like Mesa 3D to emulate newer versions of OpenGL, but I don't believe they get anywhere near OpenGL 4.1.

DirectX usually has the ability to emulate features that aren't available through hardware. This comes at the cost of using the CPU to emulate the features, which typically is going to come with a heavy performance hit.

Share this post


Link to post
Share on other sites

DirectX usually has the ability to emulate features that aren't available through hardware. This comes at the cost of using the CPU to emulate the features, which typically is going to come with a heavy performance hit.


I'm not sure you quite understood what I wrote. I've always been able to get COMPLETE DirectX11 acceleration with everything (tessellation, compute shaders, everything), no mather whether RDP or console. I can always query the device and context (without a swap-chain), no matter what scenario with DirectX11, it always works correctly. Any emulation is out of question (not only because I see I'm getting the same device with the same drivers and parameters and everything but also the performance with enormous loads is exactly the same).

So I was hoping somebody would tell my why this isn't the case with OpenGL. I do know that vendor drivers just hook into the OpenGL1.x dll from Microsoft and provide OpenGL (1.5, 2.x, 3.x, 4.x, extensions, whatever) functionality this way. Is there any reason why this shouldn't work without a console session?

I'm no expert on Windows drivers and administration so I don't see why the hook doesn't "kick-in" via RDP or telnet or whatver, too. I'm only assuming it's the creepy OpenGL context creation mechanism (which, for example, prevents us from initialising OpenGL easily in no-window scenarios). I wish I'm wrong.

Share this post


Link to post
Share on other sites
Your title says WinNT and I think that WinNT doesn't support DirectX11. If you are talking about Vista or Windows 7, yes, it is possible that Microsoft have made changes to their RDP so that it runs DX in hardware but they haven't fixed their OpenGL.
You can try VNC. I've heard it works correctly but the free version only works on Win XP.

Share this post


Link to post
Share on other sites
My bad, I'm sorry for the title. I wanted to rename it to WinNT 6.1 but I can't find a way to do it :-( Happened to me several times. So I'm dealing with Windows 7, of course.

Do you have any knowledge that VNC might log in a user into a console session, somehow? Which VNC? When running as a service, with no user logged in first, of course.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!