intel q965/963 directx bluescreen

Windows specific forum
User avatar
djes
Addict
Addict
Posts: 1806
Joined: Sat Feb 19, 2005 2:46 pm
Location: Pas-de-Calais, France

intel q965/963 directx bluescreen

Post by djes »

I have some problems on intel chipset regarding directx applications. It occurs directly on initsprite(), on several computers.

Is there a workaround?
Last edited by djes on Fri May 16, 2008 1:07 pm, edited 1 time in total.
Fred
Administrator
Administrator
Posts: 18360
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Post by Fred »

Driver issue ?
User avatar
djes
Addict
Addict
Posts: 1806
Joined: Sat Feb 19, 2005 2:46 pm
Location: Pas-de-Calais, France

Post by djes »

Well, certainly (intel rulez!). It's a bit annoying, as Intel is the 1st graphic chipset seller ( :roll: ). No hope to found why? If you want, I can launch a step by step code and give you the result. I have three computers at work with the problem and another one at a friend's home.
Tranquil
Addict
Addict
Posts: 952
Joined: Mon Apr 28, 2003 2:22 pm
Location: Europe

Post by Tranquil »

Here at work we also use Intel Graphic and I can not reproduce a bluescreen.
Could you give a source to test?
Tranquil
User avatar
djes
Addict
Addict
Posts: 1806
Joined: Sat Feb 19, 2005 2:46 pm
Location: Pas-de-Calais, France

Post by djes »

Just initsprite(). I did all I can do. Updating drivers, checking speedstep, modifying ram settings, and others things I forgot.

What is your chipset?

I'll try again tomorrow.
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Post by Mistrel »

Which on-board Intel graphics accelerator are you using?
Tranquil
Addict
Addict
Posts: 952
Joined: Mon Apr 28, 2003 2:22 pm
Location: Europe

Post by Tranquil »

We use the Intel 82845G Graphic controller which works fine.
Tranquil
User avatar
djes
Addict
Addict
Posts: 1806
Joined: Sat Feb 19, 2005 2:46 pm
Location: Pas-de-Calais, France

Post by djes »

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 :

Code: Select all

LoadSprite(0, "Data\Geebee2.bmp", #PB_Sprite_Texture)
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...
rotacak
User
User
Posts: 77
Joined: Tue Feb 14, 2006 2:00 pm

Post by rotacak »

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:

Code: Select all

InitSprite()
OpenScreen(800, 600, 32, "x")
LoadSprite(1, "x.png",#PB_Sprite_Texture)
This no:

Code: Select all

InitSprite3D()
OpenScreen(800, 600, 32, "x")
LoadSprite(1, "x.png",#PB_Sprite_Texture)
This also no:

Code: Select all

OpenScreen(800, 600, 32, "x")
LoadSprite(1, "x.png",#PB_Sprite_Texture)
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):
Image

Can be texture loaded in any other way than this for Sprite3D usage?
rotacak
User
User
Posts: 77
Joined: Tue Feb 14, 2006 2:00 pm

Post by rotacak »

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. :-(
User avatar
djes
Addict
Addict
Posts: 1806
Joined: Sat Feb 19, 2005 2:46 pm
Location: Pas-de-Calais, France

Post by djes »

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 :

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;

} 
here : http://software.intel.com/en-us/article ... pers-guide
Fred
Administrator
Administrator
Posts: 18360
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Post by Fred »

For now, we don't force hardware vertex processing, the default is software (if the capability D3DDEVCAPS_HWTRANSFORMANDLIGHT isn't found).
User avatar
djes
Addict
Addict
Posts: 1806
Joined: Sat Feb 19, 2005 2:46 pm
Location: Pas-de-Calais, France

Post by djes »

Ok... Damn Intel! :evil:
Fred
Administrator
Administrator
Posts: 18360
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Post by Fred »

From what i understand, it test it only if the capability isn't present, and as the software mode is the mimum one.. May be we can add this check, but the screen will not open then, if it returns E_MINSPEC
User avatar
djes
Addict
Addict
Posts: 1806
Joined: Sat Feb 19, 2005 2:46 pm
Location: Pas-de-Calais, France

Post by djes »

Yes, it will need more searches...
Post Reply