[require] shader model < 3.0 [pixel shader fail] float4 main() : sv_target { float4 teChnique = {0, 0, 0, 0}; return teChnique; } [pixel shader fail] float4 main() : sv_target { float4 technique10 = {0, 0, 0, 0}; return technique10; } [pixel shader fail] float4 main() : sv_target { float4 technique11 = {0, 0, 0, 0}; return technique11; } [pixel shader fail] typedef float4 technique10; float4 main() : sv_target { return float4(0, 0, 0, 0); } [pixel shader fail] typedef float4 Technique; float4 main() : sv_target { return float4(0, 0, 0, 0); } [pixel shader] typedef float4 Technique10; typedef float4 Technique11; float4 main() : sv_target { return float4(0, 0, 0, 0); } [pixel shader] float4 main() : sv_target { float4 teChnique10 = {0, 0, 0, 0}; float4 teChnique11 = {0, 0, 0, 0}; return teChnique10 + teChnique11; } [pixel shader] float4 main() : sv_target { float4 teChnique11 = {0, 0, 0, 0}; return teChnique11; } [effect todo] technique { } technique10 { } % Effects without techniques are not allowed for fx_2_0 [effect fail] float4 f; % fx_5_0 keyword fails with fx_2_0 profile [effect fail todo] technique { } technique11 { } [effect fail todo] technique { } tEchnique10 { } [effect fail todo] technique { } tEchnique11 { } % Regular shaders with technique blocks [vertex shader todo] float4 main() : sv_position { return 0; } technique { } technique10 { } technique11 { } [pixel shader todo] float4 main() : sv_target { return 0; } tEchnique { } technique10 { } technique11 { }