Declare correct matrix type when unpacking.

This commit is contained in:
Hans-Kristian Arntzen 2019-07-22 13:25:45 +02:00
parent f2d6a77c95
commit 19f5cd3e90
13 changed files with 46 additions and 46 deletions

View File

@ -23,7 +23,7 @@ vertex main0_out main0(main0_in in [[stage_in]], constant Block& _104 [[buffer(0
{
main0_out out = {};
out.gl_Position = in.a_position;
out.v_vtxResult = ((float(abs(transpose(float2x3(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy))[0].x - 2.0) < 0.0500000007450580596923828125) * float(abs(transpose(float2x3(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy))[0].y - 6.0) < 0.0500000007450580596923828125)) * float(abs(transpose(float2x3(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy))[0].z - (-6.0)) < 0.0500000007450580596923828125)) * ((float(abs(transpose(float2x3(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy))[1].x) < 0.0500000007450580596923828125) * float(abs(transpose(float2x3(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy))[1].y - 5.0) < 0.0500000007450580596923828125)) * float(abs(transpose(float2x3(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy))[1].z - 5.0) < 0.0500000007450580596923828125));
out.v_vtxResult = ((float(abs(transpose(float3x2(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy))[0].x - 2.0) < 0.0500000007450580596923828125) * float(abs(transpose(float3x2(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy))[0].y - 6.0) < 0.0500000007450580596923828125)) * float(abs(transpose(float3x2(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy))[0].z - (-6.0)) < 0.0500000007450580596923828125)) * ((float(abs(transpose(float3x2(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy))[1].x) < 0.0500000007450580596923828125) * float(abs(transpose(float3x2(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy))[1].y - 5.0) < 0.0500000007450580596923828125)) * float(abs(transpose(float3x2(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy))[1].z - 5.0) < 0.0500000007450580596923828125));
return out;
}

View File

@ -51,8 +51,8 @@ void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41)
void copy_row_major_to_row_major(device SSBORow& v_41)
{
v_41.row_major0[0].xy = float2x2(v_41.row_major1[0], v_41.row_major1[1])[0];
v_41.row_major0[1].xy = float2x2(v_41.row_major1[0], v_41.row_major1[1])[1];
v_41.row_major0[0].xy = float2x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy)[0];
v_41.row_major0[1].xy = float2x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy)[1];
}
void copy_columns(device SSBOCol& v_29, device SSBORow& v_41)

View File

@ -40,13 +40,13 @@ void copy_col_major_to_col_major(device SSBOCol& v_29)
void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41)
{
v_41.row_major0 = transpose(float2x3(float2(v_29.col_major0[0]), float2(v_29.col_major0[1]), float2(v_29.col_major0[2])));
v_41.row_major0 = transpose(float3x2(float2(v_29.col_major0[0]), float2(v_29.col_major0[1]), float2(v_29.col_major0[2])));
}
void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41)
{
v_29.col_major0[0] = float3(float2x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[0][0], float2x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[1][0], float2x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[2][0]);
v_29.col_major0[1] = float3(float2x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[0][1], float2x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[1][1], float2x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[2][1]);
v_29.col_major0[0] = float3(float3x2(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[0][0], float3x2(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[1][0], float3x2(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[2][0]);
v_29.col_major0[1] = float3(float3x2(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[0][1], float3x2(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[1][1], float3x2(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[2][1]);
}
void copy_row_major_to_row_major(device SSBORow& v_41)

View File

@ -25,7 +25,7 @@ void load_store_to_variable_col_major(device SSBOCol& v_29)
void load_store_to_variable_row_major(device SSBORow& v_41)
{
float2x3 loaded = transpose(float2x3(v_41.row_major0[0].xy, v_41.row_major0[1].xy, v_41.row_major0[2].xy));
float2x3 loaded = transpose(float3x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy, v_41.row_major0[2].xy));
v_41.row_major0[0].xy = float2(loaded[0][0], loaded[1][0]);
v_41.row_major0[1].xy = float2(loaded[0][1], loaded[1][1]);
v_41.row_major0[2].xy = float2(loaded[0][2], loaded[1][2]);
@ -45,14 +45,14 @@ void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41)
void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41)
{
v_29.col_major0 = transpose(float2x3(v_41.row_major0[0].xy, v_41.row_major0[1].xy, v_41.row_major0[2].xy));
v_29.col_major0 = transpose(float3x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy, v_41.row_major0[2].xy));
}
void copy_row_major_to_row_major(device SSBORow& v_41)
{
v_41.row_major0[0].xy = float2x3(v_41.row_major1[0], v_41.row_major1[1])[0];
v_41.row_major0[1].xy = float2x3(v_41.row_major1[0], v_41.row_major1[1])[1];
v_41.row_major0[2].xy = float2x3(v_41.row_major1[0], v_41.row_major1[1])[2];
v_41.row_major0[0].xy = float3x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy)[0];
v_41.row_major0[1].xy = float3x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy)[1];
v_41.row_major0[2].xy = float3x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy)[2];
}
void copy_columns(device SSBOCol& v_29, device SSBORow& v_41)

View File

@ -25,7 +25,7 @@ void load_store_to_variable_col_major(device SSBOCol& v_29)
void load_store_to_variable_row_major(device SSBORow& v_41)
{
float2x4 loaded = transpose(float2x4(v_41.row_major0[0].xy, v_41.row_major0[1].xy, v_41.row_major0[2].xy, v_41.row_major0[3].xy));
float2x4 loaded = transpose(float4x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy, v_41.row_major0[2].xy, v_41.row_major0[3].xy));
v_41.row_major0[0].xy = float2(loaded[0][0], loaded[1][0]);
v_41.row_major0[1].xy = float2(loaded[0][1], loaded[1][1]);
v_41.row_major0[2].xy = float2(loaded[0][2], loaded[1][2]);
@ -47,15 +47,15 @@ void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41)
void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41)
{
v_29.col_major0 = transpose(float2x4(v_41.row_major0[0].xy, v_41.row_major0[1].xy, v_41.row_major0[2].xy, v_41.row_major0[3].xy));
v_29.col_major0 = transpose(float4x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy, v_41.row_major0[2].xy, v_41.row_major0[3].xy));
}
void copy_row_major_to_row_major(device SSBORow& v_41)
{
v_41.row_major0[0].xy = float2x4(v_41.row_major1[0], v_41.row_major1[1])[0];
v_41.row_major0[1].xy = float2x4(v_41.row_major1[0], v_41.row_major1[1])[1];
v_41.row_major0[2].xy = float2x4(v_41.row_major1[0], v_41.row_major1[1])[2];
v_41.row_major0[3].xy = float2x4(v_41.row_major1[0], v_41.row_major1[1])[3];
v_41.row_major0[0].xy = float4x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy, v_41.row_major1[3].xy)[0];
v_41.row_major0[1].xy = float4x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy, v_41.row_major1[3].xy)[1];
v_41.row_major0[2].xy = float4x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy, v_41.row_major1[3].xy)[2];
v_41.row_major0[3].xy = float4x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy, v_41.row_major1[3].xy)[3];
}
void copy_columns(device SSBOCol& v_29, device SSBORow& v_41)

View File

@ -27,7 +27,7 @@ void load_store_to_variable_col_major(device SSBOCol& v_29)
void load_store_to_variable_row_major(device SSBORow& v_41)
{
float3x2 loaded = transpose(float3x2(float3(v_41.row_major0[0]), float3(v_41.row_major0[1])));
float3x2 loaded = transpose(float2x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1])));
v_41.row_major0[0] = float3(loaded[0][0], loaded[1][0], loaded[2][0]);
v_41.row_major0[1] = float3(loaded[0][1], loaded[1][1], loaded[2][1]);
}
@ -45,13 +45,13 @@ void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41)
void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41)
{
v_29.col_major0 = transpose(float3x2(float3(v_41.row_major0[0]), float3(v_41.row_major0[1])));
v_29.col_major0 = transpose(float2x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1])));
}
void copy_row_major_to_row_major(device SSBORow& v_41)
{
v_41.row_major0[0] = float3x2(float2(v_41.row_major1[0]), float2(v_41.row_major1[1]), float2(v_41.row_major1[2]))[0];
v_41.row_major0[1] = float3x2(float2(v_41.row_major1[0]), float2(v_41.row_major1[1]), float2(v_41.row_major1[2]))[1];
v_41.row_major0[0] = float2x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]))[0];
v_41.row_major0[1] = float2x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]))[1];
}
void copy_columns(device SSBOCol& v_29, device SSBORow& v_41)

View File

