   HLSL branching half instead of float
  HiI have a simple shader with  const uniform bool IsAmbientso when i compile thisif (IsAmbient) {    return diffuse + ambient;}else {    return diffuse;}no matter IsAmbient is false or truepixel shader stays the same size, of coursematch more bigger then separate compilation of    return diffuse + ambient;and    return diffuse;what to do to force compiler to use static branchingbecause I assume that code compiles as dynamic?In other words how to compile two effective shaders withone function.Same problem I have with halfs instead of floats how to be surethat I'm useing them? I set a compiler flag and change all floats to halfeverything looks ok but as a parameter I still using float and it works.Maybe is that because I'm using effect and there is some conversion?   