Skip to main content
GameDev.net gamedev.net
🔒 Locked

Virtual Machines

Started by 3Ddreamer Jul 31, 2016 at 1:26 AM 17 replies 5.6k views
Original Post
3Ddreamer
3Ddreamer

Hi,

Is there a way to use a Virtual Machine as a work around for a hardware limitation?

My computer only has hardware support for OpenGL 2.1 (DirectX 11 is just fine - oddly enough, but can't go above OpenGL 2.1)

I want to develop with SDL 3.X and OpenGL 4.X

This is only for simple 2D and 3D game development when performance is not critical.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software.  The better the workflow pipeline, then the greater the potential output for a quality game.  Completing projects is the last but finest order. </p
ApochPiQ
ApochPiQ
A VM cannot provide hardware acceleration services unless the host itself has that hardware. You can emulate hardware but it's gonna be dog slow.
frob
frob

Mesa3D drivers have a software implementation, the latest releases support OpenGL 4.3.

SeanMiddleditch
SeanMiddleditch

Crazy thought - you could just use SDL and D3D for your game.

You'll lose out on a handful of irrelevant platforms at first... until you port your game later to GL when you have the hardware, if for some reason you find that you need to target a platform that forces GL down your throat.

Extra bonus because the D3D development tools are better than anything available for GL meaning that with D3D you'll spend more time making a fun and interesting game and less time wrestling with undiagnosable renderer bugs and questionable drivers.


Sean Middleditch – Game Systems Engineer – Join my team!
Bregma
Bregma

Only has hardware support for GL 2.1? Maybe you just need to update your hardware to something made in the last 10 to 15 years, because it's likely your GPU is out of support and a simple driver update won't be possible any more.

Seriously, if you're trying to develop game on something made in 2006, you're going to run into plenty of other problems starting with Windows XP no longer being supported.

If your hardware is newer, it probably does support OpenGL 3 or later. You need to query the driver to find out what it supports, and you probably need to use an extension wrangler library like GLEW to wrap calls.

Stephen M. Webb
Professional Free Software Developer
3Ddreamer
3Ddreamer

I have a laptop with Intel integrated graphics of some sort. I used the Intel driver update utility and also the OpenGL detection utility. I am stuck with OpenGL 2.1

My impression was that this hardware will never support anything higher than OpenGL 2.1 for whatever reason, according to the Intel website.

There have been so many driver or compatibility issues with Intel that I am almost done with products from that company. It just outrageous to me that I can have DirectX 11 but nothing higher than OpenGL 2.1 Ironically, there is some older Intel hardware which is updatable to OpenGL 3.X or 4.X Acer (laptop manufacturer) does not handle the issue in this case with this particular laptop model and referred me to Intel. (UHG!)

Does Visual Studio have an OpenGL detection ability? Can I still develop with OpenGL 4.X in Visual Studio and test in another computer?

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software.  The better the workflow pipeline, then the greater the potential output for a quality game.  Completing projects is the last but finest order. </p
ongamex92
ongamex92

@Home I have OpenGL 3 (or was it 4.2, cannot remember) via Gallum under VMware workstation with vmware drivers under Ubuntu with nVidia 960m(and intel HD graphics). This is working on Windows 7.

Ivorne
Ivorne

Your options:

1. Make OpenGL 3 or 4 work on your hardware - If your hardware supports Direct3D 11, it also supports OpenGL 3 or 4 with all important extensions. Hardware itself does not usually does not care, if you control it with GL or D3D. Yes, drivers might be a problem. I never heard of similar problem (only opengl 2), I think that it should be solvable. Ihis would be ideal solution if you make it work.

2. Linux - Graphics drivers are known to be problematic on Linux, but thanx to mesa and its software gl implementation, you can get at least non-accelerated opengl even on livecd. I personaly develop both on win and linux and I consider Linux to be much better for development. I would suggest this solution.

3. virtualization - vmware, virtualbox or other. I think that these do not emulate graphics hardware, so if you run windows in it, you will not get hardware acceleration. Running Linux in vmware will give you at least emulated acceleration. You can pick this solution, if you consider development on Linux but you do not want to switch immediately to linux. It is not ideal definite solution.

4. use direct3d instead of opengl - SeanMiddleditch highly recommended this, but I disagree with him. "You do not need those platforms and if you will, you can still switch to OpenGL." is retarded advice in my oppinion. DirectX works only on Windows and XboxOne. OpenGL works on most platforms except xboxOne and mobile platforms (works on Windows, linux, mac, ps4, somehow on Wii). OpenGl ES works on almost everything except xboxOne. I would not suggest you to use Direct3D.

5. Use a library with higher level API - do not write directly in opengl but rather use some graphics engine. Graphics engines are usualy part of a game engine / game framework. SDL allows you to do some rendering operations without using opengl directly. Graphics engines tend to have multiple backends (opengl 2, opengl 4, direct3d 9, direct3d 11, opengl es). I use cocos2d-x (it has 3d support too), but I only use it only for graphics rendering and scene tree and low to mid level input dispatch. Ogre3d or irrlicht might be an option for you. I can suggest this option. If you want to learn some opengl, just try some tutorials (to learn how the opengl pipeline works - vertex arrays, buffers, shaders etc) and then switch to some graphics engine. Even when using an engine, you will have plenty opportunities to work directly with opengl.

Tangletail
Tangletail

Hi,

Is there a way to use a Virtual Machine as a work around for a hardware limitation?

My computer only has hardware support for OpenGL 2.1 (DirectX 11 is just fine - oddly enough, but can't go above OpenGL 2.1)

I want to develop with SDL 2.X and OpenGL 4.X

This is only for simple 2D and 3D game development when performance is not critical.

Am I seriously going to be the only guy that questions what this guy has that only gives him access to OpenGL 2.1... but it's perfectly ok with Directx 11?

SeanMiddleditch
SeanMiddleditch

Am I seriously going to be the only guy that questions what this guy has that only gives him access to OpenGL 2.1... but it's perfectly ok with Directx 11?


Intel hardware, probably. They pushed out DX11 drivers for a number of chips but never bothered with GL support, and the chips are now old enough that they no longer receive driver updates (and hence will never get GL support despite being capable).

Alternatively, it may just be old D3D9-era hardware. Microsoft actually put a lot of effort into DX11 emulation aka "WARP" (mostly for debugging and verification purposes) so you can run DX11 code just fine on old hardware; it just won't be particularly fast.

There's also plenty of hardware (also in the "older" bucket... mostly) that had newer GL drivers but they never worked particularly well. Which is precisely why GL|ES wrappers to D3D (e.g. ANGLE) exist and why all that fancy WebGL you run in Chrome or Firefox on Windows is actually driven by Direct3D and not the native OpenGL drivers.

Finally, there are also platforms like OSX which do actually support newer GL but only when the API is initialized in the non-default Core mode. The default Compatibility mode is capped at GL 2. The same hardware on Windows will likely have DX11 support. This confuses a lot of people as none of non-Apple desktop platforms have restrictions on Compatibility mode features. It makes porting a surprising pain for a lot of hobbyists because most OpenGL ends up being an unwitting mix of Core-approved and Core-deprecated API calls, given how awful and spotty the popular GL documentation and tutorials are.
Sean Middleditch – Game Systems Engineer – Join my team!
kop0113
kop0113
You can use Virtual Machines to get OpenGL 3.0 since LLVMpipe on most modern Linux distributions provides a software renderer advertising OpenGL 3.0 compliance. Unfortunately it does not go higher yet to 4.x.

It's also quite slow (though surprisingly not too bad) and only really useful for certain testing.
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
3Ddreamer
3Ddreamer

Once again, Intel utility and the website says that I am stuck with OpenGL 2.1 after using the Intel driver update utility. There are a few models of Intel hardware versions which are stuck on OGL 2.1

It's weird because I have Win 7 and DirectX 11, but can't get a driver update beyond OpenGL 2.1

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software.  The better the workflow pipeline, then the greater the potential output for a quality game.  Completing projects is the last but finest order. </p
21st Century Moose
21st Century Moose

Direct3D actually complicates this a little because there are two components: the common runtime which is on all PCs, and the vendor-provided driver. Under Windows 7 you may very well have D3D11 via the common runtime, but do you actually have hardware support for D3D11?

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls. 
21st Century Moose
21st Century Moose

Mesa3D drivers have a software implementation, the latest releases support OpenGL 4.3.

This of course should always come with the warning: as a software implementation it's going to be too slow for general usage.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls. 
kop0113
kop0113

I have an Intel GMA 965 GPU and the official Intel drivers for Windows only support OpenGL 2.0 (so no render textures and WebGL does not initialize in firefox).

However,

On Linux and OpenBSD it is a different story. The open-source Intel drivers for my hardware actually support OpenGL 2.1 and thus render textures and WebGL does work.

In theory open-source drivers are always going to be newer and support newer things because developers don't stop working on them once the original hardware becomes obsolete.

Quite what the hardware actually supports or if there is some sort of emulation happening on Linux, I am not sure but you might want to give it a go.

Put in a Linux live-cd and run glxinfo. This should then state your OpenGL support version.

http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
frob
frob

Mesa3D drivers have a software implementation, the latest releases support OpenGL 4.3.

This of course should always come with the warning: as a software implementation it's going to be too slow for general usage.

Possibly so and I don't recommend playing the latest high-end games with them, but they're probably more than enough for the topic at hand, with the note: "This is only for simple 2D and 3D game development when performance is not critical."

The Mesa drivers are not as fast has the specialized 3D hardware, but they aren't terribly slow, either. They take advantage of all kinds of modern hardware techniques to get great performance.

TheChubu
TheChubu



Does Visual Studio have an OpenGL detection ability?
No. They have nothing to do with eachother. If you want any "OpenGL detection ability" you'll have to code it yourself.


Can I still develop with OpenGL 4.X in Visual Studio and test in another computer?
Of course. They're unrelated.
"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"   My journals: dustArtemis ECS framework and 
LorenzoGatti
LorenzoGatti

Replace your computer and make the world a better place by destroying an Intel integrated graphics adapter. You deserve more than fighting with Intel OpenGL drivers.

Omae Wa Mou Shindeiru

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.