Software Fallback?

Started by
6 comments, last by Wilhelm van Huyssteen 9 years, 5 months ago

Hi.

Im doing the programming on a certain 2D project. I'm using my own game engine and I'm developing on a windows pc. The person I'm working with unfortenetley has a mac wich means I need to be able to make mac test builds for him to test. Now Ive made a build that seems to work on his mac but he says it runs extremely slowly (as in theres a good amount of time between frames whereas the game should run at 60 fps and is not intensive at all).

Im thinking it might be the video driver falling back to software but Im not sure how to go about it especially since I don't have access to a mac to test it myself :/

Hes graphics hardware is Intel HD Graphics 3000 512 MB

Is this hardware perhaps known to give such issues? And if yes is there anything one can do about it?

I've also uploaded a version of the prototype for if there is anyone with a mac willing to help me test it. Especially if you have a better graphics card. Due to an NDA I've stripped all the artwork and replaced it with colored squares. But if you see any squires moving across the screen then it means its working.

https://drive.google.com/file/d/0ByipJlGRu1zsV0dWMXFxOTE4eFE/view?usp=sharing

Thnx in Advance!

Advertisement

Hummm I develop using SDL2.0 + OpenGL in my PC and use the same code ( regarding the header files inclusion ) in my MacBook when I am "on the move"...

I have no performance problems using SDL2.0 and OpenGL...

May you tell us ( I cant access google drive from my work ) a bit more about your development process? What programming language are you using to dev? What libraries? And how do you compile the code to run in your friend´s MAC if you don't have access to it?

As you said, you must build a specific version of your software to run on Mac, so I dont think you are using Java or HTML or Flash... you may be using some "native code language"... how about telling us a little more about it?

KrinosX

It could be drivers, but beware that integrated GPU is a couple generations old and it was really only with the HD4000 series that Intel's IGP performance became acceptable. Its just a lower performing part than what you might have your local tests running on. Also, since its old, it might lack features you're using and that could cause a software fallback to jump in like you expect. The best idea is probably to investigate and find out if this is the case, then implement an alternate rendering path that's more optimal for HD3000. There's a lot of HD3000 out there, so for a simple game that ought to run on that hardware its good for you to make sure it runs well, because that's a lot of customers.

throw table_exception("(? ???)? ? ???");

AFAIK, HD 3xxx series should go up to OpenGL 3.1 on Windows, 3.3 on Linux with Mesa. Not sure what's the situation in OSX world, didn't they supported up to 3.2 with those cards?

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

ok some more info as requested. I use java and the lwjgl opengl wrapper (wich supports windows, linux and mac). To make the mac build i use vmware to run macosx on my windows machine. but that has the limitation of not suporting any hardware rendering so i can only test it to an extent. I also bundle a jre into the app so the system it runs on doesnt need java installed. I should not be using any feutures newer than 2.1 unless im not realising it (wich i supose is possible) but the game in its current state is a dead simple prototype that only has one simple vertex/fragment shader set to render 2D objects.


I should not be using any feutures newer than 2.1 unless im not realising it

Are you specifically asking for a 2.1 context?

This is important since otherwise OSX might give you the highest context it can give you (ie, OpenGL 3 context), and since OSX lacks an 'arb_compatibility' profile, your code using GL2 features might mess things up.

EDIT: You can ask specifically for a 2.1 context with LWJGL like this:

// Standard pixel format. alpha, depth, stencil.
PixelFormat pixelFormat = new PixelFormat( 8, 24, 8 );
// Context attributes, 2.1, major version, minor version.
ContextAttribs contextAttributes = new ContextAttribs( 2, 1 );
 
// Then you create your display like:
Display.create( pixelFormat, contextAttributes );

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

AFAIK, HD 3xxx series should go up to OpenGL 3.1 on Windows, 3.3 on Linux with Mesa. Not sure what's the situation in OSX world, didn't they supported up to 3.2 with those cards?

Technically 3.1 (due to a few missing features from 3.2 and 3.3), but the HD 3000 supports version 400 GLSL strangely.


Are you specifically asking for a 2.1 context?

This is important since otherwise OSX might give you the highest context it can give you (ie, OpenGL 3 context), and since OSX lacks an 'arb_compatibility' profile, your code using GL2 features might mess things up.

EDIT: You can ask specifically for a 2.1 context with LWJGL like this:

// Standard pixel format. alpha, depth, stencil.
PixelFormat pixelFormat = new PixelFormat( 8, 24, 8 );
// Context attributes, 2.1, major version, minor version.
ContextAttribs contextAttributes = new ContextAttribs( 2, 1 );

// Then you create your display like:
Display.create( pixelFormat, contextAttributes );

Thnx i didnt know that. Il give it a try.

This topic is closed to new replies.

Advertisement