@ -40,14 +40,14 @@ void copy_col_major_to_col_major(device SSBOCol& v_29)
void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41)
{
v_41.row_major0 = transpose(float3x2(v_29.col_major0[0], v_29.col_major0[1]));
v_41.row_major0 = transpose(float2x3(v_29.col_major0[0], v_29.col_major0[1]));
}
void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41)
{
v_29.col_major0[0].xy = float2(float3x2(v_41.row_major0[0], v_41.row_major0[1])[0][0], float3x2(v_41.row_major0[0], v_41.row_major0[1])[1][0]);
v_29.col_major0[1].xy = float2(float3x2(v_41.row_major0[0], v_41.row_major0[1])[0][1], float3x2(v_41.row_major0[0], v_41.row_major0[1])[1][1]);
v_29.col_major0[2].xy = float2(float3x2(v_41.row_major0[0], v_41.row_major0[1])[0][2], float3x2(v_41.row_major0[0], v_41.row_major0[1])[1][2]);
v_29.col_major0[0].xy = float2(float2x3(v_41.row_major0[0], v_41.row_major0[1])[0][0], float2x3(v_41.row_major0[0], v_41.row_major0[1])[1][0]);
v_29.col_major0[1].xy = float2(float2x3(v_41.row_major0[0], v_41.row_major0[1])[0][1], float2x3(v_41.row_major0[0], v_41.row_major0[1])[1][1]);
v_29.col_major0[2].xy = float2(float2x3(v_41.row_major0[0], v_41.row_major0[1])[0][2], float2x3(v_41.row_major0[0], v_41.row_major0[1])[1][2]);
}
void copy_row_major_to_row_major(device SSBORow& v_41)

View File

@ -27,7 +27,7 @@ void load_store_to_variable_col_major(device SSBOCol& v_29)
void load_store_to_variable_row_major(device SSBORow& v_41)
{
float3x4 loaded = transpose(float3x4(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]), float3(v_41.row_major0[3])));
float3x4 loaded = transpose(float4x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]), float3(v_41.row_major0[3])));
v_41.row_major0[0] = float3(loaded[0][0], loaded[1][0], loaded[2][0]);
v_41.row_major0[1] = float3(loaded[0][1], loaded[1][1], loaded[2][1]);
v_41.row_major0[2] = float3(loaded[0][2], loaded[1][2], loaded[2][2]);
@ -49,15 +49,15 @@ void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41)
void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41)
{
v_29.col_major0 = transpose(float3x4(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]), float3(v_41.row_major0[3])));
v_29.col_major0 = transpose(float4x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]), float3(v_41.row_major0[3])));
}
void copy_row_major_to_row_major(device SSBORow& v_41)
{
v_41.row_major0[0] = float3x4(float4(v_41.row_major1[0]), float4(v_41.row_major1[1]), float4(v_41.row_major1[2]))[0];
v_41.row_major0[1] = float3x4(float4(v_41.row_major1[0]), float4(v_41.row_major1[1]), float4(v_41.row_major1[2]))[1];
v_41.row_major0[2] = float3x4(float4(v_41.row_major1[0]), float4(v_41.row_major1[1]), float4(v_41.row_major1[2]))[2];
v_41.row_major0[3] = float3x4(float4(v_41.row_major1[0]), float4(v_41.row_major1[1]), float4(v_41.row_major1[2]))[3];
v_41.row_major0[0] = float4x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]), float3(v_41.row_major1[2]), float3(v_41.row_major1[3]))[0];
v_41.row_major0[1] = float4x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]), float3(v_41.row_major1[2]), float3(v_41.row_major1[3]))[1];
v_41.row_major0[2] = float4x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]), float3(v_41.row_major1[2]), float3(v_41.row_major1[3]))[2];
v_41.row_major0[3] = float4x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]), float3(v_41.row_major1[2]), float3(v_41.row_major1[3]))[3];
}
void copy_columns(device SSBOCol& v_29, device SSBORow& v_41)

View File

@ -42,15 +42,15 @@ void copy_col_major_to_col_major(device SSBOCol& v_29)
void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41)
{
v_41.row_major0 = transpose(float4x2(v_29.col_major0[0], v_29.col_major0[1]));
v_41.row_major0 = transpose(float2x4(v_29.col_major0[0], v_29.col_major0[1]));
}
void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41)
{
v_29.col_major0[0].xy = float2(float4x2(v_41.row_major0[0], v_41.row_major0[1])[0][0], float4x2(v_41.row_major0[0], v_41.row_major0[1])[1][0]);
v_29.col_major0[1].xy = float2(float4x2(v_41.row_major0[0], v_41.row_major0[1])[0][1], float4x2(v_41.row_major0[0], v_41.row_major0[1])[1][1]);
v_29.col_major0[2].xy = float2(float4x2(v_41.row_major0[0], v_41.row_major0[1])[0][2], float4x2(v_41.row_major0[0], v_41.row_major0[1])[1][2]);
v_29.col_major0[3].xy = float2(float4x2(v_41.row_major0[0], v_41.row_major0[1])[0][3], float4x2(v_41.row_major0[0], v_41.row_major0[1])[1][3]);
v_29.col_major0[0].xy = float2(float2x4(v_41.row_major0[0], v_41.row_major0[1])[0][0], float2x4(v_41.row_major0[0], v_41.row_major0[1])[1][0]);
v_29.col_major0[1].xy = float2(float2x4(v_41.row_major0[0], v_41.row_major0[1])[0][1], float2x4(v_41.row_major0[0], v_41.row_major0[1])[1][1]);
v_29.col_major0[2].xy = float2(float2x4(v_41.row_major0[0], v_41.row_major0[1])[0][2], float2x4(v_41.row_major0[0], v_41.row_major0[1])[1][2]);
v_29.col_major0[3].xy = float2(float2x4(v_41.row_major0[0], v_41.row_major0[1])[0][3], float2x4(v_41.row_major0[0], v_41.row_major0[1])[1][3]);
}
void copy_row_major_to_row_major(device SSBORow& v_41)

