[pixel shader fail(sm>=6)] void sub2(in uniform float4 i, out float4 o) { o = i; } void sub(float a, uniform float b, in float c, uniform in float d, out float4 o) { sub2(float4(a, b, c, d), o); } void main(in uniform float4 a, uniform float4 b, out float4 o : sv_target) { sub(a.x, b.x, 0.3, 0.4, o); } [test] uniform 0 float4 0.1 0.0 0.0 0.0 uniform 4 float4 0.2 0.0 0.0 0.0 todo(sm>=6) draw quad probe all rgba (0.1, 0.2, 0.3, 0.4) [pixel shader] uniform float4 a; uniform float4 b; void sub2(in float4 i, out float4 o) { o = i; } void sub(float a, float b, in float c, in float d, out float4 o) { sub2(float4(a, b, c, d), o); } void main(out float4 o : sv_target) { sub(a.x, b.x, 0.3, 0.4, o); } [test] uniform 0 float4 0.1 0.0 0.0 0.0 uniform 4 float4 0.2 0.0 0.0 0.0 draw quad probe all rgba (0.1, 0.2, 0.3, 0.4)