Mobility Radeon 9000, 9200 doesn't render anything when using fixed function pipeline

Started by
5 comments, last by kovacsp 19 years, 10 months ago
Hi! I have dx9 code, which works well on most hardware (it was tested on more then 10 cards), but it behaves strange on mobility radeon 9000 and 9200. It works on non-mobility 9000 and 9200, moreover it works on mobility radeon 7500 and 9600. The effect is: wireframed elements are ok elements using vertex shaders (dot3 bump mapped objects) are ok but the simple textured or diffuse colored objects are just invisible, nothing appears on the screen. If someone faced the same or similar problem in the past and knows the solution, then please let me know! Thank you for your help in advance, Peter
------------------------------------------------------------Neo, the Matrix should be 16-byte aligned for better performance!
Advertisement
I would suggest checking it with the debug runtime.

Stay Casual,

Ken
Drunken Hyena
Stay Casual,KenDrunken Hyena
I think this is one of two problems
1-you are not setting a variable, and the driver uses the default value in some cases, while other drivers doesn''t.try to find if you are not setting a variable in your program.
2-It may be a driver bug. Usually the drivers of the laptops are buggy in many cases.
Thanks for your replies guys!

I''ve checked it with software rendering and the debug output showed nothing wrong with it.

mohamed:
what kind of variable do you mean? renderstates? or something different? I''ll have a close look at it..
I hope it''s not a driver bug.. I downloaded the latest ones in both cases. And other software using directx runs ok, so it must be my fault.

Peter
------------------------------------------------------------Neo, the Matrix should be 16-byte aligned for better performance!
Hi,
When you are using the vertex/pixel shaders you might be bypassing the fixed function pipeline, so you might need to try rendering the fixed funtion objects before you render the shaded elements. Then try to set the device back to its basic state before rendering again.
quote:Original post by kovacsp
Thanks for your replies guys!

I've checked it with software rendering and the debug output showed nothing wrong with it.

mohamed:
what kind of variable do you mean? renderstates? or something different? I'll have a close look at it..
I hope it's not a driver bug.. I downloaded the latest ones in both cases. And other software using directx runs ok, so it must be my fault.

Peter


yes, I mean renderstates, light properties (attenuation,color and so on) and such similar things.Some times drivers give default values for these things that you may not take into consideration.for example ,as far as I remember, one of my 9700 drivers gives the light the RGB values (0.8,0.8,0.8)if you don't set them yourself, and I was assuming it is one, so it gave me undesired results.
so try to check these variables and render states, or try to contact ati.

[edited by - mohamed adel on June 5, 2004 12:08:14 PM]
For your information, here is the solution:

I''ve used the same vertex declaration for bump mapped objects (using a vertex shader), and the normal objects (using the fixed function pipeline). As far as I know this should not be a problem, since the fixed funcion pileline will not use the fileds it does not need. Here is the vertex declaration used:
D3DVERTEXELEMENT9 CCDX9::DeclVertexXYZNCTTTB[] = {	{ 0, 0,  D3DDECLTYPE_FLOAT3,   D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },	{ 0, 12, D3DDECLTYPE_FLOAT3,   D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL,   0 },	{ 0, 24, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR,	 0 },	{ 0, 28, D3DDECLTYPE_FLOAT2,   D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },	{ 0, 36, D3DDECLTYPE_FLOAT2,   D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1 },	{ 0, 44, D3DDECLTYPE_FLOAT3,   D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TANGENT,	 2 },	{ 0, 56, D3DDECLTYPE_FLOAT3,   D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_BINORMAL, 3 },	D3DDECL_END()};

But on those two mobility radeons, the extra fields cause that the objects will not render at all. Removing the extras (or even nodifying the usage of the tangent filed to texcoord) solves the problem.
Strange for me...
Any ideas, why could it be?

Anyway, thanks again for your replies.

kp
------------------------------------------------------------Neo, the Matrix should be 16-byte aligned for better performance!

This topic is closed to new replies.

Advertisement