intel q965/963 directx bluescreen
intel q965/963 directx bluescreen
I have some problems on intel chipset regarding directx applications. It occurs directly on initsprite(), on several computers.
Is there a workaround?
Is there a workaround?
Last edited by djes on Fri May 16, 2008 1:07 pm, edited 1 time in total.
Confirmed. After several tests, latest graphic drivers installed, there's a blue screen not on initsprite() as i said before, but on loadsprite().
The test has been done with the sprite3d.pb example in the pb source's directory. Hang on :
I've tried to load a png instead, changing the bmp size, using directx9 subsystem, with no result. Bluescreen indicates a defect in one of the drivers dll, but the majority of games tested are working perfectly, even in 3d 
Strangely, there's no problem on regular sprites examples...
The test has been done with the sprite3d.pb example in the pb source's directory. Hang on :
Code: Select all
LoadSprite(0, "Data\Geebee2.bmp", #PB_Sprite_Texture)
Strangely, there's no problem on regular sprites examples...
I have same problem here. If you remove "#PB_Sprite_Texture", then it work ok. Otherwise blue screen 
GFX card: intel 965
This will work:
This no:
This also no:
It will cause blue screen or when you have installed visual studio, then this appear (but not always, when is biggest code, then blue screen):

Can be texture loaded in any other way than this for Sprite3D usage?
GFX card: intel 965
This will work:
Code: Select all
InitSprite()
OpenScreen(800, 600, 32, "x")
LoadSprite(1, "x.png",#PB_Sprite_Texture)Code: Select all
InitSprite3D()
OpenScreen(800, 600, 32, "x")
LoadSprite(1, "x.png",#PB_Sprite_Texture)Code: Select all
OpenScreen(800, 600, 32, "x")
LoadSprite(1, "x.png",#PB_Sprite_Texture)
Can be texture loaded in any other way than this for Sprite3D usage?
I know, I should not ask if this bug will be fixed, but I see many [done] around with not fatal bugs. And this is fatal bug, because some users cant use programs from purebasic.
In better case this can be checked and program can show something like "You have modern but unsupported graphic card". In worst case will just crash whole OS to bluescreen.
Both cases are bad. User will buy software written in purebasic and that software may not work.
So, I want to ask if this will be fixed sometime soon, or if someone working on it, or if this bug can be bypassed trough another commands. Because otherwise I must rewrite my program to other basic.
In better case this can be checked and program can show something like "You have modern but unsupported graphic card". In worst case will just crash whole OS to bluescreen.
Both cases are bad. User will buy software written in purebasic and that software may not work.
So, I want to ask if this will be fixed sometime soon, or if someone working on it, or if this bug can be bypassed trough another commands. Because otherwise I must rewrite my program to other basic.
I have found that on some of theses chipsets, the bsod occurs when one's trying to force hardware support for vertex shader. You have to test if the hw is able to do it, and not let directx do it for you... Maybe it could work. I have found this piece of code : here : http://software.intel.com/en-us/article ... pers-guide
Code: Select all
DWORD SetVertexProcessingMode( LPDIRECT3D9 pD3D )
{
DWORD vertexprocessingmode; // vertex processing mode
D3DCAPS9 caps; &nbs p; // Device CAPs structure
D3DADAPTER_IDENTIFIER9 adapterID; // Used to store device info
// Retrieve device capabilities
if( g_pD3D->GetDeviceCaps( 0, D3DDEVTYPE_HAL, &caps ) != D3D_OK )
{
return E_FAIL; // exit if reading caps fails...
}
// Check if hardware T&L is supported...
// - The D3DDEVCAPS_HWTRANSFORMANDLIGHT capability should
// be enabled for GMA X3000
if ( ( caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT ) != 0 )
{
vertexprocessingmode = D3DCREATE_HARDWARE_VERTEXPROCESSING;
}
else
{
// Check vendor and device ID and enable software vertex
// processing for Intel(R) Graphics...
// Gather the primary adapter's information...
if( g_pD3D->GetAdapterIdentifier(0,0,&adapterID ) != D3D_OK )
{
return E_FAIL;
}
if ( ( adapterID.VendorId == 0x8086 ) && // Intel Architecture
( adapterID.DeviceId == 0x2A02 ) || // GM965 Device 0
( adapterID.DeviceId == 0x2A03 ) || // GM965 Device 1
( adapterID.DeviceId == 0x29A2 ) || // G965 Device 0
( adapterID.DeviceId == 0x29A3 ) || // G965 Device 1
( adapterID.DeviceId == 0x27A2 ) || // 945GM Device 0
( adapterID.DeviceId == 0x27A6 ) || // 945GM Device 1
( adapterID.DeviceId == 0x2772 ) || // 945G Device 0
( adapterID.DeviceId == 0x2776 ) || // 945G Device 1
( adapterID.DeviceId == 0x2592 ) || // 915GM Device 0
( adapterID.DeviceId == 0x2792 ) || // 915GM Device 1
( adapterID.DeviceId == 0x2582 ) || // 915G Device 0
( adapterID.DeviceId == 0x2782 ) || // 915G Device 1
{
vertexprocessingmode = D3DCREATE_SOFTWARE_VERTEXPROCESSING;
}
else
{
// Chipset does not meet minimum requirements...
return E_MINSPEC;
}
}
return vertexprocessingmode;
} 

