Sign in to follow this  
cozzie

SetTechnique does more then I want...

Recommended Posts

Hi,

 

Through profiling with PIX, I found out that a specific techniqe in my shader is executed, although I don't call it from my code.

 

I have a function in my code that sets a technique:

 

bool CD3d::SetShaderTechnique(CD3dscene *pD3dscene, int pEffectIndex, char *pTechnique)
{
	if(D3DERR_INVALIDCALL == pD3dscene->mEffect[pEffectIndex]->SetTechnique(pTechnique)) return false;
	return true;
}

Searched through whole source if I use SetTechnique somewhere else, not the case.

When I run my code and debug on this line, it's only called with technique 'OpaqueShader', but in PIX I see the render states, settechnique etc. of my 2nd technique in the shader. I also overwritten 'pTechnique' but 'OpaqueShader' to test, no difference. Filling in 'testbla' I get correct error handling that the technique doesn't exist.

 

Am I overseeing something, is D3DX effect doing somethin I don't know?

 

Here are the 2 techniques:

 

/***********************************************************/
/**          OPAUQE SHADER, REGULAR MESHES         *********/
/***********************************************************/

technique OpaqueShader
{
    pass P0              
    {
        AlphaBlendEnable    = FALSE;
                              
        VertexShader = compile vs_2_0 VS_function();
        PixelShader = compile ps_2_0 PS_function();
    }  
}

/***********************************************************/
/**   BLENDING SHADER, MESHES WITH BLENDED TEXTURES  *******/
/***********************************************************/

technique BlendingShader
{
    pass P0              
    {
        AlphaBlendEnable    = TRUE;
        SrcBlend            = SRCALPHA;
        DestBlend           = INVSRCALPHA;
        AlphaOp[0]          = SelectArg1;
        AlphaArg1[0]        = Texture;
                               
        VertexShader = compile vs_2_0 VS_function();
        PixelShader = compile ps_2_0 PS_function();
    }  
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this