CreateDevice and the difference btw. R9600 & R9800 ?

Started by
6 comments, last by Metzler 20 years, 5 months ago
Hey, I have one more question : A friend of mine is not able to start my application, it the DirectGraphics Init simply fails. So the problem is that his computer (or his Radeon 9600) doesnt want one of my CreateDevice-methods :


		bool success = false;
		
		if (SUCCEEDED(lpD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd, 
											D3DCREATE_SOFTWARE_VERTEXPROCESSING,
											&params,
											&lpDevice))) 
		{
			MessageBox(NULL, "1", "1", MB_OK);
			success = true;
		}
		else if (SUCCEEDED(lpD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_REF, hwnd, 
											D3DCREATE_SOFTWARE_VERTEXPROCESSING,
											&params,
											&lpDevice))) 
		{
			MessageBox(NULL, "2", "2", MB_OK);
			success = true;
		}
 
What exactly is my problem ? Or what am i missing ? THX for your help, again...
Advertisement
I nearly forgot my params struct :

	if (FAILED(lpD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm))) return false;					params.BackBufferHeight					=   screen_height;		params.BackBufferWidth					=	screen_width;			params.BackBufferFormat                 =   d3ddm.Format;		params.BackBufferCount					=   1;		params.Windowed                         =   this->windowed;		params.hDeviceWindow                    =   hwnd;		params.SwapEffect                       =   D3DSWAPEFFECT_COPY; 

If you examine the return value from the CreateDevice call, it will tell you exactly what the problem is.

Have your app display the return value as hex, and then enter that hex number into the DX Error Lookup tool provided with the SDK.
Also, make sure that your friend has DX9 installed. He doesn''t need the DX9 SDK but he does need to install the end user runtime. You can do that off of the Windows Update web site.

The Radeon 9600 and the 9800 have exactly the same capabilities. The difference is that the 9600 has half of the geometry pipelines (4 instead of the 9800''s 8) and half of the pixel pipelines (2 instead of the 9800''s 4). Other than that, they''re exactly the same, so you shouldn''t have any problems running an app developed using one card and run on a computer using the other.

neneboricua
Thank you both. It suddenly worked without me having rewritten anything...

In that case, you may just be lucky. Did you completely zero out your params structure before filling in the fields you were interested in? If not, then you may have garbage in one or more of the unspecified fields. I'm forever forgetting to ZeroMemory my structures and then trying to track down these wiered bugs.


[edited by - Dave Hunt on November 11, 2003 3:36:00 PM]
Yes, the params-structure is zeroed out.
I "love" such random things...
What version of the ATI Drivers are you’re using? I started having some problems the other with the latest ATI drivers (I believe that they are version 3.9).

PS: Your source code will look better if you use source tags. Source tags are explained in the FAQ (upper right corner of the screen).


_______________________________________
Understanding is a three edged sword...
_______________________________________Understanding is a three edged sword...Freelance Games - Home of XBLIG Starchonwww.FreelanceGames.com

This topic is closed to new replies.

Advertisement