msl: Only emit packed vectors when the width is 3
MSL vectors with other widths already match WGSL's rules for alignment and size. Change-Id: I237052372463ea8323eab47c3b4ca90c6d8afcc3 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/62600 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
parent
6d60c046e8
commit
46978033a7
|
@ -2304,12 +2304,12 @@ bool GeneratorImpl::EmitStorageClass(std::ostream& out, ast::StorageClass sc) {
|
|||
bool GeneratorImpl::EmitPackedType(std::ostream& out,
|
||||
const sem::Type* type,
|
||||
const std::string& name) {
|
||||
if (auto* vec = type->As<sem::Vector>()) {
|
||||
auto* vec = type->As<sem::Vector>();
|
||||
if (vec && vec->Width() == 3) {
|
||||
out << "packed_";
|
||||
if (!EmitType(out, vec->type(), "")) {
|
||||
if (!EmitType(out, vec, "")) {
|
||||
return false;
|
||||
}
|
||||
out << vec->Width();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -2634,7 +2634,6 @@ bool GeneratorImpl::EmitProgramConstVariable(const ast::Variable* var) {
|
|||
return true;
|
||||
}
|
||||
|
||||
// TODO(crbug.com/tint/898): We need CTS and / or Dawn e2e tests for this logic.
|
||||
GeneratorImpl::SizeAndAlign GeneratorImpl::MslPackedTypeSizeAndAlign(
|
||||
const sem::Type* ty) {
|
||||
if (ty->IsAnyOf<sem::U32, sem::I32, sem::F32>()) {
|
||||
|
@ -2644,12 +2643,19 @@ GeneratorImpl::SizeAndAlign GeneratorImpl::MslPackedTypeSizeAndAlign(
|
|||
}
|
||||
|
||||
if (auto* vec = ty->As<sem::Vector>()) {
|
||||
// https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf
|
||||
// 2.2.3 Packed Vector Types
|
||||
auto num_els = vec->Width();
|
||||
auto* el_ty = vec->type();
|
||||
if (el_ty->IsAnyOf<sem::U32, sem::I32, sem::F32>()) {
|
||||
return SizeAndAlign{num_els * 4, 4};
|
||||
// Use a packed_vec type for 3-element vectors only.
|
||||
if (num_els == 3) {
|
||||
// https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf
|
||||
// 2.2.3 Packed Vector Types
|
||||
return SizeAndAlign{num_els * 4, 4};
|
||||
} else {
|
||||
// https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf
|
||||
// 2.2 Vector Data Types
|
||||
return SizeAndAlign{num_els * 4, num_els * 4};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -453,7 +453,7 @@ TEST_F(MslGeneratorImplTest,
|
|||
|
||||
using namespace metal;
|
||||
struct UBO {
|
||||
/* 0x0000 */ packed_float4 coord;
|
||||
/* 0x0000 */ float4 coord;
|
||||
};
|
||||
|
||||
float sub_func(constant UBO& ubo, float param) {
|
||||
|
|
|
@ -46,9 +46,9 @@ using ::testing::HasSubstr;
|
|||
|
||||
// Size and alignments taken from the MSL spec:
|
||||
// https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf
|
||||
DECLARE_TYPE(packed_float2, 8, 4);
|
||||
DECLARE_TYPE(float2, 8, 8);
|
||||
DECLARE_TYPE(packed_float3, 12, 4);
|
||||
DECLARE_TYPE(packed_float4, 16, 4);
|
||||
DECLARE_TYPE(float4, 16, 16);
|
||||
DECLARE_TYPE(float2x2, 16, 8);
|
||||
DECLARE_TYPE(float2x3, 32, 16);
|
||||
DECLARE_TYPE(float2x4, 32, 16);
|
||||
|
@ -282,12 +282,12 @@ TEST_F(MslGeneratorImplTest, EmitType_Struct_Layout_NonComposites) {
|
|||
FIELD(0x0004, int8_t, tint_pad, [124]) \
|
||||
FIELD(0x0080, float, b, /*NO SUFFIX*/) \
|
||||
FIELD(0x0084, int8_t, tint_pad_1, [124]) \
|
||||
FIELD(0x0100, packed_float2, c, /*NO SUFFIX*/) \
|
||||
FIELD(0x0100, float2, c, /*NO SUFFIX*/) \
|
||||
FIELD(0x0108, uint, d, /*NO SUFFIX*/) \
|
||||
FIELD(0x010c, int8_t, tint_pad_2, [4]) \
|
||||
FIELD(0x0110, packed_float3, e, /*NO SUFFIX*/) \
|
||||
FIELD(0x011c, uint, f, /*NO SUFFIX*/) \
|
||||
FIELD(0x0120, packed_float4, g, /*NO SUFFIX*/) \
|
||||
FIELD(0x0120, float4, g, /*NO SUFFIX*/) \
|
||||
FIELD(0x0130, uint, h, /*NO SUFFIX*/) \
|
||||
FIELD(0x0134, int8_t, tint_pad_3, [4]) \
|
||||
FIELD(0x0138, float2x2, i, /*NO SUFFIX*/) \
|
||||
|
@ -633,12 +633,12 @@ TEST_F(MslGeneratorImplTest, AttemptTintPadSymbolCollision) {
|
|||
/* 0x0004 */ int8_t tint_pad_10[124];
|
||||
/* 0x0080 */ float tint_pad_20;
|
||||
/* 0x0084 */ int8_t tint_pad_11[124];
|
||||
/* 0x0100 */ packed_float2 tint_pad_33;
|
||||
/* 0x0100 */ float2 tint_pad_33;
|
||||
/* 0x0108 */ uint tint_pad_1;
|
||||
/* 0x010c */ int8_t tint_pad_12[4];
|
||||
/* 0x0110 */ packed_float3 tint_pad_3;
|
||||
/* 0x011c */ uint tint_pad_7;
|
||||
/* 0x0120 */ packed_float4 tint_pad_25;
|
||||
/* 0x0120 */ float4 tint_pad_25;
|
||||
/* 0x0130 */ uint tint_pad_5;
|
||||
/* 0x0134 */ int8_t tint_pad_13[4];
|
||||
/* 0x0138 */ float2x2 tint_pad_27;
|
||||
|
|
|
@ -11,8 +11,8 @@ struct Inner {
|
|||
/* 0x001c */ uint d;
|
||||
/* 0x0020 */ packed_float3 e;
|
||||
/* 0x002c */ float f;
|
||||
/* 0x0030 */ packed_int2 g;
|
||||
/* 0x0038 */ packed_int2 h;
|
||||
/* 0x0030 */ int2 g;
|
||||
/* 0x0038 */ int2 h;
|
||||
/* 0x0040 */ float2x3 i;
|
||||
/* 0x0060 */ float3x2 j;
|
||||
/* 0x0078 */ int8_t tint_pad[8];
|
||||
|
|
|
@ -18,8 +18,8 @@ struct S {
|
|||
/* 0x001c */ uint d;
|
||||
/* 0x0020 */ packed_float3 e;
|
||||
/* 0x002c */ float f;
|
||||
/* 0x0030 */ packed_int2 g;
|
||||
/* 0x0038 */ packed_int2 h;
|
||||
/* 0x0030 */ int2 g;
|
||||
/* 0x0038 */ int2 h;
|
||||
/* 0x0040 */ float2x3 i;
|
||||
/* 0x0060 */ float3x2 j;
|
||||
/* 0x0078 */ int8_t tint_pad_1[8];
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
using namespace metal;
|
||||
struct Uniforms {
|
||||
/* 0x0000 */ packed_float2 u_scale;
|
||||
/* 0x0008 */ packed_float2 u_offset;
|
||||
/* 0x0000 */ float2 u_scale;
|
||||
/* 0x0008 */ float2 u_offset;
|
||||
};
|
||||
struct VertexOutputs {
|
||||
float2 texcoords;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct PointLight {
|
||||
/* 0x0000 */ packed_float4 position;
|
||||
/* 0x0000 */ float4 position;
|
||||
};
|
||||
struct PointLights {
|
||||
/* 0x0000 */ PointLight values[1];
|
||||
|
@ -13,7 +13,7 @@ struct Uniforms {
|
|||
/* 0x0080 */ uint numPointLights;
|
||||
/* 0x0084 */ uint color_source;
|
||||
/* 0x0088 */ int8_t tint_pad[8];
|
||||
/* 0x0090 */ packed_float4 color;
|
||||
/* 0x0090 */ float4 color;
|
||||
};
|
||||
struct FragmentInput {
|
||||
float4 position;
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
using namespace metal;
|
||||
struct Uniforms {
|
||||
/* 0x0000 */ packed_uint2 aShape;
|
||||
/* 0x0008 */ packed_uint2 bShape;
|
||||
/* 0x0010 */ packed_uint2 outShape;
|
||||
/* 0x0000 */ uint2 aShape;
|
||||
/* 0x0008 */ uint2 bShape;
|
||||
/* 0x0010 */ uint2 outShape;
|
||||
};
|
||||
struct Matrix {
|
||||
/* 0x0000 */ uint numbers[1];
|
||||
|
|
|
@ -8,7 +8,7 @@ struct QuicksortObject {
|
|||
tint_array_wrapper numbers;
|
||||
};
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 resolution;
|
||||
/* 0x0000 */ float2 resolution;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -5,8 +5,8 @@ struct tint_array_wrapper {
|
|||
/* 0x0000 */ int arr[6];
|
||||
};
|
||||
struct sspp962805860buildInformationS {
|
||||
/* 0x0000 */ packed_float4 footprint;
|
||||
/* 0x0010 */ packed_float4 offset;
|
||||
/* 0x0000 */ float4 footprint;
|
||||
/* 0x0010 */ float4 offset;
|
||||
/* 0x0020 */ int essence;
|
||||
/* 0x0024 */ tint_array_wrapper orientation;
|
||||
};
|
||||
|
|
|
@ -4,9 +4,9 @@ using namespace metal;
|
|||
struct Uniforms {
|
||||
/* 0x0000 */ uint dstTextureFlipY;
|
||||
/* 0x0004 */ uint channelCount;
|
||||
/* 0x0008 */ packed_uint2 srcCopyOrigin;
|
||||
/* 0x0010 */ packed_uint2 dstCopyOrigin;
|
||||
/* 0x0018 */ packed_uint2 copySize;
|
||||
/* 0x0008 */ uint2 srcCopyOrigin;
|
||||
/* 0x0010 */ uint2 dstCopyOrigin;
|
||||
/* 0x0018 */ uint2 copySize;
|
||||
};
|
||||
struct OutputBuf {
|
||||
/* 0x0000 */ uint result[1];
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
|
||||
using namespace metal;
|
||||
struct Mat4x4_ {
|
||||
/* 0x0000 */ packed_float4 mx;
|
||||
/* 0x0010 */ packed_float4 my;
|
||||
/* 0x0020 */ packed_float4 mz;
|
||||
/* 0x0030 */ packed_float4 mw;
|
||||
/* 0x0000 */ float4 mx;
|
||||
/* 0x0010 */ float4 my;
|
||||
/* 0x0020 */ float4 mz;
|
||||
/* 0x0030 */ float4 mw;
|
||||
};
|
||||
struct Mat4x3_ {
|
||||
/* 0x0000 */ packed_float4 mx;
|
||||
/* 0x0010 */ packed_float4 my;
|
||||
/* 0x0020 */ packed_float4 mz;
|
||||
/* 0x0000 */ float4 mx;
|
||||
/* 0x0010 */ float4 my;
|
||||
/* 0x0020 */ float4 mz;
|
||||
};
|
||||
struct Mat4x2_ {
|
||||
/* 0x0000 */ packed_float4 mx;
|
||||
/* 0x0010 */ packed_float4 my;
|
||||
/* 0x0000 */ float4 mx;
|
||||
/* 0x0010 */ float4 my;
|
||||
};
|
||||
struct ub_SceneParams {
|
||||
/* 0x0000 */ Mat4x4_ u_Projection;
|
||||
|
@ -24,7 +24,7 @@ struct tint_array_wrapper {
|
|||
};
|
||||
struct ub_MaterialParams {
|
||||
/* 0x0000 */ tint_array_wrapper u_TexMtx;
|
||||
/* 0x0020 */ packed_float4 u_Misc0_;
|
||||
/* 0x0020 */ float4 u_Misc0_;
|
||||
};
|
||||
struct tint_array_wrapper_1 {
|
||||
/* 0x0000 */ Mat4x3_ arr[32];
|
||||
|
|
|
@ -10,7 +10,7 @@ struct Uniforms {
|
|||
/* 0x002c */ int8_t tint_pad_2[4];
|
||||
/* 0x0030 */ packed_int3 outShape;
|
||||
/* 0x003c */ int8_t tint_pad_3[4];
|
||||
/* 0x0040 */ packed_int2 outShapeStrides;
|
||||
/* 0x0040 */ int2 outShapeStrides;
|
||||
};
|
||||
struct ssbOut {
|
||||
/* 0x0000 */ float result[1];
|
||||
|
|
|
@ -6,9 +6,9 @@ struct LeftOver {
|
|||
/* 0x0004 */ uint padding;
|
||||
/* 0x0008 */ int8_t tint_pad[8];
|
||||
/* 0x0010 */ float4x4 worldViewProjection;
|
||||
/* 0x0050 */ packed_float2 outputSize;
|
||||
/* 0x0058 */ packed_float2 stageSize;
|
||||
/* 0x0060 */ packed_float2 spriteMapSize;
|
||||
/* 0x0050 */ float2 outputSize;
|
||||
/* 0x0058 */ float2 stageSize;
|
||||
/* 0x0060 */ float2 spriteMapSize;
|
||||
/* 0x0068 */ float stageScale;
|
||||
/* 0x006c */ float spriteCount;
|
||||
/* 0x0070 */ packed_float3 colorMul;
|
||||
|
|
|
@ -15,16 +15,16 @@ struct LeftOver {
|
|||
/* 0x009c */ float u_parallaxScale;
|
||||
/* 0x00a0 */ float textureInfoName;
|
||||
/* 0x00a4 */ uint padding_1;
|
||||
/* 0x00a8 */ packed_float2 tangentSpaceParameter0;
|
||||
/* 0x00a8 */ float2 tangentSpaceParameter0;
|
||||
};
|
||||
struct Light0 {
|
||||
/* 0x0000 */ packed_float4 vLightData;
|
||||
/* 0x0010 */ packed_float4 vLightDiffuse;
|
||||
/* 0x0020 */ packed_float4 vLightSpecular;
|
||||
/* 0x0000 */ float4 vLightData;
|
||||
/* 0x0010 */ float4 vLightDiffuse;
|
||||
/* 0x0020 */ float4 vLightSpecular;
|
||||
/* 0x0030 */ packed_float3 vLightGround;
|
||||
/* 0x003c */ uint padding_2;
|
||||
/* 0x0040 */ packed_float4 shadowsInfo;
|
||||
/* 0x0050 */ packed_float2 depthValues;
|
||||
/* 0x0040 */ float4 shadowsInfo;
|
||||
/* 0x0050 */ float2 depthValues;
|
||||
/* 0x0058 */ int8_t tint_pad_1[8];
|
||||
};
|
||||
struct main_out {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct tint_padded_array_element {
|
||||
/* 0x0000 */ packed_float2 el;
|
||||
/* 0x0000 */ float2 el;
|
||||
/* 0x0008 */ int8_t tint_pad[8];
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
|
|
|
@ -13,8 +13,8 @@ struct tint_symbol_3 {
|
|||
float4 value [[color(0)]];
|
||||
};
|
||||
struct Particle {
|
||||
/* 0x0000 */ packed_float2 pos;
|
||||
/* 0x0008 */ packed_float2 vel;
|
||||
/* 0x0000 */ float2 pos;
|
||||
/* 0x0008 */ float2 vel;
|
||||
};
|
||||
struct SimParams {
|
||||
/* 0x0000 */ float deltaT;
|
||||
|
|
|
@ -5,7 +5,7 @@ struct S {
|
|||
/* 0x0000 */ float f;
|
||||
/* 0x0004 */ uint u;
|
||||
/* 0x0008 */ int8_t tint_pad[120];
|
||||
/* 0x0080 */ packed_float4 v;
|
||||
/* 0x0080 */ float4 v;
|
||||
/* 0x0090 */ int8_t tint_pad_1[112];
|
||||
};
|
||||
struct tint_symbol_1 {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct block0 {
|
||||
/* 0x0000 */ packed_float4 data;
|
||||
/* 0x0000 */ float4 data;
|
||||
};
|
||||
|
||||
void main_1(device block0& x_4) {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct block0 {
|
||||
/* 0x0000 */ packed_float4 data;
|
||||
/* 0x0000 */ float4 data;
|
||||
};
|
||||
|
||||
void main_1(device block0& x_4) {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct block0 {
|
||||
/* 0x0000 */ packed_float4 in_color;
|
||||
/* 0x0000 */ float4 in_color;
|
||||
};
|
||||
struct main_out {
|
||||
float4 gl_Position;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct block0 {
|
||||
/* 0x0000 */ packed_float4 in_color;
|
||||
/* 0x0000 */ float4 in_color;
|
||||
};
|
||||
struct main_out {
|
||||
float4 gl_Position;
|
||||
|
|
|
@ -8,7 +8,7 @@ struct tmp_struct {
|
|||
tint_array_wrapper nmb;
|
||||
};
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -8,7 +8,7 @@ struct tmp_struct {
|
|||
tint_array_wrapper nmb;
|
||||
};
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -8,7 +8,7 @@ struct QuicksortObject {
|
|||
tint_array_wrapper numbers;
|
||||
};
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 resolution;
|
||||
/* 0x0000 */ float2 resolution;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -8,7 +8,7 @@ struct QuicksortObject {
|
|||
tint_array_wrapper numbers;
|
||||
};
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 resolution;
|
||||
/* 0x0000 */ float2 resolution;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
float2 arr[17];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
float2 arr[17];
|
||||
|
|
|
@ -6,7 +6,7 @@ struct doesNotMatter {
|
|||
/* 0x0004 */ int data[1];
|
||||
};
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
|
||||
void main_1(constant buf1& x_10, device doesNotMatter& x_7, thread uint3* const tint_symbol_1) {
|
||||
|
|
|
@ -6,7 +6,7 @@ struct doesNotMatter {
|
|||
/* 0x0004 */ int data[1];
|
||||
};
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
|
||||
void main_1(constant buf1& x_10, device doesNotMatter& x_7, thread uint3* const tint_symbol_1) {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
int arr[10];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
int arr[10];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
int arr[10];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
int arr[10];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
float arr[9];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
float arr[9];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 v1;
|
||||
/* 0x0000 */ float2 v1;
|
||||
};
|
||||
struct tint_padded_array_element {
|
||||
/* 0x0000 */ int el;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 v1;
|
||||
/* 0x0000 */ float2 v1;
|
||||
};
|
||||
struct tint_padded_array_element {
|
||||
/* 0x0000 */ int el;
|
||||
|
|
|
@ -12,7 +12,7 @@ struct buf0 {
|
|||
/* 0x0000 */ tint_array_wrapper x_GLF_uniform_int_values;
|
||||
};
|
||||
struct buf2 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_padded_array_element_1 {
|
||||
/* 0x0000 */ float el;
|
||||
|
|
|
@ -12,7 +12,7 @@ struct buf0 {
|
|||
/* 0x0000 */ tint_array_wrapper x_GLF_uniform_int_values;
|
||||
};
|
||||
struct buf2 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_padded_array_element_1 {
|
||||
/* 0x0000 */ float el;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 one;
|
||||
/* 0x0000 */ float2 one;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 one;
|
||||
/* 0x0000 */ float2 one;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
float arr[3];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
float arr[3];
|
||||
|
|
|
@ -22,7 +22,7 @@ struct buf0 {
|
|||
/* 0x0000 */ tint_array_wrapper_1 x_GLF_uniform_int_values;
|
||||
};
|
||||
struct buf2 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -22,7 +22,7 @@ struct buf0 {
|
|||
/* 0x0000 */ tint_array_wrapper_1 x_GLF_uniform_int_values;
|
||||
};
|
||||
struct buf2 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 twoandthree;
|
||||
/* 0x0000 */ float2 twoandthree;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 twoandthree;
|
||||
/* 0x0000 */ float2 twoandthree;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 threeandfour;
|
||||
/* 0x0000 */ float2 threeandfour;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 threeandfour;
|
||||
/* 0x0000 */ float2 threeandfour;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 zeroOne;
|
||||
/* 0x0000 */ float2 zeroOne;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 zeroOne;
|
||||
/* 0x0000 */ float2 zeroOne;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -5,7 +5,7 @@ struct S {
|
|||
int data;
|
||||
};
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 v1;
|
||||
/* 0x0000 */ float2 v1;
|
||||
};
|
||||
struct tint_padded_array_element {
|
||||
/* 0x0000 */ int el;
|
||||
|
|
|
@ -5,7 +5,7 @@ struct S {
|
|||
int data;
|
||||
};
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 v1;
|
||||
/* 0x0000 */ float2 v1;
|
||||
};
|
||||
struct tint_padded_array_element {
|
||||
/* 0x0000 */ int el;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -22,7 +22,7 @@ struct buf0 {
|
|||
/* 0x0000 */ tint_array_wrapper_1 x_GLF_uniform_float_values;
|
||||
};
|
||||
struct buf2 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -22,7 +22,7 @@ struct buf0 {
|
|||
/* 0x0000 */ tint_array_wrapper_1 x_GLF_uniform_float_values;
|
||||
};
|
||||
struct buf2 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 v1;
|
||||
/* 0x0000 */ float2 v1;
|
||||
};
|
||||
struct tint_padded_array_element {
|
||||
/* 0x0000 */ int el;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 v1;
|
||||
/* 0x0000 */ float2 v1;
|
||||
};
|
||||
struct tint_padded_array_element {
|
||||
/* 0x0000 */ int el;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_int4 sequence;
|
||||
/* 0x0000 */ int4 sequence;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_int4 sequence;
|
||||
/* 0x0000 */ int4 sequence;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -18,10 +18,10 @@ struct buf1 {
|
|||
/* 0x0000 */ tint_array_wrapper_1 x_GLF_uniform_float_values;
|
||||
};
|
||||
struct buf2 {
|
||||
/* 0x0000 */ packed_float2 zeroVec;
|
||||
/* 0x0000 */ float2 zeroVec;
|
||||
};
|
||||
struct buf3 {
|
||||
/* 0x0000 */ packed_float2 oneVec;
|
||||
/* 0x0000 */ float2 oneVec;
|
||||
};
|
||||
struct tint_padded_array_element_1 {
|
||||
/* 0x0000 */ int el;
|
||||
|
|
|
@ -18,10 +18,10 @@ struct buf1 {
|
|||
/* 0x0000 */ tint_array_wrapper_1 x_GLF_uniform_float_values;
|
||||
};
|
||||
struct buf2 {
|
||||
/* 0x0000 */ packed_float2 zeroVec;
|
||||
/* 0x0000 */ float2 zeroVec;
|
||||
};
|
||||
struct buf3 {
|
||||
/* 0x0000 */ packed_float2 oneVec;
|
||||
/* 0x0000 */ float2 oneVec;
|
||||
};
|
||||
struct tint_padded_array_element_1 {
|
||||
/* 0x0000 */ int el;
|
||||
|
|
|
@ -12,7 +12,7 @@ struct buf1 {
|
|||
/* 0x0000 */ tint_array_wrapper x_GLF_uniform_float_values;
|
||||
};
|
||||
struct buf2 {
|
||||
/* 0x0000 */ packed_float2 resolution;
|
||||
/* 0x0000 */ float2 resolution;
|
||||
};
|
||||
struct tint_padded_array_element_1 {
|
||||
/* 0x0000 */ int el;
|
||||
|
|
|
@ -12,7 +12,7 @@ struct buf1 {
|
|||
/* 0x0000 */ tint_array_wrapper x_GLF_uniform_float_values;
|
||||
};
|
||||
struct buf2 {
|
||||
/* 0x0000 */ packed_float2 resolution;
|
||||
/* 0x0000 */ float2 resolution;
|
||||
};
|
||||
struct tint_padded_array_element_1 {
|
||||
/* 0x0000 */ int el;
|
||||
|
|
|
@ -5,7 +5,7 @@ struct S {
|
|||
int data;
|
||||
};
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 v1;
|
||||
/* 0x0000 */ float2 v1;
|
||||
};
|
||||
struct tint_padded_array_element {
|
||||
/* 0x0000 */ int el;
|
||||
|
|
|
@ -5,7 +5,7 @@ struct S {
|
|||
int data;
|
||||
};
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 v1;
|
||||
/* 0x0000 */ float2 v1;
|
||||
};
|
||||
struct tint_padded_array_element {
|
||||
/* 0x0000 */ int el;
|
||||
|
|
|
@ -12,7 +12,7 @@ struct buf0 {
|
|||
/* 0x0000 */ tint_array_wrapper x_GLF_uniform_float_values;
|
||||
};
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 v1;
|
||||
/* 0x0000 */ float2 v1;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -12,7 +12,7 @@ struct buf0 {
|
|||
/* 0x0000 */ tint_array_wrapper x_GLF_uniform_float_values;
|
||||
};
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 v1;
|
||||
/* 0x0000 */ float2 v1;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
float arr[9];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
float arr[9];
|
||||
|
|
|
@ -5,7 +5,7 @@ struct theSSBO {
|
|||
/* 0x0000 */ int out_data;
|
||||
};
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
|
||||
void main_1(constant buf1& x_6, device theSSBO& x_4) {
|
||||
|
|
|
@ -5,7 +5,7 @@ struct theSSBO {
|
|||
/* 0x0000 */ int out_data;
|
||||
};
|
||||
struct buf1 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
|
||||
void main_1(constant buf1& x_6, device theSSBO& x_4) {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
using namespace metal;
|
||||
struct buf0 {
|
||||
/* 0x0000 */ packed_float2 injectionSwitch;
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue