[require] shader model >= 4.0 shader model < 6.0 % int and uint are compatible and generate no casts [effect] int stencil = 1; DepthStencilState depth { DepthEnable = TRUE; }; technique10 foo { pass p0 { SetDepthStencilState(depth, stencil); } } % float to uint generates a cast [effect todo] float stencil = 1.0; DepthStencilState depth { DepthEnable = TRUE; }; technique10 foo { pass p0 { SetDepthStencilState(depth, stencil); } }