diff options
author | Bill Hollings <bill.hollings@brenwill.com> | 2022-03-04 19:38:53 +0300 |
---|---|---|
committer | Bill Hollings <bill.hollings@brenwill.com> | 2022-03-04 19:38:53 +0300 |
commit | 0c0fd98322441bf2b2405bcb41705a1f291e4b7b (patch) | |
tree | 906b569466623c93e08b9fbf23a231d3bae156ba /reference/opt/shaders-msl/asm | |
parent | 3915c37bb184c66760f75e9b027d4229b1b1924a (diff) |
MSL: Use var name instead of var-type name for flattened interface members.
This allows two variables of the same struct type to be flattened
into the same interface struct without a member name conflict.
Add shaders-msl/frag/in_block_with_multiple_structs_of_same_type.frag
unit test shader to demonstrate this.
Diffstat (limited to 'reference/opt/shaders-msl/asm')
-rw-r--r-- | reference/opt/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag | 28 | ||||
-rw-r--r-- | reference/opt/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag | 76 |
2 files changed, 52 insertions, 52 deletions
diff --git a/reference/opt/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag b/reference/opt/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag index 41472ada..6407b32b 100644 --- a/reference/opt/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag +++ b/reference/opt/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag @@ -21,26 +21,26 @@ struct main0_out struct main0_in { - float2 Input_v0 [[user(locn0)]]; - float2 Input_v1 [[user(locn1), center_no_perspective]]; - float3 Input_v2 [[user(locn2), centroid_perspective]]; - float4 Input_v3 [[user(locn3), centroid_no_perspective]]; - float Input_v4 [[user(locn4), sample_perspective]]; - float Input_v5 [[user(locn5), sample_no_perspective]]; - float Input_v6 [[user(locn6), flat]]; + float2 inp_v0 [[user(locn0)]]; + float2 inp_v1 [[user(locn1), center_no_perspective]]; + float3 inp_v2 [[user(locn2), centroid_perspective]]; + float4 inp_v3 [[user(locn3), centroid_no_perspective]]; + float inp_v4 [[user(locn4), sample_perspective]]; + float inp_v5 [[user(locn5), sample_no_perspective]]; + float inp_v6 [[user(locn6), flat]]; }; fragment main0_out main0(main0_in in [[stage_in]]) { main0_out out = {}; Input inp = {}; - inp.v0 = in.Input_v0; - inp.v1 = in.Input_v1; - inp.v2 = in.Input_v2; - inp.v3 = in.Input_v3; - inp.v4 = in.Input_v4; - inp.v5 = in.Input_v5; - inp.v6 = in.Input_v6; + inp.v0 = in.inp_v0; + inp.v1 = in.inp_v1; + inp.v2 = in.inp_v2; + inp.v3 = in.inp_v3; + inp.v4 = in.inp_v4; + inp.v5 = in.inp_v5; + inp.v6 = in.inp_v6; out.FragColor = float4(inp.v0.x + inp.v1.y, inp.v2.xy, ((inp.v3.w * inp.v4) + inp.v5) - inp.v6); return out; } diff --git a/reference/opt/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag b/reference/opt/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag index a4017897..6a6b1622 100644 --- a/reference/opt/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag +++ b/reference/opt/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag @@ -71,16 +71,16 @@ struct main0_in interpolant<float2, interpolation::perspective> b_1 [[user(locn7)]]; interpolant<float2, interpolation::perspective> c_0 [[user(locn8)]]; interpolant<float2, interpolation::perspective> c_1 [[user(locn9)]]; - interpolant<float4, interpolation::perspective> m_13_x [[user(locn10)]]; - interpolant<float4, interpolation::no_perspective> m_13_y [[user(locn11)]]; - interpolant<float4, interpolation::perspective> m_13_z [[user(locn12)]]; - interpolant<float4, interpolation::perspective> m_13_u_0 [[user(locn13)]]; - interpolant<float4, interpolation::perspective> m_13_u_1 [[user(locn14)]]; - interpolant<float2, interpolation::no_perspective> m_13_v_0 [[user(locn15)]]; - interpolant<float2, interpolation::no_perspective> m_13_v_1 [[user(locn16)]]; - interpolant<float, interpolation::perspective> m_13_w_0 [[user(locn17)]]; - interpolant<float, interpolation::perspective> m_13_w_1 [[user(locn18)]]; - interpolant<float, interpolation::perspective> m_13_w_2 [[user(locn19)]]; + interpolant<float4, interpolation::perspective> s_x [[user(locn10)]]; + interpolant<float4, interpolation::no_perspective> s_y [[user(locn11)]]; + interpolant<float4, interpolation::perspective> s_z [[user(locn12)]]; + interpolant<float4, interpolation::perspective> s_u_0 [[user(locn13)]]; + interpolant<float4, interpolation::perspective> s_u_1 [[user(locn14)]]; + interpolant<float2, interpolation::no_perspective> s_v_0 [[user(locn15)]]; + interpolant<float2, interpolation::no_perspective> s_v_1 [[user(locn16)]]; + interpolant<float, interpolation::perspective> s_w_0 [[user(locn17)]]; + interpolant<float, interpolation::perspective> s_w_1 [[user(locn18)]]; + interpolant<float, interpolation::perspective> s_w_2 [[user(locn19)]]; }; fragment main0_out main0(main0_in in [[stage_in]], uint gl_SampleID [[sample_id]]) @@ -92,16 +92,16 @@ fragment main0_out main0(main0_in in [[stage_in]], uint gl_SampleID [[sample_id] spvUnsafeArray<float2, 2> c = {}; a[0] = in.a_0.interpolate_at_center(); a[1] = in.a_1.interpolate_at_center(); - s.x = in.m_13_x.interpolate_at_center(); - s.y = in.m_13_y.interpolate_at_centroid(); - s.z = in.m_13_z.interpolate_at_sample(gl_SampleID); - s.u[0] = in.m_13_u_0.interpolate_at_centroid(); - s.u[1] = in.m_13_u_1.interpolate_at_centroid(); - s.v[0] = in.m_13_v_0.interpolate_at_sample(gl_SampleID); - s.v[1] = in.m_13_v_1.interpolate_at_sample(gl_SampleID); - s.w[0] = in.m_13_w_0.interpolate_at_center(); - s.w[1] = in.m_13_w_1.interpolate_at_center(); - s.w[2] = in.m_13_w_2.interpolate_at_center(); + s.x = in.s_x.interpolate_at_center(); + s.y = in.s_y.interpolate_at_centroid(); + s.z = in.s_z.interpolate_at_sample(gl_SampleID); + s.u[0] = in.s_u_0.interpolate_at_centroid(); + s.u[1] = in.s_u_1.interpolate_at_centroid(); + s.v[0] = in.s_v_0.interpolate_at_sample(gl_SampleID); + s.v[1] = in.s_v_1.interpolate_at_sample(gl_SampleID); + s.w[0] = in.s_w_0.interpolate_at_center(); + s.w[1] = in.s_w_1.interpolate_at_center(); + s.w[2] = in.s_w_2.interpolate_at_center(); b[0] = in.b_0.interpolate_at_centroid(); b[1] = in.b_1.interpolate_at_centroid(); c[0] = in.c_0.interpolate_at_sample(gl_SampleID); @@ -135,25 +135,25 @@ fragment main0_out main0(main0_in in [[stage_in]], uint gl_SampleID [[sample_id] float2 _143 = out.FragColor.xy + in.c_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375).xx; out.FragColor = float4(_143.x, _143.y, out.FragColor.z, out.FragColor.w); out.FragColor += s.x; - out.FragColor += in.m_13_x.interpolate_at_centroid(); - out.FragColor += in.m_13_x.interpolate_at_sample(in.sid); - out.FragColor += in.m_13_x.interpolate_at_offset(float2(0.100000001490116119384765625) + 0.4375); + out.FragColor += in.s_x.interpolate_at_centroid(); + out.FragColor += in.s_x.interpolate_at_sample(in.sid); + out.FragColor += in.s_x.interpolate_at_offset(float2(0.100000001490116119384765625) + 0.4375); out.FragColor += s.y; - out.FragColor += in.m_13_y.interpolate_at_centroid(); - out.FragColor += in.m_13_y.interpolate_at_sample(in.sid); - out.FragColor += in.m_13_y.interpolate_at_offset(float2(-0.100000001490116119384765625) + 0.4375); + out.FragColor += in.s_y.interpolate_at_centroid(); + out.FragColor += in.s_y.interpolate_at_sample(in.sid); + out.FragColor += in.s_y.interpolate_at_offset(float2(-0.100000001490116119384765625) + 0.4375); float2 _184 = out.FragColor.xy + s.v[0]; out.FragColor = float4(_184.x, _184.y, out.FragColor.z, out.FragColor.w); - float2 _191 = out.FragColor.xy + in.m_13_v_1.interpolate_at_centroid(); + float2 _191 = out.FragColor.xy + in.s_v_1.interpolate_at_centroid(); out.FragColor = float4(_191.x, _191.y, out.FragColor.z, out.FragColor.w); - float2 _198 = out.FragColor.xy + in.m_13_v_0.interpolate_at_sample(2); + float2 _198 = out.FragColor.xy + in.s_v_0.interpolate_at_sample(2); out.FragColor = float4(_198.x, _198.y, out.FragColor.z, out.FragColor.w); - float2 _205 = out.FragColor.xy + in.m_13_v_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); + float2 _205 = out.FragColor.xy + in.s_v_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); out.FragColor = float4(_205.x, _205.y, out.FragColor.z, out.FragColor.w); out.FragColor.x += s.w[0]; - out.FragColor.x += in.m_13_w_1.interpolate_at_centroid(); - out.FragColor.x += in.m_13_w_0.interpolate_at_sample(2); - out.FragColor.x += in.m_13_w_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); + out.FragColor.x += in.s_w_1.interpolate_at_centroid(); + out.FragColor.x += in.s_w_0.interpolate_at_sample(2); + out.FragColor.x += in.s_w_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); float2 _328 = out.FragColor.xy + in.baz.interpolate_at_sample(gl_SampleID); out.FragColor = float4(_328.x, _328.y, out.FragColor.z, out.FragColor.w); out.FragColor.x += in.baz.interpolate_at_centroid().x; @@ -166,16 +166,16 @@ fragment main0_out main0(main0_in in [[stage_in]], uint gl_SampleID [[sample_id] float2 _367 = out.FragColor.xy + in.a_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); out.FragColor = float4(_367.x, _367.y, out.FragColor.z, out.FragColor.w); out.FragColor += s.z; - float2 _379 = out.FragColor.xy + in.m_13_z.interpolate_at_centroid().yy; + float2 _379 = out.FragColor.xy + in.s_z.interpolate_at_centroid().yy; out.FragColor = float4(_379.x, _379.y, out.FragColor.z, out.FragColor.w); - float2 _387 = out.FragColor.yz + in.m_13_z.interpolate_at_sample(3).xy; + float2 _387 = out.FragColor.yz + in.s_z.interpolate_at_sample(3).xy; out.FragColor = float4(out.FragColor.x, _387.x, _387.y, out.FragColor.w); - float2 _395 = out.FragColor.zw + in.m_13_z.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375).wx; + float2 _395 = out.FragColor.zw + in.s_z.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375).wx; out.FragColor = float4(out.FragColor.x, out.FragColor.y, _395.x, _395.y); out.FragColor += s.u[0]; - out.FragColor += in.m_13_u_1.interpolate_at_centroid(); - out.FragColor += in.m_13_u_0.interpolate_at_sample(2); - out.FragColor += in.m_13_u_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); + out.FragColor += in.s_u_1.interpolate_at_centroid(); + out.FragColor += in.s_u_0.interpolate_at_sample(2); + out.FragColor += in.s_u_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); return out; } |