Scorchio

I was wondering if anyone has had any success with the XNA framework on a pc with the Intel 915G chipset. I have a user reporting an XNA-based program of mine is failing to start up due to it being unable to find a suitable graphics device.

Reading around on various forums, I gather the shader support offered by the Intel 915G is somewhat non-standard, which may explain why XNA can't or won't use it.

Unfortunately, I have no access to a pc with this chipset, so there's not much I can do in the way of testing. Has anyone got XNA up and running with the 915g, and if so, how

Thanks!


Re: XNA Framework XNA vs Intel 915G

Jim Perry

I'm assuming that's an old on-board chipset The user needs to get a decent graphics card that supports shader model 1.1 (preferably 2.0).




Re: XNA Framework XNA vs Intel 915G

MarcD

I think the safe answer to this is no it does not. I have a laptop that has the Intel 945, which should be a generation or 2 ahead of the 915.

This laptop - for being as powerful as it is can't run City Life, Ceasar 4, or age of empires 3.

Age of empires 3 actually will run, while the others crash, however all of the triangles are flying all over the screen. Suffice to say I've not found a single game that uses pixel shaders that will run on this laptop. So I'm sure you can guess where I'd place my bets.





Re: XNA Framework XNA vs Intel 915G

Scorchio

That pretty much confirms what I've read elsewhere.

The Intel web site actually claims that the 915 has "hardware acceleration for 3D graphics that utilize Microsoft DirectX* 9.0 and OpenGL* 1.4. DirectX 9.0 supports Vertex Shader* 3.0 on the CPU using the Processor Specific Graphics Pipeline (PSGP) and support for hardware accelerated Pixel Shader* 2.0 in the chipset." Seems there's a big gap between "support for" and "implements a working version of".

Thanks guys!






Re: XNA Framework XNA vs Intel 915G

Alan Phipps

Hi,

My laptop uses the Mobile Intel 915GM/GMS ,910ML Express chipset and I had no problem when creating a 2D game using a spritebatch to display textures. However, when i started my 3D game, no errors were shown in the GSE window but it would not run. I later found that was due to no proper shader support as previously mentioned. However if you open the .fx file that holds the effect that you are trying to apply and change all occurrences this text:

if (xEnableLighting)
Output.LightingFactor = dot(Normal, -xLightDirection);

to

// if (xEnableLighting)
// Output.LightingFactor = dot(Normal, -xLightDirection);

I found that the game would now run. I dont know what it does but it will do until I ghet my new graphics card.

Hope this helps

ta

alan





Re: XNA Framework XNA vs Intel 915G

Jon Watte

The 915G supports shader model 2, at least if you have the appropriate drivers. You may need to download newer drivers from the Intel web site, or from the hardware vendor web site (if it's a laptop).
The only reason why it wouldn't support it would be if you're trying to run through terminal services (which doesn't support D3D in general).





Re: XNA Framework XNA vs Intel 915G

CodePfo

I think I have a 915G (or something equivalent, like a 910G) and XNA works. But there are a lot of quirks with the card, like supporting VS 3.0 and only PS 2.0. There are a lot of other options disabled if you look in the device capabilities, but it does work.




Re: XNA Framework XNA vs Intel 915G

scoy

The real quirk with the 915G's shader support is that it doesn't have any vertex shader hardware at all. You have to enable software vertex processing when you create the device or the creation will fail. If you read the caps bits it returns 0.0 for vertex support.

scoy





Re: XNA Framework XNA vs Intel 915G

Scorchio

That sounds promising, scoy. As I mentioned, this is someone else's machine, so testing is difficult. Let me quickly go through what I'd need to do, to make sure I'm on the right track (from reading through the msdn docs):

In my Microsoft.Xna.Framework.Game derived class constructor I have

graphics = new GraphicsDeviceManager( this );

and graphics.GraphicsDevice comes back as null because of the lack of vertex shader hw. If it does, I check to see if

GraphicsAdapter.DefaultAdapter.GetCapabilities( DeviceType.Hardware ).VertexShaderVersion

is 0.0, and if it is, set the vertex shader to software using

graphics.MinimumVertexShaderProfile = ShaderProfile.VS_2_SW;
graphics.ApplyChanges();


after which graphics.GraphicsDevice should hopefully be non-null

Does that look about right, or am I barking up the wrong tree