Running TSE MS4
by Adam · in Torque Game Engine Advanced · 01/02/2007 (10:15 am) · 6 replies
I have a desktop computer with a pretty good 3d graphics card that I can run TSE on fine. When I try and run it on my laptop I get a popup dialog that says it failed to initialize the Direct3D device. Now I've run a few shader programs on my laptop before that I wrote, and didn't have any problems so is there any way to find out what exactly is causing the device creation to fail.
I don't have a good graphics card, only integrated, but it says it supports Vertex and Pixel shaders. I can do a device Caps in my own programs and everything seems to check out okay, but I will keep playing around with things.
I have the 945GM
http://www.intel.com/support/graphics/sb/cs-014257.htm
These are the last few lines of the log file.
common/client/canvas.cs (12): Unable to find function videoSetGammaCorrection
Video Init:
DirectX version - 9.0
Direct 3D device found
Thanks in advance for help
Adam
I don't have a good graphics card, only integrated, but it says it supports Vertex and Pixel shaders. I can do a device Caps in my own programs and everything seems to check out okay, but I will keep playing around with things.
I have the 945GM
http://www.intel.com/support/graphics/sb/cs-014257.htm
These are the last few lines of the log file.
common/client/canvas.cs (12): Unable to find function videoSetGammaCorrection
Video Init:
DirectX version - 9.0
Direct 3D device found
Thanks in advance for help
Adam
About the author
#2
My laptop is only about a month old, but I couldn't find one in town with a good graphics card, and I needed it that day because my desktop had some problems.
Sony Vaio
Intel Dual Core 2 Duo 1.83 GHZ
1 GB DDR 667 Ram
128 MB Intel 954GM
Here is what I did in my own program
ZeroMemory( &Caps, sizeof(D3DCAPS9));
pD3D->GetDeviceCaps( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &Caps);
if(Caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT)
{
ulFlags = D3DCREATE_HARDWARE_VERTEXPROCESSING;
Logging::Instance()->WriteToLog("Hardware Vertex Processing Device");
}
else
{
Logging::Instance()->WriteToLog("Software Vertex Processing Device");
}
//Log other things about the device
if(Caps.PixelShaderVersion < D3DPS_VERSION(2, 0))
{
Logging::Instance()->Error("Initialization", "Does not support PixelShader 2.0");
}
if(Caps.VertexShaderVersion < D3DVS_VERSION(2, 0))
{
Logging::Instance()->Error("Initialization", "Vertex Shader Version 2.0 is not supported");
}
The second error displayed in my log file which is really strange, because it says it is supported on Intels webpage.
Adam
01/02/2007 (10:49 am)
Yeah that is kind of what I was figuring, I just ran some Device Caps in DirectX and found out that it doesn't support Vertex Shaders 2.0, but it does support Pixel Shaders 2.0. Doesn't TSE support creating a software vertex processing device instead of a hardware accelerated one?My laptop is only about a month old, but I couldn't find one in town with a good graphics card, and I needed it that day because my desktop had some problems.
Sony Vaio
Intel Dual Core 2 Duo 1.83 GHZ
1 GB DDR 667 Ram
128 MB Intel 954GM
Here is what I did in my own program
ZeroMemory( &Caps, sizeof(D3DCAPS9));
pD3D->GetDeviceCaps( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &Caps);
if(Caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT)
{
ulFlags = D3DCREATE_HARDWARE_VERTEXPROCESSING;
Logging::Instance()->WriteToLog("Hardware Vertex Processing Device");
}
else
{
Logging::Instance()->WriteToLog("Software Vertex Processing Device");
}
//Log other things about the device
if(Caps.PixelShaderVersion < D3DPS_VERSION(2, 0))
{
Logging::Instance()->Error("Initialization", "Does not support PixelShader 2.0");
}
if(Caps.VertexShaderVersion < D3DVS_VERSION(2, 0))
{
Logging::Instance()->Error("Initialization", "Vertex Shader Version 2.0 is not supported");
}
The second error displayed in my log file which is really strange, because it says it is supported on Intels webpage.
Adam
#3
I end up getting this log
Cur. D3DDevice ref count=1
Pix version detected: 2.000000
Vert version detected: 3.000000
Initializing GFXCardProfiler (D3D9)
o Vendor : 'Intel Corporation'
o Card : 'Intel(R) GMA 950'
o Version: '45.43'
- Scanning card capabilities...
GFXCardProfiler (D3D9) - Setting capability 'autoMipMapLevel' to 0.
GFXCardProfiler (D3D9) - Setting capability 'maxTextureWidth' to 2048.
GFXCardProfiler (D3D9) - Setting capability 'maxTextureHeight' to 2048.
- Loading card profiles...
- Loading card profile profile/D3D9.cs
- No card profile profile/D3D9.IntelCorporation.cs exists
- No card profile profile/D3D9.IntelCorporation.IntelRGMA950.cs exists
- No card profile profile/D3D9.IntelCorporation.IntelRGMA950.4543.cs exists
Executing common/ui/defaultProfiles.cs.
Executing common/ui/ConsoleDlg.gui.
Texture Manager
- Approx. Available VRAM: 134217728
- Threshold VRAM: 67108864
- Quality mode: high
Fatal: (c:\tse_ms4\tse\engine\gfx\d3d\gfxd3ddevice.h @ 22) D
I
Failed to get surface
Error, a DecalManager (1c7c498) isn't properly out of the bins!
Hopefully someone at garagegames can make it so software vertex processing is possible.
01/03/2007 (6:28 am)
I modified the code to create a software vertex processing device and it doesn't work so a hardware vertex processing device must be required.I end up getting this log
Cur. D3DDevice ref count=1
Pix version detected: 2.000000
Vert version detected: 3.000000
Initializing GFXCardProfiler (D3D9)
o Vendor : 'Intel Corporation'
o Card : 'Intel(R) GMA 950'
o Version: '45.43'
- Scanning card capabilities...
GFXCardProfiler (D3D9) - Setting capability 'autoMipMapLevel' to 0.
GFXCardProfiler (D3D9) - Setting capability 'maxTextureWidth' to 2048.
GFXCardProfiler (D3D9) - Setting capability 'maxTextureHeight' to 2048.
- Loading card profiles...
- Loading card profile profile/D3D9.cs
- No card profile profile/D3D9.IntelCorporation.cs exists
- No card profile profile/D3D9.IntelCorporation.IntelRGMA950.cs exists
- No card profile profile/D3D9.IntelCorporation.IntelRGMA950.4543.cs exists
Executing common/ui/defaultProfiles.cs.
Executing common/ui/ConsoleDlg.gui.
Texture Manager
- Approx. Available VRAM: 134217728
- Threshold VRAM: 67108864
- Quality mode: high
Fatal: (c:\tse_ms4\tse\engine\gfx\d3d\gfxd3ddevice.h @ 22) D
I
Failed to get surface
Error, a DecalManager (1c7c498) isn't properly out of the bins!
Hopefully someone at garagegames can make it so software vertex processing is possible.
#4
That said, did you install the latest DirectX SDK? Also, update your header paths and lib paths to point to the correct + up to date folders. And do a clean, rebuild of your app.
Are u able to run the vertex/pixel shader programs from the DirectX SDK examples?
01/28/2007 (4:30 pm)
You should always be able to create software vertex processing app, that's the whole point of software vertex processing builds. Of course, it goes without saying that it will be painfully slow.That said, did you install the latest DirectX SDK? Also, update your header paths and lib paths to point to the correct + up to date folders. And do a clean, rebuild of your app.
Are u able to run the vertex/pixel shader programs from the DirectX SDK examples?
#5
I think it boils down to me getting a different laptop.
02/12/2007 (2:07 pm)
Thats a really good point, so I checked to see if I could run the samples of vertex shaders just fine. I have to create a software device to run the ones with pixel shaders. I should try modifying it to make it a pure software processing device. I was trying to force vertex shaders to be GPU and pixel shaders to be done in software to get a little better performance.I think it boils down to me getting a different laptop.
#6
TES 4: Oblivion is the most recent and notable example.
I don't have my boss's Vaio near me so I don't have the specs, but there was an entire run of Vaios that was well within the release of cheap vertex shader cards, but there was a glut of pixel shader cards or some such and the laptops were shipped with them anyway.
Corporate "it will work for most people, so go with it" mentality at its finest.
02/12/2007 (2:57 pm)
For what it's worth, Vaio graphics incompatibilities are fairly common in gaming circles.TES 4: Oblivion is the most recent and notable example.
I don't have my boss's Vaio near me so I don't have the specs, but there was an entire run of Vaios that was well within the release of cheap vertex shader cards, but there was a glut of pixel shader cards or some such and the laptops were shipped with them anyway.
Corporate "it will work for most people, so go with it" mentality at its finest.
Torque Owner Vashner
As you can see from your console log it can't init D3D hardware.
What is the brand and model of the notebook?
edit: After looking at it again looks like the DirectX ver is old too.
Update that and the notebooks video drivers.
Upgrade DX, update vid driver then reinstall direct X again and then try TSE.