View File

@ -44,15 +44,15 @@ void copy_col_major_to_col_major(device SSBOCol& v_29)
void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41)
{
v_41.row_major0 = transpose(float4x3(float4(v_29.col_major0[0]), float4(v_29.col_major0[1]), float4(v_29.col_major0[2])));
v_41.row_major0 = transpose(float3x4(float4(v_29.col_major0[0]), float4(v_29.col_major0[1]), float4(v_29.col_major0[2])));
}
void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41)
{
v_29.col_major0[0] = float3(float4x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[0][0], float4x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[1][0], float4x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[2][0]);
v_29.col_major0[1] = float3(float4x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[0][1], float4x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[1][1], float4x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[2][1]);
v_29.col_major0[2] = float3(float4x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[0][2], float4x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[1][2], float4x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[2][2]);
v_29.col_major0[3] = float3(float4x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[0][3], float4x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[1][3], float4x3(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[2][3]);
v_29.col_major0[0] = float3(float3x4(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[0][0], float3x4(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[1][0], float3x4(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[2][0]);
v_29.col_major0[1] = float3(float3x4(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[0][1], float3x4(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[1][1], float3x4(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[2][1]);
v_29.col_major0[2] = float3(float3x4(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[0][2], float3x4(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[1][2], float3x4(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[2][2]);
v_29.col_major0[3] = float3(float3x4(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[0][3], float3x4(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[1][3], float3x4(v_41.row_major0[0], v_41.row_major0[1], v_41.row_major0[2])[2][3]);
}
void copy_row_major_to_row_major(device SSBORow& v_41)

View File

@ -23,7 +23,7 @@ struct main0_in
vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]])
{
main0_out out = {};
float2 v = in.aVertex * transpose(float2x4(_18.uMVP[0].xy, _18.uMVP[1].xy, _18.uMVP[2].xy, _18.uMVP[3].xy));
float2 v = in.aVertex * transpose(float4x2(_18.uMVP[0].xy, _18.uMVP[1].xy, _18.uMVP[2].xy, _18.uMVP[3].xy));
out.gl_Position = (_18.uMVPR * in.aVertex) + (in.aVertex * _18.uMVPC);
return out;
}

View File

@ -51,7 +51,7 @@ vertex main0_out main0(main0_in in [[stage_in]], constant Block& _104 [[buffer(0
main0_out out = {};
out.gl_Position = in.a_position;
float result = 1.0;
float2x3 param = transpose(float2x3(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy));
float2x3 param = transpose(float3x2(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy));
float2x3 param_1 = float2x3(float3(2.0, 6.0, -6.0), float3(0.0, 5.0, 5.0));
result *= compare_mat2x3(param, param_1);
out.v_vtxResult = result;

View File

@ -2792,7 +2792,7 @@ void CompilerMSL::emit_store_statement(uint32_t lhs_expression, uint32_t rhs_exp
for (uint32_t i = 0; i < type.vecsize; i++)
{
statement(to_enclosed_expression(lhs_expression),
"[", i, "]", store_swiz, " = ", to_enclosed_pointer_expression(rhs_expression), "[", i, "];");
"[", i, "]", store_swiz, " = ", unpack_expression_explicit(rhs_expression, true), "[", i, "];");
}
}
else
@ -2808,7 +2808,7 @@ void CompilerMSL::emit_store_statement(uint32_t lhs_expression, uint32_t rhs_exp
string rhs_row = type_to_glsl_constructor(vector_type) + "(";
for (uint32_t j = 0; j < vector_type.vecsize; j++)
{
rhs_row += join(to_enclosed_pointer_expression(rhs_expression), "[", j, "][", i, "]");
rhs_row += join(to_enclosed_unpacked_expression(rhs_expression), "[", j, "][", i, "]");
if (j + 1 < vector_type.vecsize)
rhs_row += ", ";
}
@ -2961,7 +2961,7 @@ string CompilerMSL::unpack_expression_type(string expr_str, const SPIRType &type
uint32_t physical_vecsize = row_major ? physical_type->columns : physical_type->vecsize;
const char *base_type = type.width == 16 ? "half" : "float";
string unpack_expr = join(type_to_glsl(type), "(");
string unpack_expr = join(base_type, columns, "x", vecsize, "(");
const char *load_swiz = "";