Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Hollings <bill.hollings@brenwill.com>2022-03-04 19:38:53 +0300
committerBill Hollings <bill.hollings@brenwill.com>2022-03-04 19:38:53 +0300
commit0c0fd98322441bf2b2405bcb41705a1f291e4b7b (patch)
tree906b569466623c93e08b9fbf23a231d3bae156ba /reference/opt/shaders-msl/asm
parent3915c37bb184c66760f75e9b027d4229b1b1924a (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.frag28
-rw-r--r--reference/opt/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag76
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;
}