strage behavior on different GPUs with direct3d9

BlitzMax Forums/BlitzMax Programming/strage behavior on different GPUs with direct3d9

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

hmm, it seems that the problems comes exclusive from the D3D9GraphicsDriver inititialization. if I only use a very simple inititialization it works fine:
Direct3D9 = Direct3DCreate9( $900 )

If Not Direct3D9  Then 
	assert "error creating d3d9interface!"
EndIf

		
PParams = New D3DPRESENT_PARAMETERS
		
PParams.SwapEffect       = D3DSWAPEFFECT_DISCARD;
PParams.hDeviceWindow    = hwnd;
PParams.Windowed         = bWindowed;
PParams.BackBufferWidth  = w;
PParams.BackBufferHeight = h;
PParams.BackBufferFormat = D3DFMT_A8R8G8B8;


hr = Direct3D9.CreateDevice( 0 ,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,PParams,Direct3DDevice9) <> D3D_OK
		
If hr Then 
	assert "error creating d3d9device!"
EndIf 


Direct3DDevice9.GetBackBuffer(0,0, D3DBACKBUFFER_TYPE_MONO, BackBuffer );


The missing tris, comes from using D3DCREATE_HARDWARE_VERTEXPROCESSING regardless that _Direct3D9.CreateDevice returns D3D_OK.

But when using D3DCREATE_SOFTWARE_VERTEXPROCESSING in the d3d9driver, the driver crashes after a few seconds with an unhandled memory exception at Flip... _SwapChain.Present(Null, Null, Null, Null, flags) ?!

So, I think I write a own small TGraphicsDriver, in order to quickly continue... impartial therefrom I dont know whats the problem with D3DCREATE_HARDWARE_VERTEXPROCESSING.