[wgsl-in] Generate Expression::Literal.

This commit is contained in:
Jim Blandy
2023-05-10 22:23:10 -07:00
parent 02ddf6532c
commit 412d5aa62e
53 changed files with 6431 additions and 6660 deletions

View File

@@ -1133,36 +1133,16 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
let (expr, is_reference) = match *expr {
ast::Expression::Literal(literal) => {
let inner = match literal {
ast::Literal::Number(Number::F32(f)) => crate::ConstantInner::Scalar {
width: 4,
value: crate::ScalarValue::Float(f as _),
},
ast::Literal::Number(Number::I32(i)) => crate::ConstantInner::Scalar {
width: 4,
value: crate::ScalarValue::Sint(i as _),
},
ast::Literal::Number(Number::U32(u)) => crate::ConstantInner::Scalar {
width: 4,
value: crate::ScalarValue::Uint(u as _),
},
let literal = match literal {
ast::Literal::Number(Number::F32(f)) => crate::Literal::F32(f),
ast::Literal::Number(Number::I32(i)) => crate::Literal::I32(i),
ast::Literal::Number(Number::U32(u)) => crate::Literal::U32(u),
ast::Literal::Number(_) => {
unreachable!("got abstract numeric type when not expected");
}
ast::Literal::Bool(b) => crate::ConstantInner::Scalar {
width: 1,
value: crate::ScalarValue::Bool(b),
},
ast::Literal::Bool(b) => crate::Literal::Bool(b),
};
let handle = ctx.module.constants.fetch_or_append(
crate::Constant {
name: None,
specialization: None,
inner,
},
Span::UNDEFINED,
);
let handle = ctx.interrupt_emitter(crate::Expression::Constant(handle), span);
let handle = ctx.interrupt_emitter(crate::Expression::Literal(literal), span);
return Ok(TypedExpression::non_reference(handle));
}
ast::Expression::Ident(ast::IdentExpr::Local(local)) => {
@@ -1264,35 +1244,54 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
));
}
if let crate::Expression::Constant(constant) = ctx.naga_expressions[index] {
let span = ctx.naga_expressions.get_span(index);
let index = match ctx.module.constants[constant].inner {
crate::ConstantInner::Scalar {
value: crate::ScalarValue::Uint(int),
..
} => u32::try_from(int).map_err(|_| Error::BadU32Constant(span)),
crate::ConstantInner::Scalar {
value: crate::ScalarValue::Sint(int),
..
} => u32::try_from(int).map_err(|_| Error::BadU32Constant(span)),
_ => Err(Error::BadU32Constant(span)),
}?;
match ctx.naga_expressions[index] {
crate::Expression::Constant(constant) => {
let span = ctx.naga_expressions.get_span(index);
let index = match ctx.module.constants[constant].inner {
crate::ConstantInner::Scalar {
value: crate::ScalarValue::Uint(int),
..
} => u32::try_from(int).map_err(|_| Error::BadU32Constant(span)),
crate::ConstantInner::Scalar {
value: crate::ScalarValue::Sint(int),
..
} => u32::try_from(int).map_err(|_| Error::BadU32Constant(span)),
_ => Err(Error::BadU32Constant(span)),
}?;
(
crate::Expression::AccessIndex {
base: expr.handle,
index,
},
expr.is_reference,
)
} else {
(
(
crate::Expression::AccessIndex {
base: expr.handle,
index,
},
expr.is_reference,
)
}
crate::Expression::Literal(literal) => {
let span = ctx.naga_expressions.get_span(index);
let index = match literal {
crate::Literal::U32(n) => n,
crate::Literal::I32(n) => {
u32::try_from(n).map_err(|_| Error::BadU32Constant(span))?
}
_ => return Err(Error::BadU32Constant(span)),
};
(
crate::Expression::AccessIndex {
base: expr.handle,
index,
},
expr.is_reference,
)
}
_ => (
crate::Expression::Access {
base: expr.handle,
index,
},
expr.is_reference,
)
),
}
}
ast::Expression::Member { base, ref field } => {

View File

@@ -13,8 +13,8 @@ digraph Module {
ep0_e3 [ color="#fdb462" label="[4] Multiply" ]
ep0_e0 -> ep0_e3 [ label="right" ]
ep0_e2 -> ep0_e3 [ label="left" ]
ep0_e4 [ fillcolor="#ffffb3" label="[5] Constant" ]
ep0_e5 [ fillcolor="#ffffb3" label="[6] Constant" ]
ep0_e4 [ fillcolor="#ffffb3" label="[5] Literal" ]
ep0_e5 [ fillcolor="#ffffb3" label="[6] Literal" ]
ep0_e6 [ color="#bebada" label="[7] Compose" ]
{ ep0_e3 ep0_e4 ep0_e5 } -> ep0_e6
ep0_e7 [ color="#bebada" label="[8] Compose" ]
@@ -45,7 +45,7 @@ digraph Module {
ep1_e0 -> ep1_e3 [ label="coordinate" ]
ep1_e4 [ color="#8dd3c7" label="[5] AccessIndex[3]" ]
ep1_e3 -> ep1_e4 [ label="base" ]
ep1_e5 [ fillcolor="#ffffb3" label="[6] Constant" ]
ep1_e5 [ fillcolor="#ffffb3" label="[6] Literal" ]
ep1_e6 [ color="#fdb462" label="[7] Equal" ]
ep1_e5 -> ep1_e6 [ label="right" ]
ep1_e4 -> ep1_e6 [ label="left" ]
@@ -87,10 +87,10 @@ digraph Module {
subgraph cluster_ep2 {
label="Fragment/'fs_extra'"
node [ style=filled ]
ep2_e0 [ fillcolor="#ffffb3" label="[1] Constant" ]
ep2_e1 [ fillcolor="#ffffb3" label="[2] Constant" ]
ep2_e2 [ fillcolor="#ffffb3" label="[3] Constant" ]
ep2_e3 [ fillcolor="#ffffb3" label="[4] Constant" ]
ep2_e0 [ fillcolor="#ffffb3" label="[1] Literal" ]
ep2_e1 [ fillcolor="#ffffb3" label="[2] Literal" ]
ep2_e2 [ fillcolor="#ffffb3" label="[3] Literal" ]
ep2_e3 [ fillcolor="#ffffb3" label="[4] Literal" ]
ep2_e4 [ fillcolor="#bebada" label="[5] Compose" ]
{ ep2_e0 ep2_e1 ep2_e2 ep2_e3 } -> ep2_e4
ep2_s0 [ shape=square label="Root" ]

View File

@@ -129,7 +129,7 @@ void main() {
vVel = (((_e112 + (_e113 * _e116)) + (_e119 * _e122)) + (_e125 * _e128));
vec2 _e131 = vVel;
vec2 _e133 = vVel;
vVel = (normalize(_e131) * clamp(length(_e133), 0.0, 0.10000000149011612));
vVel = (normalize(_e131) * clamp(length(_e133), 0.0, 0.1));
vec2 _e139 = vPos;
vec2 _e140 = vVel;
float _e143 = _group_0_binding_0_cs.deltaT;

View File

@@ -27,10 +27,10 @@ void main() {
vec4 _e19 = textureOffset(_group_0_binding_1_fs, vec2(tc), ivec2(3, 1));
vec4 _e20 = a;
a = (_e20 + _e19);
vec4 _e24 = textureLod(_group_0_binding_1_fs, vec2(tc), 2.299999952316284);
vec4 _e24 = textureLod(_group_0_binding_1_fs, vec2(tc), 2.3);
vec4 _e25 = a;
a = (_e25 + _e24);
vec4 _e29 = textureLodOffset(_group_0_binding_1_fs, vec2(tc), 2.299999952316284, ivec2(3, 1));
vec4 _e29 = textureLodOffset(_group_0_binding_1_fs, vec2(tc), 2.3, ivec2(3, 1));
vec4 _e30 = a;
a = (_e30 + _e29);
vec4 _e35 = textureOffset(_group_0_binding_1_fs, vec2(tc), ivec2(3, 1), 2.0);
@@ -42,10 +42,10 @@ void main() {
vec4 _e47 = textureOffset(_group_0_binding_4_fs, vec3(tc, 0u), ivec2(3, 1));
vec4 _e48 = a;
a = (_e48 + _e47);
vec4 _e53 = textureLod(_group_0_binding_4_fs, vec3(tc, 0u), 2.299999952316284);
vec4 _e53 = textureLod(_group_0_binding_4_fs, vec3(tc, 0u), 2.3);
vec4 _e54 = a;
a = (_e54 + _e53);
vec4 _e59 = textureLodOffset(_group_0_binding_4_fs, vec3(tc, 0u), 2.299999952316284, ivec2(3, 1));
vec4 _e59 = textureLodOffset(_group_0_binding_4_fs, vec3(tc, 0u), 2.3, ivec2(3, 1));
vec4 _e60 = a;
a = (_e60 + _e59);
vec4 _e66 = textureOffset(_group_0_binding_4_fs, vec3(tc, 0u), ivec2(3, 1), 2.0);
@@ -57,10 +57,10 @@ void main() {
vec4 _e78 = textureOffset(_group_0_binding_4_fs, vec3(tc, 0), ivec2(3, 1));
vec4 _e79 = a;
a = (_e79 + _e78);
vec4 _e84 = textureLod(_group_0_binding_4_fs, vec3(tc, 0), 2.299999952316284);
vec4 _e84 = textureLod(_group_0_binding_4_fs, vec3(tc, 0), 2.3);
vec4 _e85 = a;
a = (_e85 + _e84);
vec4 _e90 = textureLodOffset(_group_0_binding_4_fs, vec3(tc, 0), 2.299999952316284, ivec2(3, 1));
vec4 _e90 = textureLodOffset(_group_0_binding_4_fs, vec3(tc, 0), 2.3, ivec2(3, 1));
vec4 _e91 = a;
a = (_e91 + _e90);
vec4 _e97 = textureOffset(_group_0_binding_4_fs, vec3(tc, 0), ivec2(3, 1), 2.0);
@@ -69,7 +69,7 @@ void main() {
vec4 _e103 = texture(_group_0_binding_6_fs, vec4(tc3_, 0u));
vec4 _e104 = a;
a = (_e104 + _e103);
vec4 _e109 = textureLod(_group_0_binding_6_fs, vec4(tc3_, 0u), 2.299999952316284);
vec4 _e109 = textureLod(_group_0_binding_6_fs, vec4(tc3_, 0u), 2.3);
vec4 _e110 = a;
a = (_e110 + _e109);
vec4 _e116 = texture(_group_0_binding_6_fs, vec4(tc3_, 0u), 2.0);
@@ -78,7 +78,7 @@ void main() {
vec4 _e122 = texture(_group_0_binding_6_fs, vec4(tc3_, 0));
vec4 _e123 = a;
a = (_e123 + _e122);
vec4 _e128 = textureLod(_group_0_binding_6_fs, vec4(tc3_, 0), 2.299999952316284);
vec4 _e128 = textureLod(_group_0_binding_6_fs, vec4(tc3_, 0), 2.3);
vec4 _e129 = a;
a = (_e129 + _e128);
vec4 _e135 = texture(_group_0_binding_6_fs, vec4(tc3_, 0), 2.0);

View File

@@ -15,7 +15,7 @@ vec4 builtins() {
vec4 s2_ = (true ? vec4(1.0, 1.0, 1.0, 1.0) : vec4(0.0, 0.0, 0.0, 0.0));
vec4 s3_ = mix(vec4(1.0, 1.0, 1.0, 1.0), vec4(0.0, 0.0, 0.0, 0.0), bvec4(false, false, false, false));
vec4 m1_ = mix(vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0, 1.0, 1.0, 1.0), vec4(0.5, 0.5, 0.5, 0.5));
vec4 m2_ = mix(vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0, 1.0, 1.0, 1.0), 0.10000000149011612);
vec4 m2_ = mix(vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0, 1.0, 1.0, 1.0), 0.1);
float b1_ = intBitsToFloat(ivec4(1, 1, 1, 1).x);
vec4 b2_ = intBitsToFloat(ivec4(1, 1, 1, 1));
ivec4 v_i32_zero = ivec4(vec4(0.0, 0.0, 0.0, 0.0));

View File

@@ -121,7 +121,7 @@ void main(uint3 global_invocation_id : SV_DispatchThreadID)
vVel = (((_expr112 + (_expr113 * _expr116)) + (_expr119 * _expr122)) + (_expr125 * _expr128));
float2 _expr131 = vVel;
float2 _expr133 = vVel;
vVel = (normalize(_expr131) * clamp(length(_expr133), 0.0, 0.10000000149011612));
vVel = (normalize(_expr131) * clamp(length(_expr133), 0.0, 0.1));
float2 _expr139 = vPos;
float2 _expr140 = vVel;
float _expr143 = params.deltaT;

View File

@@ -256,10 +256,10 @@ float4 texture_sample() : SV_Target0
float4 _expr19 = image_2d.Sample(sampler_reg, tc, int2(3, 1));
float4 _expr20 = a;
a = (_expr20 + _expr19);
float4 _expr24 = image_2d.SampleLevel(sampler_reg, tc, 2.299999952316284);
float4 _expr24 = image_2d.SampleLevel(sampler_reg, tc, 2.3);
float4 _expr25 = a;
a = (_expr25 + _expr24);
float4 _expr29 = image_2d.SampleLevel(sampler_reg, tc, 2.299999952316284, int2(3, 1));
float4 _expr29 = image_2d.SampleLevel(sampler_reg, tc, 2.3, int2(3, 1));
float4 _expr30 = a;
a = (_expr30 + _expr29);
float4 _expr35 = image_2d.SampleBias(sampler_reg, tc, 2.0, int2(3, 1));
@@ -271,10 +271,10 @@ float4 texture_sample() : SV_Target0
float4 _expr47 = image_2d_array.Sample(sampler_reg, float3(tc, 0u), int2(3, 1));
float4 _expr48 = a;
a = (_expr48 + _expr47);
float4 _expr53 = image_2d_array.SampleLevel(sampler_reg, float3(tc, 0u), 2.299999952316284);
float4 _expr53 = image_2d_array.SampleLevel(sampler_reg, float3(tc, 0u), 2.3);
float4 _expr54 = a;
a = (_expr54 + _expr53);
float4 _expr59 = image_2d_array.SampleLevel(sampler_reg, float3(tc, 0u), 2.299999952316284, int2(3, 1));
float4 _expr59 = image_2d_array.SampleLevel(sampler_reg, float3(tc, 0u), 2.3, int2(3, 1));
float4 _expr60 = a;
a = (_expr60 + _expr59);
float4 _expr66 = image_2d_array.SampleBias(sampler_reg, float3(tc, 0u), 2.0, int2(3, 1));
@@ -286,10 +286,10 @@ float4 texture_sample() : SV_Target0
float4 _expr78 = image_2d_array.Sample(sampler_reg, float3(tc, 0), int2(3, 1));
float4 _expr79 = a;
a = (_expr79 + _expr78);
float4 _expr84 = image_2d_array.SampleLevel(sampler_reg, float3(tc, 0), 2.299999952316284);
float4 _expr84 = image_2d_array.SampleLevel(sampler_reg, float3(tc, 0), 2.3);
float4 _expr85 = a;
a = (_expr85 + _expr84);
float4 _expr90 = image_2d_array.SampleLevel(sampler_reg, float3(tc, 0), 2.299999952316284, int2(3, 1));
float4 _expr90 = image_2d_array.SampleLevel(sampler_reg, float3(tc, 0), 2.3, int2(3, 1));
float4 _expr91 = a;
a = (_expr91 + _expr90);
float4 _expr97 = image_2d_array.SampleBias(sampler_reg, float3(tc, 0), 2.0, int2(3, 1));
@@ -298,7 +298,7 @@ float4 texture_sample() : SV_Target0
float4 _expr103 = image_cube_array.Sample(sampler_reg, float4(tc3_, 0u));
float4 _expr104 = a;
a = (_expr104 + _expr103);
float4 _expr109 = image_cube_array.SampleLevel(sampler_reg, float4(tc3_, 0u), 2.299999952316284);
float4 _expr109 = image_cube_array.SampleLevel(sampler_reg, float4(tc3_, 0u), 2.3);
float4 _expr110 = a;
a = (_expr110 + _expr109);
float4 _expr116 = image_cube_array.SampleBias(sampler_reg, float4(tc3_, 0u), 2.0);
@@ -307,7 +307,7 @@ float4 texture_sample() : SV_Target0
float4 _expr122 = image_cube_array.Sample(sampler_reg, float4(tc3_, 0));
float4 _expr123 = a;
a = (_expr123 + _expr122);
float4 _expr128 = image_cube_array.SampleLevel(sampler_reg, float4(tc3_, 0), 2.299999952316284);
float4 _expr128 = image_cube_array.SampleLevel(sampler_reg, float4(tc3_, 0), 2.3);
float4 _expr129 = a;
a = (_expr129 + _expr128);
float4 _expr135 = image_cube_array.SampleBias(sampler_reg, float4(tc3_, 0), 2.0);

View File

@@ -17,7 +17,7 @@ float4 builtins()
float4 s2_ = (true ? float4(1.0, 1.0, 1.0, 1.0) : float4(0.0, 0.0, 0.0, 0.0));
float4 s3_ = (bool4(false, false, false, false) ? float4(0.0, 0.0, 0.0, 0.0) : float4(1.0, 1.0, 1.0, 1.0));
float4 m1_ = lerp(float4(0.0, 0.0, 0.0, 0.0), float4(1.0, 1.0, 1.0, 1.0), float4(0.5, 0.5, 0.5, 0.5));
float4 m2_ = lerp(float4(0.0, 0.0, 0.0, 0.0), float4(1.0, 1.0, 1.0, 1.0), 0.10000000149011612);
float4 m2_ = lerp(float4(0.0, 0.0, 0.0, 0.0), float4(1.0, 1.0, 1.0, 1.0), 0.1);
float b1_ = asfloat(int4(1, 1, 1, 1).x);
float4 b2_ = asfloat(int4(1, 1, 1, 1));
int4 v_i32_zero = int4(float4(0.0, 0.0, 0.0, 0.0));

View File

@@ -263,7 +263,7 @@
name: None,
inner: Array(
base: 24,
size: Constant(22),
size: Constant(8),
stride: 40,
),
),
@@ -290,7 +290,7 @@
name: None,
inner: Array(
base: 3,
size: Constant(22),
size: Constant(8),
stride: 4,
),
),
@@ -402,118 +402,6 @@
value: Sint(1),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(1.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(2.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(3.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(6.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(5.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(4.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(9.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(90.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(10.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(20.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(30.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(40.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(8.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(7.0),
),
),
(
name: None,
specialization: None,
@@ -522,78 +410,6 @@
value: Sint(5),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Sint(4),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Sint(9),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Float(0.0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Uint(3),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Uint(2),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Sint(3),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Uint(1),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Sint(42),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Uint(42),
),
),
],
global_variables: [
(
@@ -677,7 +493,7 @@
),
],
expressions: [
Constant(7),
Literal(I32(1)),
LocalVariable(1),
Load(
pointer: 2,
@@ -701,7 +517,7 @@
base: 9,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 10,
index: 0,
@@ -729,12 +545,12 @@
base: 19,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 20,
index: 0,
),
Constant(7),
Literal(I32(1)),
AccessIndex(
base: 22,
index: 1,
@@ -747,7 +563,7 @@
base: 26,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 27,
index: 0,
@@ -774,7 +590,7 @@
base: 34,
index: 35,
),
Constant(7),
Literal(I32(1)),
AccessIndex(
base: 36,
index: 1,
@@ -804,17 +620,17 @@
Load(
pointer: 45,
),
Constant(8),
Literal(F32(1.0)),
Splat(
size: Bi,
value: 47,
),
Constant(9),
Literal(F32(2.0)),
Splat(
size: Bi,
value: 49,
),
Constant(10),
Literal(F32(3.0)),
Splat(
size: Bi,
value: 51,
@@ -847,17 +663,17 @@
base: 55,
index: 0,
),
Constant(11),
Literal(F32(6.0)),
Splat(
size: Bi,
value: 60,
),
Constant(12),
Literal(F32(5.0)),
Splat(
size: Bi,
value: 62,
),
Constant(13),
Literal(F32(4.0)),
Splat(
size: Bi,
value: 64,
@@ -874,12 +690,12 @@
base: 55,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 67,
index: 0,
),
Constant(14),
Literal(F32(9.0)),
Splat(
size: Bi,
value: 70,
@@ -895,7 +711,7 @@
base: 72,
index: 73,
),
Constant(15),
Literal(F32(90.0)),
Splat(
size: Bi,
value: 75,
@@ -904,22 +720,22 @@
base: 55,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 77,
index: 0,
),
Constant(7),
Literal(I32(1)),
AccessIndex(
base: 79,
index: 1,
),
Constant(16),
Literal(F32(10.0)),
AccessIndex(
base: 55,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 83,
index: 0,
@@ -931,7 +747,7 @@
base: 85,
index: 86,
),
Constant(17),
Literal(F32(20.0)),
AccessIndex(
base: 55,
index: 0,
@@ -943,12 +759,12 @@
base: 89,
index: 90,
),
Constant(7),
Literal(I32(1)),
AccessIndex(
base: 91,
index: 1,
),
Constant(18),
Literal(F32(30.0)),
AccessIndex(
base: 55,
index: 0,
@@ -967,7 +783,7 @@
base: 97,
index: 98,
),
Constant(19),
Literal(F32(40.0)),
],
named_expressions: {},
body: [
@@ -1181,7 +997,7 @@
),
],
expressions: [
Constant(7),
Literal(I32(1)),
LocalVariable(1),
Load(
pointer: 2,
@@ -1205,7 +1021,7 @@
base: 9,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 10,
index: 0,
@@ -1218,12 +1034,12 @@
base: 14,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 15,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 17,
index: 0,
@@ -1236,7 +1052,7 @@
base: 21,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 22,
index: 0,
@@ -1256,17 +1072,17 @@
base: 28,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 29,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 31,
index: 0,
),
Constant(7),
Literal(I32(1)),
AccessIndex(
base: 33,
index: 1,
@@ -1279,12 +1095,12 @@
base: 37,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 38,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 40,
index: 0,
@@ -1304,7 +1120,7 @@
base: 46,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 47,
index: 0,
@@ -1316,7 +1132,7 @@
base: 49,
index: 50,
),
Constant(7),
Literal(I32(1)),
AccessIndex(
base: 51,
index: 1,
@@ -1329,7 +1145,7 @@
base: 55,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 56,
index: 0,
@@ -1377,27 +1193,27 @@
base: 66,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 72,
index: 0,
),
Constant(20),
Literal(F32(8.0)),
Splat(
size: Bi,
value: 75,
),
Constant(21),
Literal(F32(7.0)),
Splat(
size: Bi,
value: 77,
),
Constant(11),
Literal(F32(6.0)),
Splat(
size: Bi,
value: 79,
),
Constant(12),
Literal(F32(5.0)),
Splat(
size: Bi,
value: 81,
@@ -1415,17 +1231,17 @@
base: 66,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 84,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 86,
index: 0,
),
Constant(14),
Literal(F32(9.0)),
Splat(
size: Bi,
value: 89,
@@ -1434,7 +1250,7 @@
base: 66,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 91,
index: 0,
@@ -1446,7 +1262,7 @@
base: 93,
index: 94,
),
Constant(15),
Literal(F32(90.0)),
Splat(
size: Bi,
value: 96,
@@ -1455,32 +1271,32 @@
base: 66,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 98,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 100,
index: 0,
),
Constant(7),
Literal(I32(1)),
AccessIndex(
base: 102,
index: 1,
),
Constant(16),
Literal(F32(10.0)),
AccessIndex(
base: 66,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 106,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 108,
index: 0,
@@ -1492,12 +1308,12 @@
base: 110,
index: 111,
),
Constant(17),
Literal(F32(20.0)),
AccessIndex(
base: 66,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 114,
index: 0,
@@ -1509,17 +1325,17 @@
base: 116,
index: 117,
),
Constant(7),
Literal(I32(1)),
AccessIndex(
base: 118,
index: 1,
),
Constant(18),
Literal(F32(30.0)),
AccessIndex(
base: 66,
index: 0,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 122,
index: 0,
@@ -1538,7 +1354,7 @@
base: 126,
index: 127,
),
Constant(19),
Literal(F32(40.0)),
],
named_expressions: {},
body: [
@@ -1848,12 +1664,12 @@
local_variables: [],
expressions: [
FunctionArgument(0),
Constant(23),
Literal(I32(4)),
AccessIndex(
base: 1,
index: 4,
),
Constant(24),
Literal(I32(9)),
AccessIndex(
base: 3,
index: 9,
@@ -1889,7 +1705,7 @@
local_variables: [],
expressions: [
FunctionArgument(0),
Constant(31),
Literal(U32(42)),
],
named_expressions: {
1: "p",
@@ -1917,12 +1733,12 @@
local_variables: [],
expressions: [
FunctionArgument(0),
Constant(8),
Literal(F32(1.0)),
Splat(
size: Quad,
value: 2,
),
Constant(9),
Literal(F32(2.0)),
Splat(
size: Quad,
value: 4,
@@ -1992,12 +1808,12 @@
],
expressions: [
FunctionArgument(0),
Constant(25),
Literal(F32(0.0)),
LocalVariable(1),
Load(
pointer: 3,
),
Constant(8),
Literal(F32(1.0)),
GlobalVariable(2),
AccessIndex(
base: 6,
@@ -2014,7 +1830,7 @@
Load(
pointer: 10,
),
Constant(26),
Literal(U32(3)),
GlobalVariable(2),
AccessIndex(
base: 13,
@@ -2042,7 +1858,7 @@
index: 5,
),
ArrayLength(21),
Constant(27),
Literal(U32(2)),
Binary(
op: Subtract,
left: 22,
@@ -2068,7 +1884,7 @@
base: 30,
index: 5,
),
Constant(3),
Literal(I32(0)),
AccessIndex(
base: 31,
index: 0,
@@ -2083,9 +1899,9 @@
kind: Sint,
convert: Some(4),
),
Constant(28),
Constant(23),
Constant(22),
Literal(I32(3)),
Literal(I32(4)),
Literal(I32(5)),
Compose(
ty: 28,
components: [
@@ -2097,7 +1913,7 @@
],
),
LocalVariable(2),
Constant(29),
Literal(U32(1)),
Binary(
op: Add,
left: 1,
@@ -2107,7 +1923,7 @@
base: 41,
index: 43,
),
Constant(30),
Literal(I32(42)),
Access(
base: 41,
index: 1,
@@ -2131,7 +1947,7 @@
left: 8,
right: 51,
),
Constant(9),
Literal(F32(2.0)),
Compose(
ty: 26,
components: [
@@ -2287,7 +2103,7 @@
base: 1,
index: 0,
),
Constant(7),
Literal(I32(1)),
AccessIndex(
base: 2,
index: 1,
@@ -2296,28 +2112,28 @@
base: 4,
index: 2,
),
Constant(8),
Literal(F32(1.0)),
GlobalVariable(2),
AccessIndex(
base: 7,
index: 0,
),
Constant(25),
Literal(F32(0.0)),
Splat(
size: Tri,
value: 9,
),
Constant(8),
Literal(F32(1.0)),
Splat(
size: Tri,
value: 11,
),
Constant(9),
Literal(F32(2.0)),
Splat(
size: Tri,
value: 13,
),
Constant(10),
Literal(F32(3.0)),
Splat(
size: Tri,
value: 15,
@@ -2336,12 +2152,12 @@
base: 18,
index: 4,
),
Constant(1),
Literal(U32(0)),
Splat(
size: Bi,
value: 20,
),
Constant(29),
Literal(U32(1)),
Splat(
size: Bi,
value: 22,
@@ -2358,7 +2174,7 @@
base: 25,
index: 5,
),
Constant(7),
Literal(I32(1)),
AccessIndex(
base: 26,
index: 1,
@@ -2367,10 +2183,10 @@
base: 28,
index: 0,
),
Constant(7),
Literal(I32(1)),
GlobalVariable(4),
ZeroValue(17),
Constant(25),
Literal(F32(0.0)),
Splat(
size: Quad,
value: 33,
@@ -2473,12 +2289,12 @@
),
],
expressions: [
Constant(11),
Literal(F32(6.0)),
Splat(
size: Quad,
value: 1,
),
Constant(21),
Literal(F32(7.0)),
Splat(
size: Quad,
value: 3,

View File

@@ -42,40 +42,7 @@
ray_desc: None,
ray_intersection: None,
),
constants: [
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Uint(0),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Uint(1),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Uint(2),
),
),
(
name: None,
specialization: None,
inner: Scalar(
width: 4,
value: Uint(3),
),
),
],
constants: [],
global_variables: [
(
name: Some("v_indices"),
@@ -121,12 +88,12 @@
expressions: [
FunctionArgument(0),
LocalVariable(1),
Constant(1),
Literal(U32(0)),
LocalVariable(2),
Load(
pointer: 2,
),
Constant(2),
Literal(U32(1)),
Binary(
op: Greater,
left: 5,
@@ -135,13 +102,13 @@
Load(
pointer: 2,
),
Constant(3),
Literal(U32(2)),
Binary(
op: Modulo,
left: 8,
right: 9,
),
Constant(1),
Literal(U32(0)),
Binary(
op: Equal,
left: 10,
@@ -150,13 +117,13 @@
Load(
pointer: 2,
),
Constant(3),
Literal(U32(2)),
Binary(
op: Divide,
left: 13,
right: 14,
),
Constant(4),
Literal(U32(3)),
Load(
pointer: 2,
),
@@ -165,7 +132,7 @@
left: 16,
right: 17,
),
Constant(2),
Literal(U32(1)),
Binary(
op: Add,
left: 18,
@@ -174,7 +141,7 @@
Load(
pointer: 4,
),
Constant(2),
Literal(U32(1)),
Binary(
op: Add,
left: 21,

View File

@@ -135,7 +135,7 @@ kernel void main_(
vVel = ((_e112 + (_e113 * _e116)) + (_e119 * _e122)) + (_e125 * _e128);
metal::float2 _e131 = vVel;
metal::float2 _e133 = vVel;
vVel = metal::normalize(_e131) * metal::clamp(metal::length(_e133), 0.0, 0.10000000149011612);
vVel = metal::normalize(_e131) * metal::clamp(metal::length(_e133), 0.0, 0.1);
metal::float2 _e139 = vPos;
metal::float2 _e140 = vVel;
float _e143 = params.deltaT;

View File

@@ -129,10 +129,10 @@ fragment texture_sampleOutput texture_sample(
metal::float4 _e19 = image_2d.sample(sampler_reg, tc, const_type_9_);
metal::float4 _e20 = a;
a = _e20 + _e19;
metal::float4 _e24 = image_2d.sample(sampler_reg, tc, metal::level(2.299999952316284));
metal::float4 _e24 = image_2d.sample(sampler_reg, tc, metal::level(2.3));
metal::float4 _e25 = a;
a = _e25 + _e24;
metal::float4 _e29 = image_2d.sample(sampler_reg, tc, metal::level(2.299999952316284), const_type_9_);
metal::float4 _e29 = image_2d.sample(sampler_reg, tc, metal::level(2.3), const_type_9_);
metal::float4 _e30 = a;
a = _e30 + _e29;
metal::float4 _e35 = image_2d.sample(sampler_reg, tc, metal::bias(2.0), const_type_9_);
@@ -144,10 +144,10 @@ fragment texture_sampleOutput texture_sample(
metal::float4 _e47 = image_2d_array.sample(sampler_reg, tc, 0u, const_type_9_);
metal::float4 _e48 = a;
a = _e48 + _e47;
metal::float4 _e53 = image_2d_array.sample(sampler_reg, tc, 0u, metal::level(2.299999952316284));
metal::float4 _e53 = image_2d_array.sample(sampler_reg, tc, 0u, metal::level(2.3));
metal::float4 _e54 = a;
a = _e54 + _e53;
metal::float4 _e59 = image_2d_array.sample(sampler_reg, tc, 0u, metal::level(2.299999952316284), const_type_9_);
metal::float4 _e59 = image_2d_array.sample(sampler_reg, tc, 0u, metal::level(2.3), const_type_9_);
metal::float4 _e60 = a;
a = _e60 + _e59;
metal::float4 _e66 = image_2d_array.sample(sampler_reg, tc, 0u, metal::bias(2.0), const_type_9_);
@@ -159,10 +159,10 @@ fragment texture_sampleOutput texture_sample(
metal::float4 _e78 = image_2d_array.sample(sampler_reg, tc, 0, const_type_9_);
metal::float4 _e79 = a;
a = _e79 + _e78;
metal::float4 _e84 = image_2d_array.sample(sampler_reg, tc, 0, metal::level(2.299999952316284));
metal::float4 _e84 = image_2d_array.sample(sampler_reg, tc, 0, metal::level(2.3));
metal::float4 _e85 = a;
a = _e85 + _e84;
metal::float4 _e90 = image_2d_array.sample(sampler_reg, tc, 0, metal::level(2.299999952316284), const_type_9_);
metal::float4 _e90 = image_2d_array.sample(sampler_reg, tc, 0, metal::level(2.3), const_type_9_);
metal::float4 _e91 = a;
a = _e91 + _e90;
metal::float4 _e97 = image_2d_array.sample(sampler_reg, tc, 0, metal::bias(2.0), const_type_9_);
@@ -171,7 +171,7 @@ fragment texture_sampleOutput texture_sample(
metal::float4 _e103 = image_cube_array.sample(sampler_reg, tc3_, 0u);
metal::float4 _e104 = a;
a = _e104 + _e103;
metal::float4 _e109 = image_cube_array.sample(sampler_reg, tc3_, 0u, metal::level(2.299999952316284));
metal::float4 _e109 = image_cube_array.sample(sampler_reg, tc3_, 0u, metal::level(2.3));
metal::float4 _e110 = a;
a = _e110 + _e109;
metal::float4 _e116 = image_cube_array.sample(sampler_reg, tc3_, 0u, metal::bias(2.0));
@@ -180,7 +180,7 @@ fragment texture_sampleOutput texture_sample(
metal::float4 _e122 = image_cube_array.sample(sampler_reg, tc3_, 0);
metal::float4 _e123 = a;
a = _e123 + _e122;
metal::float4 _e128 = image_cube_array.sample(sampler_reg, tc3_, 0, metal::level(2.299999952316284));
metal::float4 _e128 = image_cube_array.sample(sampler_reg, tc3_, 0, metal::level(2.3));
metal::float4 _e129 = a;
a = _e129 + _e128;
metal::float4 _e135 = image_cube_array.sample(sampler_reg, tc3_, 0, metal::bias(2.0));

View File

@@ -25,7 +25,7 @@ metal::float4 builtins(
metal::float4 s2_ = true ? v_f32_one : v_f32_zero;
metal::float4 s3_ = metal::select(v_f32_one, v_f32_zero, metal::bool4(false, false, false, false));
metal::float4 m1_ = metal::mix(v_f32_zero, v_f32_one, v_f32_half);
metal::float4 m2_ = metal::mix(v_f32_zero, v_f32_one, 0.10000000149011612);
metal::float4 m2_ = metal::mix(v_f32_zero, v_f32_one, 0.1);
float b1_ = as_type<float>(v_i32_one.x);
metal::float4 b2_ = as_type<metal::float4>(v_i32_one);
metal::int4 v_i32_zero = static_cast<metal::int4>(v_f32_zero);

View File

@@ -43,7 +43,7 @@ metal::float4 mock_function(
thread type_6& in_private
) {
type_9 in_function = {};
in_function = type_9 {metal::float4(0.7070000171661377, 0.0, 0.0, 1.0), metal::float4(0.0, 0.7070000171661377, 0.0, 1.0)};
in_function = type_9 {metal::float4(0.707, 0.0, 0.0, 1.0), metal::float4(0.0, 0.707, 0.0, 1.0)};
metal::float4 _e18 = in_storage.a.inner[i];
metal::float4 _e22 = in_uniform.a.inner[i];
metal::float4 _e25 = (uint(l) < image_2d_array.get_num_mip_levels() && uint(i) < image_2d_array.get_array_size() && metal::all(metal::uint2(c) < metal::uint2(image_2d_array.get_width(l), image_2d_array.get_height(l))) ? image_2d_array.read(metal::uint2(c), i, l): DefaultConstructible());

View File

@@ -46,7 +46,7 @@ metal::float3 get_torus_normal(
RayIntersection intersection
) {
metal::float3 local_point = intersection.world_to_object * metal::float4(world_point, 1.0);
metal::float2 point_on_guiding_line = metal::normalize(local_point.xy) * 2.4000000953674316;
metal::float2 point_on_guiding_line = metal::normalize(local_point.xy) * 2.4;
metal::float3 world_point_on_guiding_line = intersection.object_to_world * metal::float4(point_on_guiding_line, 0.0, 1.0);
return metal::normalize(world_point - world_point_on_guiding_line);
}
@@ -57,7 +57,7 @@ kernel void main_(
) {
_RayQuery rq = {};
metal::float3 dir = metal::float3(0.0, 1.0, 0.0);
RayDesc _e12 = RayDesc {4u, 255u, 0.10000000149011612, 100.0, metal::float3(0.0), dir};
RayDesc _e12 = RayDesc {4u, 255u, 0.1, 100.0, metal::float3(0.0), dir};
rq.intersector.assume_geometry_type(metal::raytracing::geometry_type::triangle);
rq.intersector.set_opacity_cull_mode((_e12.flags & 64) != 0 ? metal::raytracing::opacity_cull_mode::opaque : (_e12.flags & 128) != 0 ? metal::raytracing::opacity_cull_mode::non_opaque : metal::raytracing::opacity_cull_mode::none);
rq.intersector.force_opacity((_e12.flags & 1) != 0 ? metal::raytracing::forced_opacity::opaque : (_e12.flags & 2) != 0 ? metal::raytracing::forced_opacity::non_opaque : metal::raytracing::forced_opacity::none);

View File

@@ -6,102 +6,102 @@ OpCapability Shader
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %243 "foo_vert" %238 %241
OpEntryPoint Vertex %238 "foo_vert" %233 %236
OpEntryPoint Fragment %286 "foo_frag" %285
OpEntryPoint GLCompute %306 "assign_through_ptr" %309
OpExecutionMode %286 OriginUpperLeft
OpExecutionMode %306 LocalSize 1 1 1
OpSource GLSL 450
OpMemberName %36 0 "a"
OpMemberName %36 1 "b"
OpMemberName %36 2 "c"
OpName %36 "GlobalConst"
OpMemberName %37 0 "value"
OpName %37 "AlignedWrapper"
OpMemberName %47 0 "_matrix"
OpMemberName %47 1 "matrix_array"
OpMemberName %47 2 "atom"
OpMemberName %47 3 "atom_arr"
OpMemberName %47 4 "arr"
OpMemberName %47 5 "data"
OpName %47 "Bar"
OpMemberName %49 0 "m"
OpName %49 "Baz"
OpMemberName %53 0 "am"
OpName %53 "MatCx2InArray"
OpName %66 "global_const"
OpName %68 "bar"
OpName %70 "baz"
OpName %73 "qux"
OpName %76 "nested_mat_cx2"
OpName %79 "val"
OpName %80 "idx"
OpName %83 "t"
OpName %87 "test_matrix_within_struct_accesses"
OpName %144 "idx"
OpName %146 "t"
OpName %150 "test_matrix_within_array_within_struct_accesses"
OpName %207 "foo"
OpName %208 "read_from_private"
OpName %213 "a"
OpName %214 "test_arr_as_arg"
OpName %220 "p"
OpName %221 "assign_through_ptr_fn"
OpName %225 "foo"
OpName %226 "assign_array_through_ptr_fn"
OpName %232 "foo"
OpName %234 "c2"
OpName %238 "vi"
OpName %243 "foo_vert"
OpMemberName %12 0 "a"
OpMemberName %12 1 "b"
OpMemberName %12 2 "c"
OpName %12 "GlobalConst"
OpMemberName %13 0 "value"
OpName %13 "AlignedWrapper"
OpMemberName %24 0 "_matrix"
OpMemberName %24 1 "matrix_array"
OpMemberName %24 2 "atom"
OpMemberName %24 3 "atom_arr"
OpMemberName %24 4 "arr"
OpMemberName %24 5 "data"
OpName %24 "Bar"
OpMemberName %26 0 "m"
OpName %26 "Baz"
OpMemberName %30 0 "am"
OpName %30 "MatCx2InArray"
OpName %43 "global_const"
OpName %45 "bar"
OpName %47 "baz"
OpName %50 "qux"
OpName %53 "nested_mat_cx2"
OpName %56 "val"
OpName %57 "idx"
OpName %60 "t"
OpName %64 "test_matrix_within_struct_accesses"
OpName %134 "idx"
OpName %136 "t"
OpName %140 "test_matrix_within_array_within_struct_accesses"
OpName %199 "foo"
OpName %200 "read_from_private"
OpName %205 "a"
OpName %206 "test_arr_as_arg"
OpName %214 "p"
OpName %215 "assign_through_ptr_fn"
OpName %220 "foo"
OpName %221 "assign_array_through_ptr_fn"
OpName %227 "foo"
OpName %229 "c2"
OpName %233 "vi"
OpName %238 "foo_vert"
OpName %286 "foo_frag"
OpName %303 "arr"
OpName %306 "assign_through_ptr"
OpMemberDecorate %36 0 Offset 0
OpMemberDecorate %36 1 Offset 16
OpMemberDecorate %36 2 Offset 28
OpMemberDecorate %37 0 Offset 0
OpDecorate %42 ArrayStride 16
OpDecorate %43 ArrayStride 4
OpDecorate %45 ArrayStride 8
OpDecorate %46 ArrayStride 8
OpMemberDecorate %47 0 Offset 0
OpMemberDecorate %47 0 ColMajor
OpMemberDecorate %47 0 MatrixStride 16
OpMemberDecorate %47 1 Offset 64
OpMemberDecorate %47 1 ColMajor
OpMemberDecorate %47 1 MatrixStride 8
OpMemberDecorate %47 2 Offset 96
OpMemberDecorate %47 3 Offset 100
OpMemberDecorate %47 4 Offset 144
OpMemberDecorate %47 5 Offset 160
OpMemberDecorate %49 0 Offset 0
OpMemberDecorate %49 0 ColMajor
OpMemberDecorate %49 0 MatrixStride 8
OpDecorate %52 ArrayStride 32
OpMemberDecorate %53 0 Offset 0
OpMemberDecorate %53 0 ColMajor
OpMemberDecorate %53 0 MatrixStride 8
OpDecorate %55 ArrayStride 4
OpDecorate %56 ArrayStride 40
OpDecorate %59 ArrayStride 4
OpDecorate %62 ArrayStride 16
OpDecorate %68 DescriptorSet 0
OpDecorate %68 Binding 0
OpDecorate %47 Block
OpDecorate %70 DescriptorSet 0
OpDecorate %70 Binding 1
OpDecorate %71 Block
OpMemberDecorate %71 0 Offset 0
OpDecorate %73 DescriptorSet 0
OpDecorate %73 Binding 2
OpDecorate %74 Block
OpMemberDecorate %74 0 Offset 0
OpDecorate %76 DescriptorSet 0
OpDecorate %76 Binding 3
OpDecorate %77 Block
OpMemberDecorate %77 0 Offset 0
OpDecorate %238 BuiltIn VertexIndex
OpDecorate %241 BuiltIn Position
OpMemberDecorate %12 0 Offset 0
OpMemberDecorate %12 1 Offset 16
OpMemberDecorate %12 2 Offset 28
OpMemberDecorate %13 0 Offset 0
OpDecorate %19 ArrayStride 16
OpDecorate %20 ArrayStride 4
OpDecorate %22 ArrayStride 8
OpDecorate %23 ArrayStride 8
OpMemberDecorate %24 0 Offset 0
OpMemberDecorate %24 0 ColMajor
OpMemberDecorate %24 0 MatrixStride 16
OpMemberDecorate %24 1 Offset 64
OpMemberDecorate %24 1 ColMajor
OpMemberDecorate %24 1 MatrixStride 8
OpMemberDecorate %24 2 Offset 96
OpMemberDecorate %24 3 Offset 100
OpMemberDecorate %24 4 Offset 144
OpMemberDecorate %24 5 Offset 160
OpMemberDecorate %26 0 Offset 0
OpMemberDecorate %26 0 ColMajor
OpMemberDecorate %26 0 MatrixStride 8
OpDecorate %29 ArrayStride 32
OpMemberDecorate %30 0 Offset 0
OpMemberDecorate %30 0 ColMajor
OpMemberDecorate %30 0 MatrixStride 8
OpDecorate %32 ArrayStride 4
OpDecorate %33 ArrayStride 40
OpDecorate %36 ArrayStride 4
OpDecorate %39 ArrayStride 16
OpDecorate %45 DescriptorSet 0
OpDecorate %45 Binding 0
OpDecorate %24 Block
OpDecorate %47 DescriptorSet 0
OpDecorate %47 Binding 1
OpDecorate %48 Block
OpMemberDecorate %48 0 Offset 0
OpDecorate %50 DescriptorSet 0
OpDecorate %50 Binding 2
OpDecorate %51 Block
OpMemberDecorate %51 0 Offset 0
OpDecorate %53 DescriptorSet 0
OpDecorate %53 Binding 3
OpDecorate %54 Block
OpMemberDecorate %54 0 Offset 0
OpDecorate %233 BuiltIn VertexIndex
OpDecorate %236 BuiltIn Position
OpDecorate %285 Location 0
OpDecorate %309 BuiltIn LocalInvocationId
%2 = OpTypeVoid
@@ -112,389 +112,389 @@ OpDecorate %309 BuiltIn LocalInvocationId
%7 = OpConstant %6 2
%8 = OpConstant %6 10
%9 = OpConstant %6 1
%11 = OpTypeFloat 32
%10 = OpConstant %11 1.0
%12 = OpConstant %11 2.0
%13 = OpConstant %11 3.0
%14 = OpConstant %11 6.0
%15 = OpConstant %11 5.0
%16 = OpConstant %11 4.0
%17 = OpConstant %11 9.0
%18 = OpConstant %11 90.0
%19 = OpConstant %11 10.0
%20 = OpConstant %11 20.0
%21 = OpConstant %11 30.0
%22 = OpConstant %11 40.0
%23 = OpConstant %11 8.0
%24 = OpConstant %11 7.0
%25 = OpConstant %6 5
%26 = OpConstant %6 4
%27 = OpConstant %6 9
%28 = OpConstant %11 0.0
%29 = OpConstant %4 3
%30 = OpConstant %4 2
%31 = OpConstant %6 3
%32 = OpConstant %4 1
%33 = OpConstant %6 42
%34 = OpConstant %4 42
%35 = OpTypeVector %4 3
%36 = OpTypeStruct %4 %35 %6
%37 = OpTypeStruct %6
%39 = OpTypeVector %11 3
%38 = OpTypeMatrix %39 4
%41 = OpTypeVector %11 2
%40 = OpTypeMatrix %41 2
%42 = OpTypeArray %40 %7
%43 = OpTypeArray %6 %8
%44 = OpTypeVector %4 2
%45 = OpTypeArray %44 %7
%46 = OpTypeRuntimeArray %37
%47 = OpTypeStruct %38 %42 %6 %43 %45 %46
%48 = OpTypeMatrix %41 3
%49 = OpTypeStruct %48
%50 = OpTypeVector %6 2
%51 = OpTypeMatrix %41 4
%52 = OpTypeArray %51 %7
%53 = OpTypeStruct %52
%54 = OpTypePointer Function %11
%55 = OpTypeArray %11 %8
%56 = OpTypeArray %55 %25
%57 = OpTypeVector %11 4
%58 = OpTypePointer StorageBuffer %6
%59 = OpTypeArray %6 %25
%60 = OpTypeVector %6 4
%61 = OpTypePointer Workgroup %4
%62 = OpTypeArray %57 %7
%63 = OpTypePointer Function %62
%64 = OpConstantComposite %35 %3 %3 %3
%65 = OpConstantComposite %36 %3 %64 %5
%67 = OpTypePointer Private %36
%66 = OpVariable %67 Private %65
%69 = OpTypePointer StorageBuffer %47
%68 = OpVariable %69 StorageBuffer
%71 = OpTypeStruct %49
%72 = OpTypePointer Uniform %71
%70 = OpVariable %72 Uniform
%74 = OpTypeStruct %50
%75 = OpTypePointer StorageBuffer %74
%73 = OpVariable %75 StorageBuffer
%77 = OpTypeStruct %53
%78 = OpTypePointer Uniform %77
%76 = OpVariable %78 Uniform
%79 = OpVariable %61 Workgroup
%81 = OpTypePointer Function %6
%82 = OpConstantNull %6
%84 = OpTypePointer Function %49
%85 = OpConstantNull %49
%88 = OpTypeFunction %2
%89 = OpTypePointer Uniform %49
%94 = OpTypePointer Uniform %48
%97 = OpTypePointer Uniform %41
%103 = OpTypePointer Uniform %11
%123 = OpTypePointer Function %48
%129 = OpTypePointer Function %41
%135 = OpTypePointer Function %11
%145 = OpConstantNull %6
%147 = OpTypePointer Function %53
%148 = OpConstantNull %53
%151 = OpTypePointer Uniform %53
%153 = OpConstantNull %52
%154 = OpConstantNull %52
%158 = OpTypePointer Uniform %52
%161 = OpTypePointer Uniform %51
%184 = OpTypePointer Function %52
%186 = OpTypePointer Function %51
%209 = OpTypeFunction %11 %54
%215 = OpTypeFunction %11 %56
%222 = OpTypeFunction %2 %61
%227 = OpTypeFunction %2 %63
%233 = OpConstantNull %11
%235 = OpTypePointer Function %59
%236 = OpConstantNull %59
%239 = OpTypePointer Input %4
%238 = OpVariable %239 Input
%242 = OpTypePointer Output %57
%241 = OpVariable %242 Output
%245 = OpTypePointer StorageBuffer %50
%248 = OpConstantNull %56
%253 = OpTypePointer StorageBuffer %38
%256 = OpTypePointer StorageBuffer %45
%10 = OpConstant %6 5
%11 = OpTypeVector %4 3
%12 = OpTypeStruct %4 %11 %6
%13 = OpTypeStruct %6
%16 = OpTypeFloat 32
%15 = OpTypeVector %16 3
%14 = OpTypeMatrix %15 4
%18 = OpTypeVector %16 2
%17 = OpTypeMatrix %18 2
%19 = OpTypeArray %17 %7
%20 = OpTypeArray %6 %8
%21 = OpTypeVector %4 2
%22 = OpTypeArray %21 %7
%23 = OpTypeRuntimeArray %13
%24 = OpTypeStruct %14 %19 %6 %20 %22 %23
%25 = OpTypeMatrix %18 3
%26 = OpTypeStruct %25
%27 = OpTypeVector %6 2
%28 = OpTypeMatrix %18 4
%29 = OpTypeArray %28 %7
%30 = OpTypeStruct %29
%31 = OpTypePointer Function %16
%32 = OpTypeArray %16 %8
%33 = OpTypeArray %32 %10
%34 = OpTypeVector %16 4
%35 = OpTypePointer StorageBuffer %6
%36 = OpTypeArray %6 %10
%37 = OpTypeVector %6 4
%38 = OpTypePointer Workgroup %4
%39 = OpTypeArray %34 %7
%40 = OpTypePointer Function %39
%41 = OpConstantComposite %11 %3 %3 %3
%42 = OpConstantComposite %12 %3 %41 %5
%44 = OpTypePointer Private %12
%43 = OpVariable %44 Private %42
%46 = OpTypePointer StorageBuffer %24
%45 = OpVariable %46 StorageBuffer
%48 = OpTypeStruct %26
%49 = OpTypePointer Uniform %48
%47 = OpVariable %49 Uniform
%51 = OpTypeStruct %27
%52 = OpTypePointer StorageBuffer %51
%50 = OpVariable %52 StorageBuffer
%54 = OpTypeStruct %30
%55 = OpTypePointer Uniform %54
%53 = OpVariable %55 Uniform
%56 = OpVariable %38 Workgroup
%58 = OpTypePointer Function %6
%59 = OpConstantNull %6
%61 = OpTypePointer Function %26
%62 = OpConstantNull %26
%65 = OpTypeFunction %2
%66 = OpTypePointer Uniform %26
%68 = OpConstant %16 1.0
%69 = OpConstant %16 2.0
%70 = OpConstant %16 3.0
%71 = OpConstant %16 6.0
%72 = OpConstant %16 5.0
%73 = OpConstant %16 4.0
%74 = OpConstant %16 9.0
%75 = OpConstant %16 90.0
%76 = OpConstant %16 10.0
%77 = OpConstant %16 20.0
%78 = OpConstant %16 30.0
%79 = OpConstant %16 40.0
%83 = OpTypePointer Uniform %25
%86 = OpTypePointer Uniform %18
%92 = OpTypePointer Uniform %16
%93 = OpConstant %4 1
%113 = OpTypePointer Function %25
%119 = OpTypePointer Function %18
%125 = OpTypePointer Function %16
%135 = OpConstantNull %6
%137 = OpTypePointer Function %30
%138 = OpConstantNull %30
%141 = OpTypePointer Uniform %30
%143 = OpConstantNull %29
%144 = OpConstantNull %29
%145 = OpConstant %16 8.0
%146 = OpConstant %16 7.0
%150 = OpTypePointer Uniform %29
%153 = OpTypePointer Uniform %28
%176 = OpTypePointer Function %29
%178 = OpTypePointer Function %28
%201 = OpTypeFunction %16 %31
%207 = OpTypeFunction %16 %33
%208 = OpConstant %6 4
%209 = OpConstant %6 9
%216 = OpTypeFunction %2 %38
%217 = OpConstant %4 42
%222 = OpTypeFunction %2 %40
%228 = OpConstantNull %16
%230 = OpTypePointer Function %36
%231 = OpConstantNull %36
%234 = OpTypePointer Input %4
%233 = OpVariable %234 Input
%237 = OpTypePointer Output %34
%236 = OpVariable %237 Output
%240 = OpTypePointer StorageBuffer %27
%243 = OpConstant %16 0.0
%244 = OpConstant %4 3
%245 = OpConstant %4 2
%246 = OpConstant %6 3
%247 = OpConstant %6 42
%248 = OpConstantNull %33
%253 = OpTypePointer StorageBuffer %14
%256 = OpTypePointer StorageBuffer %22
%257 = OpConstant %4 4
%260 = OpTypePointer StorageBuffer %39
%261 = OpTypePointer StorageBuffer %11
%264 = OpTypePointer StorageBuffer %46
%267 = OpTypePointer StorageBuffer %37
%260 = OpTypePointer StorageBuffer %15
%261 = OpTypePointer StorageBuffer %16
%264 = OpTypePointer StorageBuffer %23
%267 = OpTypePointer StorageBuffer %13
%268 = OpConstant %4 5
%285 = OpVariable %242 Output
%288 = OpConstantNull %50
%304 = OpConstantNull %62
%285 = OpVariable %237 Output
%288 = OpConstantNull %27
%304 = OpConstantNull %39
%308 = OpConstantNull %4
%310 = OpTypePointer Input %35
%310 = OpTypePointer Input %11
%309 = OpVariable %310 Input
%312 = OpConstantNull %35
%312 = OpConstantNull %11
%314 = OpTypeBool
%313 = OpTypeVector %314 3
%319 = OpConstant %4 264
%87 = OpFunction %2 None %88
%86 = OpLabel
%80 = OpVariable %81 Function %82
%83 = OpVariable %84 Function %85
%90 = OpAccessChain %89 %70 %3
OpBranch %91
%91 = OpLabel
OpStore %80 %9
%92 = OpLoad %6 %80
%93 = OpISub %6 %92 %9
OpStore %80 %93
%95 = OpAccessChain %94 %90 %3
%96 = OpLoad %48 %95
%98 = OpAccessChain %97 %90 %3 %3
%99 = OpLoad %41 %98
%100 = OpLoad %6 %80
%101 = OpAccessChain %97 %90 %3 %100
%102 = OpLoad %41 %101
%104 = OpAccessChain %103 %90 %3 %3 %32
%105 = OpLoad %11 %104
%106 = OpLoad %6 %80
%107 = OpAccessChain %103 %90 %3 %3 %106
%108 = OpLoad %11 %107
%109 = OpLoad %6 %80
%110 = OpAccessChain %103 %90 %3 %109 %32
%111 = OpLoad %11 %110
%112 = OpLoad %6 %80
%113 = OpLoad %6 %80
%114 = OpAccessChain %103 %90 %3 %112 %113
%115 = OpLoad %11 %114
%116 = OpCompositeConstruct %41 %10 %10
%117 = OpCompositeConstruct %41 %12 %12
%118 = OpCompositeConstruct %41 %13 %13
%119 = OpCompositeConstruct %48 %116 %117 %118
%120 = OpCompositeConstruct %49 %119
OpStore %83 %120
%121 = OpLoad %6 %80
%122 = OpIAdd %6 %121 %9
OpStore %80 %122
%124 = OpCompositeConstruct %41 %14 %14
%125 = OpCompositeConstruct %41 %15 %15
%126 = OpCompositeConstruct %41 %16 %16
%127 = OpCompositeConstruct %48 %124 %125 %126
%128 = OpAccessChain %123 %83 %3
OpStore %128 %127
%130 = OpCompositeConstruct %41 %17 %17
%131 = OpAccessChain %129 %83 %3 %3
OpStore %131 %130
%132 = OpLoad %6 %80
%133 = OpCompositeConstruct %41 %18 %18
%134 = OpAccessChain %129 %83 %3 %132
OpStore %134 %133
%136 = OpAccessChain %135 %83 %3 %3 %32
OpStore %136 %19
%137 = OpLoad %6 %80
%138 = OpAccessChain %135 %83 %3 %3 %137
OpStore %138 %20
%139 = OpLoad %6 %80
%140 = OpAccessChain %135 %83 %3 %139 %32
OpStore %140 %21
%141 = OpLoad %6 %80
%142 = OpLoad %6 %80
%143 = OpAccessChain %135 %83 %3 %141 %142
OpStore %143 %22
%64 = OpFunction %2 None %65
%63 = OpLabel
%57 = OpVariable %58 Function %59
%60 = OpVariable %61 Function %62
%67 = OpAccessChain %66 %47 %3
OpBranch %80
%80 = OpLabel
OpStore %57 %9
%81 = OpLoad %6 %57
%82 = OpISub %6 %81 %9
OpStore %57 %82
%84 = OpAccessChain %83 %67 %3
%85 = OpLoad %25 %84
%87 = OpAccessChain %86 %67 %3 %3
%88 = OpLoad %18 %87
%89 = OpLoad %6 %57
%90 = OpAccessChain %86 %67 %3 %89
%91 = OpLoad %18 %90
%94 = OpAccessChain %92 %67 %3 %3 %93
%95 = OpLoad %16 %94
%96 = OpLoad %6 %57
%97 = OpAccessChain %92 %67 %3 %3 %96
%98 = OpLoad %16 %97
%99 = OpLoad %6 %57
%100 = OpAccessChain %92 %67 %3 %99 %93
%101 = OpLoad %16 %100
%102 = OpLoad %6 %57
%103 = OpLoad %6 %57
%104 = OpAccessChain %92 %67 %3 %102 %103
%105 = OpLoad %16 %104
%106 = OpCompositeConstruct %18 %68 %68
%107 = OpCompositeConstruct %18 %69 %69
%108 = OpCompositeConstruct %18 %70 %70
%109 = OpCompositeConstruct %25 %106 %107 %108
%110 = OpCompositeConstruct %26 %109
OpStore %60 %110
%111 = OpLoad %6 %57
%112 = OpIAdd %6 %111 %9
OpStore %57 %112
%114 = OpCompositeConstruct %18 %71 %71
%115 = OpCompositeConstruct %18 %72 %72
%116 = OpCompositeConstruct %18 %73 %73
%117 = OpCompositeConstruct %25 %114 %115 %116
%118 = OpAccessChain %113 %60 %3
OpStore %118 %117
%120 = OpCompositeConstruct %18 %74 %74
%121 = OpAccessChain %119 %60 %3 %3
OpStore %121 %120
%122 = OpLoad %6 %57
%123 = OpCompositeConstruct %18 %75 %75
%124 = OpAccessChain %119 %60 %3 %122
OpStore %124 %123
%126 = OpAccessChain %125 %60 %3 %3 %93
OpStore %126 %76
%127 = OpLoad %6 %57
%128 = OpAccessChain %125 %60 %3 %3 %127
OpStore %128 %77
%129 = OpLoad %6 %57
%130 = OpAccessChain %125 %60 %3 %129 %93
OpStore %130 %78
%131 = OpLoad %6 %57
%132 = OpLoad %6 %57
%133 = OpAccessChain %125 %60 %3 %131 %132
OpStore %133 %79
OpReturn
OpFunctionEnd
%150 = OpFunction %2 None %88
%149 = OpLabel
%144 = OpVariable %81 Function %145
%146 = OpVariable %147 Function %148
%152 = OpAccessChain %151 %76 %3
OpBranch %155
%155 = OpLabel
OpStore %144 %9
%156 = OpLoad %6 %144
%157 = OpISub %6 %156 %9
OpStore %144 %157
%159 = OpAccessChain %158 %152 %3
%160 = OpLoad %52 %159
%162 = OpAccessChain %161 %152 %3 %3
%163 = OpLoad %51 %162
%164 = OpAccessChain %97 %152 %3 %3 %3
%165 = OpLoad %41 %164
%166 = OpLoad %6 %144
%167 = OpAccessChain %97 %152 %3 %3 %166
%168 = OpLoad %41 %167
%169 = OpAccessChain %103 %152 %3 %3 %3 %32
%170 = OpLoad %11 %169
%171 = OpLoad %6 %144
%172 = OpAccessChain %103 %152 %3 %3 %3 %171
%173 = OpLoad %11 %172
%174 = OpLoad %6 %144
%175 = OpAccessChain %103 %152 %3 %3 %174 %32
%176 = OpLoad %11 %175
%177 = OpLoad %6 %144
%178 = OpLoad %6 %144
%179 = OpAccessChain %103 %152 %3 %3 %177 %178
%180 = OpLoad %11 %179
%181 = OpCompositeConstruct %53 %153
OpStore %146 %181
%182 = OpLoad %6 %144
%183 = OpIAdd %6 %182 %9
OpStore %144 %183
%185 = OpAccessChain %184 %146 %3
OpStore %185 %154
%187 = OpCompositeConstruct %41 %23 %23
%188 = OpCompositeConstruct %41 %24 %24
%189 = OpCompositeConstruct %41 %14 %14
%190 = OpCompositeConstruct %41 %15 %15
%191 = OpCompositeConstruct %51 %187 %188 %189 %190
%192 = OpAccessChain %186 %146 %3 %3
OpStore %192 %191
%193 = OpCompositeConstruct %41 %17 %17
%194 = OpAccessChain %129 %146 %3 %3 %3
OpStore %194 %193
%195 = OpLoad %6 %144
%196 = OpCompositeConstruct %41 %18 %18
%197 = OpAccessChain %129 %146 %3 %3 %195
OpStore %197 %196
%198 = OpAccessChain %135 %146 %3 %3 %3 %32
OpStore %198 %19
%199 = OpLoad %6 %144
%200 = OpAccessChain %135 %146 %3 %3 %3 %199
OpStore %200 %20
%201 = OpLoad %6 %144
%202 = OpAccessChain %135 %146 %3 %3 %201 %32
OpStore %202 %21
%203 = OpLoad %6 %144
%204 = OpLoad %6 %144
%205 = OpAccessChain %135 %146 %3 %3 %203 %204
OpStore %205 %22
%140 = OpFunction %2 None %65
%139 = OpLabel
%134 = OpVariable %58 Function %135
%136 = OpVariable %137 Function %138
%142 = OpAccessChain %141 %53 %3
OpBranch %147
%147 = OpLabel
OpStore %134 %9
%148 = OpLoad %6 %134
%149 = OpISub %6 %148 %9
OpStore %134 %149
%151 = OpAccessChain %150 %142 %3
%152 = OpLoad %29 %151
%154 = OpAccessChain %153 %142 %3 %3
%155 = OpLoad %28 %154
%156 = OpAccessChain %86 %142 %3 %3 %3
%157 = OpLoad %18 %156
%158 = OpLoad %6 %134
%159 = OpAccessChain %86 %142 %3 %3 %158
%160 = OpLoad %18 %159
%161 = OpAccessChain %92 %142 %3 %3 %3 %93
%162 = OpLoad %16 %161
%163 = OpLoad %6 %134
%164 = OpAccessChain %92 %142 %3 %3 %3 %163
%165 = OpLoad %16 %164
%166 = OpLoad %6 %134
%167 = OpAccessChain %92 %142 %3 %3 %166 %93
%168 = OpLoad %16 %167
%169 = OpLoad %6 %134
%170 = OpLoad %6 %134
%171 = OpAccessChain %92 %142 %3 %3 %169 %170
%172 = OpLoad %16 %171
%173 = OpCompositeConstruct %30 %143
OpStore %136 %173
%174 = OpLoad %6 %134
%175 = OpIAdd %6 %174 %9
OpStore %134 %175
%177 = OpAccessChain %176 %136 %3
OpStore %177 %144
%179 = OpCompositeConstruct %18 %145 %145
%180 = OpCompositeConstruct %18 %146 %146
%181 = OpCompositeConstruct %18 %71 %71
%182 = OpCompositeConstruct %18 %72 %72
%183 = OpCompositeConstruct %28 %179 %180 %181 %182
%184 = OpAccessChain %178 %136 %3 %3
OpStore %184 %183
%185 = OpCompositeConstruct %18 %74 %74
%186 = OpAccessChain %119 %136 %3 %3 %3
OpStore %186 %185
%187 = OpLoad %6 %134
%188 = OpCompositeConstruct %18 %75 %75
%189 = OpAccessChain %119 %136 %3 %3 %187
OpStore %189 %188
%190 = OpAccessChain %125 %136 %3 %3 %3 %93
OpStore %190 %76
%191 = OpLoad %6 %134
%192 = OpAccessChain %125 %136 %3 %3 %3 %191
OpStore %192 %77
%193 = OpLoad %6 %134
%194 = OpAccessChain %125 %136 %3 %3 %193 %93
OpStore %194 %78
%195 = OpLoad %6 %134
%196 = OpLoad %6 %134
%197 = OpAccessChain %125 %136 %3 %3 %195 %196
OpStore %197 %79
OpReturn
OpFunctionEnd
%208 = OpFunction %11 None %209
%207 = OpFunctionParameter %54
%206 = OpLabel
%200 = OpFunction %16 None %201
%199 = OpFunctionParameter %31
%198 = OpLabel
OpBranch %202
%202 = OpLabel
%203 = OpLoad %16 %199
OpReturnValue %203
OpFunctionEnd
%206 = OpFunction %16 None %207
%205 = OpFunctionParameter %33
%204 = OpLabel
OpBranch %210
%210 = OpLabel
%211 = OpLoad %11 %207
OpReturnValue %211
%211 = OpCompositeExtract %32 %205 4
%212 = OpCompositeExtract %16 %211 9
OpReturnValue %212
OpFunctionEnd
%214 = OpFunction %11 None %215
%213 = OpFunctionParameter %56
%212 = OpLabel
OpBranch %216
%216 = OpLabel
%217 = OpCompositeExtract %55 %213 4
%218 = OpCompositeExtract %11 %217 9
OpReturnValue %218
%215 = OpFunction %2 None %216
%214 = OpFunctionParameter %38
%213 = OpLabel
OpBranch %218
%218 = OpLabel
OpStore %214 %217
OpReturn
OpFunctionEnd
%221 = OpFunction %2 None %222
%220 = OpFunctionParameter %61
%220 = OpFunctionParameter %40
%219 = OpLabel
OpBranch %223
%223 = OpLabel
OpStore %220 %34
%224 = OpCompositeConstruct %34 %68 %68 %68 %68
%225 = OpCompositeConstruct %34 %69 %69 %69 %69
%226 = OpCompositeConstruct %39 %224 %225
OpStore %220 %226
OpReturn
OpFunctionEnd
%226 = OpFunction %2 None %227
%225 = OpFunctionParameter %63
%224 = OpLabel
OpBranch %228
%228 = OpLabel
%229 = OpCompositeConstruct %57 %10 %10 %10 %10
%230 = OpCompositeConstruct %57 %12 %12 %12 %12
%231 = OpCompositeConstruct %62 %229 %230
OpStore %225 %231
OpReturn
OpFunctionEnd
%243 = OpFunction %2 None %88
%237 = OpLabel
%232 = OpVariable %54 Function %233
%234 = OpVariable %235 Function %236
%240 = OpLoad %4 %238
%244 = OpAccessChain %89 %70 %3
%246 = OpAccessChain %245 %73 %3
%247 = OpAccessChain %151 %76 %3
%238 = OpFunction %2 None %65
%232 = OpLabel
%227 = OpVariable %31 Function %228
%229 = OpVariable %230 Function %231
%235 = OpLoad %4 %233
%239 = OpAccessChain %66 %47 %3
%241 = OpAccessChain %240 %50 %3
%242 = OpAccessChain %141 %53 %3
OpBranch %249
%249 = OpLabel
OpStore %232 %28
%250 = OpLoad %11 %232
OpStore %232 %10
%251 = OpFunctionCall %2 %87
%252 = OpFunctionCall %2 %150
%254 = OpAccessChain %253 %68 %3
%255 = OpLoad %38 %254
%258 = OpAccessChain %256 %68 %257
%259 = OpLoad %45 %258
%262 = OpAccessChain %261 %68 %3 %29 %3
%263 = OpLoad %11 %262
%265 = OpArrayLength %4 %68 5
%266 = OpISub %4 %265 %30
%269 = OpAccessChain %58 %68 %268 %266 %3
OpStore %227 %243
%250 = OpLoad %16 %227
OpStore %227 %68
%251 = OpFunctionCall %2 %64
%252 = OpFunctionCall %2 %140
%254 = OpAccessChain %253 %45 %3
%255 = OpLoad %14 %254
%258 = OpAccessChain %256 %45 %257
%259 = OpLoad %22 %258
%262 = OpAccessChain %261 %45 %3 %244 %3
%263 = OpLoad %16 %262
%265 = OpArrayLength %4 %45 5
%266 = OpISub %4 %265 %245
%269 = OpAccessChain %35 %45 %268 %266 %3
%270 = OpLoad %6 %269
%271 = OpLoad %50 %246
%272 = OpFunctionCall %11 %208 %232
%271 = OpLoad %27 %241
%272 = OpFunctionCall %16 %200 %227
%273 = OpConvertFToS %6 %263
%274 = OpCompositeConstruct %59 %270 %273 %31 %26 %25
OpStore %234 %274
%275 = OpIAdd %4 %240 %32
%276 = OpAccessChain %81 %234 %275
OpStore %276 %33
%277 = OpAccessChain %81 %234 %240
%274 = OpCompositeConstruct %36 %270 %273 %246 %208 %10
OpStore %229 %274
%275 = OpIAdd %4 %235 %93
%276 = OpAccessChain %58 %229 %275
OpStore %276 %247
%277 = OpAccessChain %58 %229 %235
%278 = OpLoad %6 %277
%279 = OpFunctionCall %11 %214 %248
%280 = OpCompositeConstruct %60 %278 %278 %278 %278
%281 = OpConvertSToF %57 %280
%282 = OpMatrixTimesVector %39 %255 %281
%283 = OpCompositeConstruct %57 %282 %12
OpStore %241 %283
%279 = OpFunctionCall %16 %206 %248
%280 = OpCompositeConstruct %37 %278 %278 %278 %278
%281 = OpConvertSToF %34 %280
%282 = OpMatrixTimesVector %15 %255 %281
%283 = OpCompositeConstruct %34 %282 %69
OpStore %236 %283
OpReturn
OpFunctionEnd
%286 = OpFunction %2 None %88
%286 = OpFunction %2 None %65
%284 = OpLabel
%287 = OpAccessChain %245 %73 %3
%287 = OpAccessChain %240 %50 %3
OpBranch %289
%289 = OpLabel
%290 = OpAccessChain %261 %68 %3 %32 %30
OpStore %290 %10
%291 = OpCompositeConstruct %39 %28 %28 %28
%292 = OpCompositeConstruct %39 %10 %10 %10
%293 = OpCompositeConstruct %39 %12 %12 %12
%294 = OpCompositeConstruct %39 %13 %13 %13
%295 = OpCompositeConstruct %38 %291 %292 %293 %294
%296 = OpAccessChain %253 %68 %3
%290 = OpAccessChain %261 %45 %3 %93 %245
OpStore %290 %68
%291 = OpCompositeConstruct %15 %243 %243 %243
%292 = OpCompositeConstruct %15 %68 %68 %68
%293 = OpCompositeConstruct %15 %69 %69 %69
%294 = OpCompositeConstruct %15 %70 %70 %70
%295 = OpCompositeConstruct %14 %291 %292 %293 %294
%296 = OpAccessChain %253 %45 %3
OpStore %296 %295
%297 = OpCompositeConstruct %44 %3 %3
%298 = OpCompositeConstruct %44 %32 %32
%299 = OpCompositeConstruct %45 %297 %298
%300 = OpAccessChain %256 %68 %257
%297 = OpCompositeConstruct %21 %3 %3
%298 = OpCompositeConstruct %21 %93 %93
%299 = OpCompositeConstruct %22 %297 %298
%300 = OpAccessChain %256 %45 %257
OpStore %300 %299
%301 = OpAccessChain %58 %68 %268 %32 %3
%301 = OpAccessChain %35 %45 %268 %93 %3
OpStore %301 %9
OpStore %287 %288
%302 = OpCompositeConstruct %57 %28 %28 %28 %28
%302 = OpCompositeConstruct %34 %243 %243 %243 %243
OpStore %285 %302
OpReturn
OpFunctionEnd
%306 = OpFunction %2 None %88
%306 = OpFunction %2 None %65
%305 = OpLabel
%303 = OpVariable %63 Function %304
%303 = OpVariable %40 Function %304
OpBranch %307
%307 = OpLabel
%311 = OpLoad %35 %309
%311 = OpLoad %11 %309
%315 = OpIEqual %313 %311 %312
%316 = OpAll %314 %315
OpSelectionMerge %317 None
OpBranchConditional %316 %318 %317
%318 = OpLabel
OpStore %79 %308
OpStore %56 %308
OpBranch %317
%317 = OpLabel
OpControlBarrier %30 %30 %319
OpControlBarrier %245 %245 %319
OpBranch %320
%320 = OpLabel
%321 = OpCompositeConstruct %57 %14 %14 %14 %14
%322 = OpCompositeConstruct %57 %24 %24 %24 %24
%323 = OpCompositeConstruct %62 %321 %322
%321 = OpCompositeConstruct %34 %71 %71 %71 %71
%322 = OpCompositeConstruct %34 %146 %146 %146 %146
%323 = OpCompositeConstruct %39 %321 %322
OpStore %303 %323
%324 = OpFunctionCall %2 %221 %79
%325 = OpFunctionCall %2 %226 %303
%324 = OpFunctionCall %2 %215 %56
%325 = OpFunctionCall %2 %221 %303
OpReturn
OpFunctionEnd

View File

@@ -6,76 +6,76 @@ OpCapability Shader
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %32 "test_atomic_compare_exchange_i32"
OpEntryPoint GLCompute %29 "test_atomic_compare_exchange_i32"
OpEntryPoint GLCompute %84 "test_atomic_compare_exchange_u32"
OpExecutionMode %32 LocalSize 1 1 1
OpExecutionMode %29 LocalSize 1 1 1
OpExecutionMode %84 LocalSize 1 1 1
OpDecorate %12 ArrayStride 4
OpDecorate %13 ArrayStride 4
OpDecorate %7 ArrayStride 4
OpDecorate %8 ArrayStride 4
OpMemberDecorate %11 0 Offset 0
OpMemberDecorate %11 1 Offset 4
OpMemberDecorate %12 0 Offset 0
OpMemberDecorate %12 1 Offset 4
OpDecorate %13 DescriptorSet 0
OpDecorate %13 Binding 0
OpDecorate %14 Block
OpMemberDecorate %14 0 Offset 0
OpMemberDecorate %14 1 Offset 4
OpMemberDecorate %15 0 Offset 0
OpMemberDecorate %15 1 Offset 4
OpDecorate %16 DescriptorSet 0
OpDecorate %16 Binding 0
OpDecorate %16 Binding 1
OpDecorate %17 Block
OpMemberDecorate %17 0 Offset 0
OpDecorate %19 DescriptorSet 0
OpDecorate %19 Binding 1
OpDecorate %20 Block
OpMemberDecorate %20 0 Offset 0
%2 = OpTypeVoid
%4 = OpTypeInt 32 0
%3 = OpConstant %4 128
%5 = OpConstant %4 0
%7 = OpTypeBool
%6 = OpConstantFalse %7
%9 = OpTypeFloat 32
%8 = OpConstant %9 1.0
%10 = OpConstant %4 1
%11 = OpTypeInt 32 1
%12 = OpTypeArray %11 %3
%13 = OpTypeArray %4 %3
%14 = OpTypeStruct %11 %7
%15 = OpTypeStruct %4 %7
%17 = OpTypeStruct %12
%5 = OpConstant %4 1
%6 = OpTypeInt 32 1
%7 = OpTypeArray %6 %3
%8 = OpTypeArray %4 %3
%9 = OpTypeBool
%10 = OpTypeFloat 32
%11 = OpTypeStruct %6 %9
%12 = OpTypeStruct %4 %9
%14 = OpTypeStruct %7
%15 = OpTypePointer StorageBuffer %14
%13 = OpVariable %15 StorageBuffer
%17 = OpTypeStruct %8
%18 = OpTypePointer StorageBuffer %17
%16 = OpVariable %18 StorageBuffer
%20 = OpTypeStruct %13
%21 = OpTypePointer StorageBuffer %20
%19 = OpVariable %21 StorageBuffer
%23 = OpTypePointer Function %4
%24 = OpConstantNull %4
%26 = OpTypePointer Function %11
%27 = OpConstantNull %11
%29 = OpTypePointer Function %7
%30 = OpConstantNull %7
%33 = OpTypeFunction %2
%34 = OpTypePointer StorageBuffer %12
%48 = OpTypePointer StorageBuffer %11
%51 = OpConstant %11 1
%20 = OpTypePointer Function %4
%21 = OpConstantNull %4
%23 = OpTypePointer Function %6
%24 = OpConstantNull %6
%26 = OpTypePointer Function %9
%27 = OpConstantNull %9
%30 = OpTypeFunction %2
%31 = OpTypePointer StorageBuffer %7
%32 = OpConstant %4 0
%34 = OpConstantFalse %9
%35 = OpConstant %10 1.0
%48 = OpTypePointer StorageBuffer %6
%51 = OpConstant %6 1
%52 = OpConstant %4 64
%78 = OpConstantNull %4
%80 = OpConstantNull %4
%82 = OpConstantNull %7
%85 = OpTypePointer StorageBuffer %13
%82 = OpConstantNull %9
%85 = OpTypePointer StorageBuffer %8
%99 = OpTypePointer StorageBuffer %4
%32 = OpFunction %2 None %33
%31 = OpLabel
%29 = OpFunction %2 None %30
%28 = OpLabel
%19 = OpVariable %20 Function %21
%22 = OpVariable %23 Function %24
%25 = OpVariable %26 Function %27
%28 = OpVariable %29 Function %30
%35 = OpAccessChain %34 %16 %5
%33 = OpAccessChain %31 %13 %32
OpBranch %36
%36 = OpLabel
OpStore %22 %5
OpStore %19 %32
OpBranch %37
%37 = OpLabel
OpLoopMerge %38 %40 None
OpBranch %39
%39 = OpLabel
%41 = OpLoad %4 %22
%42 = OpULessThan %7 %41 %3
%41 = OpLoad %4 %19
%42 = OpULessThan %9 %41 %3
OpSelectionMerge %43 None
OpBranchConditional %42 %43 %44
%44 = OpLabel
@@ -83,18 +83,18 @@ OpBranch %38
%43 = OpLabel
OpBranch %45
%45 = OpLabel
%47 = OpLoad %4 %22
%49 = OpAccessChain %48 %35 %47
%50 = OpAtomicLoad %11 %49 %51 %52
OpStore %25 %50
OpStore %28 %6
%47 = OpLoad %4 %19
%49 = OpAccessChain %48 %33 %47
%50 = OpAtomicLoad %6 %49 %51 %52
OpStore %22 %50
OpStore %25 %34
OpBranch %53
%53 = OpLabel
OpLoopMerge %54 %56 None
OpBranch %55
%55 = OpLabel
%57 = OpLoad %7 %28
%58 = OpLogicalNot %7 %57
%57 = OpLoad %9 %25
%58 = OpLogicalNot %9 %57
OpSelectionMerge %59 None
OpBranchConditional %58 %59 %60
%60 = OpLabel
@@ -102,20 +102,20 @@ OpBranch %54
%59 = OpLabel
OpBranch %61
%61 = OpLabel
%63 = OpLoad %11 %25
%64 = OpBitcast %9 %63
%65 = OpFAdd %9 %64 %8
%66 = OpBitcast %11 %65
%67 = OpLoad %4 %22
%68 = OpLoad %11 %25
%70 = OpAccessChain %48 %35 %67
%71 = OpAtomicCompareExchange %11 %70 %51 %52 %52 %66 %68
%72 = OpIEqual %7 %71 %68
%69 = OpCompositeConstruct %14 %71 %72
%73 = OpCompositeExtract %11 %69 0
OpStore %25 %73
%74 = OpCompositeExtract %7 %69 1
OpStore %28 %74
%63 = OpLoad %6 %22
%64 = OpBitcast %10 %63
%65 = OpFAdd %10 %64 %35
%66 = OpBitcast %6 %65
%67 = OpLoad %4 %19
%68 = OpLoad %6 %22
%70 = OpAccessChain %48 %33 %67
%71 = OpAtomicCompareExchange %6 %70 %51 %52 %52 %66 %68
%72 = OpIEqual %9 %71 %68
%69 = OpCompositeConstruct %11 %71 %72
%73 = OpCompositeExtract %6 %69 0
OpStore %22 %73
%74 = OpCompositeExtract %9 %69 1
OpStore %25 %74
OpBranch %62
%62 = OpLabel
OpBranch %56
@@ -126,29 +126,29 @@ OpBranch %46
%46 = OpLabel
OpBranch %40
%40 = OpLabel
%75 = OpLoad %4 %22
%76 = OpIAdd %4 %75 %10
OpStore %22 %76
%75 = OpLoad %4 %19
%76 = OpIAdd %4 %75 %5
OpStore %19 %76
OpBranch %37
%38 = OpLabel
OpReturn
OpFunctionEnd
%84 = OpFunction %2 None %33
%84 = OpFunction %2 None %30
%83 = OpLabel
%77 = OpVariable %23 Function %78
%79 = OpVariable %23 Function %80
%81 = OpVariable %29 Function %82
%86 = OpAccessChain %85 %19 %5
%77 = OpVariable %20 Function %78
%79 = OpVariable %20 Function %80
%81 = OpVariable %26 Function %82
%86 = OpAccessChain %85 %16 %32
OpBranch %87
%87 = OpLabel
OpStore %77 %5
OpStore %77 %32
OpBranch %88
%88 = OpLabel
OpLoopMerge %89 %91 None
OpBranch %90
%90 = OpLabel
%92 = OpLoad %4 %77
%93 = OpULessThan %7 %92 %3
%93 = OpULessThan %9 %92 %3
OpSelectionMerge %94 None
OpBranchConditional %93 %94 %95
%95 = OpLabel
@@ -160,14 +160,14 @@ OpBranch %96
%100 = OpAccessChain %99 %86 %98
%101 = OpAtomicLoad %4 %100 %51 %52
OpStore %79 %101
OpStore %81 %6
OpStore %81 %34
OpBranch %102
%102 = OpLabel
OpLoopMerge %103 %105 None
OpBranch %104
%104 = OpLabel
%106 = OpLoad %7 %81
%107 = OpLogicalNot %7 %106
%106 = OpLoad %9 %81
%107 = OpLogicalNot %9 %106
OpSelectionMerge %108 None
OpBranchConditional %107 %108 %109
%109 = OpLabel
@@ -176,18 +176,18 @@ OpBranch %103
OpBranch %110
%110 = OpLabel
%112 = OpLoad %4 %79
%113 = OpBitcast %9 %112
%114 = OpFAdd %9 %113 %8
%113 = OpBitcast %10 %112
%114 = OpFAdd %10 %113 %35
%115 = OpBitcast %4 %114
%116 = OpLoad %4 %77
%117 = OpLoad %4 %79
%119 = OpAccessChain %99 %86 %116
%120 = OpAtomicCompareExchange %4 %119 %51 %52 %52 %115 %117
%121 = OpIEqual %7 %120 %117
%118 = OpCompositeConstruct %15 %120 %121
%121 = OpIEqual %9 %120 %117
%118 = OpCompositeConstruct %12 %120 %121
%122 = OpCompositeExtract %4 %118 0
OpStore %79 %122
%123 = OpCompositeExtract %7 %118 1
%123 = OpCompositeExtract %9 %118 1
OpStore %81 %123
OpBranch %111
%111 = OpLabel
@@ -200,7 +200,7 @@ OpBranch %97
OpBranch %91
%91 = OpLabel
%124 = OpLoad %4 %77
%125 = OpIAdd %4 %124 %10
%125 = OpIAdd %4 %124 %5
OpStore %77 %125
OpBranch %88
%89 = OpLabel

View File

@@ -6,235 +6,235 @@ OpCapability Shader
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %30 "cs_main" %27
OpExecutionMode %30 LocalSize 2 1 1
OpDecorate %8 ArrayStride 4
OpMemberDecorate %9 0 Offset 0
OpMemberDecorate %9 1 Offset 4
OpDecorate %11 DescriptorSet 0
OpDecorate %11 Binding 0
OpDecorate %12 Block
OpMemberDecorate %12 0 Offset 0
OpDecorate %14 DescriptorSet 0
OpDecorate %14 Binding 1
OpDecorate %15 Block
OpMemberDecorate %15 0 Offset 0
OpDecorate %17 DescriptorSet 0
OpDecorate %17 Binding 2
OpDecorate %18 Block
OpMemberDecorate %18 0 Offset 0
OpDecorate %27 BuiltIn LocalInvocationId
OpEntryPoint GLCompute %28 "cs_main" %25
OpExecutionMode %28 LocalSize 2 1 1
OpDecorate %6 ArrayStride 4
OpMemberDecorate %7 0 Offset 0
OpMemberDecorate %7 1 Offset 4
OpDecorate %9 DescriptorSet 0
OpDecorate %9 Binding 0
OpDecorate %10 Block
OpMemberDecorate %10 0 Offset 0
OpDecorate %12 DescriptorSet 0
OpDecorate %12 Binding 1
OpDecorate %13 Block
OpMemberDecorate %13 0 Offset 0
OpDecorate %15 DescriptorSet 0
OpDecorate %15 Binding 2
OpDecorate %16 Block
OpMemberDecorate %16 0 Offset 0
OpDecorate %25 BuiltIn LocalInvocationId
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 2
%6 = OpTypeInt 32 0
%5 = OpConstant %6 1
%7 = OpConstant %4 1
%8 = OpTypeArray %4 %3
%9 = OpTypeStruct %6 %8
%10 = OpTypeVector %6 3
%12 = OpTypeStruct %6
%13 = OpTypePointer StorageBuffer %12
%11 = OpVariable %13 StorageBuffer
%15 = OpTypeStruct %8
%16 = OpTypePointer StorageBuffer %15
%14 = OpVariable %16 StorageBuffer
%18 = OpTypeStruct %9
%19 = OpTypePointer StorageBuffer %18
%17 = OpVariable %19 StorageBuffer
%5 = OpTypeInt 32 0
%6 = OpTypeArray %4 %3
%7 = OpTypeStruct %5 %6
%8 = OpTypeVector %5 3
%10 = OpTypeStruct %5
%11 = OpTypePointer StorageBuffer %10
%9 = OpVariable %11 StorageBuffer
%13 = OpTypeStruct %6
%14 = OpTypePointer StorageBuffer %13
%12 = OpVariable %14 StorageBuffer
%16 = OpTypeStruct %7
%17 = OpTypePointer StorageBuffer %16
%15 = OpVariable %17 StorageBuffer
%19 = OpTypePointer Workgroup %5
%18 = OpVariable %19 Workgroup
%21 = OpTypePointer Workgroup %6
%20 = OpVariable %21 Workgroup
%23 = OpTypePointer Workgroup %8
%23 = OpTypePointer Workgroup %7
%22 = OpVariable %23 Workgroup
%25 = OpTypePointer Workgroup %9
%24 = OpVariable %25 Workgroup
%28 = OpTypePointer Input %10
%27 = OpVariable %28 Input
%31 = OpTypeFunction %2
%32 = OpTypePointer StorageBuffer %6
%33 = OpConstant %6 0
%35 = OpTypePointer StorageBuffer %8
%37 = OpTypePointer StorageBuffer %9
%40 = OpConstantNull %6
%41 = OpConstantNull %8
%42 = OpConstantNull %9
%43 = OpConstantNull %10
%26 = OpTypePointer Input %8
%25 = OpVariable %26 Input
%29 = OpTypeFunction %2
%30 = OpTypePointer StorageBuffer %5
%31 = OpConstant %5 0
%33 = OpTypePointer StorageBuffer %6
%35 = OpTypePointer StorageBuffer %7
%37 = OpConstant %5 1
%38 = OpConstant %4 1
%40 = OpConstantNull %5
%41 = OpConstantNull %6
%42 = OpConstantNull %7
%43 = OpConstantNull %8
%45 = OpTypeBool
%44 = OpTypeVector %45 3
%50 = OpConstant %6 2
%51 = OpConstant %6 264
%53 = OpConstant %6 64
%50 = OpConstant %5 2
%51 = OpConstant %5 264
%53 = OpConstant %5 64
%54 = OpTypePointer StorageBuffer %4
%58 = OpConstant %6 256
%58 = OpConstant %5 256
%59 = OpTypePointer Workgroup %4
%30 = OpFunction %2 None %31
%26 = OpLabel
%29 = OpLoad %10 %27
%34 = OpAccessChain %32 %11 %33
%36 = OpAccessChain %35 %14 %33
%38 = OpAccessChain %37 %17 %33
%28 = OpFunction %2 None %29
%24 = OpLabel
%27 = OpLoad %8 %25
%32 = OpAccessChain %30 %9 %31
%34 = OpAccessChain %33 %12 %31
%36 = OpAccessChain %35 %15 %31
OpBranch %39
%39 = OpLabel
%46 = OpIEqual %44 %29 %43
%46 = OpIEqual %44 %27 %43
%47 = OpAll %45 %46
OpSelectionMerge %48 None
OpBranchConditional %47 %49 %48
%49 = OpLabel
OpStore %20 %40
OpStore %22 %41
OpStore %24 %42
OpStore %18 %40
OpStore %20 %41
OpStore %22 %42
OpBranch %48
%48 = OpLabel
OpControlBarrier %50 %50 %51
OpBranch %52
%52 = OpLabel
OpAtomicStore %34 %7 %53 %5
%55 = OpAccessChain %54 %36 %5
OpAtomicStore %55 %7 %53 %7
%56 = OpAccessChain %32 %38 %33
OpAtomicStore %56 %7 %53 %5
%57 = OpAccessChain %54 %38 %5 %5
OpAtomicStore %57 %7 %53 %7
OpAtomicStore %20 %3 %58 %5
%60 = OpAccessChain %59 %22 %5
OpAtomicStore %60 %3 %58 %7
%61 = OpAccessChain %21 %24 %33
OpAtomicStore %61 %3 %58 %5
%62 = OpAccessChain %59 %24 %5 %5
OpAtomicStore %62 %3 %58 %7
OpAtomicStore %32 %38 %53 %37
%55 = OpAccessChain %54 %34 %37
OpAtomicStore %55 %38 %53 %38
%56 = OpAccessChain %30 %36 %31
OpAtomicStore %56 %38 %53 %37
%57 = OpAccessChain %54 %36 %37 %37
OpAtomicStore %57 %38 %53 %38
OpAtomicStore %18 %3 %58 %37
%60 = OpAccessChain %59 %20 %37
OpAtomicStore %60 %3 %58 %38
%61 = OpAccessChain %19 %22 %31
OpAtomicStore %61 %3 %58 %37
%62 = OpAccessChain %59 %22 %37 %37
OpAtomicStore %62 %3 %58 %38
OpControlBarrier %50 %50 %51
%63 = OpAtomicLoad %6 %34 %7 %53
%64 = OpAccessChain %54 %36 %5
%65 = OpAtomicLoad %4 %64 %7 %53
%66 = OpAccessChain %32 %38 %33
%67 = OpAtomicLoad %6 %66 %7 %53
%68 = OpAccessChain %54 %38 %5 %5
%69 = OpAtomicLoad %4 %68 %7 %53
%70 = OpAtomicLoad %6 %20 %3 %58
%71 = OpAccessChain %59 %22 %5
%63 = OpAtomicLoad %5 %32 %38 %53
%64 = OpAccessChain %54 %34 %37
%65 = OpAtomicLoad %4 %64 %38 %53
%66 = OpAccessChain %30 %36 %31
%67 = OpAtomicLoad %5 %66 %38 %53
%68 = OpAccessChain %54 %36 %37 %37
%69 = OpAtomicLoad %4 %68 %38 %53
%70 = OpAtomicLoad %5 %18 %3 %58
%71 = OpAccessChain %59 %20 %37
%72 = OpAtomicLoad %4 %71 %3 %58
%73 = OpAccessChain %21 %24 %33
%74 = OpAtomicLoad %6 %73 %3 %58
%75 = OpAccessChain %59 %24 %5 %5
%73 = OpAccessChain %19 %22 %31
%74 = OpAtomicLoad %5 %73 %3 %58
%75 = OpAccessChain %59 %22 %37 %37
%76 = OpAtomicLoad %4 %75 %3 %58
OpControlBarrier %50 %50 %51
%77 = OpAtomicIAdd %6 %34 %7 %53 %5
%79 = OpAccessChain %54 %36 %5
%78 = OpAtomicIAdd %4 %79 %7 %53 %7
%81 = OpAccessChain %32 %38 %33
%80 = OpAtomicIAdd %6 %81 %7 %53 %5
%83 = OpAccessChain %54 %38 %5 %5
%82 = OpAtomicIAdd %4 %83 %7 %53 %7
%84 = OpAtomicIAdd %6 %20 %3 %58 %5
%86 = OpAccessChain %59 %22 %5
%85 = OpAtomicIAdd %4 %86 %3 %58 %7
%88 = OpAccessChain %21 %24 %33
%87 = OpAtomicIAdd %6 %88 %3 %58 %5
%90 = OpAccessChain %59 %24 %5 %5
%89 = OpAtomicIAdd %4 %90 %3 %58 %7
%77 = OpAtomicIAdd %5 %32 %38 %53 %37
%79 = OpAccessChain %54 %34 %37
%78 = OpAtomicIAdd %4 %79 %38 %53 %38
%81 = OpAccessChain %30 %36 %31
%80 = OpAtomicIAdd %5 %81 %38 %53 %37
%83 = OpAccessChain %54 %36 %37 %37
%82 = OpAtomicIAdd %4 %83 %38 %53 %38
%84 = OpAtomicIAdd %5 %18 %3 %58 %37
%86 = OpAccessChain %59 %20 %37
%85 = OpAtomicIAdd %4 %86 %3 %58 %38
%88 = OpAccessChain %19 %22 %31
%87 = OpAtomicIAdd %5 %88 %3 %58 %37
%90 = OpAccessChain %59 %22 %37 %37
%89 = OpAtomicIAdd %4 %90 %3 %58 %38
OpControlBarrier %50 %50 %51
%91 = OpAtomicISub %6 %34 %7 %53 %5
%93 = OpAccessChain %54 %36 %5
%92 = OpAtomicISub %4 %93 %7 %53 %7
%95 = OpAccessChain %32 %38 %33
%94 = OpAtomicISub %6 %95 %7 %53 %5
%97 = OpAccessChain %54 %38 %5 %5
%96 = OpAtomicISub %4 %97 %7 %53 %7
%98 = OpAtomicISub %6 %20 %3 %58 %5
%100 = OpAccessChain %59 %22 %5
%99 = OpAtomicISub %4 %100 %3 %58 %7
%102 = OpAccessChain %21 %24 %33
%101 = OpAtomicISub %6 %102 %3 %58 %5
%104 = OpAccessChain %59 %24 %5 %5
%103 = OpAtomicISub %4 %104 %3 %58 %7
%91 = OpAtomicISub %5 %32 %38 %53 %37
%93 = OpAccessChain %54 %34 %37
%92 = OpAtomicISub %4 %93 %38 %53 %38
%95 = OpAccessChain %30 %36 %31
%94 = OpAtomicISub %5 %95 %38 %53 %37
%97 = OpAccessChain %54 %36 %37 %37
%96 = OpAtomicISub %4 %97 %38 %53 %38
%98 = OpAtomicISub %5 %18 %3 %58 %37
%100 = OpAccessChain %59 %20 %37
%99 = OpAtomicISub %4 %100 %3 %58 %38
%102 = OpAccessChain %19 %22 %31
%101 = OpAtomicISub %5 %102 %3 %58 %37
%104 = OpAccessChain %59 %22 %37 %37
%103 = OpAtomicISub %4 %104 %3 %58 %38
OpControlBarrier %50 %50 %51
%105 = OpAtomicUMax %6 %34 %7 %53 %5
%107 = OpAccessChain %54 %36 %5
%106 = OpAtomicSMax %4 %107 %7 %53 %7
%109 = OpAccessChain %32 %38 %33
%108 = OpAtomicUMax %6 %109 %7 %53 %5
%111 = OpAccessChain %54 %38 %5 %5
%110 = OpAtomicSMax %4 %111 %7 %53 %7
%112 = OpAtomicUMax %6 %20 %3 %58 %5
%114 = OpAccessChain %59 %22 %5
%113 = OpAtomicSMax %4 %114 %3 %58 %7
%116 = OpAccessChain %21 %24 %33
%115 = OpAtomicUMax %6 %116 %3 %58 %5
%118 = OpAccessChain %59 %24 %5 %5
%117 = OpAtomicSMax %4 %118 %3 %58 %7
%105 = OpAtomicUMax %5 %32 %38 %53 %37
%107 = OpAccessChain %54 %34 %37
%106 = OpAtomicSMax %4 %107 %38 %53 %38
%109 = OpAccessChain %30 %36 %31
%108 = OpAtomicUMax %5 %109 %38 %53 %37
%111 = OpAccessChain %54 %36 %37 %37
%110 = OpAtomicSMax %4 %111 %38 %53 %38
%112 = OpAtomicUMax %5 %18 %3 %58 %37
%114 = OpAccessChain %59 %20 %37
%113 = OpAtomicSMax %4 %114 %3 %58 %38
%116 = OpAccessChain %19 %22 %31
%115 = OpAtomicUMax %5 %116 %3 %58 %37
%118 = OpAccessChain %59 %22 %37 %37
%117 = OpAtomicSMax %4 %118 %3 %58 %38
OpControlBarrier %50 %50 %51
%119 = OpAtomicUMin %6 %34 %7 %53 %5
%121 = OpAccessChain %54 %36 %5
%120 = OpAtomicSMin %4 %121 %7 %53 %7
%123 = OpAccessChain %32 %38 %33
%122 = OpAtomicUMin %6 %123 %7 %53 %5
%125 = OpAccessChain %54 %38 %5 %5
%124 = OpAtomicSMin %4 %125 %7 %53 %7
%126 = OpAtomicUMin %6 %20 %3 %58 %5
%128 = OpAccessChain %59 %22 %5
%127 = OpAtomicSMin %4 %128 %3 %58 %7
%130 = OpAccessChain %21 %24 %33
%129 = OpAtomicUMin %6 %130 %3 %58 %5
%132 = OpAccessChain %59 %24 %5 %5
%131 = OpAtomicSMin %4 %132 %3 %58 %7
%119 = OpAtomicUMin %5 %32 %38 %53 %37
%121 = OpAccessChain %54 %34 %37
%120 = OpAtomicSMin %4 %121 %38 %53 %38
%123 = OpAccessChain %30 %36 %31
%122 = OpAtomicUMin %5 %123 %38 %53 %37
%125 = OpAccessChain %54 %36 %37 %37
%124 = OpAtomicSMin %4 %125 %38 %53 %38
%126 = OpAtomicUMin %5 %18 %3 %58 %37
%128 = OpAccessChain %59 %20 %37
%127 = OpAtomicSMin %4 %128 %3 %58 %38
%130 = OpAccessChain %19 %22 %31
%129 = OpAtomicUMin %5 %130 %3 %58 %37
%132 = OpAccessChain %59 %22 %37 %37
%131 = OpAtomicSMin %4 %132 %3 %58 %38
OpControlBarrier %50 %50 %51
%133 = OpAtomicAnd %6 %34 %7 %53 %5
%135 = OpAccessChain %54 %36 %5
%134 = OpAtomicAnd %4 %135 %7 %53 %7
%137 = OpAccessChain %32 %38 %33
%136 = OpAtomicAnd %6 %137 %7 %53 %5
%139 = OpAccessChain %54 %38 %5 %5
%138 = OpAtomicAnd %4 %139 %7 %53 %7
%140 = OpAtomicAnd %6 %20 %3 %58 %5
%142 = OpAccessChain %59 %22 %5
%141 = OpAtomicAnd %4 %142 %3 %58 %7
%144 = OpAccessChain %21 %24 %33
%143 = OpAtomicAnd %6 %144 %3 %58 %5
%146 = OpAccessChain %59 %24 %5 %5
%145 = OpAtomicAnd %4 %146 %3 %58 %7
%133 = OpAtomicAnd %5 %32 %38 %53 %37
%135 = OpAccessChain %54 %34 %37
%134 = OpAtomicAnd %4 %135 %38 %53 %38
%137 = OpAccessChain %30 %36 %31
%136 = OpAtomicAnd %5 %137 %38 %53 %37
%139 = OpAccessChain %54 %36 %37 %37
%138 = OpAtomicAnd %4 %139 %38 %53 %38
%140 = OpAtomicAnd %5 %18 %3 %58 %37
%142 = OpAccessChain %59 %20 %37
%141 = OpAtomicAnd %4 %142 %3 %58 %38
%144 = OpAccessChain %19 %22 %31
%143 = OpAtomicAnd %5 %144 %3 %58 %37
%146 = OpAccessChain %59 %22 %37 %37
%145 = OpAtomicAnd %4 %146 %3 %58 %38
OpControlBarrier %50 %50 %51
%147 = OpAtomicOr %6 %34 %7 %53 %5
%149 = OpAccessChain %54 %36 %5
%148 = OpAtomicOr %4 %149 %7 %53 %7
%151 = OpAccessChain %32 %38 %33
%150 = OpAtomicOr %6 %151 %7 %53 %5
%153 = OpAccessChain %54 %38 %5 %5
%152 = OpAtomicOr %4 %153 %7 %53 %7
%154 = OpAtomicOr %6 %20 %3 %58 %5
%156 = OpAccessChain %59 %22 %5
%155 = OpAtomicOr %4 %156 %3 %58 %7
%158 = OpAccessChain %21 %24 %33
%157 = OpAtomicOr %6 %158 %3 %58 %5
%160 = OpAccessChain %59 %24 %5 %5
%159 = OpAtomicOr %4 %160 %3 %58 %7
%147 = OpAtomicOr %5 %32 %38 %53 %37
%149 = OpAccessChain %54 %34 %37
%148 = OpAtomicOr %4 %149 %38 %53 %38
%151 = OpAccessChain %30 %36 %31
%150 = OpAtomicOr %5 %151 %38 %53 %37
%153 = OpAccessChain %54 %36 %37 %37
%152 = OpAtomicOr %4 %153 %38 %53 %38
%154 = OpAtomicOr %5 %18 %3 %58 %37
%156 = OpAccessChain %59 %20 %37
%155 = OpAtomicOr %4 %156 %3 %58 %38
%158 = OpAccessChain %19 %22 %31
%157 = OpAtomicOr %5 %158 %3 %58 %37
%160 = OpAccessChain %59 %22 %37 %37
%159 = OpAtomicOr %4 %160 %3 %58 %38
OpControlBarrier %50 %50 %51
%161 = OpAtomicXor %6 %34 %7 %53 %5
%163 = OpAccessChain %54 %36 %5
%162 = OpAtomicXor %4 %163 %7 %53 %7
%165 = OpAccessChain %32 %38 %33
%164 = OpAtomicXor %6 %165 %7 %53 %5
%167 = OpAccessChain %54 %38 %5 %5
%166 = OpAtomicXor %4 %167 %7 %53 %7
%168 = OpAtomicXor %6 %20 %3 %58 %5
%170 = OpAccessChain %59 %22 %5
%169 = OpAtomicXor %4 %170 %3 %58 %7
%172 = OpAccessChain %21 %24 %33
%171 = OpAtomicXor %6 %172 %3 %58 %5
%174 = OpAccessChain %59 %24 %5 %5
%173 = OpAtomicXor %4 %174 %3 %58 %7
%175 = OpAtomicExchange %6 %34 %7 %53 %5
%177 = OpAccessChain %54 %36 %5
%176 = OpAtomicExchange %4 %177 %7 %53 %7
%179 = OpAccessChain %32 %38 %33
%178 = OpAtomicExchange %6 %179 %7 %53 %5
%181 = OpAccessChain %54 %38 %5 %5
%180 = OpAtomicExchange %4 %181 %7 %53 %7
%182 = OpAtomicExchange %6 %20 %3 %58 %5
%184 = OpAccessChain %59 %22 %5
%183 = OpAtomicExchange %4 %184 %3 %58 %7
%186 = OpAccessChain %21 %24 %33
%185 = OpAtomicExchange %6 %186 %3 %58 %5
%188 = OpAccessChain %59 %24 %5 %5
%187 = OpAtomicExchange %4 %188 %3 %58 %7
%161 = OpAtomicXor %5 %32 %38 %53 %37
%163 = OpAccessChain %54 %34 %37
%162 = OpAtomicXor %4 %163 %38 %53 %38
%165 = OpAccessChain %30 %36 %31
%164 = OpAtomicXor %5 %165 %38 %53 %37
%167 = OpAccessChain %54 %36 %37 %37
%166 = OpAtomicXor %4 %167 %38 %53 %38
%168 = OpAtomicXor %5 %18 %3 %58 %37
%170 = OpAccessChain %59 %20 %37
%169 = OpAtomicXor %4 %170 %3 %58 %38
%172 = OpAccessChain %19 %22 %31
%171 = OpAtomicXor %5 %172 %3 %58 %37
%174 = OpAccessChain %59 %22 %37 %37
%173 = OpAtomicXor %4 %174 %3 %58 %38
%175 = OpAtomicExchange %5 %32 %38 %53 %37
%177 = OpAccessChain %54 %34 %37
%176 = OpAtomicExchange %4 %177 %38 %53 %38
%179 = OpAccessChain %30 %36 %31
%178 = OpAtomicExchange %5 %179 %38 %53 %37
%181 = OpAccessChain %54 %36 %37 %37
%180 = OpAtomicExchange %4 %181 %38 %53 %38
%182 = OpAtomicExchange %5 %18 %3 %58 %37
%184 = OpAccessChain %59 %20 %37
%183 = OpAtomicExchange %4 %184 %3 %58 %38
%186 = OpAccessChain %19 %22 %31
%185 = OpAtomicExchange %5 %186 %3 %58 %37
%188 = OpAccessChain %59 %22 %37 %37
%187 = OpAtomicExchange %4 %188 %3 %58 %38
OpReturn
OpFunctionEnd

View File

@@ -8,33 +8,33 @@ OpCapability ShaderNonUniform
OpExtension "SPV_EXT_descriptor_indexing"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %70 "main" %65 %68
OpExecutionMode %70 OriginUpperLeft
OpMemberDecorate %10 0 Offset 0
OpMemberDecorate %25 0 Offset 0
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 0
OpDecorate %34 DescriptorSet 0
OpDecorate %34 Binding 1
OpDecorate %36 DescriptorSet 0
OpDecorate %36 Binding 2
OpDecorate %38 DescriptorSet 0
OpDecorate %38 Binding 3
OpDecorate %40 DescriptorSet 0
OpDecorate %40 Binding 4
OpDecorate %42 DescriptorSet 0
OpDecorate %42 Binding 5
OpDecorate %44 DescriptorSet 0
OpDecorate %44 Binding 6
OpDecorate %46 DescriptorSet 0
OpDecorate %46 Binding 7
OpDecorate %48 DescriptorSet 0
OpDecorate %48 Binding 8
OpDecorate %49 Block
OpMemberDecorate %49 0 Offset 0
OpEntryPoint Fragment %67 "main" %62 %65
OpExecutionMode %67 OriginUpperLeft
OpMemberDecorate %6 0 Offset 0
OpMemberDecorate %22 0 Offset 0
OpDecorate %27 DescriptorSet 0
OpDecorate %27 Binding 0
OpDecorate %31 DescriptorSet 0
OpDecorate %31 Binding 1
OpDecorate %33 DescriptorSet 0
OpDecorate %33 Binding 2
OpDecorate %35 DescriptorSet 0
OpDecorate %35 Binding 3
OpDecorate %37 DescriptorSet 0
OpDecorate %37 Binding 4
OpDecorate %39 DescriptorSet 0
OpDecorate %39 Binding 5
OpDecorate %41 DescriptorSet 0
OpDecorate %41 Binding 6
OpDecorate %43 DescriptorSet 0
OpDecorate %43 Binding 7
OpDecorate %45 DescriptorSet 0
OpDecorate %45 Binding 8
OpDecorate %46 Block
OpMemberDecorate %46 0 Offset 0
OpDecorate %62 Location 0
OpDecorate %62 Flat
OpDecorate %65 Location 0
OpDecorate %65 Flat
OpDecorate %68 Location 0
OpDecorate %96 NonUniform
OpDecorate %120 NonUniform
OpDecorate %122 NonUniform
@@ -60,468 +60,468 @@ OpDecorate %423 NonUniform
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 5
%6 = OpTypeInt 32 0
%5 = OpConstant %6 0
%5 = OpTypeInt 32 0
%6 = OpTypeStruct %5
%8 = OpTypeFloat 32
%7 = OpConstant %8 0.0
%9 = OpConstant %4 0
%10 = OpTypeStruct %6
%11 = OpTypeImage %8 2D 0 0 0 1 Unknown
%12 = OpTypeRuntimeArray %11
%13 = OpTypeArray %11 %3
%14 = OpTypeImage %8 2D 0 1 0 1 Unknown
%15 = OpTypeArray %14 %3
%16 = OpTypeImage %8 2D 0 0 1 1 Unknown
%17 = OpTypeArray %16 %3
%18 = OpTypeImage %8 2D 1 0 0 1 Unknown
%19 = OpTypeArray %18 %3
%20 = OpTypeImage %8 2D 0 0 0 2 Rgba32f
%21 = OpTypeArray %20 %3
%22 = OpTypeSampler
%23 = OpTypeArray %22 %3
%24 = OpTypeArray %22 %3
%25 = OpTypeStruct %6
%26 = OpTypeVector %8 4
%27 = OpTypeVector %6 2
%28 = OpTypeVector %8 2
%29 = OpTypeVector %4 2
%33 = OpConstant %6 10
%32 = OpTypeArray %11 %33
%31 = OpTypePointer UniformConstant %32
%30 = OpVariable %31 UniformConstant
%35 = OpTypePointer UniformConstant %13
%34 = OpVariable %35 UniformConstant
%37 = OpTypePointer UniformConstant %15
%36 = OpVariable %37 UniformConstant
%39 = OpTypePointer UniformConstant %17
%38 = OpVariable %39 UniformConstant
%41 = OpTypePointer UniformConstant %19
%40 = OpVariable %41 UniformConstant
%43 = OpTypePointer UniformConstant %21
%42 = OpVariable %43 UniformConstant
%45 = OpTypePointer UniformConstant %23
%44 = OpVariable %45 UniformConstant
%47 = OpTypePointer UniformConstant %24
%46 = OpVariable %47 UniformConstant
%49 = OpTypeStruct %10
%50 = OpTypePointer Uniform %49
%48 = OpVariable %50 Uniform
%52 = OpTypePointer Function %6
%53 = OpConstantNull %6
%55 = OpTypePointer Function %27
%56 = OpConstantNull %27
%58 = OpTypePointer Function %8
%59 = OpConstantNull %8
%61 = OpTypePointer Function %26
%62 = OpConstantNull %26
%66 = OpTypePointer Input %6
%65 = OpVariable %66 Input
%69 = OpTypePointer Output %26
%68 = OpVariable %69 Output
%71 = OpTypeFunction %2
%72 = OpTypePointer Uniform %10
%75 = OpTypePointer Uniform %6
%83 = OpTypePointer UniformConstant %11
%104 = OpTypePointer UniformConstant %22
%107 = OpTypeSampledImage %11
%128 = OpTypePointer UniformConstant %18
%131 = OpTypePointer UniformConstant %22
%134 = OpTypeSampledImage %18
%7 = OpTypeImage %8 2D 0 0 0 1 Unknown
%9 = OpTypeRuntimeArray %7
%10 = OpTypeArray %7 %3
%11 = OpTypeImage %8 2D 0 1 0 1 Unknown
%12 = OpTypeArray %11 %3
%13 = OpTypeImage %8 2D 0 0 1 1 Unknown
%14 = OpTypeArray %13 %3
%15 = OpTypeImage %8 2D 1 0 0 1 Unknown
%16 = OpTypeArray %15 %3
%17 = OpTypeImage %8 2D 0 0 0 2 Rgba32f
%18 = OpTypeArray %17 %3
%19 = OpTypeSampler
%20 = OpTypeArray %19 %3
%21 = OpTypeArray %19 %3
%22 = OpTypeStruct %5
%23 = OpTypeVector %8 4
%24 = OpTypeVector %5 2
%25 = OpTypeVector %8 2
%26 = OpTypeVector %4 2
%30 = OpConstant %5 10
%29 = OpTypeArray %7 %30
%28 = OpTypePointer UniformConstant %29
%27 = OpVariable %28 UniformConstant
%32 = OpTypePointer UniformConstant %10
%31 = OpVariable %32 UniformConstant
%34 = OpTypePointer UniformConstant %12
%33 = OpVariable %34 UniformConstant
%36 = OpTypePointer UniformConstant %14
%35 = OpVariable %36 UniformConstant
%38 = OpTypePointer UniformConstant %16
%37 = OpVariable %38 UniformConstant
%40 = OpTypePointer UniformConstant %18
%39 = OpVariable %40 UniformConstant
%42 = OpTypePointer UniformConstant %20
%41 = OpVariable %42 UniformConstant
%44 = OpTypePointer UniformConstant %21
%43 = OpVariable %44 UniformConstant
%46 = OpTypeStruct %6
%47 = OpTypePointer Uniform %46
%45 = OpVariable %47 Uniform
%49 = OpTypePointer Function %5
%50 = OpConstantNull %5
%52 = OpTypePointer Function %24
%53 = OpConstantNull %24
%55 = OpTypePointer Function %8
%56 = OpConstantNull %8
%58 = OpTypePointer Function %23
%59 = OpConstantNull %23
%63 = OpTypePointer Input %5
%62 = OpVariable %63 Input
%66 = OpTypePointer Output %23
%65 = OpVariable %66 Output
%68 = OpTypeFunction %2
%69 = OpTypePointer Uniform %6
%70 = OpConstant %5 0
%72 = OpConstant %8 0.0
%73 = OpConstant %4 0
%75 = OpTypePointer Uniform %5
%83 = OpTypePointer UniformConstant %7
%104 = OpTypePointer UniformConstant %19
%107 = OpTypeSampledImage %7
%128 = OpTypePointer UniformConstant %15
%131 = OpTypePointer UniformConstant %19
%134 = OpTypeSampledImage %15
%157 = OpTypeBool
%158 = OpConstantNull %26
%158 = OpConstantNull %23
%164 = OpTypeVector %157 2
%174 = OpConstantNull %26
%189 = OpConstantNull %26
%202 = OpTypePointer UniformConstant %14
%174 = OpConstantNull %23
%189 = OpConstantNull %23
%202 = OpTypePointer UniformConstant %11
%205 = OpTypeVector %4 3
%243 = OpTypePointer UniformConstant %16
%406 = OpTypePointer UniformConstant %20
%70 = OpFunction %2 None %71
%63 = OpLabel
%54 = OpVariable %55 Function %56
%60 = OpVariable %61 Function %62
%243 = OpTypePointer UniformConstant %13
%406 = OpTypePointer UniformConstant %17
%67 = OpFunction %2 None %68
%60 = OpLabel
%51 = OpVariable %52 Function %53
%57 = OpVariable %58 Function %59
%67 = OpLoad %6 %65
%64 = OpCompositeConstruct %25 %67
%73 = OpAccessChain %72 %48 %5
%48 = OpVariable %49 Function %50
%54 = OpVariable %55 Function %56
%64 = OpLoad %5 %62
%61 = OpCompositeConstruct %22 %64
%71 = OpAccessChain %69 %45 %70
OpBranch %74
%74 = OpLabel
%76 = OpAccessChain %75 %73 %5
%77 = OpLoad %6 %76
%78 = OpCompositeExtract %6 %64 0
OpStore %51 %5
%79 = OpCompositeConstruct %27 %5 %5
OpStore %54 %79
OpStore %57 %7
%80 = OpCompositeConstruct %26 %7 %7 %7 %7
OpStore %60 %80
%81 = OpCompositeConstruct %28 %7 %7
%82 = OpCompositeConstruct %29 %9 %9
%84 = OpAccessChain %83 %30 %5
%85 = OpLoad %11 %84
%86 = OpImageQuerySizeLod %29 %85 %5
%87 = OpBitcast %27 %86
%88 = OpLoad %27 %54
%89 = OpIAdd %27 %88 %87
OpStore %54 %89
%90 = OpAccessChain %83 %30 %77
%91 = OpLoad %11 %90
%92 = OpImageQuerySizeLod %29 %91 %5
%93 = OpBitcast %27 %92
%94 = OpLoad %27 %54
%95 = OpIAdd %27 %94 %93
OpStore %54 %95
%96 = OpAccessChain %83 %30 %78
%97 = OpLoad %11 %96
%98 = OpImageQuerySizeLod %29 %97 %5
%99 = OpBitcast %27 %98
%100 = OpLoad %27 %54
%101 = OpIAdd %27 %100 %99
OpStore %54 %101
%102 = OpAccessChain %83 %34 %5
%103 = OpLoad %11 %102
%105 = OpAccessChain %104 %44 %5
%106 = OpLoad %22 %105
%76 = OpAccessChain %75 %71 %70
%77 = OpLoad %5 %76
%78 = OpCompositeExtract %5 %61 0
OpStore %48 %70
%79 = OpCompositeConstruct %24 %70 %70
OpStore %51 %79
OpStore %54 %72
%80 = OpCompositeConstruct %23 %72 %72 %72 %72
OpStore %57 %80
%81 = OpCompositeConstruct %25 %72 %72
%82 = OpCompositeConstruct %26 %73 %73
%84 = OpAccessChain %83 %27 %70
%85 = OpLoad %7 %84
%86 = OpImageQuerySizeLod %26 %85 %70
%87 = OpBitcast %24 %86
%88 = OpLoad %24 %51
%89 = OpIAdd %24 %88 %87
OpStore %51 %89
%90 = OpAccessChain %83 %27 %77
%91 = OpLoad %7 %90
%92 = OpImageQuerySizeLod %26 %91 %70
%93 = OpBitcast %24 %92
%94 = OpLoad %24 %51
%95 = OpIAdd %24 %94 %93
OpStore %51 %95
%96 = OpAccessChain %83 %27 %78
%97 = OpLoad %7 %96
%98 = OpImageQuerySizeLod %26 %97 %70
%99 = OpBitcast %24 %98
%100 = OpLoad %24 %51
%101 = OpIAdd %24 %100 %99
OpStore %51 %101
%102 = OpAccessChain %83 %31 %70
%103 = OpLoad %7 %102
%105 = OpAccessChain %104 %41 %70
%106 = OpLoad %19 %105
%108 = OpSampledImage %107 %103 %106
%109 = OpImageGather %26 %108 %81 %5
%110 = OpLoad %26 %60
%111 = OpFAdd %26 %110 %109
OpStore %60 %111
%112 = OpAccessChain %83 %34 %77
%113 = OpLoad %11 %112
%114 = OpAccessChain %104 %44 %77
%115 = OpLoad %22 %114
%109 = OpImageGather %23 %108 %81 %70
%110 = OpLoad %23 %57
%111 = OpFAdd %23 %110 %109
OpStore %57 %111
%112 = OpAccessChain %83 %31 %77
%113 = OpLoad %7 %112
%114 = OpAccessChain %104 %41 %77
%115 = OpLoad %19 %114
%116 = OpSampledImage %107 %113 %115
%117 = OpImageGather %26 %116 %81 %5
%118 = OpLoad %26 %60
%119 = OpFAdd %26 %118 %117
OpStore %60 %119
%120 = OpAccessChain %83 %34 %78
%121 = OpLoad %11 %120
%122 = OpAccessChain %104 %44 %78
%123 = OpLoad %22 %122
%117 = OpImageGather %23 %116 %81 %70
%118 = OpLoad %23 %57
%119 = OpFAdd %23 %118 %117
OpStore %57 %119
%120 = OpAccessChain %83 %31 %78
%121 = OpLoad %7 %120
%122 = OpAccessChain %104 %41 %78
%123 = OpLoad %19 %122
%124 = OpSampledImage %107 %121 %123
%125 = OpImageGather %26 %124 %81 %5
%126 = OpLoad %26 %60
%127 = OpFAdd %26 %126 %125
OpStore %60 %127
%129 = OpAccessChain %128 %40 %5
%130 = OpLoad %18 %129
%132 = OpAccessChain %131 %46 %5
%133 = OpLoad %22 %132
%125 = OpImageGather %23 %124 %81 %70
%126 = OpLoad %23 %57
%127 = OpFAdd %23 %126 %125
OpStore %57 %127
%129 = OpAccessChain %128 %37 %70
%130 = OpLoad %15 %129
%132 = OpAccessChain %131 %43 %70
%133 = OpLoad %19 %132
%135 = OpSampledImage %134 %130 %133
%136 = OpImageDrefGather %26 %135 %81 %7
%137 = OpLoad %26 %60
%138 = OpFAdd %26 %137 %136
OpStore %60 %138
%139 = OpAccessChain %128 %40 %77
%140 = OpLoad %18 %139
%141 = OpAccessChain %131 %46 %77
%142 = OpLoad %22 %141
%136 = OpImageDrefGather %23 %135 %81 %72
%137 = OpLoad %23 %57
%138 = OpFAdd %23 %137 %136
OpStore %57 %138
%139 = OpAccessChain %128 %37 %77
%140 = OpLoad %15 %139
%141 = OpAccessChain %131 %43 %77
%142 = OpLoad %19 %141
%143 = OpSampledImage %134 %140 %142
%144 = OpImageDrefGather %26 %143 %81 %7
%145 = OpLoad %26 %60
%146 = OpFAdd %26 %145 %144
OpStore %60 %146
%147 = OpAccessChain %128 %40 %78
%148 = OpLoad %18 %147
%149 = OpAccessChain %131 %46 %78
%150 = OpLoad %22 %149
%144 = OpImageDrefGather %23 %143 %81 %72
%145 = OpLoad %23 %57
%146 = OpFAdd %23 %145 %144
OpStore %57 %146
%147 = OpAccessChain %128 %37 %78
%148 = OpLoad %15 %147
%149 = OpAccessChain %131 %43 %78
%150 = OpLoad %19 %149
%151 = OpSampledImage %134 %148 %150
%152 = OpImageDrefGather %26 %151 %81 %7
%153 = OpLoad %26 %60
%154 = OpFAdd %26 %153 %152
OpStore %60 %154
%155 = OpAccessChain %83 %30 %5
%156 = OpLoad %11 %155
%152 = OpImageDrefGather %23 %151 %81 %72
%153 = OpLoad %23 %57
%154 = OpFAdd %23 %153 %152
OpStore %57 %154
%155 = OpAccessChain %83 %27 %70
%156 = OpLoad %7 %155
%159 = OpImageQueryLevels %4 %156
%160 = OpULessThan %157 %9 %159
%160 = OpULessThan %157 %73 %159
OpSelectionMerge %161 None
OpBranchConditional %160 %162 %161
%162 = OpLabel
%163 = OpImageQuerySizeLod %29 %156 %9
%163 = OpImageQuerySizeLod %26 %156 %73
%165 = OpULessThan %164 %82 %163
%166 = OpAll %157 %165
OpBranchConditional %166 %167 %161
%167 = OpLabel
%168 = OpImageFetch %26 %156 %82 Lod %9
%168 = OpImageFetch %23 %156 %82 Lod %73
OpBranch %161
%161 = OpLabel
%169 = OpPhi %26 %158 %74 %158 %162 %168 %167
%170 = OpLoad %26 %60
%171 = OpFAdd %26 %170 %169
OpStore %60 %171
%172 = OpAccessChain %83 %30 %77
%173 = OpLoad %11 %172
%169 = OpPhi %23 %158 %74 %158 %162 %168 %167
%170 = OpLoad %23 %57
%171 = OpFAdd %23 %170 %169
OpStore %57 %171
%172 = OpAccessChain %83 %27 %77
%173 = OpLoad %7 %172
%175 = OpImageQueryLevels %4 %173
%176 = OpULessThan %157 %9 %175
%176 = OpULessThan %157 %73 %175
OpSelectionMerge %177 None
OpBranchConditional %176 %178 %177
%178 = OpLabel
%179 = OpImageQuerySizeLod %29 %173 %9
%179 = OpImageQuerySizeLod %26 %173 %73
%180 = OpULessThan %164 %82 %179
%181 = OpAll %157 %180
OpBranchConditional %181 %182 %177
%182 = OpLabel
%183 = OpImageFetch %26 %173 %82 Lod %9
%183 = OpImageFetch %23 %173 %82 Lod %73
OpBranch %177
%177 = OpLabel
%184 = OpPhi %26 %174 %161 %174 %178 %183 %182
%185 = OpLoad %26 %60
%186 = OpFAdd %26 %185 %184
OpStore %60 %186
%187 = OpAccessChain %83 %30 %78
%188 = OpLoad %11 %187
%184 = OpPhi %23 %174 %161 %174 %178 %183 %182
%185 = OpLoad %23 %57
%186 = OpFAdd %23 %185 %184
OpStore %57 %186
%187 = OpAccessChain %83 %27 %78
%188 = OpLoad %7 %187
%190 = OpImageQueryLevels %4 %188
%191 = OpULessThan %157 %9 %190
%191 = OpULessThan %157 %73 %190
OpSelectionMerge %192 None
OpBranchConditional %191 %193 %192
%193 = OpLabel
%194 = OpImageQuerySizeLod %29 %188 %9
%194 = OpImageQuerySizeLod %26 %188 %73
%195 = OpULessThan %164 %82 %194
%196 = OpAll %157 %195
OpBranchConditional %196 %197 %192
%197 = OpLabel
%198 = OpImageFetch %26 %188 %82 Lod %9
%198 = OpImageFetch %23 %188 %82 Lod %73
OpBranch %192
%192 = OpLabel
%199 = OpPhi %26 %189 %177 %189 %193 %198 %197
%200 = OpLoad %26 %60
%201 = OpFAdd %26 %200 %199
OpStore %60 %201
%203 = OpAccessChain %202 %36 %5
%204 = OpLoad %14 %203
%206 = OpImageQuerySizeLod %205 %204 %5
%199 = OpPhi %23 %189 %177 %189 %193 %198 %197
%200 = OpLoad %23 %57
%201 = OpFAdd %23 %200 %199
OpStore %57 %201
%203 = OpAccessChain %202 %33 %70
%204 = OpLoad %11 %203
%206 = OpImageQuerySizeLod %205 %204 %70
%207 = OpCompositeExtract %4 %206 2
%208 = OpBitcast %6 %207
%209 = OpLoad %6 %51
%210 = OpIAdd %6 %209 %208
OpStore %51 %210
%211 = OpAccessChain %202 %36 %77
%212 = OpLoad %14 %211
%213 = OpImageQuerySizeLod %205 %212 %5
%208 = OpBitcast %5 %207
%209 = OpLoad %5 %48
%210 = OpIAdd %5 %209 %208
OpStore %48 %210
%211 = OpAccessChain %202 %33 %77
%212 = OpLoad %11 %211
%213 = OpImageQuerySizeLod %205 %212 %70
%214 = OpCompositeExtract %4 %213 2
%215 = OpBitcast %6 %214
%216 = OpLoad %6 %51
%217 = OpIAdd %6 %216 %215
OpStore %51 %217
%218 = OpAccessChain %202 %36 %78
%219 = OpLoad %14 %218
%220 = OpImageQuerySizeLod %205 %219 %5
%215 = OpBitcast %5 %214
%216 = OpLoad %5 %48
%217 = OpIAdd %5 %216 %215
OpStore %48 %217
%218 = OpAccessChain %202 %33 %78
%219 = OpLoad %11 %218
%220 = OpImageQuerySizeLod %205 %219 %70
%221 = OpCompositeExtract %4 %220 2
%222 = OpBitcast %6 %221
%223 = OpLoad %6 %51
%224 = OpIAdd %6 %223 %222
OpStore %51 %224
%225 = OpAccessChain %83 %34 %5
%226 = OpLoad %11 %225
%222 = OpBitcast %5 %221
%223 = OpLoad %5 %48
%224 = OpIAdd %5 %223 %222
OpStore %48 %224
%225 = OpAccessChain %83 %31 %70
%226 = OpLoad %7 %225
%227 = OpImageQueryLevels %4 %226
%228 = OpBitcast %6 %227
%229 = OpLoad %6 %51
%230 = OpIAdd %6 %229 %228
OpStore %51 %230
%231 = OpAccessChain %83 %34 %77
%232 = OpLoad %11 %231
%228 = OpBitcast %5 %227
%229 = OpLoad %5 %48
%230 = OpIAdd %5 %229 %228
OpStore %48 %230
%231 = OpAccessChain %83 %31 %77
%232 = OpLoad %7 %231
%233 = OpImageQueryLevels %4 %232
%234 = OpBitcast %6 %233
%235 = OpLoad %6 %51
%236 = OpIAdd %6 %235 %234
OpStore %51 %236
%237 = OpAccessChain %83 %34 %78
%238 = OpLoad %11 %237
%234 = OpBitcast %5 %233
%235 = OpLoad %5 %48
%236 = OpIAdd %5 %235 %234
OpStore %48 %236
%237 = OpAccessChain %83 %31 %78
%238 = OpLoad %7 %237
%239 = OpImageQueryLevels %4 %238
%240 = OpBitcast %6 %239
%241 = OpLoad %6 %51
%242 = OpIAdd %6 %241 %240
OpStore %51 %242
%244 = OpAccessChain %243 %38 %5
%245 = OpLoad %16 %244
%240 = OpBitcast %5 %239
%241 = OpLoad %5 %48
%242 = OpIAdd %5 %241 %240
OpStore %48 %242
%244 = OpAccessChain %243 %35 %70
%245 = OpLoad %13 %244
%246 = OpImageQuerySamples %4 %245
%247 = OpBitcast %6 %246
%248 = OpLoad %6 %51
%249 = OpIAdd %6 %248 %247
OpStore %51 %249
%250 = OpAccessChain %243 %38 %77
%251 = OpLoad %16 %250
%247 = OpBitcast %5 %246
%248 = OpLoad %5 %48
%249 = OpIAdd %5 %248 %247
OpStore %48 %249
%250 = OpAccessChain %243 %35 %77
%251 = OpLoad %13 %250
%252 = OpImageQuerySamples %4 %251
%253 = OpBitcast %6 %252
%254 = OpLoad %6 %51
%255 = OpIAdd %6 %254 %253
OpStore %51 %255
%256 = OpAccessChain %243 %38 %78
%257 = OpLoad %16 %256
%253 = OpBitcast %5 %252
%254 = OpLoad %5 %48
%255 = OpIAdd %5 %254 %253
OpStore %48 %255
%256 = OpAccessChain %243 %35 %78
%257 = OpLoad %13 %256
%258 = OpImageQuerySamples %4 %257
%259 = OpBitcast %6 %258
%260 = OpLoad %6 %51
%261 = OpIAdd %6 %260 %259
OpStore %51 %261
%262 = OpAccessChain %83 %34 %5
%263 = OpLoad %11 %262
%264 = OpAccessChain %104 %44 %5
%265 = OpLoad %22 %264
%259 = OpBitcast %5 %258
%260 = OpLoad %5 %48
%261 = OpIAdd %5 %260 %259
OpStore %48 %261
%262 = OpAccessChain %83 %31 %70
%263 = OpLoad %7 %262
%264 = OpAccessChain %104 %41 %70
%265 = OpLoad %19 %264
%266 = OpSampledImage %107 %263 %265
%267 = OpImageSampleImplicitLod %26 %266 %81
%268 = OpLoad %26 %60
%269 = OpFAdd %26 %268 %267
OpStore %60 %269
%270 = OpAccessChain %83 %34 %77
%271 = OpLoad %11 %270
%272 = OpAccessChain %104 %44 %77
%273 = OpLoad %22 %272
%267 = OpImageSampleImplicitLod %23 %266 %81
%268 = OpLoad %23 %57
%269 = OpFAdd %23 %268 %267
OpStore %57 %269
%270 = OpAccessChain %83 %31 %77
%271 = OpLoad %7 %270
%272 = OpAccessChain %104 %41 %77
%273 = OpLoad %19 %272
%274 = OpSampledImage %107 %271 %273
%275 = OpImageSampleImplicitLod %26 %274 %81
%276 = OpLoad %26 %60
%277 = OpFAdd %26 %276 %275
OpStore %60 %277
%278 = OpAccessChain %83 %34 %78
%279 = OpLoad %11 %278
%280 = OpAccessChain %104 %44 %78
%281 = OpLoad %22 %280
%275 = OpImageSampleImplicitLod %23 %274 %81
%276 = OpLoad %23 %57
%277 = OpFAdd %23 %276 %275
OpStore %57 %277
%278 = OpAccessChain %83 %31 %78
%279 = OpLoad %7 %278
%280 = OpAccessChain %104 %41 %78
%281 = OpLoad %19 %280
%282 = OpSampledImage %107 %279 %281
%283 = OpImageSampleImplicitLod %26 %282 %81
%284 = OpLoad %26 %60
%285 = OpFAdd %26 %284 %283
OpStore %60 %285
%286 = OpAccessChain %83 %34 %5
%287 = OpLoad %11 %286
%288 = OpAccessChain %104 %44 %5
%289 = OpLoad %22 %288
%283 = OpImageSampleImplicitLod %23 %282 %81
%284 = OpLoad %23 %57
%285 = OpFAdd %23 %284 %283
OpStore %57 %285
%286 = OpAccessChain %83 %31 %70
%287 = OpLoad %7 %286
%288 = OpAccessChain %104 %41 %70
%289 = OpLoad %19 %288
%290 = OpSampledImage %107 %287 %289
%291 = OpImageSampleImplicitLod %26 %290 %81 Bias %7
%292 = OpLoad %26 %60
%293 = OpFAdd %26 %292 %291
OpStore %60 %293
%294 = OpAccessChain %83 %34 %77
%295 = OpLoad %11 %294
%296 = OpAccessChain %104 %44 %77
%297 = OpLoad %22 %296
%291 = OpImageSampleImplicitLod %23 %290 %81 Bias %72
%292 = OpLoad %23 %57
%293 = OpFAdd %23 %292 %291
OpStore %57 %293
%294 = OpAccessChain %83 %31 %77
%295 = OpLoad %7 %294
%296 = OpAccessChain %104 %41 %77
%297 = OpLoad %19 %296
%298 = OpSampledImage %107 %295 %297
%299 = OpImageSampleImplicitLod %26 %298 %81 Bias %7
%300 = OpLoad %26 %60
%301 = OpFAdd %26 %300 %299
OpStore %60 %301
%302 = OpAccessChain %83 %34 %78
%303 = OpLoad %11 %302
%304 = OpAccessChain %104 %44 %78
%305 = OpLoad %22 %304
%299 = OpImageSampleImplicitLod %23 %298 %81 Bias %72
%300 = OpLoad %23 %57
%301 = OpFAdd %23 %300 %299
OpStore %57 %301
%302 = OpAccessChain %83 %31 %78
%303 = OpLoad %7 %302
%304 = OpAccessChain %104 %41 %78
%305 = OpLoad %19 %304
%306 = OpSampledImage %107 %303 %305
%307 = OpImageSampleImplicitLod %26 %306 %81 Bias %7
%308 = OpLoad %26 %60
%309 = OpFAdd %26 %308 %307
OpStore %60 %309
%310 = OpAccessChain %128 %40 %5
%311 = OpLoad %18 %310
%312 = OpAccessChain %131 %46 %5
%313 = OpLoad %22 %312
%307 = OpImageSampleImplicitLod %23 %306 %81 Bias %72
%308 = OpLoad %23 %57
%309 = OpFAdd %23 %308 %307
OpStore %57 %309
%310 = OpAccessChain %128 %37 %70
%311 = OpLoad %15 %310
%312 = OpAccessChain %131 %43 %70
%313 = OpLoad %19 %312
%314 = OpSampledImage %134 %311 %313
%315 = OpImageSampleDrefImplicitLod %8 %314 %81 %7
%316 = OpLoad %8 %57
%315 = OpImageSampleDrefImplicitLod %8 %314 %81 %72
%316 = OpLoad %8 %54
%317 = OpFAdd %8 %316 %315
OpStore %57 %317
%318 = OpAccessChain %128 %40 %77
%319 = OpLoad %18 %318
%320 = OpAccessChain %131 %46 %77
%321 = OpLoad %22 %320
OpStore %54 %317
%318 = OpAccessChain %128 %37 %77
%319 = OpLoad %15 %318
%320 = OpAccessChain %131 %43 %77
%321 = OpLoad %19 %320
%322 = OpSampledImage %134 %319 %321
%323 = OpImageSampleDrefImplicitLod %8 %322 %81 %7
%324 = OpLoad %8 %57
%323 = OpImageSampleDrefImplicitLod %8 %322 %81 %72
%324 = OpLoad %8 %54
%325 = OpFAdd %8 %324 %323
OpStore %57 %325
%326 = OpAccessChain %128 %40 %78
%327 = OpLoad %18 %326
%328 = OpAccessChain %131 %46 %78
%329 = OpLoad %22 %328
OpStore %54 %325
%326 = OpAccessChain %128 %37 %78
%327 = OpLoad %15 %326
%328 = OpAccessChain %131 %43 %78
%329 = OpLoad %19 %328
%330 = OpSampledImage %134 %327 %329
%331 = OpImageSampleDrefImplicitLod %8 %330 %81 %7
%332 = OpLoad %8 %57
%331 = OpImageSampleDrefImplicitLod %8 %330 %81 %72
%332 = OpLoad %8 %54
%333 = OpFAdd %8 %332 %331
OpStore %57 %333
%334 = OpAccessChain %128 %40 %5
%335 = OpLoad %18 %334
%336 = OpAccessChain %131 %46 %5
%337 = OpLoad %22 %336
OpStore %54 %333
%334 = OpAccessChain %128 %37 %70
%335 = OpLoad %15 %334
%336 = OpAccessChain %131 %43 %70
%337 = OpLoad %19 %336
%338 = OpSampledImage %134 %335 %337
%339 = OpImageSampleDrefExplicitLod %8 %338 %81 %7 Lod %7
%340 = OpLoad %8 %57
%339 = OpImageSampleDrefExplicitLod %8 %338 %81 %72 Lod %72
%340 = OpLoad %8 %54
%341 = OpFAdd %8 %340 %339
OpStore %57 %341
%342 = OpAccessChain %128 %40 %77
%343 = OpLoad %18 %342
%344 = OpAccessChain %131 %46 %77
%345 = OpLoad %22 %344
OpStore %54 %341
%342 = OpAccessChain %128 %37 %77
%343 = OpLoad %15 %342
%344 = OpAccessChain %131 %43 %77
%345 = OpLoad %19 %344
%346 = OpSampledImage %134 %343 %345
%347 = OpImageSampleDrefExplicitLod %8 %346 %81 %7 Lod %7
%348 = OpLoad %8 %57
%347 = OpImageSampleDrefExplicitLod %8 %346 %81 %72 Lod %72
%348 = OpLoad %8 %54
%349 = OpFAdd %8 %348 %347
OpStore %57 %349
%350 = OpAccessChain %128 %40 %78
%351 = OpLoad %18 %350
%352 = OpAccessChain %131 %46 %78
%353 = OpLoad %22 %352
OpStore %54 %349
%350 = OpAccessChain %128 %37 %78
%351 = OpLoad %15 %350
%352 = OpAccessChain %131 %43 %78
%353 = OpLoad %19 %352
%354 = OpSampledImage %134 %351 %353
%355 = OpImageSampleDrefExplicitLod %8 %354 %81 %7 Lod %7
%356 = OpLoad %8 %57
%355 = OpImageSampleDrefExplicitLod %8 %354 %81 %72 Lod %72
%356 = OpLoad %8 %54
%357 = OpFAdd %8 %356 %355
OpStore %57 %357
%358 = OpAccessChain %83 %34 %5
%359 = OpLoad %11 %358
%360 = OpAccessChain %104 %44 %5
%361 = OpLoad %22 %360
OpStore %54 %357
%358 = OpAccessChain %83 %31 %70
%359 = OpLoad %7 %358
%360 = OpAccessChain %104 %41 %70
%361 = OpLoad %19 %360
%362 = OpSampledImage %107 %359 %361
%363 = OpImageSampleExplicitLod %26 %362 %81 Grad %81 %81
%364 = OpLoad %26 %60
%365 = OpFAdd %26 %364 %363
OpStore %60 %365
%366 = OpAccessChain %83 %34 %77
%367 = OpLoad %11 %366
%368 = OpAccessChain %104 %44 %77
%369 = OpLoad %22 %368
%363 = OpImageSampleExplicitLod %23 %362 %81 Grad %81 %81
%364 = OpLoad %23 %57
%365 = OpFAdd %23 %364 %363
OpStore %57 %365
%366 = OpAccessChain %83 %31 %77
%367 = OpLoad %7 %366
%368 = OpAccessChain %104 %41 %77
%369 = OpLoad %19 %368
%370 = OpSampledImage %107 %367 %369
%371 = OpImageSampleExplicitLod %26 %370 %81 Grad %81 %81
%372 = OpLoad %26 %60
%373 = OpFAdd %26 %372 %371
OpStore %60 %373
%374 = OpAccessChain %83 %34 %78
%375 = OpLoad %11 %374
%376 = OpAccessChain %104 %44 %78
%377 = OpLoad %22 %376
%371 = OpImageSampleExplicitLod %23 %370 %81 Grad %81 %81
%372 = OpLoad %23 %57
%373 = OpFAdd %23 %372 %371
OpStore %57 %373
%374 = OpAccessChain %83 %31 %78
%375 = OpLoad %7 %374
%376 = OpAccessChain %104 %41 %78
%377 = OpLoad %19 %376
%378 = OpSampledImage %107 %375 %377
%379 = OpImageSampleExplicitLod %26 %378 %81 Grad %81 %81
%380 = OpLoad %26 %60
%381 = OpFAdd %26 %380 %379
OpStore %60 %381
%382 = OpAccessChain %83 %34 %5
%383 = OpLoad %11 %382
%384 = OpAccessChain %104 %44 %5
%385 = OpLoad %22 %384
%379 = OpImageSampleExplicitLod %23 %378 %81 Grad %81 %81
%380 = OpLoad %23 %57
%381 = OpFAdd %23 %380 %379
OpStore %57 %381
%382 = OpAccessChain %83 %31 %70
%383 = OpLoad %7 %382
%384 = OpAccessChain %104 %41 %70
%385 = OpLoad %19 %384
%386 = OpSampledImage %107 %383 %385
%387 = OpImageSampleExplicitLod %26 %386 %81 Lod %7
%388 = OpLoad %26 %60
%389 = OpFAdd %26 %388 %387
OpStore %60 %389
%390 = OpAccessChain %83 %34 %77
%391 = OpLoad %11 %390
%392 = OpAccessChain %104 %44 %77
%393 = OpLoad %22 %392
%387 = OpImageSampleExplicitLod %23 %386 %81 Lod %72
%388 = OpLoad %23 %57
%389 = OpFAdd %23 %388 %387
OpStore %57 %389
%390 = OpAccessChain %83 %31 %77
%391 = OpLoad %7 %390
%392 = OpAccessChain %104 %41 %77
%393 = OpLoad %19 %392
%394 = OpSampledImage %107 %391 %393
%395 = OpImageSampleExplicitLod %26 %394 %81 Lod %7
%396 = OpLoad %26 %60
%397 = OpFAdd %26 %396 %395
OpStore %60 %397
%398 = OpAccessChain %83 %34 %78
%399 = OpLoad %11 %398
%400 = OpAccessChain %104 %44 %78
%401 = OpLoad %22 %400
%395 = OpImageSampleExplicitLod %23 %394 %81 Lod %72
%396 = OpLoad %23 %57
%397 = OpFAdd %23 %396 %395
OpStore %57 %397
%398 = OpAccessChain %83 %31 %78
%399 = OpLoad %7 %398
%400 = OpAccessChain %104 %41 %78
%401 = OpLoad %19 %400
%402 = OpSampledImage %107 %399 %401
%403 = OpImageSampleExplicitLod %26 %402 %81 Lod %7
%404 = OpLoad %26 %60
%405 = OpFAdd %26 %404 %403
OpStore %60 %405
%407 = OpAccessChain %406 %42 %5
%408 = OpLoad %20 %407
%409 = OpLoad %26 %60
%410 = OpImageQuerySize %29 %408
%403 = OpImageSampleExplicitLod %23 %402 %81 Lod %72
%404 = OpLoad %23 %57
%405 = OpFAdd %23 %404 %403
OpStore %57 %405
%407 = OpAccessChain %406 %39 %70
%408 = OpLoad %17 %407
%409 = OpLoad %23 %57
%410 = OpImageQuerySize %26 %408
%411 = OpULessThan %164 %82 %410
%412 = OpAll %157 %411
OpSelectionMerge %413 None
@@ -530,10 +530,10 @@ OpBranchConditional %412 %414 %413
OpImageWrite %408 %82 %409
OpBranch %413
%413 = OpLabel
%415 = OpAccessChain %406 %42 %77
%416 = OpLoad %20 %415
%417 = OpLoad %26 %60
%418 = OpImageQuerySize %29 %416
%415 = OpAccessChain %406 %39 %77
%416 = OpLoad %17 %415
%417 = OpLoad %23 %57
%418 = OpImageQuerySize %26 %416
%419 = OpULessThan %164 %82 %418
%420 = OpAll %157 %419
OpSelectionMerge %421 None
@@ -542,10 +542,10 @@ OpBranchConditional %420 %422 %421
OpImageWrite %416 %82 %417
OpBranch %421
%421 = OpLabel
%423 = OpAccessChain %406 %42 %78
%424 = OpLoad %20 %423
%425 = OpLoad %26 %60
%426 = OpImageQuerySize %29 %424
%423 = OpAccessChain %406 %39 %78
%424 = OpLoad %17 %423
%425 = OpLoad %23 %57
%426 = OpImageQuerySize %26 %424
%427 = OpULessThan %164 %82 %426
%428 = OpAll %157 %427
OpSelectionMerge %429 None
@@ -554,21 +554,21 @@ OpBranchConditional %428 %430 %429
OpImageWrite %424 %82 %425
OpBranch %429
%429 = OpLabel
%431 = OpLoad %27 %54
%432 = OpLoad %6 %51
%433 = OpCompositeConstruct %27 %432 %432
%434 = OpIAdd %27 %431 %433
%435 = OpConvertUToF %28 %434
%436 = OpLoad %26 %60
%431 = OpLoad %24 %51
%432 = OpLoad %5 %48
%433 = OpCompositeConstruct %24 %432 %432
%434 = OpIAdd %24 %431 %433
%435 = OpConvertUToF %25 %434
%436 = OpLoad %23 %57
%437 = OpCompositeExtract %8 %435 0
%438 = OpCompositeExtract %8 %435 1
%439 = OpCompositeExtract %8 %435 0
%440 = OpCompositeExtract %8 %435 1
%441 = OpCompositeConstruct %26 %437 %438 %439 %440
%442 = OpFAdd %26 %436 %441
%443 = OpLoad %8 %57
%444 = OpCompositeConstruct %26 %443 %443 %443 %443
%445 = OpFAdd %26 %442 %444
OpStore %68 %445
%441 = OpCompositeConstruct %23 %437 %438 %439 %440
%442 = OpFAdd %23 %436 %441
%443 = OpLoad %8 %54
%444 = OpCompositeConstruct %23 %443 %443 %443 %443
%445 = OpFAdd %23 %442 %444
OpStore %65 %445
OpReturn
OpFunctionEnd

View File

@@ -8,98 +8,98 @@ OpExtension "SPV_KHR_storage_buffer_storage_class"
OpExtension "SPV_EXT_descriptor_indexing"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %29 "main" %24 %27
OpExecutionMode %29 OriginUpperLeft
OpMemberDecorate %8 0 Offset 0
OpEntryPoint Fragment %27 "main" %22 %25
OpExecutionMode %27 OriginUpperLeft
OpMemberDecorate %6 0 Offset 0
OpMemberDecorate %7 0 Offset 0
OpMemberDecorate %9 0 Offset 0
OpMemberDecorate %11 0 Offset 0
OpDecorate %12 NonWritable
OpDecorate %12 DescriptorSet 0
OpDecorate %12 Binding 0
OpDecorate %9 Block
OpDecorate %16 DescriptorSet 0
OpDecorate %16 Binding 10
OpDecorate %17 Block
OpMemberDecorate %17 0 Offset 0
OpDecorate %24 Location 0
OpDecorate %24 Flat
OpDecorate %27 Location 0
OpDecorate %10 NonWritable
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %7 Block
OpDecorate %14 DescriptorSet 0
OpDecorate %14 Binding 10
OpDecorate %15 Block
OpMemberDecorate %15 0 Offset 0
OpDecorate %22 Location 0
OpDecorate %22 Flat
OpDecorate %25 Location 0
OpDecorate %57 NonUniform
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 1
%6 = OpTypeInt 32 0
%5 = OpConstant %6 0
%7 = OpConstant %4 0
%8 = OpTypeStruct %6
%9 = OpTypeStruct %6
%10 = OpTypeArray %9 %3
%11 = OpTypeStruct %6
%15 = OpConstant %6 10
%14 = OpTypeArray %9 %15
%13 = OpTypePointer StorageBuffer %14
%12 = OpVariable %13 StorageBuffer
%17 = OpTypeStruct %8
%18 = OpTypePointer Uniform %17
%16 = OpVariable %18 Uniform
%20 = OpTypePointer Function %6
%21 = OpConstantNull %6
%25 = OpTypePointer Input %6
%24 = OpVariable %25 Input
%28 = OpTypePointer Output %6
%27 = OpVariable %28 Output
%30 = OpTypeFunction %2
%31 = OpTypePointer Uniform %8
%33 = OpTypePointer StorageBuffer %10
%35 = OpTypePointer Uniform %6
%39 = OpTypePointer StorageBuffer %9
%40 = OpTypePointer StorageBuffer %6
%45 = OpConstant %6 1
%5 = OpTypeInt 32 0
%6 = OpTypeStruct %5
%7 = OpTypeStruct %5
%8 = OpTypeArray %7 %3
%9 = OpTypeStruct %5
%13 = OpConstant %5 10
%12 = OpTypeArray %7 %13
%11 = OpTypePointer StorageBuffer %12
%10 = OpVariable %11 StorageBuffer
%15 = OpTypeStruct %6
%16 = OpTypePointer Uniform %15
%14 = OpVariable %16 Uniform
%18 = OpTypePointer Function %5
%19 = OpConstantNull %5
%23 = OpTypePointer Input %5
%22 = OpVariable %23 Input
%26 = OpTypePointer Output %5
%25 = OpVariable %26 Output
%28 = OpTypeFunction %2
%29 = OpTypePointer Uniform %6
%30 = OpConstant %5 0
%32 = OpTypePointer StorageBuffer %8
%33 = OpConstant %4 0
%35 = OpTypePointer Uniform %5
%39 = OpTypePointer StorageBuffer %7
%40 = OpTypePointer StorageBuffer %5
%45 = OpConstant %5 1
%47 = OpTypeBool
%49 = OpConstantNull %6
%58 = OpConstantNull %6
%29 = OpFunction %2 None %30
%22 = OpLabel
%19 = OpVariable %20 Function %21
%26 = OpLoad %6 %24
%23 = OpCompositeConstruct %11 %26
%32 = OpAccessChain %31 %16 %5
%49 = OpConstantNull %5
%58 = OpConstantNull %5
%27 = OpFunction %2 None %28
%20 = OpLabel
%17 = OpVariable %18 Function %19
%24 = OpLoad %5 %22
%21 = OpCompositeConstruct %9 %24
%31 = OpAccessChain %29 %14 %30
OpBranch %34
%34 = OpLabel
%36 = OpAccessChain %35 %32 %5
%37 = OpLoad %6 %36
%38 = OpCompositeExtract %6 %23 0
OpStore %19 %5
%41 = OpAccessChain %40 %12 %5 %5
%42 = OpLoad %6 %41
%43 = OpLoad %6 %19
%44 = OpIAdd %6 %43 %42
OpStore %19 %44
%36 = OpAccessChain %35 %31 %30
%37 = OpLoad %5 %36
%38 = OpCompositeExtract %5 %21 0
OpStore %17 %30
%41 = OpAccessChain %40 %10 %30 %30
%42 = OpLoad %5 %41
%43 = OpLoad %5 %17
%44 = OpIAdd %5 %43 %42
OpStore %17 %44
%46 = OpULessThan %47 %37 %45
OpSelectionMerge %50 None
OpBranchConditional %46 %51 %50
%51 = OpLabel
%48 = OpAccessChain %40 %12 %37 %5
%52 = OpLoad %6 %48
%48 = OpAccessChain %40 %10 %37 %30
%52 = OpLoad %5 %48
OpBranch %50
%50 = OpLabel
%53 = OpPhi %6 %49 %34 %52 %51
%54 = OpLoad %6 %19
%55 = OpIAdd %6 %54 %53
OpStore %19 %55
%53 = OpPhi %5 %49 %34 %52 %51
%54 = OpLoad %5 %17
%55 = OpIAdd %5 %54 %53
OpStore %17 %55
%56 = OpULessThan %47 %38 %45
OpSelectionMerge %59 None
OpBranchConditional %56 %60 %59
%60 = OpLabel
%57 = OpAccessChain %40 %12 %38 %5
%61 = OpLoad %6 %57
%57 = OpAccessChain %40 %10 %38 %30
%61 = OpLoad %5 %57
OpBranch %59
%59 = OpLabel
%62 = OpPhi %6 %58 %50 %61 %60
%63 = OpLoad %6 %19
%64 = OpIAdd %6 %63 %62
OpStore %19 %64
%65 = OpLoad %6 %19
OpStore %27 %65
%62 = OpPhi %5 %58 %50 %61 %60
%63 = OpLoad %5 %17
%64 = OpIAdd %5 %63 %62
OpStore %17 %64
%65 = OpLoad %5 %17
OpStore %25 %65
OpReturn
OpFunctionEnd

View File

@@ -5,100 +5,100 @@
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %46 "main"
OpExecutionMode %46 LocalSize 1 1 1
OpEntryPoint GLCompute %43 "main"
OpExecutionMode %43 LocalSize 1 1 1
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 0
%6 = OpTypeInt 32 0
%5 = OpConstant %6 0
%8 = OpTypeFloat 32
%7 = OpConstant %8 0.0
%9 = OpTypeVector %4 2
%10 = OpTypeVector %4 3
%11 = OpTypeVector %4 4
%12 = OpTypeVector %6 2
%13 = OpTypeVector %6 3
%14 = OpTypeVector %6 4
%15 = OpTypeVector %8 2
%16 = OpTypeVector %8 3
%17 = OpTypeVector %8 4
%19 = OpTypePointer Function %9
%20 = OpConstantNull %9
%22 = OpTypePointer Function %10
%23 = OpConstantNull %10
%25 = OpTypePointer Function %11
%26 = OpConstantNull %11
%28 = OpTypePointer Function %12
%29 = OpConstantNull %12
%31 = OpTypePointer Function %13
%32 = OpConstantNull %13
%34 = OpTypePointer Function %14
%35 = OpConstantNull %14
%37 = OpTypePointer Function %15
%38 = OpConstantNull %15
%40 = OpTypePointer Function %16
%41 = OpConstantNull %16
%43 = OpTypePointer Function %17
%44 = OpConstantNull %17
%47 = OpTypeFunction %2
%46 = OpFunction %2 None %47
%45 = OpLabel
%3 = OpTypeVector %4 2
%5 = OpTypeVector %4 3
%6 = OpTypeVector %4 4
%8 = OpTypeInt 32 0
%7 = OpTypeVector %8 2
%9 = OpTypeVector %8 3
%10 = OpTypeVector %8 4
%12 = OpTypeFloat 32
%11 = OpTypeVector %12 2
%13 = OpTypeVector %12 3
%14 = OpTypeVector %12 4
%16 = OpTypePointer Function %3
%17 = OpConstantNull %3
%19 = OpTypePointer Function %5
%20 = OpConstantNull %5
%22 = OpTypePointer Function %6
%23 = OpConstantNull %6
%25 = OpTypePointer Function %7
%26 = OpConstantNull %7
%28 = OpTypePointer Function %9
%29 = OpConstantNull %9
%31 = OpTypePointer Function %10
%32 = OpConstantNull %10
%34 = OpTypePointer Function %11
%35 = OpConstantNull %11
%37 = OpTypePointer Function %13
%38 = OpConstantNull %13
%40 = OpTypePointer Function %14
%41 = OpConstantNull %14
%44 = OpTypeFunction %2
%45 = OpConstant %4 0
%46 = OpConstant %8 0
%47 = OpConstant %12 0.0
%43 = OpFunction %2 None %44
%42 = OpLabel
%33 = OpVariable %34 Function %35
%24 = OpVariable %25 Function %26
%15 = OpVariable %16 Function %17
%36 = OpVariable %37 Function %38
%27 = OpVariable %28 Function %29
%18 = OpVariable %19 Function %20
%39 = OpVariable %40 Function %41
%30 = OpVariable %31 Function %32
%21 = OpVariable %22 Function %23
%42 = OpVariable %43 Function %44
%33 = OpVariable %34 Function %35
%24 = OpVariable %25 Function %26
OpBranch %48
%48 = OpLabel
%49 = OpCompositeConstruct %9 %3 %3
OpStore %18 %49
%50 = OpCompositeConstruct %10 %3 %3 %3
OpStore %21 %50
%51 = OpCompositeConstruct %11 %3 %3 %3 %3
OpStore %24 %51
%52 = OpCompositeConstruct %12 %5 %5
OpStore %27 %52
%53 = OpCompositeConstruct %13 %5 %5 %5
OpStore %30 %53
%54 = OpCompositeConstruct %14 %5 %5 %5 %5
OpStore %33 %54
%55 = OpCompositeConstruct %15 %7 %7
OpStore %36 %55
%56 = OpCompositeConstruct %16 %7 %7 %7
OpStore %39 %56
%57 = OpCompositeConstruct %17 %7 %7 %7 %7
OpStore %42 %57
%58 = OpLoad %9 %18
%59 = OpBitcast %12 %58
OpStore %27 %59
%60 = OpLoad %10 %21
%61 = OpBitcast %13 %60
OpStore %30 %61
%62 = OpLoad %11 %24
%63 = OpBitcast %14 %62
OpStore %33 %63
%64 = OpLoad %12 %27
%65 = OpBitcast %9 %64
OpStore %18 %65
%66 = OpLoad %13 %30
%67 = OpBitcast %10 %66
OpStore %21 %67
%68 = OpLoad %14 %33
%69 = OpBitcast %11 %68
OpStore %24 %69
%70 = OpLoad %9 %18
%71 = OpBitcast %15 %70
OpStore %36 %71
%72 = OpLoad %10 %21
%73 = OpBitcast %16 %72
OpStore %39 %73
%74 = OpLoad %11 %24
%75 = OpBitcast %17 %74
OpStore %42 %75
%49 = OpCompositeConstruct %3 %45 %45
OpStore %15 %49
%50 = OpCompositeConstruct %5 %45 %45 %45
OpStore %18 %50
%51 = OpCompositeConstruct %6 %45 %45 %45 %45
OpStore %21 %51
%52 = OpCompositeConstruct %7 %46 %46
OpStore %24 %52
%53 = OpCompositeConstruct %9 %46 %46 %46
OpStore %27 %53
%54 = OpCompositeConstruct %10 %46 %46 %46 %46
OpStore %30 %54
%55 = OpCompositeConstruct %11 %47 %47
OpStore %33 %55
%56 = OpCompositeConstruct %13 %47 %47 %47
OpStore %36 %56
%57 = OpCompositeConstruct %14 %47 %47 %47 %47
OpStore %39 %57
%58 = OpLoad %3 %15
%59 = OpBitcast %7 %58
OpStore %24 %59
%60 = OpLoad %5 %18
%61 = OpBitcast %9 %60
OpStore %27 %61
%62 = OpLoad %6 %21
%63 = OpBitcast %10 %62
OpStore %30 %63
%64 = OpLoad %7 %24
%65 = OpBitcast %3 %64
OpStore %15 %65
%66 = OpLoad %9 %27
%67 = OpBitcast %5 %66
OpStore %18 %67
%68 = OpLoad %10 %30
%69 = OpBitcast %6 %68
OpStore %21 %69
%70 = OpLoad %3 %15
%71 = OpBitcast %11 %70
OpStore %33 %71
%72 = OpLoad %5 %18
%73 = OpBitcast %13 %72
OpStore %36 %73
%74 = OpLoad %6 %21
%75 = OpBitcast %14 %74
OpStore %39 %75
OpReturn
OpFunctionEnd

View File

@@ -5,229 +5,229 @@
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %50 "main"
OpExecutionMode %50 LocalSize 1 1 1
OpEntryPoint GLCompute %45 "main"
OpExecutionMode %45 LocalSize 1 1 1
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 0
%6 = OpTypeInt 32 0
%5 = OpConstant %6 0
%8 = OpTypeFloat 32
%7 = OpConstant %8 0.0
%9 = OpConstant %6 5
%10 = OpConstant %6 10
%11 = OpTypeVector %4 2
%12 = OpTypeVector %4 3
%13 = OpTypeVector %4 4
%14 = OpTypeVector %6 2
%15 = OpTypeVector %6 3
%16 = OpTypeVector %6 4
%17 = OpTypeVector %8 2
%18 = OpTypeVector %8 4
%20 = OpTypePointer Function %4
%21 = OpConstantNull %4
%23 = OpTypePointer Function %11
%24 = OpConstantNull %11
%26 = OpTypePointer Function %12
%27 = OpConstantNull %12
%29 = OpTypePointer Function %13
%30 = OpConstantNull %13
%32 = OpTypePointer Function %6
%33 = OpConstantNull %6
%35 = OpTypePointer Function %14
%36 = OpConstantNull %14
%38 = OpTypePointer Function %15
%39 = OpConstantNull %15
%41 = OpTypePointer Function %16
%42 = OpConstantNull %16
%44 = OpTypePointer Function %17
%45 = OpConstantNull %17
%47 = OpTypePointer Function %18
%48 = OpConstantNull %18
%51 = OpTypeFunction %2
%50 = OpFunction %2 None %51
%49 = OpLabel
%46 = OpVariable %47 Function %48
%37 = OpVariable %38 Function %39
%28 = OpVariable %29 Function %30
%19 = OpVariable %20 Function %21
%40 = OpVariable %41 Function %42
%31 = OpVariable %32 Function %33
%22 = OpVariable %23 Function %24
%43 = OpVariable %44 Function %45
%34 = OpVariable %35 Function %36
%25 = OpVariable %26 Function %27
%3 = OpTypeInt 32 1
%4 = OpTypeVector %3 2
%5 = OpTypeVector %3 3
%6 = OpTypeVector %3 4
%7 = OpTypeInt 32 0
%8 = OpTypeVector %7 2
%9 = OpTypeVector %7 3
%10 = OpTypeVector %7 4
%12 = OpTypeFloat 32
%11 = OpTypeVector %12 2
%13 = OpTypeVector %12 4
%15 = OpTypePointer Function %3
%16 = OpConstantNull %3
%18 = OpTypePointer Function %4
%19 = OpConstantNull %4
%21 = OpTypePointer Function %5
%22 = OpConstantNull %5
%24 = OpTypePointer Function %6
%25 = OpConstantNull %6
%27 = OpTypePointer Function %7
%28 = OpConstantNull %7
%30 = OpTypePointer Function %8
%31 = OpConstantNull %8
%33 = OpTypePointer Function %9
%34 = OpConstantNull %9
%36 = OpTypePointer Function %10
%37 = OpConstantNull %10
%39 = OpTypePointer Function %11
%40 = OpConstantNull %11
%42 = OpTypePointer Function %13
%43 = OpConstantNull %13
%46 = OpTypeFunction %2
%47 = OpConstant %3 0
%48 = OpConstant %7 0
%49 = OpConstant %12 0.0
%50 = OpConstant %7 5
%51 = OpConstant %7 10
%45 = OpFunction %2 None %46
%44 = OpLabel
%41 = OpVariable %42 Function %43
%32 = OpVariable %33 Function %34
%23 = OpVariable %24 Function %25
%14 = OpVariable %15 Function %16
%35 = OpVariable %36 Function %37
%26 = OpVariable %27 Function %28
%17 = OpVariable %18 Function %19
%38 = OpVariable %39 Function %40
%29 = OpVariable %30 Function %31
%20 = OpVariable %21 Function %22
OpBranch %52
%52 = OpLabel
OpStore %19 %3
%53 = OpCompositeConstruct %11 %3 %3
OpStore %22 %53
%54 = OpCompositeConstruct %12 %3 %3 %3
OpStore %25 %54
%55 = OpCompositeConstruct %13 %3 %3 %3 %3
OpStore %28 %55
OpStore %31 %5
%56 = OpCompositeConstruct %14 %5 %5
OpStore %34 %56
%57 = OpCompositeConstruct %15 %5 %5 %5
OpStore %37 %57
%58 = OpCompositeConstruct %16 %5 %5 %5 %5
OpStore %40 %58
%59 = OpCompositeConstruct %17 %7 %7
OpStore %43 %59
%60 = OpCompositeConstruct %18 %7 %7 %7 %7
OpStore %46 %60
%61 = OpLoad %18 %46
%62 = OpExtInst %6 %1 PackSnorm4x8 %61
OpStore %31 %62
%63 = OpLoad %18 %46
%64 = OpExtInst %6 %1 PackUnorm4x8 %63
OpStore %31 %64
%65 = OpLoad %17 %43
%66 = OpExtInst %6 %1 PackSnorm2x16 %65
OpStore %31 %66
%67 = OpLoad %17 %43
%68 = OpExtInst %6 %1 PackUnorm2x16 %67
OpStore %31 %68
%69 = OpLoad %17 %43
%70 = OpExtInst %6 %1 PackHalf2x16 %69
OpStore %31 %70
%71 = OpLoad %6 %31
%72 = OpExtInst %18 %1 UnpackSnorm4x8 %71
OpStore %46 %72
%73 = OpLoad %6 %31
%74 = OpExtInst %18 %1 UnpackUnorm4x8 %73
OpStore %46 %74
%75 = OpLoad %6 %31
%76 = OpExtInst %17 %1 UnpackSnorm2x16 %75
OpStore %43 %76
%77 = OpLoad %6 %31
%78 = OpExtInst %17 %1 UnpackUnorm2x16 %77
OpStore %43 %78
%79 = OpLoad %6 %31
%80 = OpExtInst %17 %1 UnpackHalf2x16 %79
OpStore %43 %80
%81 = OpLoad %4 %19
%82 = OpLoad %4 %19
%83 = OpBitFieldInsert %4 %81 %82 %9 %10
OpStore %19 %83
%84 = OpLoad %11 %22
%85 = OpLoad %11 %22
%86 = OpBitFieldInsert %11 %84 %85 %9 %10
OpStore %22 %86
%87 = OpLoad %12 %25
%88 = OpLoad %12 %25
%89 = OpBitFieldInsert %12 %87 %88 %9 %10
OpStore %25 %89
%90 = OpLoad %13 %28
%91 = OpLoad %13 %28
%92 = OpBitFieldInsert %13 %90 %91 %9 %10
OpStore %28 %92
%93 = OpLoad %6 %31
%94 = OpLoad %6 %31
%95 = OpBitFieldInsert %6 %93 %94 %9 %10
OpStore %31 %95
%96 = OpLoad %14 %34
%97 = OpLoad %14 %34
%98 = OpBitFieldInsert %14 %96 %97 %9 %10
OpStore %34 %98
%99 = OpLoad %15 %37
%100 = OpLoad %15 %37
%101 = OpBitFieldInsert %15 %99 %100 %9 %10
OpStore %37 %101
%102 = OpLoad %16 %40
%103 = OpLoad %16 %40
%104 = OpBitFieldInsert %16 %102 %103 %9 %10
OpStore %40 %104
%105 = OpLoad %4 %19
%106 = OpBitFieldSExtract %4 %105 %9 %10
OpStore %19 %106
%107 = OpLoad %11 %22
%108 = OpBitFieldSExtract %11 %107 %9 %10
OpStore %22 %108
%109 = OpLoad %12 %25
%110 = OpBitFieldSExtract %12 %109 %9 %10
OpStore %25 %110
%111 = OpLoad %13 %28
%112 = OpBitFieldSExtract %13 %111 %9 %10
OpStore %28 %112
%113 = OpLoad %6 %31
%114 = OpBitFieldUExtract %6 %113 %9 %10
OpStore %31 %114
%115 = OpLoad %14 %34
%116 = OpBitFieldUExtract %14 %115 %9 %10
OpStore %34 %116
%117 = OpLoad %15 %37
%118 = OpBitFieldUExtract %15 %117 %9 %10
OpStore %37 %118
%119 = OpLoad %16 %40
%120 = OpBitFieldUExtract %16 %119 %9 %10
OpStore %40 %120
%121 = OpLoad %4 %19
%122 = OpExtInst %4 %1 FindILsb %121
OpStore %19 %122
%123 = OpLoad %14 %34
%124 = OpExtInst %14 %1 FindILsb %123
OpStore %34 %124
%125 = OpLoad %12 %25
%126 = OpExtInst %12 %1 FindSMsb %125
OpStore %25 %126
%127 = OpLoad %15 %37
%128 = OpExtInst %15 %1 FindUMsb %127
OpStore %37 %128
%129 = OpLoad %4 %19
%130 = OpExtInst %4 %1 FindSMsb %129
OpStore %19 %130
%131 = OpLoad %6 %31
%132 = OpExtInst %6 %1 FindUMsb %131
OpStore %31 %132
%133 = OpLoad %4 %19
%134 = OpBitCount %4 %133
OpStore %19 %134
%135 = OpLoad %11 %22
%136 = OpBitCount %11 %135
OpStore %22 %136
%137 = OpLoad %12 %25
%138 = OpBitCount %12 %137
OpStore %25 %138
%139 = OpLoad %13 %28
%140 = OpBitCount %13 %139
OpStore %28 %140
%141 = OpLoad %6 %31
%142 = OpBitCount %6 %141
OpStore %31 %142
%143 = OpLoad %14 %34
%144 = OpBitCount %14 %143
OpStore %34 %144
%145 = OpLoad %15 %37
%146 = OpBitCount %15 %145
OpStore %37 %146
%147 = OpLoad %16 %40
%148 = OpBitCount %16 %147
OpStore %40 %148
%149 = OpLoad %4 %19
%150 = OpBitReverse %4 %149
OpStore %19 %150
%151 = OpLoad %11 %22
%152 = OpBitReverse %11 %151
OpStore %22 %152
%153 = OpLoad %12 %25
%154 = OpBitReverse %12 %153
OpStore %25 %154
%155 = OpLoad %13 %28
%156 = OpBitReverse %13 %155
OpStore %28 %156
%157 = OpLoad %6 %31
%158 = OpBitReverse %6 %157
OpStore %31 %158
%159 = OpLoad %14 %34
%160 = OpBitReverse %14 %159
OpStore %34 %160
%161 = OpLoad %15 %37
%162 = OpBitReverse %15 %161
OpStore %37 %162
%163 = OpLoad %16 %40
%164 = OpBitReverse %16 %163
OpStore %40 %164
OpStore %14 %47
%53 = OpCompositeConstruct %4 %47 %47
OpStore %17 %53
%54 = OpCompositeConstruct %5 %47 %47 %47
OpStore %20 %54
%55 = OpCompositeConstruct %6 %47 %47 %47 %47
OpStore %23 %55
OpStore %26 %48
%56 = OpCompositeConstruct %8 %48 %48
OpStore %29 %56
%57 = OpCompositeConstruct %9 %48 %48 %48
OpStore %32 %57
%58 = OpCompositeConstruct %10 %48 %48 %48 %48
OpStore %35 %58
%59 = OpCompositeConstruct %11 %49 %49
OpStore %38 %59
%60 = OpCompositeConstruct %13 %49 %49 %49 %49
OpStore %41 %60
%61 = OpLoad %13 %41
%62 = OpExtInst %7 %1 PackSnorm4x8 %61
OpStore %26 %62
%63 = OpLoad %13 %41
%64 = OpExtInst %7 %1 PackUnorm4x8 %63
OpStore %26 %64
%65 = OpLoad %11 %38
%66 = OpExtInst %7 %1 PackSnorm2x16 %65
OpStore %26 %66
%67 = OpLoad %11 %38
%68 = OpExtInst %7 %1 PackUnorm2x16 %67
OpStore %26 %68
%69 = OpLoad %11 %38
%70 = OpExtInst %7 %1 PackHalf2x16 %69
OpStore %26 %70
%71 = OpLoad %7 %26
%72 = OpExtInst %13 %1 UnpackSnorm4x8 %71
OpStore %41 %72
%73 = OpLoad %7 %26
%74 = OpExtInst %13 %1 UnpackUnorm4x8 %73
OpStore %41 %74
%75 = OpLoad %7 %26
%76 = OpExtInst %11 %1 UnpackSnorm2x16 %75
OpStore %38 %76
%77 = OpLoad %7 %26
%78 = OpExtInst %11 %1 UnpackUnorm2x16 %77
OpStore %38 %78
%79 = OpLoad %7 %26
%80 = OpExtInst %11 %1 UnpackHalf2x16 %79
OpStore %38 %80
%81 = OpLoad %3 %14
%82 = OpLoad %3 %14
%83 = OpBitFieldInsert %3 %81 %82 %50 %51
OpStore %14 %83
%84 = OpLoad %4 %17
%85 = OpLoad %4 %17
%86 = OpBitFieldInsert %4 %84 %85 %50 %51
OpStore %17 %86
%87 = OpLoad %5 %20
%88 = OpLoad %5 %20
%89 = OpBitFieldInsert %5 %87 %88 %50 %51
OpStore %20 %89
%90 = OpLoad %6 %23
%91 = OpLoad %6 %23
%92 = OpBitFieldInsert %6 %90 %91 %50 %51
OpStore %23 %92
%93 = OpLoad %7 %26
%94 = OpLoad %7 %26
%95 = OpBitFieldInsert %7 %93 %94 %50 %51
OpStore %26 %95
%96 = OpLoad %8 %29
%97 = OpLoad %8 %29
%98 = OpBitFieldInsert %8 %96 %97 %50 %51
OpStore %29 %98
%99 = OpLoad %9 %32
%100 = OpLoad %9 %32
%101 = OpBitFieldInsert %9 %99 %100 %50 %51
OpStore %32 %101
%102 = OpLoad %10 %35
%103 = OpLoad %10 %35
%104 = OpBitFieldInsert %10 %102 %103 %50 %51
OpStore %35 %104
%105 = OpLoad %3 %14
%106 = OpBitFieldSExtract %3 %105 %50 %51
OpStore %14 %106
%107 = OpLoad %4 %17
%108 = OpBitFieldSExtract %4 %107 %50 %51
OpStore %17 %108
%109 = OpLoad %5 %20
%110 = OpBitFieldSExtract %5 %109 %50 %51
OpStore %20 %110
%111 = OpLoad %6 %23
%112 = OpBitFieldSExtract %6 %111 %50 %51
OpStore %23 %112
%113 = OpLoad %7 %26
%114 = OpBitFieldUExtract %7 %113 %50 %51
OpStore %26 %114
%115 = OpLoad %8 %29
%116 = OpBitFieldUExtract %8 %115 %50 %51
OpStore %29 %116
%117 = OpLoad %9 %32
%118 = OpBitFieldUExtract %9 %117 %50 %51
OpStore %32 %118
%119 = OpLoad %10 %35
%120 = OpBitFieldUExtract %10 %119 %50 %51
OpStore %35 %120
%121 = OpLoad %3 %14
%122 = OpExtInst %3 %1 FindILsb %121
OpStore %14 %122
%123 = OpLoad %8 %29
%124 = OpExtInst %8 %1 FindILsb %123
OpStore %29 %124
%125 = OpLoad %5 %20
%126 = OpExtInst %5 %1 FindSMsb %125
OpStore %20 %126
%127 = OpLoad %9 %32
%128 = OpExtInst %9 %1 FindUMsb %127
OpStore %32 %128
%129 = OpLoad %3 %14
%130 = OpExtInst %3 %1 FindSMsb %129
OpStore %14 %130
%131 = OpLoad %7 %26
%132 = OpExtInst %7 %1 FindUMsb %131
OpStore %26 %132
%133 = OpLoad %3 %14
%134 = OpBitCount %3 %133
OpStore %14 %134
%135 = OpLoad %4 %17
%136 = OpBitCount %4 %135
OpStore %17 %136
%137 = OpLoad %5 %20
%138 = OpBitCount %5 %137
OpStore %20 %138
%139 = OpLoad %6 %23
%140 = OpBitCount %6 %139
OpStore %23 %140
%141 = OpLoad %7 %26
%142 = OpBitCount %7 %141
OpStore %26 %142
%143 = OpLoad %8 %29
%144 = OpBitCount %8 %143
OpStore %29 %144
%145 = OpLoad %9 %32
%146 = OpBitCount %9 %145
OpStore %32 %146
%147 = OpLoad %10 %35
%148 = OpBitCount %10 %147
OpStore %35 %148
%149 = OpLoad %3 %14
%150 = OpBitReverse %3 %149
OpStore %14 %150
%151 = OpLoad %4 %17
%152 = OpBitReverse %4 %151
OpStore %17 %152
%153 = OpLoad %5 %20
%154 = OpBitReverse %5 %153
OpStore %20 %154
%155 = OpLoad %6 %23
%156 = OpBitReverse %6 %155
OpStore %23 %156
%157 = OpLoad %7 %26
%158 = OpBitReverse %7 %157
OpStore %26 %158
%159 = OpLoad %8 %29
%160 = OpBitReverse %8 %159
OpStore %29 %160
%161 = OpLoad %9 %32
%162 = OpBitReverse %9 %161
OpStore %32 %162
%163 = OpLoad %10 %35
%164 = OpBitReverse %10 %163
OpStore %35 %164
OpReturn
OpFunctionEnd

View File

@@ -6,107 +6,107 @@ OpCapability Shader
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %54 "main" %51
OpExecutionMode %54 LocalSize 64 1 1
OpEntryPoint GLCompute %46 "main" %43
OpExecutionMode %46 LocalSize 64 1 1
OpSource GLSL 450
OpName %3 "NUM_PARTICLES"
OpMemberName %16 0 "pos"
OpMemberName %16 1 "vel"
OpName %16 "Particle"
OpMemberName %17 0 "deltaT"
OpMemberName %17 1 "rule1Distance"
OpMemberName %17 2 "rule2Distance"
OpMemberName %17 3 "rule3Distance"
OpMemberName %17 4 "rule1Scale"
OpMemberName %17 5 "rule2Scale"
OpMemberName %17 6 "rule3Scale"
OpName %17 "SimParams"
OpMemberName %19 0 "particles"
OpName %19 "Particles"
OpName %21 "params"
OpName %24 "particlesSrc"
OpName %26 "particlesDst"
OpName %27 "vPos"
OpName %30 "vVel"
OpName %32 "cMass"
OpName %34 "cVel"
OpName %36 "colVel"
OpName %38 "cMassCount"
OpName %41 "cVelCount"
OpName %43 "pos"
OpName %45 "vel"
OpName %47 "i"
OpName %51 "global_invocation_id"
OpName %54 "main"
OpMemberDecorate %16 0 Offset 0
OpMemberDecorate %16 1 Offset 8
OpMemberDecorate %17 0 Offset 0
OpMemberDecorate %17 1 Offset 4
OpMemberDecorate %17 2 Offset 8
OpMemberDecorate %17 3 Offset 12
OpMemberDecorate %17 4 Offset 16
OpMemberDecorate %17 5 Offset 20
OpMemberDecorate %17 6 Offset 24
OpDecorate %18 ArrayStride 16
OpMemberDecorate %19 0 Offset 0
OpDecorate %21 DescriptorSet 0
OpDecorate %21 Binding 0
OpDecorate %22 Block
OpMemberDecorate %22 0 Offset 0
OpDecorate %24 NonWritable
OpDecorate %24 DescriptorSet 0
OpDecorate %24 Binding 1
OpDecorate %19 Block
OpDecorate %26 DescriptorSet 0
OpDecorate %26 Binding 2
OpDecorate %19 Block
OpDecorate %51 BuiltIn GlobalInvocationId
OpMemberName %7 0 "pos"
OpMemberName %7 1 "vel"
OpName %7 "Particle"
OpMemberName %8 0 "deltaT"
OpMemberName %8 1 "rule1Distance"
OpMemberName %8 2 "rule2Distance"
OpMemberName %8 3 "rule3Distance"
OpMemberName %8 4 "rule1Scale"
OpMemberName %8 5 "rule2Scale"
OpMemberName %8 6 "rule3Scale"
OpName %8 "SimParams"
OpMemberName %10 0 "particles"
OpName %10 "Particles"
OpName %13 "params"
OpName %16 "particlesSrc"
OpName %18 "particlesDst"
OpName %19 "vPos"
OpName %22 "vVel"
OpName %24 "cMass"
OpName %26 "cVel"
OpName %28 "colVel"
OpName %30 "cMassCount"
OpName %33 "cVelCount"
OpName %35 "pos"
OpName %37 "vel"
OpName %39 "i"
OpName %43 "global_invocation_id"
OpName %46 "main"
OpMemberDecorate %7 0 Offset 0
OpMemberDecorate %7 1 Offset 8
OpMemberDecorate %8 0 Offset 0
OpMemberDecorate %8 1 Offset 4
OpMemberDecorate %8 2 Offset 8
OpMemberDecorate %8 3 Offset 12
OpMemberDecorate %8 4 Offset 16
OpMemberDecorate %8 5 Offset 20
OpMemberDecorate %8 6 Offset 24
OpDecorate %9 ArrayStride 16
OpMemberDecorate %10 0 Offset 0
OpDecorate %13 DescriptorSet 0
OpDecorate %13 Binding 0
OpDecorate %14 Block
OpMemberDecorate %14 0 Offset 0
OpDecorate %16 NonWritable
OpDecorate %16 DescriptorSet 0
OpDecorate %16 Binding 1
OpDecorate %10 Block
OpDecorate %18 DescriptorSet 0
OpDecorate %18 Binding 2
OpDecorate %10 Block
OpDecorate %43 BuiltIn GlobalInvocationId
%2 = OpTypeVoid
%4 = OpTypeInt 32 0
%3 = OpConstant %4 1500
%6 = OpTypeFloat 32
%5 = OpConstant %6 0.0
%8 = OpTypeInt 32 1
%7 = OpConstant %8 0
%9 = OpConstant %4 0
%10 = OpConstant %8 1
%11 = OpConstant %4 1
%12 = OpConstant %6 0.1
%13 = OpConstant %6 -1.0
%14 = OpConstant %6 1.0
%15 = OpTypeVector %6 2
%16 = OpTypeStruct %15 %15
%17 = OpTypeStruct %6 %6 %6 %6 %6 %6 %6
%18 = OpTypeRuntimeArray %16
%19 = OpTypeStruct %18
%20 = OpTypeVector %4 3
%22 = OpTypeStruct %17
%23 = OpTypePointer Uniform %22
%21 = OpVariable %23 Uniform
%25 = OpTypePointer StorageBuffer %19
%24 = OpVariable %25 StorageBuffer
%26 = OpVariable %25 StorageBuffer
%28 = OpTypePointer Function %15
%29 = OpConstantNull %15
%31 = OpConstantNull %15
%33 = OpConstantNull %15
%35 = OpConstantNull %15
%37 = OpConstantNull %15
%39 = OpTypePointer Function %8
%40 = OpConstantNull %8
%42 = OpConstantNull %8
%44 = OpConstantNull %15
%46 = OpConstantNull %15
%48 = OpTypePointer Function %4
%49 = OpConstantNull %4
%52 = OpTypePointer Input %20
%51 = OpVariable %52 Input
%55 = OpTypeFunction %2
%56 = OpTypePointer Uniform %17
%5 = OpTypeVector %6 2
%7 = OpTypeStruct %5 %5
%8 = OpTypeStruct %6 %6 %6 %6 %6 %6 %6
%9 = OpTypeRuntimeArray %7
%10 = OpTypeStruct %9
%11 = OpTypeVector %4 3
%12 = OpTypeInt 32 1
%14 = OpTypeStruct %8
%15 = OpTypePointer Uniform %14
%13 = OpVariable %15 Uniform
%17 = OpTypePointer StorageBuffer %10
%16 = OpVariable %17 StorageBuffer
%18 = OpVariable %17 StorageBuffer
%20 = OpTypePointer Function %5
%21 = OpConstantNull %5
%23 = OpConstantNull %5
%25 = OpConstantNull %5
%27 = OpConstantNull %5
%29 = OpConstantNull %5
%31 = OpTypePointer Function %12
%32 = OpConstantNull %12
%34 = OpConstantNull %12
%36 = OpConstantNull %5
%38 = OpConstantNull %5
%40 = OpTypePointer Function %4
%41 = OpConstantNull %4
%44 = OpTypePointer Input %11
%43 = OpVariable %44 Input
%47 = OpTypeFunction %2
%48 = OpTypePointer Uniform %8
%49 = OpConstant %4 0
%51 = OpConstant %6 0.0
%52 = OpConstant %12 0
%53 = OpConstant %12 1
%54 = OpConstant %4 1
%55 = OpConstant %6 0.1
%56 = OpConstant %6 -1.0
%57 = OpConstant %6 1.0
%60 = OpTypeBool
%64 = OpTypePointer StorageBuffer %18
%65 = OpTypePointer StorageBuffer %16
%66 = OpTypePointer StorageBuffer %15
%64 = OpTypePointer StorageBuffer %9
%65 = OpTypePointer StorageBuffer %7
%66 = OpTypePointer StorageBuffer %5
%95 = OpTypePointer Uniform %6
%109 = OpConstant %4 2
%123 = OpConstant %4 3
@@ -114,235 +114,235 @@ OpDecorate %51 BuiltIn GlobalInvocationId
%164 = OpConstant %4 5
%170 = OpConstant %4 6
%187 = OpTypePointer Function %6
%54 = OpFunction %2 None %55
%50 = OpLabel
%47 = OpVariable %48 Function %49
%41 = OpVariable %39 Function %42
%34 = OpVariable %28 Function %35
%27 = OpVariable %28 Function %29
%43 = OpVariable %28 Function %44
%36 = OpVariable %28 Function %37
%30 = OpVariable %28 Function %31
%45 = OpVariable %28 Function %46
%38 = OpVariable %39 Function %40
%32 = OpVariable %28 Function %33
%53 = OpLoad %20 %51
%57 = OpAccessChain %56 %21 %9
%46 = OpFunction %2 None %47
%42 = OpLabel
%39 = OpVariable %40 Function %41
%33 = OpVariable %31 Function %34
%26 = OpVariable %20 Function %27
%19 = OpVariable %20 Function %21
%35 = OpVariable %20 Function %36
%28 = OpVariable %20 Function %29
%22 = OpVariable %20 Function %23
%37 = OpVariable %20 Function %38
%30 = OpVariable %31 Function %32
%24 = OpVariable %20 Function %25
%45 = OpLoad %11 %43
%50 = OpAccessChain %48 %13 %49
OpBranch %58
%58 = OpLabel
%59 = OpCompositeExtract %4 %53 0
%59 = OpCompositeExtract %4 %45 0
%61 = OpUGreaterThanEqual %60 %59 %3
OpSelectionMerge %62 None
OpBranchConditional %61 %63 %62
%63 = OpLabel
OpReturn
%62 = OpLabel
%67 = OpAccessChain %66 %24 %9 %59 %9
%68 = OpLoad %15 %67
OpStore %27 %68
%69 = OpAccessChain %66 %24 %9 %59 %11
%70 = OpLoad %15 %69
OpStore %30 %70
%71 = OpCompositeConstruct %15 %5 %5
OpStore %32 %71
%72 = OpCompositeConstruct %15 %5 %5
OpStore %34 %72
%73 = OpCompositeConstruct %15 %5 %5
OpStore %36 %73
OpStore %38 %7
OpStore %41 %7
OpStore %47 %9
%67 = OpAccessChain %66 %16 %49 %59 %49
%68 = OpLoad %5 %67
OpStore %19 %68
%69 = OpAccessChain %66 %16 %49 %59 %54
%70 = OpLoad %5 %69
OpStore %22 %70
%71 = OpCompositeConstruct %5 %51 %51
OpStore %24 %71
%72 = OpCompositeConstruct %5 %51 %51
OpStore %26 %72
%73 = OpCompositeConstruct %5 %51 %51
OpStore %28 %73
OpStore %30 %52
OpStore %33 %52
OpStore %39 %49
OpBranch %74
%74 = OpLabel
OpLoopMerge %75 %77 None
OpBranch %76
%76 = OpLabel
%78 = OpLoad %4 %47
%78 = OpLoad %4 %39
%79 = OpUGreaterThanEqual %60 %78 %3
OpSelectionMerge %80 None
OpBranchConditional %79 %81 %80
%81 = OpLabel
OpBranch %75
%80 = OpLabel
%82 = OpLoad %4 %47
%82 = OpLoad %4 %39
%83 = OpIEqual %60 %82 %59
OpSelectionMerge %84 None
OpBranchConditional %83 %85 %84
%85 = OpLabel
OpBranch %77
%84 = OpLabel
%86 = OpLoad %4 %47
%87 = OpAccessChain %66 %24 %9 %86 %9
%88 = OpLoad %15 %87
OpStore %43 %88
%89 = OpLoad %4 %47
%90 = OpAccessChain %66 %24 %9 %89 %11
%91 = OpLoad %15 %90
OpStore %45 %91
%92 = OpLoad %15 %43
%93 = OpLoad %15 %27
%86 = OpLoad %4 %39
%87 = OpAccessChain %66 %16 %49 %86 %49
%88 = OpLoad %5 %87
OpStore %35 %88
%89 = OpLoad %4 %39
%90 = OpAccessChain %66 %16 %49 %89 %54
%91 = OpLoad %5 %90
OpStore %37 %91
%92 = OpLoad %5 %35
%93 = OpLoad %5 %19
%94 = OpExtInst %6 %1 Distance %92 %93
%96 = OpAccessChain %95 %57 %11
%96 = OpAccessChain %95 %50 %54
%97 = OpLoad %6 %96
%98 = OpFOrdLessThan %60 %94 %97
OpSelectionMerge %99 None
OpBranchConditional %98 %100 %99
%100 = OpLabel
%101 = OpLoad %15 %32
%102 = OpLoad %15 %43
%103 = OpFAdd %15 %101 %102
OpStore %32 %103
%104 = OpLoad %8 %38
%105 = OpIAdd %8 %104 %10
OpStore %38 %105
%101 = OpLoad %5 %24
%102 = OpLoad %5 %35
%103 = OpFAdd %5 %101 %102
OpStore %24 %103
%104 = OpLoad %12 %30
%105 = OpIAdd %12 %104 %53
OpStore %30 %105
OpBranch %99
%99 = OpLabel
%106 = OpLoad %15 %43
%107 = OpLoad %15 %27
%106 = OpLoad %5 %35
%107 = OpLoad %5 %19
%108 = OpExtInst %6 %1 Distance %106 %107
%110 = OpAccessChain %95 %57 %109
%110 = OpAccessChain %95 %50 %109
%111 = OpLoad %6 %110
%112 = OpFOrdLessThan %60 %108 %111
OpSelectionMerge %113 None
OpBranchConditional %112 %114 %113
%114 = OpLabel
%115 = OpLoad %15 %36
%116 = OpLoad %15 %43
%117 = OpLoad %15 %27
%118 = OpFSub %15 %116 %117
%119 = OpFSub %15 %115 %118
OpStore %36 %119
%115 = OpLoad %5 %28
%116 = OpLoad %5 %35
%117 = OpLoad %5 %19
%118 = OpFSub %5 %116 %117
%119 = OpFSub %5 %115 %118
OpStore %28 %119
OpBranch %113
%113 = OpLabel
%120 = OpLoad %15 %43
%121 = OpLoad %15 %27
%120 = OpLoad %5 %35
%121 = OpLoad %5 %19
%122 = OpExtInst %6 %1 Distance %120 %121
%124 = OpAccessChain %95 %57 %123
%124 = OpAccessChain %95 %50 %123
%125 = OpLoad %6 %124
%126 = OpFOrdLessThan %60 %122 %125
OpSelectionMerge %127 None
OpBranchConditional %126 %128 %127
%128 = OpLabel
%129 = OpLoad %15 %34
%130 = OpLoad %15 %45
%131 = OpFAdd %15 %129 %130
OpStore %34 %131
%132 = OpLoad %8 %41
%133 = OpIAdd %8 %132 %10
OpStore %41 %133
%129 = OpLoad %5 %26
%130 = OpLoad %5 %37
%131 = OpFAdd %5 %129 %130
OpStore %26 %131
%132 = OpLoad %12 %33
%133 = OpIAdd %12 %132 %53
OpStore %33 %133
OpBranch %127
%127 = OpLabel
OpBranch %77
%77 = OpLabel
%134 = OpLoad %4 %47
%135 = OpIAdd %4 %134 %11
OpStore %47 %135
%134 = OpLoad %4 %39
%135 = OpIAdd %4 %134 %54
OpStore %39 %135
OpBranch %74
%75 = OpLabel
%136 = OpLoad %8 %38
%137 = OpSGreaterThan %60 %136 %7
%136 = OpLoad %12 %30
%137 = OpSGreaterThan %60 %136 %52
OpSelectionMerge %138 None
OpBranchConditional %137 %139 %138
%139 = OpLabel
%140 = OpLoad %15 %32
%141 = OpLoad %8 %38
%140 = OpLoad %5 %24
%141 = OpLoad %12 %30
%142 = OpConvertSToF %6 %141
%143 = OpCompositeConstruct %15 %142 %142
%144 = OpFDiv %15 %140 %143
%145 = OpLoad %15 %27
%146 = OpFSub %15 %144 %145
OpStore %32 %146
%143 = OpCompositeConstruct %5 %142 %142
%144 = OpFDiv %5 %140 %143
%145 = OpLoad %5 %19
%146 = OpFSub %5 %144 %145
OpStore %24 %146
OpBranch %138
%138 = OpLabel
%147 = OpLoad %8 %41
%148 = OpSGreaterThan %60 %147 %7
%147 = OpLoad %12 %33
%148 = OpSGreaterThan %60 %147 %52
OpSelectionMerge %149 None
OpBranchConditional %148 %150 %149
%150 = OpLabel
%151 = OpLoad %15 %34
%152 = OpLoad %8 %41
%151 = OpLoad %5 %26
%152 = OpLoad %12 %33
%153 = OpConvertSToF %6 %152
%154 = OpCompositeConstruct %15 %153 %153
%155 = OpFDiv %15 %151 %154
OpStore %34 %155
%154 = OpCompositeConstruct %5 %153 %153
%155 = OpFDiv %5 %151 %154
OpStore %26 %155
OpBranch %149
%149 = OpLabel
%156 = OpLoad %15 %30
%157 = OpLoad %15 %32
%159 = OpAccessChain %95 %57 %158
%156 = OpLoad %5 %22
%157 = OpLoad %5 %24
%159 = OpAccessChain %95 %50 %158
%160 = OpLoad %6 %159
%161 = OpVectorTimesScalar %15 %157 %160
%162 = OpFAdd %15 %156 %161
%163 = OpLoad %15 %36
%165 = OpAccessChain %95 %57 %164
%161 = OpVectorTimesScalar %5 %157 %160
%162 = OpFAdd %5 %156 %161
%163 = OpLoad %5 %28
%165 = OpAccessChain %95 %50 %164
%166 = OpLoad %6 %165
%167 = OpVectorTimesScalar %15 %163 %166
%168 = OpFAdd %15 %162 %167
%169 = OpLoad %15 %34
%171 = OpAccessChain %95 %57 %170
%167 = OpVectorTimesScalar %5 %163 %166
%168 = OpFAdd %5 %162 %167
%169 = OpLoad %5 %26
%171 = OpAccessChain %95 %50 %170
%172 = OpLoad %6 %171
%173 = OpVectorTimesScalar %15 %169 %172
%174 = OpFAdd %15 %168 %173
OpStore %30 %174
%175 = OpLoad %15 %30
%176 = OpExtInst %15 %1 Normalize %175
%177 = OpLoad %15 %30
%173 = OpVectorTimesScalar %5 %169 %172
%174 = OpFAdd %5 %168 %173
OpStore %22 %174
%175 = OpLoad %5 %22
%176 = OpExtInst %5 %1 Normalize %175
%177 = OpLoad %5 %22
%178 = OpExtInst %6 %1 Length %177
%179 = OpExtInst %6 %1 FClamp %178 %5 %12
%180 = OpVectorTimesScalar %15 %176 %179
OpStore %30 %180
%181 = OpLoad %15 %27
%182 = OpLoad %15 %30
%183 = OpAccessChain %95 %57 %9
%179 = OpExtInst %6 %1 FClamp %178 %51 %55
%180 = OpVectorTimesScalar %5 %176 %179
OpStore %22 %180
%181 = OpLoad %5 %19
%182 = OpLoad %5 %22
%183 = OpAccessChain %95 %50 %49
%184 = OpLoad %6 %183
%185 = OpVectorTimesScalar %15 %182 %184
%186 = OpFAdd %15 %181 %185
OpStore %27 %186
%188 = OpAccessChain %187 %27 %9
%185 = OpVectorTimesScalar %5 %182 %184
%186 = OpFAdd %5 %181 %185
OpStore %19 %186
%188 = OpAccessChain %187 %19 %49
%189 = OpLoad %6 %188
%190 = OpFOrdLessThan %60 %189 %13
%190 = OpFOrdLessThan %60 %189 %56
OpSelectionMerge %191 None
OpBranchConditional %190 %192 %191
%192 = OpLabel
%193 = OpAccessChain %187 %27 %9
OpStore %193 %14
%193 = OpAccessChain %187 %19 %49
OpStore %193 %57
OpBranch %191
%191 = OpLabel
%194 = OpAccessChain %187 %27 %9
%194 = OpAccessChain %187 %19 %49
%195 = OpLoad %6 %194
%196 = OpFOrdGreaterThan %60 %195 %14
%196 = OpFOrdGreaterThan %60 %195 %57
OpSelectionMerge %197 None
OpBranchConditional %196 %198 %197
%198 = OpLabel
%199 = OpAccessChain %187 %27 %9
OpStore %199 %13
%199 = OpAccessChain %187 %19 %49
OpStore %199 %56
OpBranch %197
%197 = OpLabel
%200 = OpAccessChain %187 %27 %11
%200 = OpAccessChain %187 %19 %54
%201 = OpLoad %6 %200
%202 = OpFOrdLessThan %60 %201 %13
%202 = OpFOrdLessThan %60 %201 %56
OpSelectionMerge %203 None
OpBranchConditional %202 %204 %203
%204 = OpLabel
%205 = OpAccessChain %187 %27 %11
OpStore %205 %14
%205 = OpAccessChain %187 %19 %54
OpStore %205 %57
OpBranch %203
%203 = OpLabel
%206 = OpAccessChain %187 %27 %11
%206 = OpAccessChain %187 %19 %54
%207 = OpLoad %6 %206
%208 = OpFOrdGreaterThan %60 %207 %14
%208 = OpFOrdGreaterThan %60 %207 %57
OpSelectionMerge %209 None
OpBranchConditional %208 %210 %209
%210 = OpLabel
%211 = OpAccessChain %187 %27 %11
OpStore %211 %13
%211 = OpAccessChain %187 %19 %54
OpStore %211 %56
OpBranch %209
%209 = OpLabel
%212 = OpLoad %15 %27
%213 = OpAccessChain %66 %26 %9 %59 %9
%212 = OpLoad %5 %19
%213 = OpAccessChain %66 %18 %49 %59 %49
OpStore %213 %212
%214 = OpLoad %15 %30
%215 = OpAccessChain %66 %26 %9 %59 %11
%214 = OpLoad %5 %22
%215 = OpAccessChain %66 %18 %49 %59 %54
OpStore %215 %214
OpReturn
OpFunctionEnd

View File

@@ -8,461 +8,461 @@ OpCapability Shader
OpCapability Sampled1D
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %272 "fragment_shader" %270
OpExecutionMode %272 OriginUpperLeft
OpEntryPoint Fragment %269 "fragment_shader" %267
OpExecutionMode %269 OriginUpperLeft
OpSource GLSL 450
OpName %24 "image_1d"
OpName %26 "image_2d"
OpName %28 "image_2d_array"
OpName %30 "image_3d"
OpName %32 "image_multisampled_2d"
OpName %34 "image_depth_2d"
OpName %36 "image_depth_2d_array"
OpName %38 "image_depth_multisampled_2d"
OpName %40 "image_storage_1d"
OpName %42 "image_storage_2d"
OpName %44 "image_storage_2d_array"
OpName %46 "image_storage_3d"
OpName %49 "coords"
OpName %50 "level"
OpName %51 "test_textureLoad_1d"
OpName %64 "coords"
OpName %65 "level"
OpName %66 "test_textureLoad_2d"
OpName %79 "coords"
OpName %80 "index"
OpName %81 "level"
OpName %82 "test_textureLoad_2d_array_u"
OpName %97 "coords"
OpName %98 "index"
OpName %99 "level"
OpName %100 "test_textureLoad_2d_array_s"
OpName %114 "coords"
OpName %115 "level"
OpName %116 "test_textureLoad_3d"
OpName %129 "coords"
OpName %130 "_sample"
OpName %131 "test_textureLoad_multisampled_2d"
OpName %143 "coords"
OpName %144 "level"
OpName %145 "test_textureLoad_depth_2d"
OpName %159 "coords"
OpName %160 "index"
OpName %161 "level"
OpName %162 "test_textureLoad_depth_2d_array_u"
OpName %178 "coords"
OpName %179 "index"
OpName %180 "level"
OpName %181 "test_textureLoad_depth_2d_array_s"
OpName %196 "coords"
OpName %197 "_sample"
OpName %198 "test_textureLoad_depth_multisampled_2d"
OpName %211 "coords"
OpName %212 "value"
OpName %213 "test_textureStore_1d"
OpName %221 "coords"
OpName %222 "value"
OpName %223 "test_textureStore_2d"
OpName %232 "coords"
OpName %233 "array_index"
OpName %234 "value"
OpName %235 "test_textureStore_2d_array_u"
OpName %246 "coords"
OpName %247 "array_index"
OpName %248 "value"
OpName %249 "test_textureStore_2d_array_s"
OpName %259 "coords"
OpName %260 "value"
OpName %261 "test_textureStore_3d"
OpName %272 "fragment_shader"
OpDecorate %24 DescriptorSet 0
OpDecorate %24 Binding 0
OpDecorate %26 DescriptorSet 0
OpDecorate %26 Binding 1
OpDecorate %28 DescriptorSet 0
OpDecorate %28 Binding 2
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 3
OpDecorate %32 DescriptorSet 0
OpDecorate %32 Binding 4
OpDecorate %34 DescriptorSet 0
OpDecorate %34 Binding 5
OpDecorate %36 DescriptorSet 0
OpDecorate %36 Binding 6
OpDecorate %38 DescriptorSet 0
OpDecorate %38 Binding 7
OpDecorate %40 NonReadable
OpDecorate %40 DescriptorSet 0
OpDecorate %40 Binding 8
OpDecorate %42 NonReadable
OpDecorate %42 DescriptorSet 0
OpDecorate %42 Binding 9
OpDecorate %44 NonReadable
OpDecorate %44 DescriptorSet 0
OpDecorate %44 Binding 10
OpDecorate %46 NonReadable
OpDecorate %46 DescriptorSet 0
OpDecorate %46 Binding 11
OpDecorate %270 Location 0
OpName %21 "image_1d"
OpName %23 "image_2d"
OpName %25 "image_2d_array"
OpName %27 "image_3d"
OpName %29 "image_multisampled_2d"
OpName %31 "image_depth_2d"
OpName %33 "image_depth_2d_array"
OpName %35 "image_depth_multisampled_2d"
OpName %37 "image_storage_1d"
OpName %39 "image_storage_2d"
OpName %41 "image_storage_2d_array"
OpName %43 "image_storage_3d"
OpName %46 "coords"
OpName %47 "level"
OpName %48 "test_textureLoad_1d"
OpName %61 "coords"
OpName %62 "level"
OpName %63 "test_textureLoad_2d"
OpName %76 "coords"
OpName %77 "index"
OpName %78 "level"
OpName %79 "test_textureLoad_2d_array_u"
OpName %94 "coords"
OpName %95 "index"
OpName %96 "level"
OpName %97 "test_textureLoad_2d_array_s"
OpName %111 "coords"
OpName %112 "level"
OpName %113 "test_textureLoad_3d"
OpName %126 "coords"
OpName %127 "_sample"
OpName %128 "test_textureLoad_multisampled_2d"
OpName %140 "coords"
OpName %141 "level"
OpName %142 "test_textureLoad_depth_2d"
OpName %156 "coords"
OpName %157 "index"
OpName %158 "level"
OpName %159 "test_textureLoad_depth_2d_array_u"
OpName %175 "coords"
OpName %176 "index"
OpName %177 "level"
OpName %178 "test_textureLoad_depth_2d_array_s"
OpName %193 "coords"
OpName %194 "_sample"
OpName %195 "test_textureLoad_depth_multisampled_2d"
OpName %208 "coords"
OpName %209 "value"
OpName %210 "test_textureStore_1d"
OpName %218 "coords"
OpName %219 "value"
OpName %220 "test_textureStore_2d"
OpName %229 "coords"
OpName %230 "array_index"
OpName %231 "value"
OpName %232 "test_textureStore_2d_array_u"
OpName %243 "coords"
OpName %244 "array_index"
OpName %245 "value"
OpName %246 "test_textureStore_2d_array_s"
OpName %256 "coords"
OpName %257 "value"
OpName %258 "test_textureStore_3d"
OpName %269 "fragment_shader"
OpDecorate %21 DescriptorSet 0
OpDecorate %21 Binding 0
OpDecorate %23 DescriptorSet 0
OpDecorate %23 Binding 1
OpDecorate %25 DescriptorSet 0
OpDecorate %25 Binding 2
OpDecorate %27 DescriptorSet 0
OpDecorate %27 Binding 3
OpDecorate %29 DescriptorSet 0
OpDecorate %29 Binding 4
OpDecorate %31 DescriptorSet 0
OpDecorate %31 Binding 5
OpDecorate %33 DescriptorSet 0
OpDecorate %33 Binding 6
OpDecorate %35 DescriptorSet 0
OpDecorate %35 Binding 7
OpDecorate %37 NonReadable
OpDecorate %37 DescriptorSet 0
OpDecorate %37 Binding 8
OpDecorate %39 NonReadable
OpDecorate %39 DescriptorSet 0
OpDecorate %39 Binding 9
OpDecorate %41 NonReadable
OpDecorate %41 DescriptorSet 0
OpDecorate %41 Binding 10
OpDecorate %43 NonReadable
OpDecorate %43 DescriptorSet 0
OpDecorate %43 Binding 11
OpDecorate %267 Location 0
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 0
%6 = OpTypeInt 32 0
%5 = OpConstant %6 0
%8 = OpTypeFloat 32
%7 = OpConstant %8 0.0
%9 = OpTypeImage %8 1D 0 0 0 1 Unknown
%10 = OpTypeVector %8 4
%11 = OpTypeImage %8 2D 0 0 0 1 Unknown
%12 = OpTypeVector %4 2
%13 = OpTypeImage %8 2D 0 1 0 1 Unknown
%14 = OpTypeImage %8 3D 0 0 0 1 Unknown
%15 = OpTypeVector %4 3
%16 = OpTypeImage %8 2D 0 0 1 1 Unknown
%17 = OpTypeImage %8 2D 1 0 0 1 Unknown
%18 = OpTypeImage %8 2D 1 1 0 1 Unknown
%19 = OpTypeImage %8 2D 1 0 1 1 Unknown
%20 = OpTypeImage %8 1D 0 0 0 2 Rgba8
%21 = OpTypeImage %8 2D 0 0 0 2 Rgba8
%22 = OpTypeImage %8 2D 0 1 0 2 Rgba8
%23 = OpTypeImage %8 3D 0 0 0 2 Rgba8
%25 = OpTypePointer UniformConstant %9
%24 = OpVariable %25 UniformConstant
%27 = OpTypePointer UniformConstant %11
%26 = OpVariable %27 UniformConstant
%29 = OpTypePointer UniformConstant %13
%28 = OpVariable %29 UniformConstant
%31 = OpTypePointer UniformConstant %14
%30 = OpVariable %31 UniformConstant
%33 = OpTypePointer UniformConstant %16
%32 = OpVariable %33 UniformConstant
%35 = OpTypePointer UniformConstant %17
%34 = OpVariable %35 UniformConstant
%37 = OpTypePointer UniformConstant %18
%36 = OpVariable %37 UniformConstant
%39 = OpTypePointer UniformConstant %19
%38 = OpVariable %39 UniformConstant
%41 = OpTypePointer UniformConstant %20
%40 = OpVariable %41 UniformConstant
%43 = OpTypePointer UniformConstant %21
%42 = OpVariable %43 UniformConstant
%45 = OpTypePointer UniformConstant %22
%44 = OpVariable %45 UniformConstant
%47 = OpTypePointer UniformConstant %23
%46 = OpVariable %47 UniformConstant
%52 = OpTypeFunction %10 %4 %4
%56 = OpConstant %4 1
%67 = OpTypeFunction %10 %12 %4
%74 = OpConstantComposite %12 %56 %56
%83 = OpTypeFunction %10 %12 %6 %4
%92 = OpConstantComposite %15 %56 %56 %56
%101 = OpTypeFunction %10 %12 %4 %4
%109 = OpConstantComposite %15 %56 %56 %56
%117 = OpTypeFunction %10 %15 %4
%124 = OpConstantComposite %15 %56 %56 %56
%138 = OpConstantComposite %12 %56 %56
%146 = OpTypeFunction %8 %12 %4
%153 = OpConstantComposite %12 %56 %56
%163 = OpTypeFunction %8 %12 %6 %4
%172 = OpConstantComposite %15 %56 %56 %56
%182 = OpTypeFunction %8 %12 %4 %4
%190 = OpConstantComposite %15 %56 %56 %56
%205 = OpConstantComposite %12 %56 %56
%214 = OpTypeFunction %2 %4 %10
%224 = OpTypeFunction %2 %12 %10
%228 = OpConstantComposite %12 %56 %56
%236 = OpTypeFunction %2 %12 %6 %10
%242 = OpConstantComposite %15 %56 %56 %56
%250 = OpTypeFunction %2 %12 %4 %10
%255 = OpConstantComposite %15 %56 %56 %56
%262 = OpTypeFunction %2 %15 %10
%266 = OpConstantComposite %15 %56 %56 %56
%271 = OpTypePointer Output %10
%270 = OpVariable %271 Output
%273 = OpTypeFunction %2
%283 = OpConstantNull %12
%284 = OpConstantNull %12
%4 = OpTypeFloat 32
%3 = OpTypeImage %4 1D 0 0 0 1 Unknown
%5 = OpTypeInt 32 1
%6 = OpTypeVector %4 4
%7 = OpTypeImage %4 2D 0 0 0 1 Unknown
%8 = OpTypeVector %5 2
%9 = OpTypeImage %4 2D 0 1 0 1 Unknown
%10 = OpTypeInt 32 0
%11 = OpTypeImage %4 3D 0 0 0 1 Unknown
%12 = OpTypeVector %5 3
%13 = OpTypeImage %4 2D 0 0 1 1 Unknown
%14 = OpTypeImage %4 2D 1 0 0 1 Unknown
%15 = OpTypeImage %4 2D 1 1 0 1 Unknown
%16 = OpTypeImage %4 2D 1 0 1 1 Unknown
%17 = OpTypeImage %4 1D 0 0 0 2 Rgba8
%18 = OpTypeImage %4 2D 0 0 0 2 Rgba8
%19 = OpTypeImage %4 2D 0 1 0 2 Rgba8
%20 = OpTypeImage %4 3D 0 0 0 2 Rgba8
%22 = OpTypePointer UniformConstant %3
%21 = OpVariable %22 UniformConstant
%24 = OpTypePointer UniformConstant %7
%23 = OpVariable %24 UniformConstant
%26 = OpTypePointer UniformConstant %9
%25 = OpVariable %26 UniformConstant
%28 = OpTypePointer UniformConstant %11
%27 = OpVariable %28 UniformConstant
%30 = OpTypePointer UniformConstant %13
%29 = OpVariable %30 UniformConstant
%32 = OpTypePointer UniformConstant %14
%31 = OpVariable %32 UniformConstant
%34 = OpTypePointer UniformConstant %15
%33 = OpVariable %34 UniformConstant
%36 = OpTypePointer UniformConstant %16
%35 = OpVariable %36 UniformConstant
%38 = OpTypePointer UniformConstant %17
%37 = OpVariable %38 UniformConstant
%40 = OpTypePointer UniformConstant %18
%39 = OpVariable %40 UniformConstant
%42 = OpTypePointer UniformConstant %19
%41 = OpVariable %42 UniformConstant
%44 = OpTypePointer UniformConstant %20
%43 = OpVariable %44 UniformConstant
%49 = OpTypeFunction %6 %5 %5
%53 = OpConstant %5 1
%64 = OpTypeFunction %6 %8 %5
%71 = OpConstantComposite %8 %53 %53
%80 = OpTypeFunction %6 %8 %10 %5
%89 = OpConstantComposite %12 %53 %53 %53
%98 = OpTypeFunction %6 %8 %5 %5
%106 = OpConstantComposite %12 %53 %53 %53
%114 = OpTypeFunction %6 %12 %5
%121 = OpConstantComposite %12 %53 %53 %53
%135 = OpConstantComposite %8 %53 %53
%143 = OpTypeFunction %4 %8 %5
%150 = OpConstantComposite %8 %53 %53
%160 = OpTypeFunction %4 %8 %10 %5
%169 = OpConstantComposite %12 %53 %53 %53
%179 = OpTypeFunction %4 %8 %5 %5
%187 = OpConstantComposite %12 %53 %53 %53
%202 = OpConstantComposite %8 %53 %53
%211 = OpTypeFunction %2 %5 %6
%221 = OpTypeFunction %2 %8 %6
%225 = OpConstantComposite %8 %53 %53
%233 = OpTypeFunction %2 %8 %10 %6
%239 = OpConstantComposite %12 %53 %53 %53
%247 = OpTypeFunction %2 %8 %5 %6
%252 = OpConstantComposite %12 %53 %53 %53
%259 = OpTypeFunction %2 %12 %6
%263 = OpConstantComposite %12 %53 %53 %53
%268 = OpTypePointer Output %6
%267 = OpVariable %268 Output
%270 = OpTypeFunction %2
%280 = OpConstant %5 0
%281 = OpConstantNull %8
%282 = OpConstantNull %8
%283 = OpConstant %10 0
%284 = OpConstantNull %8
%285 = OpConstantNull %12
%286 = OpConstantNull %15
%287 = OpConstantNull %12
%288 = OpConstantNull %10
%289 = OpConstantNull %12
%290 = OpConstantNull %10
%291 = OpConstantNull %12
%292 = OpConstantNull %10
%293 = OpConstantNull %12
%294 = OpConstantNull %10
%295 = OpConstantNull %15
%296 = OpConstantNull %10
%51 = OpFunction %10 None %52
%49 = OpFunctionParameter %4
%50 = OpFunctionParameter %4
%48 = OpLabel
%53 = OpLoad %9 %24
OpBranch %54
%54 = OpLabel
%55 = OpImageQueryLevels %4 %53
%57 = OpISub %4 %55 %56
%58 = OpExtInst %4 %1 UMin %50 %57
%59 = OpImageQuerySizeLod %4 %53 %58
%60 = OpISub %4 %59 %56
%61 = OpExtInst %4 %1 UMin %49 %60
%62 = OpImageFetch %10 %53 %61 Lod %58
OpReturnValue %62
%286 = OpConstantNull %8
%287 = OpConstantNull %6
%288 = OpConstantNull %8
%289 = OpConstantNull %6
%290 = OpConstantNull %8
%291 = OpConstantNull %6
%292 = OpConstantNull %8
%293 = OpConstantNull %6
%294 = OpConstantNull %12
%295 = OpConstantNull %6
%296 = OpConstant %4 0.0
%48 = OpFunction %6 None %49
%46 = OpFunctionParameter %5
%47 = OpFunctionParameter %5
%45 = OpLabel
%50 = OpLoad %3 %21
OpBranch %51
%51 = OpLabel
%52 = OpImageQueryLevels %5 %50
%54 = OpISub %5 %52 %53
%55 = OpExtInst %5 %1 UMin %47 %54
%56 = OpImageQuerySizeLod %5 %50 %55
%57 = OpISub %5 %56 %53
%58 = OpExtInst %5 %1 UMin %46 %57
%59 = OpImageFetch %6 %50 %58 Lod %55
OpReturnValue %59
OpFunctionEnd
%66 = OpFunction %10 None %67
%64 = OpFunctionParameter %12
%65 = OpFunctionParameter %4
%63 = OpLabel
%68 = OpLoad %11 %26
OpBranch %69
%69 = OpLabel
%70 = OpImageQueryLevels %4 %68
%71 = OpISub %4 %70 %56
%72 = OpExtInst %4 %1 UMin %65 %71
%73 = OpImageQuerySizeLod %12 %68 %72
%75 = OpISub %12 %73 %74
%76 = OpExtInst %12 %1 UMin %64 %75
%77 = OpImageFetch %10 %68 %76 Lod %72
OpReturnValue %77
%63 = OpFunction %6 None %64
%61 = OpFunctionParameter %8
%62 = OpFunctionParameter %5
%60 = OpLabel
%65 = OpLoad %7 %23
OpBranch %66
%66 = OpLabel
%67 = OpImageQueryLevels %5 %65
%68 = OpISub %5 %67 %53
%69 = OpExtInst %5 %1 UMin %62 %68
%70 = OpImageQuerySizeLod %8 %65 %69
%72 = OpISub %8 %70 %71
%73 = OpExtInst %8 %1 UMin %61 %72
%74 = OpImageFetch %6 %65 %73 Lod %69
OpReturnValue %74
OpFunctionEnd
%82 = OpFunction %10 None %83
%79 = OpFunctionParameter %12
%80 = OpFunctionParameter %6
%81 = OpFunctionParameter %4
%78 = OpLabel
%84 = OpLoad %13 %28
OpBranch %85
%85 = OpLabel
%86 = OpBitcast %4 %80
%87 = OpCompositeConstruct %15 %79 %86
%88 = OpImageQueryLevels %4 %84
%89 = OpISub %4 %88 %56
%90 = OpExtInst %4 %1 UMin %81 %89
%91 = OpImageQuerySizeLod %15 %84 %90
%93 = OpISub %15 %91 %92
%94 = OpExtInst %15 %1 UMin %87 %93
%95 = OpImageFetch %10 %84 %94 Lod %90
OpReturnValue %95
%79 = OpFunction %6 None %80
%76 = OpFunctionParameter %8
%77 = OpFunctionParameter %10
%78 = OpFunctionParameter %5
%75 = OpLabel
%81 = OpLoad %9 %25
OpBranch %82
%82 = OpLabel
%83 = OpBitcast %5 %77
%84 = OpCompositeConstruct %12 %76 %83
%85 = OpImageQueryLevels %5 %81
%86 = OpISub %5 %85 %53
%87 = OpExtInst %5 %1 UMin %78 %86
%88 = OpImageQuerySizeLod %12 %81 %87
%90 = OpISub %12 %88 %89
%91 = OpExtInst %12 %1 UMin %84 %90
%92 = OpImageFetch %6 %81 %91 Lod %87
OpReturnValue %92
OpFunctionEnd
%100 = OpFunction %10 None %101
%97 = OpFunctionParameter %12
%98 = OpFunctionParameter %4
%99 = OpFunctionParameter %4
%96 = OpLabel
%102 = OpLoad %13 %28
OpBranch %103
%103 = OpLabel
%104 = OpCompositeConstruct %15 %97 %98
%105 = OpImageQueryLevels %4 %102
%106 = OpISub %4 %105 %56
%107 = OpExtInst %4 %1 UMin %99 %106
%108 = OpImageQuerySizeLod %15 %102 %107
%110 = OpISub %15 %108 %109
%111 = OpExtInst %15 %1 UMin %104 %110
%112 = OpImageFetch %10 %102 %111 Lod %107
OpReturnValue %112
%97 = OpFunction %6 None %98
%94 = OpFunctionParameter %8
%95 = OpFunctionParameter %5
%96 = OpFunctionParameter %5
%93 = OpLabel
%99 = OpLoad %9 %25
OpBranch %100
%100 = OpLabel
%101 = OpCompositeConstruct %12 %94 %95
%102 = OpImageQueryLevels %5 %99
%103 = OpISub %5 %102 %53
%104 = OpExtInst %5 %1 UMin %96 %103
%105 = OpImageQuerySizeLod %12 %99 %104
%107 = OpISub %12 %105 %106
%108 = OpExtInst %12 %1 UMin %101 %107
%109 = OpImageFetch %6 %99 %108 Lod %104
OpReturnValue %109
OpFunctionEnd
%116 = OpFunction %10 None %117
%114 = OpFunctionParameter %15
%115 = OpFunctionParameter %4
%113 = OpLabel
%118 = OpLoad %14 %30
OpBranch %119
%119 = OpLabel
%120 = OpImageQueryLevels %4 %118
%121 = OpISub %4 %120 %56
%122 = OpExtInst %4 %1 UMin %115 %121
%123 = OpImageQuerySizeLod %15 %118 %122
%125 = OpISub %15 %123 %124
%126 = OpExtInst %15 %1 UMin %114 %125
%127 = OpImageFetch %10 %118 %126 Lod %122
OpReturnValue %127
%113 = OpFunction %6 None %114
%111 = OpFunctionParameter %12
%112 = OpFunctionParameter %5
%110 = OpLabel
%115 = OpLoad %11 %27
OpBranch %116
%116 = OpLabel
%117 = OpImageQueryLevels %5 %115
%118 = OpISub %5 %117 %53
%119 = OpExtInst %5 %1 UMin %112 %118
%120 = OpImageQuerySizeLod %12 %115 %119
%122 = OpISub %12 %120 %121
%123 = OpExtInst %12 %1 UMin %111 %122
%124 = OpImageFetch %6 %115 %123 Lod %119
OpReturnValue %124
OpFunctionEnd
%131 = OpFunction %10 None %67
%129 = OpFunctionParameter %12
%130 = OpFunctionParameter %4
%128 = OpLabel
%132 = OpLoad %16 %32
OpBranch %133
%133 = OpLabel
%134 = OpImageQuerySamples %4 %132
%135 = OpISub %4 %134 %56
%136 = OpExtInst %4 %1 UMin %130 %135
%137 = OpImageQuerySize %12 %132
%139 = OpISub %12 %137 %138
%140 = OpExtInst %12 %1 UMin %129 %139
%141 = OpImageFetch %10 %132 %140 Sample %136
OpReturnValue %141
%128 = OpFunction %6 None %64
%126 = OpFunctionParameter %8
%127 = OpFunctionParameter %5
%125 = OpLabel
%129 = OpLoad %13 %29
OpBranch %130
%130 = OpLabel
%131 = OpImageQuerySamples %5 %129
%132 = OpISub %5 %131 %53
%133 = OpExtInst %5 %1 UMin %127 %132
%134 = OpImageQuerySize %8 %129
%136 = OpISub %8 %134 %135
%137 = OpExtInst %8 %1 UMin %126 %136
%138 = OpImageFetch %6 %129 %137 Sample %133
OpReturnValue %138
OpFunctionEnd
%145 = OpFunction %8 None %146
%143 = OpFunctionParameter %12
%144 = OpFunctionParameter %4
%142 = OpLabel
%147 = OpLoad %17 %34
OpBranch %148
%148 = OpLabel
%149 = OpImageQueryLevels %4 %147
%150 = OpISub %4 %149 %56
%151 = OpExtInst %4 %1 UMin %144 %150
%152 = OpImageQuerySizeLod %12 %147 %151
%154 = OpISub %12 %152 %153
%155 = OpExtInst %12 %1 UMin %143 %154
%156 = OpImageFetch %10 %147 %155 Lod %151
%157 = OpCompositeExtract %8 %156 0
OpReturnValue %157
%142 = OpFunction %4 None %143
%140 = OpFunctionParameter %8
%141 = OpFunctionParameter %5
%139 = OpLabel
%144 = OpLoad %14 %31
OpBranch %145
%145 = OpLabel
%146 = OpImageQueryLevels %5 %144
%147 = OpISub %5 %146 %53
%148 = OpExtInst %5 %1 UMin %141 %147
%149 = OpImageQuerySizeLod %8 %144 %148
%151 = OpISub %8 %149 %150
%152 = OpExtInst %8 %1 UMin %140 %151
%153 = OpImageFetch %6 %144 %152 Lod %148
%154 = OpCompositeExtract %4 %153 0
OpReturnValue %154
OpFunctionEnd
%162 = OpFunction %8 None %163
%159 = OpFunctionParameter %12
%160 = OpFunctionParameter %6
%161 = OpFunctionParameter %4
%158 = OpLabel
%164 = OpLoad %18 %36
OpBranch %165
%165 = OpLabel
%166 = OpBitcast %4 %160
%167 = OpCompositeConstruct %15 %159 %166
%168 = OpImageQueryLevels %4 %164
%169 = OpISub %4 %168 %56
%170 = OpExtInst %4 %1 UMin %161 %169
%171 = OpImageQuerySizeLod %15 %164 %170
%173 = OpISub %15 %171 %172
%174 = OpExtInst %15 %1 UMin %167 %173
%175 = OpImageFetch %10 %164 %174 Lod %170
%176 = OpCompositeExtract %8 %175 0
OpReturnValue %176
%159 = OpFunction %4 None %160
%156 = OpFunctionParameter %8
%157 = OpFunctionParameter %10
%158 = OpFunctionParameter %5
%155 = OpLabel
%161 = OpLoad %15 %33
OpBranch %162
%162 = OpLabel
%163 = OpBitcast %5 %157
%164 = OpCompositeConstruct %12 %156 %163
%165 = OpImageQueryLevels %5 %161
%166 = OpISub %5 %165 %53
%167 = OpExtInst %5 %1 UMin %158 %166
%168 = OpImageQuerySizeLod %12 %161 %167
%170 = OpISub %12 %168 %169
%171 = OpExtInst %12 %1 UMin %164 %170
%172 = OpImageFetch %6 %161 %171 Lod %167
%173 = OpCompositeExtract %4 %172 0
OpReturnValue %173
OpFunctionEnd
%181 = OpFunction %8 None %182
%178 = OpFunctionParameter %12
%179 = OpFunctionParameter %4
%180 = OpFunctionParameter %4
%177 = OpLabel
%183 = OpLoad %18 %36
OpBranch %184
%184 = OpLabel
%185 = OpCompositeConstruct %15 %178 %179
%186 = OpImageQueryLevels %4 %183
%187 = OpISub %4 %186 %56
%188 = OpExtInst %4 %1 UMin %180 %187
%189 = OpImageQuerySizeLod %15 %183 %188
%191 = OpISub %15 %189 %190
%192 = OpExtInst %15 %1 UMin %185 %191
%193 = OpImageFetch %10 %183 %192 Lod %188
%194 = OpCompositeExtract %8 %193 0
OpReturnValue %194
%178 = OpFunction %4 None %179
%175 = OpFunctionParameter %8
%176 = OpFunctionParameter %5
%177 = OpFunctionParameter %5
%174 = OpLabel
%180 = OpLoad %15 %33
OpBranch %181
%181 = OpLabel
%182 = OpCompositeConstruct %12 %175 %176
%183 = OpImageQueryLevels %5 %180
%184 = OpISub %5 %183 %53
%185 = OpExtInst %5 %1 UMin %177 %184
%186 = OpImageQuerySizeLod %12 %180 %185
%188 = OpISub %12 %186 %187
%189 = OpExtInst %12 %1 UMin %182 %188
%190 = OpImageFetch %6 %180 %189 Lod %185
%191 = OpCompositeExtract %4 %190 0
OpReturnValue %191
OpFunctionEnd
%198 = OpFunction %8 None %146
%196 = OpFunctionParameter %12
%197 = OpFunctionParameter %4
%195 = OpLabel
%199 = OpLoad %19 %38
OpBranch %200
%200 = OpLabel
%201 = OpImageQuerySamples %4 %199
%202 = OpISub %4 %201 %56
%203 = OpExtInst %4 %1 UMin %197 %202
%204 = OpImageQuerySize %12 %199
%206 = OpISub %12 %204 %205
%207 = OpExtInst %12 %1 UMin %196 %206
%208 = OpImageFetch %10 %199 %207 Sample %203
%209 = OpCompositeExtract %8 %208 0
OpReturnValue %209
%195 = OpFunction %4 None %143
%193 = OpFunctionParameter %8
%194 = OpFunctionParameter %5
%192 = OpLabel
%196 = OpLoad %16 %35
OpBranch %197
%197 = OpLabel
%198 = OpImageQuerySamples %5 %196
%199 = OpISub %5 %198 %53
%200 = OpExtInst %5 %1 UMin %194 %199
%201 = OpImageQuerySize %8 %196
%203 = OpISub %8 %201 %202
%204 = OpExtInst %8 %1 UMin %193 %203
%205 = OpImageFetch %6 %196 %204 Sample %200
%206 = OpCompositeExtract %4 %205 0
OpReturnValue %206
OpFunctionEnd
%213 = OpFunction %2 None %214
%211 = OpFunctionParameter %4
%212 = OpFunctionParameter %10
%210 = OpLabel
%215 = OpLoad %20 %40
OpBranch %216
%216 = OpLabel
%217 = OpImageQuerySize %4 %215
%218 = OpISub %4 %217 %56
%219 = OpExtInst %4 %1 UMin %211 %218
OpImageWrite %215 %219 %212
%210 = OpFunction %2 None %211
%208 = OpFunctionParameter %5
%209 = OpFunctionParameter %6
%207 = OpLabel
%212 = OpLoad %17 %37
OpBranch %213
%213 = OpLabel
%214 = OpImageQuerySize %5 %212
%215 = OpISub %5 %214 %53
%216 = OpExtInst %5 %1 UMin %208 %215
OpImageWrite %212 %216 %209
OpReturn
OpFunctionEnd
%223 = OpFunction %2 None %224
%221 = OpFunctionParameter %12
%222 = OpFunctionParameter %10
%220 = OpLabel
%225 = OpLoad %21 %42
OpBranch %226
%226 = OpLabel
%227 = OpImageQuerySize %12 %225
%229 = OpISub %12 %227 %228
%230 = OpExtInst %12 %1 UMin %221 %229
OpImageWrite %225 %230 %222
%220 = OpFunction %2 None %221
%218 = OpFunctionParameter %8
%219 = OpFunctionParameter %6
%217 = OpLabel
%222 = OpLoad %18 %39
OpBranch %223
%223 = OpLabel
%224 = OpImageQuerySize %8 %222
%226 = OpISub %8 %224 %225
%227 = OpExtInst %8 %1 UMin %218 %226
OpImageWrite %222 %227 %219
OpReturn
OpFunctionEnd
%235 = OpFunction %2 None %236
%232 = OpFunctionParameter %12
%233 = OpFunctionParameter %6
%234 = OpFunctionParameter %10
%231 = OpLabel
%237 = OpLoad %22 %44
OpBranch %238
%238 = OpLabel
%239 = OpBitcast %4 %233
%240 = OpCompositeConstruct %15 %232 %239
%241 = OpImageQuerySize %15 %237
%243 = OpISub %15 %241 %242
%244 = OpExtInst %15 %1 UMin %240 %243
OpImageWrite %237 %244 %234
%232 = OpFunction %2 None %233
%229 = OpFunctionParameter %8
%230 = OpFunctionParameter %10
%231 = OpFunctionParameter %6
%228 = OpLabel
%234 = OpLoad %19 %41
OpBranch %235
%235 = OpLabel
%236 = OpBitcast %5 %230
%237 = OpCompositeConstruct %12 %229 %236
%238 = OpImageQuerySize %12 %234
%240 = OpISub %12 %238 %239
%241 = OpExtInst %12 %1 UMin %237 %240
OpImageWrite %234 %241 %231
OpReturn
OpFunctionEnd
%249 = OpFunction %2 None %250
%246 = OpFunctionParameter %12
%247 = OpFunctionParameter %4
%248 = OpFunctionParameter %10
%245 = OpLabel
%251 = OpLoad %22 %44
OpBranch %252
%252 = OpLabel
%253 = OpCompositeConstruct %15 %246 %247
%254 = OpImageQuerySize %15 %251
%256 = OpISub %15 %254 %255
%257 = OpExtInst %15 %1 UMin %253 %256
OpImageWrite %251 %257 %248
%246 = OpFunction %2 None %247
%243 = OpFunctionParameter %8
%244 = OpFunctionParameter %5
%245 = OpFunctionParameter %6
%242 = OpLabel
%248 = OpLoad %19 %41
OpBranch %249
%249 = OpLabel
%250 = OpCompositeConstruct %12 %243 %244
%251 = OpImageQuerySize %12 %248
%253 = OpISub %12 %251 %252
%254 = OpExtInst %12 %1 UMin %250 %253
OpImageWrite %248 %254 %245
OpReturn
OpFunctionEnd
%261 = OpFunction %2 None %262
%259 = OpFunctionParameter %15
%260 = OpFunctionParameter %10
%258 = OpLabel
%263 = OpLoad %23 %46
OpBranch %264
%264 = OpLabel
%265 = OpImageQuerySize %15 %263
%267 = OpISub %15 %265 %266
%268 = OpExtInst %15 %1 UMin %259 %267
OpImageWrite %263 %268 %260
%258 = OpFunction %2 None %259
%256 = OpFunctionParameter %12
%257 = OpFunctionParameter %6
%255 = OpLabel
%260 = OpLoad %20 %43
OpBranch %261
%261 = OpLabel
%262 = OpImageQuerySize %12 %260
%264 = OpISub %12 %262 %263
%265 = OpExtInst %12 %1 UMin %256 %264
OpImageWrite %260 %265 %257
OpReturn
OpFunctionEnd
%272 = OpFunction %2 None %273
%269 = OpLabel
%274 = OpLoad %9 %24
%275 = OpLoad %11 %26
%276 = OpLoad %13 %28
%277 = OpLoad %14 %30
%278 = OpLoad %16 %32
%279 = OpLoad %20 %40
%280 = OpLoad %21 %42
%281 = OpLoad %22 %44
%282 = OpLoad %23 %46
%269 = OpFunction %2 None %270
%266 = OpLabel
%271 = OpLoad %3 %21
%272 = OpLoad %7 %23
%273 = OpLoad %9 %25
%274 = OpLoad %11 %27
%275 = OpLoad %13 %29
%276 = OpLoad %17 %37
%277 = OpLoad %18 %39
%278 = OpLoad %19 %41
%279 = OpLoad %20 %43
OpBranch %297
%297 = OpLabel
%298 = OpFunctionCall %10 %51 %3 %3
%299 = OpFunctionCall %10 %66 %283 %3
%300 = OpFunctionCall %10 %82 %284 %5 %3
%301 = OpFunctionCall %10 %100 %285 %3 %3
%302 = OpFunctionCall %10 %116 %286 %3
%303 = OpFunctionCall %10 %131 %287 %3
%304 = OpFunctionCall %2 %213 %3 %288
%305 = OpFunctionCall %2 %223 %289 %290
%306 = OpFunctionCall %2 %235 %291 %5 %292
%307 = OpFunctionCall %2 %249 %293 %3 %294
%308 = OpFunctionCall %2 %261 %295 %296
%309 = OpCompositeConstruct %10 %7 %7 %7 %7
OpStore %270 %309
%298 = OpFunctionCall %6 %48 %280 %280
%299 = OpFunctionCall %6 %63 %281 %280
%300 = OpFunctionCall %6 %79 %282 %283 %280
%301 = OpFunctionCall %6 %97 %284 %280 %280
%302 = OpFunctionCall %6 %113 %285 %280
%303 = OpFunctionCall %6 %128 %286 %280
%304 = OpFunctionCall %2 %210 %280 %287
%305 = OpFunctionCall %2 %220 %288 %289
%306 = OpFunctionCall %2 %232 %290 %283 %291
%307 = OpFunctionCall %2 %246 %292 %280 %293
%308 = OpFunctionCall %2 %258 %294 %295
%309 = OpCompositeConstruct %6 %296 %296 %296 %296
OpStore %267 %309
OpReturn
OpFunctionEnd

File diff suppressed because it is too large Load Diff

View File

@@ -7,232 +7,232 @@ OpCapability Linkage
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpDecorate %10 ArrayStride 4
OpDecorate %13 ArrayStride 4
OpMemberDecorate %14 0 Offset 0
OpMemberDecorate %14 1 Offset 48
OpMemberDecorate %14 2 Offset 64
OpMemberDecorate %14 2 ColMajor
OpMemberDecorate %14 2 MatrixStride 16
OpMemberDecorate %14 3 Offset 112
OpDecorate %15 DescriptorSet 0
OpDecorate %15 Binding 0
OpDecorate %14 Block
OpDecorate %6 ArrayStride 4
OpDecorate %9 ArrayStride 4
OpMemberDecorate %10 0 Offset 0
OpMemberDecorate %10 1 Offset 48
OpMemberDecorate %10 2 Offset 64
OpMemberDecorate %10 2 ColMajor
OpMemberDecorate %10 2 MatrixStride 16
OpMemberDecorate %10 3 Offset 112
OpDecorate %11 DescriptorSet 0
OpDecorate %11 Binding 0
OpDecorate %10 Block
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 10
%6 = OpTypeFloat 32
%5 = OpConstant %6 100.0
%7 = OpConstant %4 9
%8 = OpConstant %4 3
%9 = OpConstant %4 2
%10 = OpTypeArray %6 %3
%11 = OpTypeVector %6 4
%12 = OpTypeMatrix %11 3
%13 = OpTypeRuntimeArray %6
%14 = OpTypeStruct %10 %11 %12 %13
%16 = OpTypePointer StorageBuffer %14
%15 = OpVariable %16 StorageBuffer
%20 = OpTypeFunction %6 %4
%22 = OpTypePointer StorageBuffer %10
%23 = OpTypePointer StorageBuffer %6
%25 = OpTypeInt 32 0
%24 = OpConstant %25 9
%27 = OpConstant %25 0
%34 = OpTypePointer StorageBuffer %13
%36 = OpConstant %25 1
%39 = OpConstant %25 3
%46 = OpTypePointer StorageBuffer %11
%47 = OpTypePointer StorageBuffer %6
%55 = OpTypeFunction %6 %11 %4
%62 = OpTypeFunction %11 %4
%64 = OpTypePointer StorageBuffer %12
%65 = OpTypePointer StorageBuffer %11
%66 = OpConstant %25 2
%74 = OpTypeFunction %6 %4 %4
%94 = OpTypeFunction %6
%108 = OpTypeFunction %2 %4 %6
%132 = OpTypeFunction %2 %4 %11
%141 = OpTypeFunction %2 %4 %4 %6
%161 = OpTypeFunction %2 %6
%19 = OpFunction %6 None %20
%18 = OpFunctionParameter %4
%5 = OpTypeFloat 32
%6 = OpTypeArray %5 %3
%7 = OpTypeVector %5 4
%8 = OpTypeMatrix %7 3
%9 = OpTypeRuntimeArray %5
%10 = OpTypeStruct %6 %7 %8 %9
%12 = OpTypePointer StorageBuffer %10
%11 = OpVariable %12 StorageBuffer
%16 = OpTypeFunction %5 %4
%18 = OpTypePointer StorageBuffer %6
%19 = OpTypePointer StorageBuffer %5
%21 = OpTypeInt 32 0
%20 = OpConstant %21 9
%23 = OpConstant %21 0
%30 = OpTypePointer StorageBuffer %9
%32 = OpConstant %21 1
%35 = OpConstant %21 3
%42 = OpTypePointer StorageBuffer %7
%43 = OpTypePointer StorageBuffer %5
%51 = OpTypeFunction %5 %7 %4
%58 = OpTypeFunction %7 %4
%60 = OpTypePointer StorageBuffer %8
%61 = OpTypePointer StorageBuffer %7
%62 = OpConstant %21 2
%70 = OpTypeFunction %5 %4 %4
%79 = OpConstant %5 100.0
%91 = OpTypeFunction %5
%92 = OpConstant %4 9
%93 = OpConstant %4 3
%94 = OpConstant %4 2
%108 = OpTypeFunction %2 %4 %5
%132 = OpTypeFunction %2 %4 %7
%141 = OpTypeFunction %2 %4 %4 %5
%161 = OpTypeFunction %2 %5
%15 = OpFunction %5 None %16
%14 = OpFunctionParameter %4
%13 = OpLabel
OpBranch %17
%17 = OpLabel
OpBranch %21
%21 = OpLabel
%26 = OpExtInst %25 %1 UMin %18 %24
%28 = OpAccessChain %23 %15 %27 %26
%29 = OpLoad %6 %28
OpReturnValue %29
%22 = OpExtInst %21 %1 UMin %14 %20
%24 = OpAccessChain %19 %11 %23 %22
%25 = OpLoad %5 %24
OpReturnValue %25
OpFunctionEnd
%32 = OpFunction %6 None %20
%31 = OpFunctionParameter %4
%30 = OpLabel
OpBranch %33
%33 = OpLabel
%35 = OpArrayLength %25 %15 3
%37 = OpISub %25 %35 %36
%38 = OpExtInst %25 %1 UMin %31 %37
%40 = OpAccessChain %23 %15 %39 %38
%41 = OpLoad %6 %40
OpReturnValue %41
%28 = OpFunction %5 None %16
%27 = OpFunctionParameter %4
%26 = OpLabel
OpBranch %29
%29 = OpLabel
%31 = OpArrayLength %21 %11 3
%33 = OpISub %21 %31 %32
%34 = OpExtInst %21 %1 UMin %27 %33
%36 = OpAccessChain %19 %11 %35 %34
%37 = OpLoad %5 %36
OpReturnValue %37
OpFunctionEnd
%44 = OpFunction %6 None %20
%43 = OpFunctionParameter %4
%42 = OpLabel
OpBranch %45
%45 = OpLabel
%48 = OpExtInst %25 %1 UMin %43 %39
%49 = OpAccessChain %47 %15 %36 %48
%50 = OpLoad %6 %49
OpReturnValue %50
%40 = OpFunction %5 None %16
%39 = OpFunctionParameter %4
%38 = OpLabel
OpBranch %41
%41 = OpLabel
%44 = OpExtInst %21 %1 UMin %39 %35
%45 = OpAccessChain %43 %11 %32 %44
%46 = OpLoad %5 %45
OpReturnValue %46
OpFunctionEnd
%54 = OpFunction %6 None %55
%52 = OpFunctionParameter %11
%53 = OpFunctionParameter %4
%51 = OpLabel
OpBranch %56
%56 = OpLabel
%57 = OpExtInst %25 %1 UMin %53 %39
%58 = OpVectorExtractDynamic %6 %52 %57
OpReturnValue %58
%50 = OpFunction %5 None %51
%48 = OpFunctionParameter %7
%49 = OpFunctionParameter %4
%47 = OpLabel
OpBranch %52
%52 = OpLabel
%53 = OpExtInst %21 %1 UMin %49 %35
%54 = OpVectorExtractDynamic %5 %48 %53
OpReturnValue %54
OpFunctionEnd
%61 = OpFunction %11 None %62
%60 = OpFunctionParameter %4
%57 = OpFunction %7 None %58
%56 = OpFunctionParameter %4
%55 = OpLabel
OpBranch %59
%59 = OpLabel
OpBranch %63
%63 = OpLabel
%67 = OpExtInst %25 %1 UMin %60 %66
%68 = OpAccessChain %65 %15 %66 %67
%69 = OpLoad %11 %68
OpReturnValue %69
%63 = OpExtInst %21 %1 UMin %56 %62
%64 = OpAccessChain %61 %11 %62 %63
%65 = OpLoad %7 %64
OpReturnValue %65
OpFunctionEnd
%73 = OpFunction %6 None %74
%71 = OpFunctionParameter %4
%72 = OpFunctionParameter %4
%70 = OpLabel
OpBranch %75
%75 = OpLabel
%76 = OpExtInst %25 %1 UMin %72 %39
%77 = OpExtInst %25 %1 UMin %71 %66
%78 = OpAccessChain %47 %15 %66 %77 %76
%79 = OpLoad %6 %78
OpReturnValue %79
%69 = OpFunction %5 None %70
%67 = OpFunctionParameter %4
%68 = OpFunctionParameter %4
%66 = OpLabel
OpBranch %71
%71 = OpLabel
%72 = OpExtInst %21 %1 UMin %68 %35
%73 = OpExtInst %21 %1 UMin %67 %62
%74 = OpAccessChain %43 %11 %62 %73 %72
%75 = OpLoad %5 %74
OpReturnValue %75
OpFunctionEnd
%82 = OpFunction %6 None %20
%81 = OpFunctionParameter %4
%78 = OpFunction %5 None %16
%77 = OpFunctionParameter %4
%76 = OpLabel
OpBranch %80
%80 = OpLabel
OpBranch %83
%83 = OpLabel
%84 = OpConvertSToF %6 %81
%85 = OpFDiv %6 %84 %5
%86 = OpExtInst %6 %1 Sin %85
%87 = OpFMul %6 %86 %5
%88 = OpConvertFToS %4 %87
%89 = OpExtInst %25 %1 UMin %88 %24
%90 = OpAccessChain %23 %15 %27 %89
%91 = OpLoad %6 %90
OpReturnValue %91
%81 = OpConvertSToF %5 %77
%82 = OpFDiv %5 %81 %79
%83 = OpExtInst %5 %1 Sin %82
%84 = OpFMul %5 %83 %79
%85 = OpConvertFToS %4 %84
%86 = OpExtInst %21 %1 UMin %85 %20
%87 = OpAccessChain %19 %11 %23 %86
%88 = OpLoad %5 %87
OpReturnValue %88
OpFunctionEnd
%93 = OpFunction %6 None %94
%92 = OpLabel
%90 = OpFunction %5 None %91
%89 = OpLabel
OpBranch %95
%95 = OpLabel
%96 = OpAccessChain %23 %15 %27 %24
%97 = OpLoad %6 %96
%98 = OpAccessChain %47 %15 %36 %39
%99 = OpLoad %6 %98
%100 = OpFAdd %6 %97 %99
%101 = OpAccessChain %47 %15 %66 %66 %39
%102 = OpLoad %6 %101
%103 = OpFAdd %6 %100 %102
%96 = OpAccessChain %19 %11 %23 %20
%97 = OpLoad %5 %96
%98 = OpAccessChain %43 %11 %32 %35
%99 = OpLoad %5 %98
%100 = OpFAdd %5 %97 %99
%101 = OpAccessChain %43 %11 %62 %62 %35
%102 = OpLoad %5 %101
%103 = OpFAdd %5 %100 %102
OpReturnValue %103
OpFunctionEnd
%107 = OpFunction %2 None %108
%105 = OpFunctionParameter %4
%106 = OpFunctionParameter %6
%106 = OpFunctionParameter %5
%104 = OpLabel
OpBranch %109
%109 = OpLabel
%110 = OpExtInst %25 %1 UMin %105 %24
%111 = OpAccessChain %23 %15 %27 %110
%110 = OpExtInst %21 %1 UMin %105 %20
%111 = OpAccessChain %19 %11 %23 %110
OpStore %111 %106
OpReturn
OpFunctionEnd
%115 = OpFunction %2 None %108
%113 = OpFunctionParameter %4
%114 = OpFunctionParameter %6
%114 = OpFunctionParameter %5
%112 = OpLabel
OpBranch %116
%116 = OpLabel
%117 = OpArrayLength %25 %15 3
%118 = OpISub %25 %117 %36
%119 = OpExtInst %25 %1 UMin %113 %118
%120 = OpAccessChain %23 %15 %39 %119
%117 = OpArrayLength %21 %11 3
%118 = OpISub %21 %117 %32
%119 = OpExtInst %21 %1 UMin %113 %118
%120 = OpAccessChain %19 %11 %35 %119
OpStore %120 %114
OpReturn
OpFunctionEnd
%124 = OpFunction %2 None %108
%122 = OpFunctionParameter %4
%123 = OpFunctionParameter %6
%123 = OpFunctionParameter %5
%121 = OpLabel
OpBranch %125
%125 = OpLabel
%126 = OpExtInst %25 %1 UMin %122 %39
%127 = OpAccessChain %47 %15 %36 %126
%126 = OpExtInst %21 %1 UMin %122 %35
%127 = OpAccessChain %43 %11 %32 %126
OpStore %127 %123
OpReturn
OpFunctionEnd
%131 = OpFunction %2 None %132
%129 = OpFunctionParameter %4
%130 = OpFunctionParameter %11
%130 = OpFunctionParameter %7
%128 = OpLabel
OpBranch %133
%133 = OpLabel
%134 = OpExtInst %25 %1 UMin %129 %66
%135 = OpAccessChain %65 %15 %66 %134
%134 = OpExtInst %21 %1 UMin %129 %62
%135 = OpAccessChain %61 %11 %62 %134
OpStore %135 %130
OpReturn
OpFunctionEnd
%140 = OpFunction %2 None %141
%137 = OpFunctionParameter %4
%138 = OpFunctionParameter %4
%139 = OpFunctionParameter %6
%139 = OpFunctionParameter %5
%136 = OpLabel
OpBranch %142
%142 = OpLabel
%143 = OpExtInst %25 %1 UMin %138 %39
%144 = OpExtInst %25 %1 UMin %137 %66
%145 = OpAccessChain %47 %15 %66 %144 %143
%143 = OpExtInst %21 %1 UMin %138 %35
%144 = OpExtInst %21 %1 UMin %137 %62
%145 = OpAccessChain %43 %11 %62 %144 %143
OpStore %145 %139
OpReturn
OpFunctionEnd
%149 = OpFunction %2 None %108
%147 = OpFunctionParameter %4
%148 = OpFunctionParameter %6
%148 = OpFunctionParameter %5
%146 = OpLabel
OpBranch %150
%150 = OpLabel
%151 = OpConvertSToF %6 %147
%152 = OpFDiv %6 %151 %5
%153 = OpExtInst %6 %1 Sin %152
%154 = OpFMul %6 %153 %5
%151 = OpConvertSToF %5 %147
%152 = OpFDiv %5 %151 %79
%153 = OpExtInst %5 %1 Sin %152
%154 = OpFMul %5 %153 %79
%155 = OpConvertFToS %4 %154
%156 = OpExtInst %25 %1 UMin %155 %24
%157 = OpAccessChain %23 %15 %27 %156
%156 = OpExtInst %21 %1 UMin %155 %20
%157 = OpAccessChain %19 %11 %23 %156
OpStore %157 %148
OpReturn
OpFunctionEnd
%160 = OpFunction %2 None %161
%159 = OpFunctionParameter %6
%159 = OpFunctionParameter %5
%158 = OpLabel
OpBranch %162
%162 = OpLabel
%163 = OpAccessChain %23 %15 %27 %24
%163 = OpAccessChain %19 %11 %23 %20
OpStore %163 %159
%164 = OpAccessChain %47 %15 %36 %39
%164 = OpAccessChain %43 %11 %32 %35
OpStore %164 %159
%165 = OpAccessChain %47 %15 %66 %66 %39
%165 = OpAccessChain %43 %11 %62 %62 %35
OpStore %165 %159
OpReturn
OpFunctionEnd

View File

@@ -7,210 +7,210 @@ OpCapability Linkage
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpDecorate %10 ArrayStride 4
OpDecorate %13 ArrayStride 4
OpMemberDecorate %14 0 Offset 0
OpMemberDecorate %14 1 Offset 48
OpMemberDecorate %14 2 Offset 64
OpMemberDecorate %14 2 ColMajor
OpMemberDecorate %14 2 MatrixStride 16
OpMemberDecorate %14 3 Offset 112
OpDecorate %15 DescriptorSet 0
OpDecorate %15 Binding 0
OpDecorate %14 Block
OpDecorate %6 ArrayStride 4
OpDecorate %9 ArrayStride 4
OpMemberDecorate %10 0 Offset 0
OpMemberDecorate %10 1 Offset 48
OpMemberDecorate %10 2 Offset 64
OpMemberDecorate %10 2 ColMajor
OpMemberDecorate %10 2 MatrixStride 16
OpMemberDecorate %10 3 Offset 112
OpDecorate %11 DescriptorSet 0
OpDecorate %11 Binding 0
OpDecorate %10 Block
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 10
%6 = OpTypeFloat 32
%5 = OpConstant %6 100.0
%7 = OpConstant %4 9
%8 = OpConstant %4 3
%9 = OpConstant %4 2
%10 = OpTypeArray %6 %3
%11 = OpTypeVector %6 4
%12 = OpTypeMatrix %11 3
%13 = OpTypeRuntimeArray %6
%14 = OpTypeStruct %10 %11 %12 %13
%16 = OpTypePointer StorageBuffer %14
%15 = OpVariable %16 StorageBuffer
%20 = OpTypeFunction %6 %4
%22 = OpTypePointer StorageBuffer %10
%23 = OpTypePointer StorageBuffer %6
%25 = OpTypeInt 32 0
%24 = OpConstant %25 10
%27 = OpTypeBool
%28 = OpConstant %25 0
%30 = OpConstantNull %6
%39 = OpTypePointer StorageBuffer %13
%42 = OpConstant %25 3
%44 = OpConstantNull %6
%53 = OpTypePointer StorageBuffer %11
%54 = OpTypePointer StorageBuffer %6
%55 = OpConstant %25 4
%57 = OpConstant %25 1
%59 = OpConstantNull %6
%68 = OpTypeFunction %6 %11 %4
%71 = OpConstantNull %6
%79 = OpTypeFunction %11 %4
%81 = OpTypePointer StorageBuffer %12
%82 = OpTypePointer StorageBuffer %11
%84 = OpConstant %25 2
%86 = OpConstantNull %11
%95 = OpTypeFunction %6 %4 %4
%101 = OpConstantNull %6
%117 = OpConstantNull %6
%124 = OpTypeFunction %6
%126 = OpConstant %25 9
%139 = OpTypeFunction %2 %4 %6
%168 = OpTypeFunction %2 %4 %11
%179 = OpTypeFunction %2 %4 %4 %6
%204 = OpTypeFunction %2 %6
%19 = OpFunction %6 None %20
%18 = OpFunctionParameter %4
%5 = OpTypeFloat 32
%6 = OpTypeArray %5 %3
%7 = OpTypeVector %5 4
%8 = OpTypeMatrix %7 3
%9 = OpTypeRuntimeArray %5
%10 = OpTypeStruct %6 %7 %8 %9
%12 = OpTypePointer StorageBuffer %10
%11 = OpVariable %12 StorageBuffer
%16 = OpTypeFunction %5 %4
%18 = OpTypePointer StorageBuffer %6
%19 = OpTypePointer StorageBuffer %5
%21 = OpTypeInt 32 0
%20 = OpConstant %21 10
%23 = OpTypeBool
%24 = OpConstant %21 0
%26 = OpConstantNull %5
%35 = OpTypePointer StorageBuffer %9
%38 = OpConstant %21 3
%40 = OpConstantNull %5
%49 = OpTypePointer StorageBuffer %7
%50 = OpTypePointer StorageBuffer %5
%51 = OpConstant %21 4
%53 = OpConstant %21 1
%55 = OpConstantNull %5
%64 = OpTypeFunction %5 %7 %4
%67 = OpConstantNull %5
%75 = OpTypeFunction %7 %4
%77 = OpTypePointer StorageBuffer %8
%78 = OpTypePointer StorageBuffer %7
%80 = OpConstant %21 2
%82 = OpConstantNull %7
%91 = OpTypeFunction %5 %4 %4
%97 = OpConstantNull %5
%105 = OpConstant %5 100.0
%114 = OpConstantNull %5
%121 = OpTypeFunction %5
%122 = OpConstant %4 9
%123 = OpConstant %4 3
%124 = OpConstant %4 2
%126 = OpConstant %21 9
%139 = OpTypeFunction %2 %4 %5
%168 = OpTypeFunction %2 %4 %7
%179 = OpTypeFunction %2 %4 %4 %5
%204 = OpTypeFunction %2 %5
%15 = OpFunction %5 None %16
%14 = OpFunctionParameter %4
%13 = OpLabel
OpBranch %17
%17 = OpLabel
OpBranch %21
%21 = OpLabel
%26 = OpULessThan %27 %18 %24
OpSelectionMerge %31 None
OpBranchConditional %26 %32 %31
%32 = OpLabel
%29 = OpAccessChain %23 %15 %28 %18
%33 = OpLoad %6 %29
OpBranch %31
%22 = OpULessThan %23 %14 %20
OpSelectionMerge %27 None
OpBranchConditional %22 %28 %27
%28 = OpLabel
%25 = OpAccessChain %19 %11 %24 %14
%29 = OpLoad %5 %25
OpBranch %27
%27 = OpLabel
%30 = OpPhi %5 %26 %17 %29 %28
OpReturnValue %30
OpFunctionEnd
%33 = OpFunction %5 None %16
%32 = OpFunctionParameter %4
%31 = OpLabel
%34 = OpPhi %6 %30 %21 %33 %32
OpReturnValue %34
OpBranch %34
%34 = OpLabel
%36 = OpArrayLength %21 %11 3
%37 = OpULessThan %23 %32 %36
OpSelectionMerge %41 None
OpBranchConditional %37 %42 %41
%42 = OpLabel
%39 = OpAccessChain %19 %11 %38 %32
%43 = OpLoad %5 %39
OpBranch %41
%41 = OpLabel
%44 = OpPhi %5 %40 %34 %43 %42
OpReturnValue %44
OpFunctionEnd
%37 = OpFunction %6 None %20
%36 = OpFunctionParameter %4
%35 = OpLabel
OpBranch %38
%38 = OpLabel
%40 = OpArrayLength %25 %15 3
%41 = OpULessThan %27 %36 %40
OpSelectionMerge %45 None
OpBranchConditional %41 %46 %45
%46 = OpLabel
%43 = OpAccessChain %23 %15 %42 %36
%47 = OpLoad %6 %43
OpBranch %45
%47 = OpFunction %5 None %16
%46 = OpFunctionParameter %4
%45 = OpLabel
%48 = OpPhi %6 %44 %38 %47 %46
OpReturnValue %48
OpBranch %48
%48 = OpLabel
%52 = OpULessThan %23 %46 %51
OpSelectionMerge %56 None
OpBranchConditional %52 %57 %56
%57 = OpLabel
%54 = OpAccessChain %50 %11 %53 %46
%58 = OpLoad %5 %54
OpBranch %56
%56 = OpLabel
%59 = OpPhi %5 %55 %48 %58 %57
OpReturnValue %59
OpFunctionEnd
%51 = OpFunction %6 None %20
%50 = OpFunctionParameter %4
%49 = OpLabel
OpBranch %52
%52 = OpLabel
%56 = OpULessThan %27 %50 %55
OpSelectionMerge %60 None
OpBranchConditional %56 %61 %60
%61 = OpLabel
%58 = OpAccessChain %54 %15 %57 %50
%62 = OpLoad %6 %58
OpBranch %60
%63 = OpFunction %5 None %64
%61 = OpFunctionParameter %7
%62 = OpFunctionParameter %4
%60 = OpLabel
%63 = OpPhi %6 %59 %52 %62 %61
OpReturnValue %63
OpFunctionEnd
%67 = OpFunction %6 None %68
%65 = OpFunctionParameter %11
%66 = OpFunctionParameter %4
%64 = OpLabel
OpBranch %69
OpBranch %65
%65 = OpLabel
%66 = OpULessThan %23 %62 %51
OpSelectionMerge %68 None
OpBranchConditional %66 %69 %68
%69 = OpLabel
%70 = OpULessThan %27 %66 %55
OpSelectionMerge %72 None
OpBranchConditional %70 %73 %72
%73 = OpLabel
%74 = OpVectorExtractDynamic %6 %65 %66
OpBranch %72
%70 = OpVectorExtractDynamic %5 %61 %62
OpBranch %68
%68 = OpLabel
%71 = OpPhi %5 %67 %65 %70 %69
OpReturnValue %71
OpFunctionEnd
%74 = OpFunction %7 None %75
%73 = OpFunctionParameter %4
%72 = OpLabel
%75 = OpPhi %6 %71 %69 %74 %73
OpReturnValue %75
OpFunctionEnd
%78 = OpFunction %11 None %79
%77 = OpFunctionParameter %4
OpBranch %76
%76 = OpLabel
OpBranch %80
%80 = OpLabel
%83 = OpULessThan %27 %77 %42
OpSelectionMerge %87 None
OpBranchConditional %83 %88 %87
%88 = OpLabel
%85 = OpAccessChain %82 %15 %84 %77
%89 = OpLoad %11 %85
OpBranch %87
%79 = OpULessThan %23 %73 %38
OpSelectionMerge %83 None
OpBranchConditional %79 %84 %83
%84 = OpLabel
%81 = OpAccessChain %78 %11 %80 %73
%85 = OpLoad %7 %81
OpBranch %83
%83 = OpLabel
%86 = OpPhi %7 %82 %76 %85 %84
OpReturnValue %86
OpFunctionEnd
%90 = OpFunction %5 None %91
%88 = OpFunctionParameter %4
%89 = OpFunctionParameter %4
%87 = OpLabel
%90 = OpPhi %11 %86 %80 %89 %88
OpReturnValue %90
OpBranch %92
%92 = OpLabel
%93 = OpULessThan %23 %89 %51
%94 = OpULessThan %23 %88 %38
%95 = OpLogicalAnd %23 %93 %94
OpSelectionMerge %98 None
OpBranchConditional %95 %99 %98
%99 = OpLabel
%96 = OpAccessChain %50 %11 %80 %88 %89
%100 = OpLoad %5 %96
OpBranch %98
%98 = OpLabel
%101 = OpPhi %5 %97 %92 %100 %99
OpReturnValue %101
OpFunctionEnd
%94 = OpFunction %6 None %95
%92 = OpFunctionParameter %4
%93 = OpFunctionParameter %4
%91 = OpLabel
OpBranch %96
%96 = OpLabel
%97 = OpULessThan %27 %93 %55
%98 = OpULessThan %27 %92 %42
%99 = OpLogicalAnd %27 %97 %98
OpSelectionMerge %102 None
OpBranchConditional %99 %103 %102
%103 = OpLabel
%100 = OpAccessChain %54 %15 %84 %92 %93
%104 = OpLoad %6 %100
OpBranch %102
%104 = OpFunction %5 None %16
%103 = OpFunctionParameter %4
%102 = OpLabel
%105 = OpPhi %6 %101 %96 %104 %103
OpReturnValue %105
OpFunctionEnd
%108 = OpFunction %6 None %20
%107 = OpFunctionParameter %4
OpBranch %106
%106 = OpLabel
OpBranch %109
%109 = OpLabel
%110 = OpConvertSToF %6 %107
%111 = OpFDiv %6 %110 %5
%112 = OpExtInst %6 %1 Sin %111
%113 = OpFMul %6 %112 %5
%114 = OpConvertFToS %4 %113
%115 = OpULessThan %27 %114 %24
OpSelectionMerge %118 None
OpBranchConditional %115 %119 %118
%119 = OpLabel
%116 = OpAccessChain %23 %15 %28 %114
%120 = OpLoad %6 %116
OpBranch %118
%118 = OpLabel
%121 = OpPhi %6 %117 %109 %120 %119
OpReturnValue %121
%107 = OpConvertSToF %5 %103
%108 = OpFDiv %5 %107 %105
%109 = OpExtInst %5 %1 Sin %108
%110 = OpFMul %5 %109 %105
%111 = OpConvertFToS %4 %110
%112 = OpULessThan %23 %111 %20
OpSelectionMerge %115 None
OpBranchConditional %112 %116 %115
%116 = OpLabel
%113 = OpAccessChain %19 %11 %24 %111
%117 = OpLoad %5 %113
OpBranch %115
%115 = OpLabel
%118 = OpPhi %5 %114 %106 %117 %116
OpReturnValue %118
OpFunctionEnd
%123 = OpFunction %6 None %124
%122 = OpLabel
%120 = OpFunction %5 None %121
%119 = OpLabel
OpBranch %125
%125 = OpLabel
%127 = OpAccessChain %23 %15 %28 %126
%128 = OpLoad %6 %127
%129 = OpAccessChain %54 %15 %57 %42
%130 = OpLoad %6 %129
%131 = OpFAdd %6 %128 %130
%132 = OpAccessChain %54 %15 %84 %84 %42
%133 = OpLoad %6 %132
%134 = OpFAdd %6 %131 %133
%127 = OpAccessChain %19 %11 %24 %126
%128 = OpLoad %5 %127
%129 = OpAccessChain %50 %11 %53 %38
%130 = OpLoad %5 %129
%131 = OpFAdd %5 %128 %130
%132 = OpAccessChain %50 %11 %80 %80 %38
%133 = OpLoad %5 %132
%134 = OpFAdd %5 %131 %133
OpReturnValue %134
OpFunctionEnd
%138 = OpFunction %2 None %139
%136 = OpFunctionParameter %4
%137 = OpFunctionParameter %6
%137 = OpFunctionParameter %5
%135 = OpLabel
OpBranch %140
%140 = OpLabel
%141 = OpULessThan %27 %136 %24
%141 = OpULessThan %23 %136 %20
OpSelectionMerge %143 None
OpBranchConditional %141 %144 %143
%144 = OpLabel
%142 = OpAccessChain %23 %15 %28 %136
%142 = OpAccessChain %19 %11 %24 %136
OpStore %142 %137
OpBranch %143
%143 = OpLabel
@@ -218,16 +218,16 @@ OpReturn
OpFunctionEnd
%148 = OpFunction %2 None %139
%146 = OpFunctionParameter %4
%147 = OpFunctionParameter %6
%147 = OpFunctionParameter %5
%145 = OpLabel
OpBranch %149
%149 = OpLabel
%150 = OpArrayLength %25 %15 3
%151 = OpULessThan %27 %146 %150
%150 = OpArrayLength %21 %11 3
%151 = OpULessThan %23 %146 %150
OpSelectionMerge %153 None
OpBranchConditional %151 %154 %153
%154 = OpLabel
%152 = OpAccessChain %23 %15 %42 %146
%152 = OpAccessChain %19 %11 %38 %146
OpStore %152 %147
OpBranch %153
%153 = OpLabel
@@ -235,15 +235,15 @@ OpReturn
OpFunctionEnd
%158 = OpFunction %2 None %139
%156 = OpFunctionParameter %4
%157 = OpFunctionParameter %6
%157 = OpFunctionParameter %5
%155 = OpLabel
OpBranch %159
%159 = OpLabel
%160 = OpULessThan %27 %156 %55
%160 = OpULessThan %23 %156 %51
OpSelectionMerge %162 None
OpBranchConditional %160 %163 %162
%163 = OpLabel
%161 = OpAccessChain %54 %15 %57 %156
%161 = OpAccessChain %50 %11 %53 %156
OpStore %161 %157
OpBranch %162
%162 = OpLabel
@@ -251,15 +251,15 @@ OpReturn
OpFunctionEnd
%167 = OpFunction %2 None %168
%165 = OpFunctionParameter %4
%166 = OpFunctionParameter %11
%166 = OpFunctionParameter %7
%164 = OpLabel
OpBranch %169
%169 = OpLabel
%170 = OpULessThan %27 %165 %42
%170 = OpULessThan %23 %165 %38
OpSelectionMerge %172 None
OpBranchConditional %170 %173 %172
%173 = OpLabel
%171 = OpAccessChain %82 %15 %84 %165
%171 = OpAccessChain %78 %11 %80 %165
OpStore %171 %166
OpBranch %172
%172 = OpLabel
@@ -268,17 +268,17 @@ OpFunctionEnd
%178 = OpFunction %2 None %179
%175 = OpFunctionParameter %4
%176 = OpFunctionParameter %4
%177 = OpFunctionParameter %6
%177 = OpFunctionParameter %5
%174 = OpLabel
OpBranch %180
%180 = OpLabel
%181 = OpULessThan %27 %176 %55
%182 = OpULessThan %27 %175 %42
%183 = OpLogicalAnd %27 %181 %182
%181 = OpULessThan %23 %176 %51
%182 = OpULessThan %23 %175 %38
%183 = OpLogicalAnd %23 %181 %182
OpSelectionMerge %185 None
OpBranchConditional %183 %186 %185
%186 = OpLabel
%184 = OpAccessChain %54 %15 %84 %175 %176
%184 = OpAccessChain %50 %11 %80 %175 %176
OpStore %184 %177
OpBranch %185
%185 = OpLabel
@@ -286,35 +286,35 @@ OpReturn
OpFunctionEnd
%190 = OpFunction %2 None %139
%188 = OpFunctionParameter %4
%189 = OpFunctionParameter %6
%189 = OpFunctionParameter %5
%187 = OpLabel
OpBranch %191
%191 = OpLabel
%192 = OpConvertSToF %6 %188
%193 = OpFDiv %6 %192 %5
%194 = OpExtInst %6 %1 Sin %193
%195 = OpFMul %6 %194 %5
%192 = OpConvertSToF %5 %188
%193 = OpFDiv %5 %192 %105
%194 = OpExtInst %5 %1 Sin %193
%195 = OpFMul %5 %194 %105
%196 = OpConvertFToS %4 %195
%197 = OpULessThan %27 %196 %24
%197 = OpULessThan %23 %196 %20
OpSelectionMerge %199 None
OpBranchConditional %197 %200 %199
%200 = OpLabel
%198 = OpAccessChain %23 %15 %28 %196
%198 = OpAccessChain %19 %11 %24 %196
OpStore %198 %189
OpBranch %199
%199 = OpLabel
OpReturn
OpFunctionEnd
%203 = OpFunction %2 None %204
%202 = OpFunctionParameter %6
%202 = OpFunctionParameter %5
%201 = OpLabel
OpBranch %205
%205 = OpLabel
%206 = OpAccessChain %23 %15 %28 %126
%206 = OpAccessChain %19 %11 %24 %126
OpStore %206 %202
%207 = OpAccessChain %54 %15 %57 %42
%207 = OpAccessChain %50 %11 %53 %38
OpStore %207 %202
%208 = OpAccessChain %54 %15 %84 %84 %42
%208 = OpAccessChain %50 %11 %80 %80 %38
OpStore %208 %202
OpReturn
OpFunctionEnd

View File

@@ -8,17 +8,17 @@ OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %48 "main"
OpExecutionMode %48 LocalSize 1 1 1
%2 = OpTypeVoid
%4 = OpTypeBool
%3 = OpConstantTrue %4
%7 = OpTypeFunction %2
%14 = OpTypePointer Function %4
%15 = OpConstantNull %4
%17 = OpConstantNull %4
%21 = OpTypeFunction %2 %4
%32 = OpConstantNull %4
%34 = OpConstantNull %4
%6 = OpFunction %2 None %7
%5 = OpLabel
%3 = OpTypeBool
%6 = OpTypeFunction %2
%7 = OpConstantTrue %3
%14 = OpTypePointer Function %3
%15 = OpConstantNull %3
%17 = OpConstantNull %3
%21 = OpTypeFunction %2 %3
%32 = OpConstantNull %3
%34 = OpConstantNull %3
%5 = OpFunction %2 None %6
%4 = OpLabel
OpBranch %8
%8 = OpLabel
OpBranch %9
@@ -28,12 +28,12 @@ OpBranch %11
%11 = OpLabel
OpBranch %12
%12 = OpLabel
OpBranchConditional %3 %10 %9
OpBranchConditional %7 %10 %9
%10 = OpLabel
OpReturn
OpFunctionEnd
%20 = OpFunction %2 None %21
%19 = OpFunctionParameter %4
%19 = OpFunctionParameter %3
%18 = OpLabel
%13 = OpVariable %14 Function %15
%16 = OpVariable %14 Function %17
@@ -47,17 +47,17 @@ OpBranch %25
OpBranch %26
%26 = OpLabel
OpStore %13 %19
%27 = OpLoad %4 %13
%28 = OpLogicalNotEqual %4 %19 %27
%27 = OpLoad %3 %13
%28 = OpLogicalNotEqual %3 %19 %27
OpStore %16 %28
%29 = OpLoad %4 %16
%30 = OpLogicalEqual %4 %19 %29
%29 = OpLoad %3 %16
%30 = OpLogicalEqual %3 %19 %29
OpBranchConditional %30 %24 %23
%24 = OpLabel
OpReturn
OpFunctionEnd
%37 = OpFunction %2 None %21
%36 = OpFunctionParameter %4
%36 = OpFunctionParameter %3
%35 = OpLabel
%31 = OpVariable %14 Function %32
%33 = OpVariable %14 Function %34
@@ -69,18 +69,18 @@ OpLoopMerge %40 %42 None
OpBranch %41
%41 = OpLabel
OpStore %31 %36
%43 = OpLoad %4 %31
%44 = OpLogicalNotEqual %4 %36 %43
%43 = OpLoad %3 %31
%44 = OpLogicalNotEqual %3 %36 %43
OpStore %33 %44
OpBranch %42
%42 = OpLabel
%45 = OpLoad %4 %33
%46 = OpLogicalEqual %4 %36 %45
%45 = OpLoad %3 %33
%46 = OpLogicalEqual %3 %36 %45
OpBranchConditional %46 %40 %39
%40 = OpLabel
OpReturn
OpFunctionEnd
%48 = OpFunction %2 None %7
%48 = OpFunction %2 None %6
%47 = OpLabel
OpBranch %49
%49 = OpLabel

View File

@@ -9,58 +9,58 @@ OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %52 "main" %49
OpExecutionMode %52 LocalSize 1 1 1
OpSource GLSL 450
OpMemberName %9 0 "data"
OpName %9 "PrimeIndices"
OpName %11 "v_indices"
OpName %13 "n"
OpName %16 "i"
OpName %19 "n_base"
OpName %20 "collatz_iterations"
OpMemberName %5 0 "data"
OpName %5 "PrimeIndices"
OpName %7 "v_indices"
OpName %9 "n"
OpName %12 "i"
OpName %15 "n_base"
OpName %16 "collatz_iterations"
OpName %49 "global_id"
OpName %52 "main"
OpDecorate %8 ArrayStride 4
OpMemberDecorate %9 0 Offset 0
OpDecorate %11 DescriptorSet 0
OpDecorate %11 Binding 0
OpDecorate %9 Block
OpDecorate %4 ArrayStride 4
OpMemberDecorate %5 0 Offset 0
OpDecorate %7 DescriptorSet 0
OpDecorate %7 Binding 0
OpDecorate %5 Block
OpDecorate %49 BuiltIn GlobalInvocationId
%2 = OpTypeVoid
%4 = OpTypeInt 32 0
%3 = OpConstant %4 0
%5 = OpConstant %4 1
%6 = OpConstant %4 2
%7 = OpConstant %4 3
%8 = OpTypeRuntimeArray %4
%9 = OpTypeStruct %8
%10 = OpTypeVector %4 3
%12 = OpTypePointer StorageBuffer %9
%11 = OpVariable %12 StorageBuffer
%14 = OpTypePointer Function %4
%15 = OpConstantNull %4
%17 = OpConstantNull %4
%21 = OpTypeFunction %4 %4
%3 = OpTypeInt 32 0
%4 = OpTypeRuntimeArray %3
%5 = OpTypeStruct %4
%6 = OpTypeVector %3 3
%8 = OpTypePointer StorageBuffer %5
%7 = OpVariable %8 StorageBuffer
%10 = OpTypePointer Function %3
%11 = OpConstantNull %3
%13 = OpConstantNull %3
%17 = OpTypeFunction %3 %3
%18 = OpConstant %3 0
%19 = OpConstant %3 1
%20 = OpConstant %3 2
%21 = OpConstant %3 3
%28 = OpTypeBool
%50 = OpTypePointer Input %10
%50 = OpTypePointer Input %6
%49 = OpVariable %50 Input
%53 = OpTypeFunction %2
%55 = OpTypePointer StorageBuffer %8
%57 = OpTypePointer StorageBuffer %4
%20 = OpFunction %4 None %21
%19 = OpFunctionParameter %4
%18 = OpLabel
%13 = OpVariable %14 Function %15
%16 = OpVariable %14 Function %17
%55 = OpTypePointer StorageBuffer %4
%57 = OpTypePointer StorageBuffer %3
%16 = OpFunction %3 None %17
%15 = OpFunctionParameter %3
%14 = OpLabel
%9 = OpVariable %10 Function %11
%12 = OpVariable %10 Function %13
OpBranch %22
%22 = OpLabel
OpStore %13 %19
OpStore %16 %3
OpStore %9 %15
OpStore %12 %18
OpBranch %23
%23 = OpLabel
OpLoopMerge %24 %26 None
OpBranch %25
%25 = OpLabel
%27 = OpLoad %4 %13
%29 = OpUGreaterThan %28 %27 %5
%27 = OpLoad %3 %9
%29 = OpUGreaterThan %28 %27 %19
OpSelectionMerge %30 None
OpBranchConditional %29 %30 %31
%31 = OpLabel
@@ -68,46 +68,46 @@ OpBranch %24
%30 = OpLabel
OpBranch %32
%32 = OpLabel
%34 = OpLoad %4 %13
%35 = OpUMod %4 %34 %6
%36 = OpIEqual %28 %35 %3
%34 = OpLoad %3 %9
%35 = OpUMod %3 %34 %20
%36 = OpIEqual %28 %35 %18
OpSelectionMerge %37 None
OpBranchConditional %36 %38 %39
%38 = OpLabel
%40 = OpLoad %4 %13
%41 = OpUDiv %4 %40 %6
OpStore %13 %41
%40 = OpLoad %3 %9
%41 = OpUDiv %3 %40 %20
OpStore %9 %41
OpBranch %37
%39 = OpLabel
%42 = OpLoad %4 %13
%43 = OpIMul %4 %7 %42
%44 = OpIAdd %4 %43 %5
OpStore %13 %44
%42 = OpLoad %3 %9
%43 = OpIMul %3 %21 %42
%44 = OpIAdd %3 %43 %19
OpStore %9 %44
OpBranch %37
%37 = OpLabel
%45 = OpLoad %4 %16
%46 = OpIAdd %4 %45 %5
OpStore %16 %46
%45 = OpLoad %3 %12
%46 = OpIAdd %3 %45 %19
OpStore %12 %46
OpBranch %33
%33 = OpLabel
OpBranch %26
%26 = OpLabel
OpBranch %23
%24 = OpLabel
%47 = OpLoad %4 %16
%47 = OpLoad %3 %12
OpReturnValue %47
OpFunctionEnd
%52 = OpFunction %2 None %53
%48 = OpLabel
%51 = OpLoad %10 %49
%51 = OpLoad %6 %49
OpBranch %54
%54 = OpLabel
%56 = OpCompositeExtract %4 %51 0
%58 = OpCompositeExtract %4 %51 0
%59 = OpAccessChain %57 %11 %3 %58
%60 = OpLoad %4 %59
%61 = OpFunctionCall %4 %20 %60
%62 = OpAccessChain %57 %11 %3 %56
%56 = OpCompositeExtract %3 %51 0
%58 = OpCompositeExtract %3 %51 0
%59 = OpAccessChain %57 %7 %18 %58
%60 = OpLoad %3 %59
%61 = OpFunctionCall %3 %16 %60
%62 = OpAccessChain %57 %7 %18 %56
OpStore %62 %61
OpReturn
OpFunctionEnd

View File

@@ -5,133 +5,133 @@
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %44 "main" %41
OpExecutionMode %44 LocalSize 1 1 1
OpDecorate %41 BuiltIn GlobalInvocationId
OpEntryPoint GLCompute %39 "main" %36
OpExecutionMode %39 LocalSize 1 1 1
OpDecorate %36 BuiltIn GlobalInvocationId
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 1
%5 = OpConstant %4 0
%6 = OpConstant %4 2
%7 = OpConstant %4 3
%8 = OpConstant %4 4
%10 = OpTypeInt 32 0
%9 = OpConstant %10 0
%11 = OpTypeVector %10 3
%15 = OpTypeFunction %2 %4
%21 = OpTypeFunction %2
%38 = OpTypePointer Function %4
%39 = OpConstantNull %4
%42 = OpTypePointer Input %11
%41 = OpVariable %42 Input
%46 = OpConstant %10 2
%47 = OpConstant %10 1
%48 = OpConstant %10 72
%49 = OpConstant %10 264
%14 = OpFunction %2 None %15
%13 = OpFunctionParameter %4
%4 = OpTypeInt 32 0
%3 = OpTypeVector %4 3
%5 = OpTypeInt 32 1
%9 = OpTypeFunction %2 %5
%15 = OpTypeFunction %2
%16 = OpConstant %5 0
%33 = OpTypePointer Function %5
%34 = OpConstantNull %5
%37 = OpTypePointer Input %3
%36 = OpVariable %37 Input
%40 = OpConstant %5 1
%41 = OpConstant %5 2
%42 = OpConstant %5 3
%43 = OpConstant %5 4
%44 = OpConstant %4 0
%46 = OpConstant %4 2
%47 = OpConstant %4 1
%48 = OpConstant %4 72
%49 = OpConstant %4 264
%8 = OpFunction %2 None %9
%7 = OpFunctionParameter %5
%6 = OpLabel
OpBranch %10
%10 = OpLabel
OpSelectionMerge %11 None
OpSwitch %7 %12
%12 = OpLabel
OpBranch %16
%16 = OpLabel
OpSelectionMerge %17 None
OpSwitch %13 %18
%18 = OpLabel
OpBranch %11
%11 = OpLabel
OpReturn
OpFunctionEnd
%14 = OpFunction %2 None %15
%13 = OpLabel
OpBranch %17
%17 = OpLabel
OpReturn
OpFunctionEnd
%20 = OpFunction %2 None %21
OpSelectionMerge %18 None
OpSwitch %16 %20 0 %19
%19 = OpLabel
OpBranch %22
%22 = OpLabel
OpSelectionMerge %23 None
OpSwitch %5 %25 0 %24
%24 = OpLabel
OpBranch %23
%25 = OpLabel
OpBranch %23
%23 = OpLabel
OpBranch %18
%20 = OpLabel
OpBranch %18
%18 = OpLabel
OpReturn
OpFunctionEnd
%28 = OpFunction %2 None %15
%27 = OpFunctionParameter %4
%26 = OpLabel
%23 = OpFunction %2 None %9
%22 = OpFunctionParameter %5
%21 = OpLabel
OpBranch %24
%24 = OpLabel
OpBranch %25
%25 = OpLabel
OpLoopMerge %26 %28 None
OpBranch %27
%27 = OpLabel
OpSelectionMerge %29 None
OpSwitch %22 %31 1 %30
%30 = OpLabel
OpBranch %28
%31 = OpLabel
OpBranch %29
%29 = OpLabel
OpBranch %30
%30 = OpLabel
OpLoopMerge %31 %33 None
OpBranch %32
%32 = OpLabel
OpSelectionMerge %34 None
OpSwitch %27 %36 1 %35
%35 = OpLabel
OpBranch %33
%36 = OpLabel
OpBranch %34
%34 = OpLabel
OpBranch %33
%33 = OpLabel
OpBranch %30
%31 = OpLabel
OpBranch %28
%28 = OpLabel
OpBranch %25
%26 = OpLabel
OpReturn
OpFunctionEnd
%44 = OpFunction %2 None %21
%40 = OpLabel
%37 = OpVariable %38 Function %39
%43 = OpLoad %11 %41
%39 = OpFunction %2 None %15
%35 = OpLabel
%32 = OpVariable %33 Function %34
%38 = OpLoad %3 %36
OpBranch %45
%45 = OpLabel
OpControlBarrier %46 %47 %48
OpControlBarrier %46 %46 %49
OpSelectionMerge %50 None
OpSwitch %3 %51
OpSwitch %40 %51
%51 = OpLabel
OpStore %37 %3
OpStore %32 %40
OpBranch %50
%50 = OpLabel
%52 = OpLoad %4 %37
%52 = OpLoad %5 %32
OpSelectionMerge %53 None
OpSwitch %52 %58 1 %54 2 %55 3 %56 4 %56 5 %57 6 %58
%54 = OpLabel
OpStore %37 %5
OpStore %32 %16
OpBranch %53
%55 = OpLabel
OpStore %37 %3
OpStore %32 %40
OpBranch %53
%56 = OpLabel
OpStore %37 %6
OpStore %32 %41
OpBranch %53
%57 = OpLabel
OpStore %37 %7
OpStore %32 %42
OpBranch %53
%58 = OpLabel
OpStore %37 %8
OpStore %32 %43
OpBranch %53
%53 = OpLabel
OpSelectionMerge %59 None
OpSwitch %9 %61 0 %60
OpSwitch %44 %61 0 %60
%60 = OpLabel
OpBranch %59
%61 = OpLabel
OpBranch %59
%59 = OpLabel
%62 = OpLoad %4 %37
%62 = OpLoad %5 %32
OpSelectionMerge %63 None
OpSwitch %62 %68 1 %64 2 %65 3 %66 4 %67
%64 = OpLabel
OpStore %37 %5
OpStore %32 %16
OpBranch %63
%65 = OpLabel
OpStore %37 %3
OpStore %32 %40
OpReturn
%66 = OpLabel
OpStore %37 %6
OpStore %32 %41
OpReturn
%67 = OpLabel
OpReturn
%68 = OpLabel
OpStore %37 %7
OpStore %32 %42
OpReturn
%63 = OpLabel
OpReturn

View File

@@ -7,69 +7,69 @@ OpCapability Float64
OpCapability Geometry
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %25 "main" %17 %20 %23
OpExecutionMode %25 OriginUpperLeft
OpMemberDecorate %8 0 Offset 0
OpMemberDecorate %8 1 Offset 16
OpMemberDecorate %10 0 Offset 0
OpMemberDecorate %10 1 Offset 16
OpDecorate %13 Block
OpMemberDecorate %13 0 Offset 0
OpDecorate %17 Location 0
OpDecorate %20 BuiltIn PrimitiveId
OpDecorate %20 Flat
OpDecorate %23 Location 0
OpEntryPoint Fragment %24 "main" %16 %19 %22
OpExecutionMode %24 OriginUpperLeft
OpMemberDecorate %6 0 Offset 0
OpMemberDecorate %6 1 Offset 16
OpMemberDecorate %9 0 Offset 0
OpMemberDecorate %9 1 Offset 16
OpDecorate %12 Block
OpMemberDecorate %12 0 Offset 0
OpDecorate %16 Location 0
OpDecorate %19 BuiltIn PrimitiveId
OpDecorate %19 Flat
OpDecorate %22 Location 0
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpConstant %4 1.0
%5 = OpTypeInt 32 0
%7 = OpTypeFloat 64
%6 = OpTypeVector %7 2
%8 = OpTypeStruct %5 %6
%9 = OpTypeVector %4 4
%10 = OpTypeStruct %9 %5
%11 = OpTypeVector %4 3
%13 = OpTypeStruct %8
%14 = OpTypePointer PushConstant %13
%12 = OpVariable %14 PushConstant
%18 = OpTypePointer Input %9
%17 = OpVariable %18 Input
%21 = OpTypePointer Input %5
%20 = OpVariable %21 Input
%24 = OpTypePointer Output %9
%23 = OpVariable %24 Output
%26 = OpTypeFunction %2
%27 = OpTypePointer PushConstant %8
%28 = OpConstant %5 0
%32 = OpTypePointer PushConstant %5
%3 = OpTypeInt 32 0
%5 = OpTypeFloat 64
%4 = OpTypeVector %5 2
%6 = OpTypeStruct %3 %4
%8 = OpTypeFloat 32
%7 = OpTypeVector %8 4
%9 = OpTypeStruct %7 %3
%10 = OpTypeVector %8 3
%12 = OpTypeStruct %6
%13 = OpTypePointer PushConstant %12
%11 = OpVariable %13 PushConstant
%17 = OpTypePointer Input %7
%16 = OpVariable %17 Input
%20 = OpTypePointer Input %3
%19 = OpVariable %20 Input
%23 = OpTypePointer Output %7
%22 = OpVariable %23 Output
%25 = OpTypeFunction %2
%26 = OpTypePointer PushConstant %6
%27 = OpConstant %3 0
%29 = OpConstant %8 1.0
%32 = OpTypePointer PushConstant %3
%35 = OpTypeBool
%25 = OpFunction %2 None %26
%15 = OpLabel
%19 = OpLoad %9 %17
%22 = OpLoad %5 %20
%16 = OpCompositeConstruct %10 %19 %22
%29 = OpAccessChain %27 %12 %28
%24 = OpFunction %2 None %25
%14 = OpLabel
%18 = OpLoad %7 %16
%21 = OpLoad %3 %19
%15 = OpCompositeConstruct %9 %18 %21
%28 = OpAccessChain %26 %11 %27
OpBranch %30
%30 = OpLabel
%31 = OpCompositeExtract %5 %16 1
%33 = OpAccessChain %32 %29 %28
%34 = OpLoad %5 %33
%31 = OpCompositeExtract %3 %15 1
%33 = OpAccessChain %32 %28 %27
%34 = OpLoad %3 %33
%36 = OpIEqual %35 %31 %34
OpSelectionMerge %37 None
OpBranchConditional %36 %38 %39
%38 = OpLabel
%40 = OpCompositeExtract %9 %16 0
OpStore %23 %40
%40 = OpCompositeExtract %7 %15 0
OpStore %22 %40
OpReturn
%39 = OpLabel
%41 = OpCompositeConstruct %11 %3 %3 %3
%42 = OpCompositeExtract %9 %16 0
%43 = OpVectorShuffle %11 %42 %42 0 1 2
%44 = OpFSub %11 %41 %43
%45 = OpCompositeExtract %9 %16 0
%46 = OpCompositeExtract %4 %45 3
%47 = OpCompositeConstruct %9 %44 %46
OpStore %23 %47
%41 = OpCompositeConstruct %10 %29 %29 %29
%42 = OpCompositeExtract %7 %15 0
%43 = OpVectorShuffle %10 %42 %42 0 1 2
%44 = OpFSub %10 %41 %43
%45 = OpCompositeExtract %7 %15 0
%46 = OpCompositeExtract %8 %45 3
%47 = OpCompositeConstruct %7 %44 %46
OpStore %22 %47
OpReturn
%37 = OpLabel
OpReturn

View File

@@ -5,28 +5,28 @@
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %36 "main_vec4vec3" %24 %26 %28 %30 %32 %34
OpEntryPoint Fragment %33 "main_vec4vec3" %21 %23 %25 %27 %29 %31
OpEntryPoint Fragment %85 "main_vec2scalar" %73 %75 %77 %79 %81 %83
OpExecutionMode %36 OriginUpperLeft
OpExecutionMode %33 OriginUpperLeft
OpExecutionMode %85 OriginUpperLeft
OpMemberDecorate %15 0 Offset 0
OpMemberDecorate %15 1 Offset 16
OpMemberDecorate %15 2 Offset 32
OpMemberDecorate %15 3 Offset 48
OpMemberDecorate %15 4 Offset 64
OpMemberDecorate %15 5 Offset 80
OpMemberDecorate %19 0 Offset 0
OpMemberDecorate %19 1 Offset 8
OpMemberDecorate %19 2 Offset 16
OpMemberDecorate %19 3 Offset 24
OpMemberDecorate %19 4 Offset 28
OpMemberDecorate %19 5 Offset 32
OpDecorate %24 Location 0
OpDecorate %26 Location 1
OpDecorate %28 Location 2
OpDecorate %30 Location 3
OpDecorate %32 Location 4
OpDecorate %34 Location 5
OpMemberDecorate %12 0 Offset 0
OpMemberDecorate %12 1 Offset 16
OpMemberDecorate %12 2 Offset 32
OpMemberDecorate %12 3 Offset 48
OpMemberDecorate %12 4 Offset 64
OpMemberDecorate %12 5 Offset 80
OpMemberDecorate %16 0 Offset 0
OpMemberDecorate %16 1 Offset 8
OpMemberDecorate %16 2 Offset 16
OpMemberDecorate %16 3 Offset 24
OpMemberDecorate %16 4 Offset 28
OpMemberDecorate %16 5 Offset 32
OpDecorate %21 Location 0
OpDecorate %23 Location 1
OpDecorate %25 Location 2
OpDecorate %27 Location 3
OpDecorate %29 Location 4
OpDecorate %31 Location 5
OpDecorate %73 Location 0
OpDecorate %75 Location 1
OpDecorate %77 Location 2
@@ -35,55 +35,55 @@ OpDecorate %81 Location 4
OpDecorate %83 Location 5
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpConstant %4 0.0
%3 = OpTypeVector %4 4
%6 = OpTypeInt 32 1
%5 = OpConstant %6 0
%5 = OpTypeVector %6 4
%8 = OpTypeInt 32 0
%7 = OpConstant %8 0
%9 = OpTypeVector %4 4
%10 = OpTypeVector %6 4
%11 = OpTypeVector %8 4
%12 = OpTypeVector %4 3
%13 = OpTypeVector %6 3
%14 = OpTypeVector %8 3
%15 = OpTypeStruct %9 %10 %11 %12 %13 %14
%16 = OpTypeVector %4 2
%17 = OpTypeVector %6 2
%18 = OpTypeVector %8 2
%19 = OpTypeStruct %16 %17 %18 %4 %6 %8
%21 = OpTypePointer Function %15
%22 = OpConstantNull %15
%25 = OpTypePointer Output %9
%24 = OpVariable %25 Output
%27 = OpTypePointer Output %10
%26 = OpVariable %27 Output
%29 = OpTypePointer Output %11
%28 = OpVariable %29 Output
%31 = OpTypePointer Output %12
%30 = OpVariable %31 Output
%33 = OpTypePointer Output %13
%32 = OpVariable %33 Output
%35 = OpTypePointer Output %14
%34 = OpVariable %35 Output
%37 = OpTypeFunction %2
%39 = OpTypePointer Function %9
%42 = OpTypePointer Function %10
%7 = OpTypeVector %8 4
%9 = OpTypeVector %4 3
%10 = OpTypeVector %6 3
%11 = OpTypeVector %8 3
%12 = OpTypeStruct %3 %5 %7 %9 %10 %11
%13 = OpTypeVector %4 2
%14 = OpTypeVector %6 2
%15 = OpTypeVector %8 2
%16 = OpTypeStruct %13 %14 %15 %4 %6 %8
%18 = OpTypePointer Function %12
%19 = OpConstantNull %12
%22 = OpTypePointer Output %3
%21 = OpVariable %22 Output
%24 = OpTypePointer Output %5
%23 = OpVariable %24 Output
%26 = OpTypePointer Output %7
%25 = OpVariable %26 Output
%28 = OpTypePointer Output %9
%27 = OpVariable %28 Output
%30 = OpTypePointer Output %10
%29 = OpVariable %30 Output
%32 = OpTypePointer Output %11
%31 = OpVariable %32 Output
%34 = OpTypeFunction %2
%35 = OpConstant %4 0.0
%36 = OpConstant %6 0
%37 = OpConstant %8 0
%39 = OpTypePointer Function %3
%42 = OpTypePointer Function %5
%44 = OpConstant %8 1
%46 = OpTypePointer Function %11
%46 = OpTypePointer Function %7
%48 = OpConstant %8 2
%50 = OpTypePointer Function %12
%50 = OpTypePointer Function %9
%52 = OpConstant %8 3
%54 = OpTypePointer Function %13
%54 = OpTypePointer Function %10
%56 = OpConstant %8 4
%58 = OpTypePointer Function %14
%58 = OpTypePointer Function %11
%60 = OpConstant %8 5
%70 = OpTypePointer Function %19
%71 = OpConstantNull %19
%74 = OpTypePointer Output %16
%70 = OpTypePointer Function %16
%71 = OpConstantNull %16
%74 = OpTypePointer Output %13
%73 = OpVariable %74 Output
%76 = OpTypePointer Output %17
%76 = OpTypePointer Output %14
%75 = OpVariable %76 Output
%78 = OpTypePointer Output %18
%78 = OpTypePointer Output %15
%77 = OpVariable %78 Output
%80 = OpTypePointer Output %4
%79 = OpVariable %80 Output
@@ -91,76 +91,76 @@ OpDecorate %83 Location 5
%81 = OpVariable %82 Output
%84 = OpTypePointer Output %8
%83 = OpVariable %84 Output
%87 = OpTypePointer Function %16
%90 = OpTypePointer Function %17
%93 = OpTypePointer Function %18
%87 = OpTypePointer Function %13
%90 = OpTypePointer Function %14
%93 = OpTypePointer Function %15
%96 = OpTypePointer Function %4
%98 = OpTypePointer Function %6
%100 = OpTypePointer Function %8
%36 = OpFunction %2 None %37
%23 = OpLabel
%20 = OpVariable %21 Function %22
%33 = OpFunction %2 None %34
%20 = OpLabel
%17 = OpVariable %18 Function %19
OpBranch %38
%38 = OpLabel
%40 = OpCompositeConstruct %9 %3 %3 %3 %3
%41 = OpAccessChain %39 %20 %7
%40 = OpCompositeConstruct %3 %35 %35 %35 %35
%41 = OpAccessChain %39 %17 %37
OpStore %41 %40
%43 = OpCompositeConstruct %10 %5 %5 %5 %5
%45 = OpAccessChain %42 %20 %44
%43 = OpCompositeConstruct %5 %36 %36 %36 %36
%45 = OpAccessChain %42 %17 %44
OpStore %45 %43
%47 = OpCompositeConstruct %11 %7 %7 %7 %7
%49 = OpAccessChain %46 %20 %48
%47 = OpCompositeConstruct %7 %37 %37 %37 %37
%49 = OpAccessChain %46 %17 %48
OpStore %49 %47
%51 = OpCompositeConstruct %12 %3 %3 %3
%53 = OpAccessChain %50 %20 %52
%51 = OpCompositeConstruct %9 %35 %35 %35
%53 = OpAccessChain %50 %17 %52
OpStore %53 %51
%55 = OpCompositeConstruct %13 %5 %5 %5
%57 = OpAccessChain %54 %20 %56
%55 = OpCompositeConstruct %10 %36 %36 %36
%57 = OpAccessChain %54 %17 %56
OpStore %57 %55
%59 = OpCompositeConstruct %14 %7 %7 %7
%61 = OpAccessChain %58 %20 %60
%59 = OpCompositeConstruct %11 %37 %37 %37
%61 = OpAccessChain %58 %17 %60
OpStore %61 %59
%62 = OpLoad %15 %20
%63 = OpCompositeExtract %9 %62 0
OpStore %24 %63
%64 = OpCompositeExtract %10 %62 1
OpStore %26 %64
%65 = OpCompositeExtract %11 %62 2
OpStore %28 %65
%66 = OpCompositeExtract %12 %62 3
OpStore %30 %66
%67 = OpCompositeExtract %13 %62 4
OpStore %32 %67
%68 = OpCompositeExtract %14 %62 5
OpStore %34 %68
%62 = OpLoad %12 %17
%63 = OpCompositeExtract %3 %62 0
OpStore %21 %63
%64 = OpCompositeExtract %5 %62 1
OpStore %23 %64
%65 = OpCompositeExtract %7 %62 2
OpStore %25 %65
%66 = OpCompositeExtract %9 %62 3
OpStore %27 %66
%67 = OpCompositeExtract %10 %62 4
OpStore %29 %67
%68 = OpCompositeExtract %11 %62 5
OpStore %31 %68
OpReturn
OpFunctionEnd
%85 = OpFunction %2 None %37
%85 = OpFunction %2 None %34
%72 = OpLabel
%69 = OpVariable %70 Function %71
OpBranch %86
%86 = OpLabel
%88 = OpCompositeConstruct %16 %3 %3
%89 = OpAccessChain %87 %69 %7
%88 = OpCompositeConstruct %13 %35 %35
%89 = OpAccessChain %87 %69 %37
OpStore %89 %88
%91 = OpCompositeConstruct %17 %5 %5
%91 = OpCompositeConstruct %14 %36 %36
%92 = OpAccessChain %90 %69 %44
OpStore %92 %91
%94 = OpCompositeConstruct %18 %7 %7
%94 = OpCompositeConstruct %15 %37 %37
%95 = OpAccessChain %93 %69 %48
OpStore %95 %94
%97 = OpAccessChain %96 %69 %52
OpStore %97 %3
OpStore %97 %35
%99 = OpAccessChain %98 %69 %56
OpStore %99 %5
OpStore %99 %36
%101 = OpAccessChain %100 %69 %60
OpStore %101 %7
%102 = OpLoad %19 %69
%103 = OpCompositeExtract %16 %102 0
OpStore %101 %37
%102 = OpLoad %16 %69
%103 = OpCompositeExtract %13 %102 0
OpStore %73 %103
%104 = OpCompositeExtract %17 %102 1
%104 = OpCompositeExtract %14 %102 1
OpStore %75 %104
%105 = OpCompositeExtract %18 %102 2
%105 = OpCompositeExtract %15 %102 2
OpStore %77 %105
%106 = OpCompositeExtract %4 %102 3
OpStore %79 %106

View File

@@ -9,87 +9,87 @@ OpEntryPoint GLCompute %74 "main"
OpExecutionMode %74 LocalSize 1 1 1
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpConstant %4 2.0
%5 = OpConstant %4 0.5
%7 = OpTypeInt 32 1
%6 = OpConstant %7 1
%9 = OpTypeInt 32 0
%8 = OpConstant %9 1
%10 = OpConstant %7 4
%11 = OpConstant %7 2
%12 = OpTypeVector %4 2
%13 = OpTypeVector %7 2
%14 = OpTypeVector %9 3
%15 = OpTypeVector %7 4
%18 = OpTypeFunction %12
%26 = OpTypeFunction %7
%31 = OpConstantNull %7
%42 = OpConstantNull %9
%57 = OpConstantNull %7
%3 = OpTypeVector %4 2
%5 = OpTypeInt 32 1
%6 = OpTypeVector %5 2
%8 = OpTypeInt 32 0
%7 = OpTypeVector %8 3
%9 = OpTypeVector %5 4
%12 = OpTypeFunction %3
%13 = OpConstant %4 2.0
%14 = OpConstant %4 0.5
%22 = OpTypeFunction %5
%23 = OpConstant %5 1
%24 = OpConstant %8 1
%25 = OpConstant %5 4
%26 = OpConstant %5 2
%31 = OpConstantNull %5
%42 = OpConstantNull %8
%57 = OpConstantNull %5
%75 = OpTypeFunction %2
%17 = OpFunction %12 None %18
%16 = OpLabel
OpBranch %19
%19 = OpLabel
%20 = OpCompositeConstruct %12 %3 %3
%21 = OpCompositeConstruct %12 %5 %5
%22 = OpCompositeConstruct %12 %5 %5
%23 = OpExtInst %12 %1 Fma %20 %21 %22
OpReturnValue %23
%11 = OpFunction %3 None %12
%10 = OpLabel
OpBranch %15
%15 = OpLabel
%16 = OpCompositeConstruct %3 %13 %13
%17 = OpCompositeConstruct %3 %14 %14
%18 = OpCompositeConstruct %3 %14 %14
%19 = OpExtInst %3 %1 Fma %16 %17 %18
OpReturnValue %19
OpFunctionEnd
%25 = OpFunction %7 None %26
%24 = OpLabel
%21 = OpFunction %5 None %22
%20 = OpLabel
OpBranch %27
%27 = OpLabel
%28 = OpCompositeConstruct %13 %6 %6
%29 = OpCompositeConstruct %13 %6 %6
%32 = OpCompositeExtract %7 %28 0
%33 = OpCompositeExtract %7 %29 0
%34 = OpIMul %7 %32 %33
%35 = OpIAdd %7 %31 %34
%36 = OpCompositeExtract %7 %28 1
%37 = OpCompositeExtract %7 %29 1
%38 = OpIMul %7 %36 %37
%30 = OpIAdd %7 %35 %38
%39 = OpCompositeConstruct %14 %8 %8 %8
%40 = OpCompositeConstruct %14 %8 %8 %8
%43 = OpCompositeExtract %9 %39 0
%44 = OpCompositeExtract %9 %40 0
%45 = OpIMul %9 %43 %44
%46 = OpIAdd %9 %42 %45
%47 = OpCompositeExtract %9 %39 1
%48 = OpCompositeExtract %9 %40 1
%49 = OpIMul %9 %47 %48
%50 = OpIAdd %9 %46 %49
%51 = OpCompositeExtract %9 %39 2
%52 = OpCompositeExtract %9 %40 2
%53 = OpIMul %9 %51 %52
%41 = OpIAdd %9 %50 %53
%54 = OpCompositeConstruct %15 %10 %10 %10 %10
%55 = OpCompositeConstruct %15 %11 %11 %11 %11
%58 = OpCompositeExtract %7 %54 0
%59 = OpCompositeExtract %7 %55 0
%60 = OpIMul %7 %58 %59
%61 = OpIAdd %7 %57 %60
%62 = OpCompositeExtract %7 %54 1
%63 = OpCompositeExtract %7 %55 1
%64 = OpIMul %7 %62 %63
%65 = OpIAdd %7 %61 %64
%66 = OpCompositeExtract %7 %54 2
%67 = OpCompositeExtract %7 %55 2
%68 = OpIMul %7 %66 %67
%69 = OpIAdd %7 %65 %68
%70 = OpCompositeExtract %7 %54 3
%71 = OpCompositeExtract %7 %55 3
%72 = OpIMul %7 %70 %71
%56 = OpIAdd %7 %69 %72
%28 = OpCompositeConstruct %6 %23 %23
%29 = OpCompositeConstruct %6 %23 %23
%32 = OpCompositeExtract %5 %28 0
%33 = OpCompositeExtract %5 %29 0
%34 = OpIMul %5 %32 %33
%35 = OpIAdd %5 %31 %34
%36 = OpCompositeExtract %5 %28 1
%37 = OpCompositeExtract %5 %29 1
%38 = OpIMul %5 %36 %37
%30 = OpIAdd %5 %35 %38
%39 = OpCompositeConstruct %7 %24 %24 %24
%40 = OpCompositeConstruct %7 %24 %24 %24
%43 = OpCompositeExtract %8 %39 0
%44 = OpCompositeExtract %8 %40 0
%45 = OpIMul %8 %43 %44
%46 = OpIAdd %8 %42 %45
%47 = OpCompositeExtract %8 %39 1
%48 = OpCompositeExtract %8 %40 1
%49 = OpIMul %8 %47 %48
%50 = OpIAdd %8 %46 %49
%51 = OpCompositeExtract %8 %39 2
%52 = OpCompositeExtract %8 %40 2
%53 = OpIMul %8 %51 %52
%41 = OpIAdd %8 %50 %53
%54 = OpCompositeConstruct %9 %25 %25 %25 %25
%55 = OpCompositeConstruct %9 %26 %26 %26 %26
%58 = OpCompositeExtract %5 %54 0
%59 = OpCompositeExtract %5 %55 0
%60 = OpIMul %5 %58 %59
%61 = OpIAdd %5 %57 %60
%62 = OpCompositeExtract %5 %54 1
%63 = OpCompositeExtract %5 %55 1
%64 = OpIMul %5 %62 %63
%65 = OpIAdd %5 %61 %64
%66 = OpCompositeExtract %5 %54 2
%67 = OpCompositeExtract %5 %55 2
%68 = OpIMul %5 %66 %67
%69 = OpIAdd %5 %65 %68
%70 = OpCompositeExtract %5 %54 3
%71 = OpCompositeExtract %5 %55 3
%72 = OpIMul %5 %70 %71
%56 = OpIAdd %5 %69 %72
OpReturnValue %56
OpFunctionEnd
%74 = OpFunction %2 None %75
%73 = OpLabel
OpBranch %76
%76 = OpLabel
%77 = OpFunctionCall %12 %17
%78 = OpFunctionCall %7 %25
%77 = OpFunctionCall %3 %11
%78 = OpFunctionCall %5 %21
OpReturn
OpFunctionEnd

View File

@@ -6,48 +6,48 @@ OpCapability Shader
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %110 "main" %128
OpExecutionMode %110 LocalSize 1 1 1
OpDecorate %24 ArrayStride 4
OpMemberDecorate %26 0 Offset 0
OpMemberDecorate %26 1 Offset 12
OpDecorate %28 ArrayStride 8
OpDecorate %30 ArrayStride 16
OpDecorate %33 ArrayStride 32
OpDecorate %34 ArrayStride 64
OpDecorate %36 ArrayStride 32
OpDecorate %37 ArrayStride 64
OpDecorate %43 DescriptorSet 0
OpDecorate %43 Binding 1
OpDecorate %44 Block
OpMemberDecorate %44 0 Offset 0
OpDecorate %46 NonWritable
OpDecorate %46 DescriptorSet 0
OpDecorate %46 Binding 2
OpDecorate %47 Block
OpMemberDecorate %47 0 Offset 0
OpDecorate %49 DescriptorSet 0
OpDecorate %49 Binding 3
OpDecorate %50 Block
OpMemberDecorate %50 0 Offset 0
OpDecorate %52 DescriptorSet 0
OpDecorate %52 Binding 4
OpDecorate %53 Block
OpMemberDecorate %53 0 Offset 0
OpDecorate %55 DescriptorSet 0
OpDecorate %55 Binding 5
OpDecorate %56 Block
OpMemberDecorate %56 0 Offset 0
OpMemberDecorate %56 0 ColMajor
OpMemberDecorate %56 0 MatrixStride 8
OpDecorate %58 DescriptorSet 0
OpDecorate %58 Binding 6
OpDecorate %59 Block
OpMemberDecorate %59 0 Offset 0
OpDecorate %61 DescriptorSet 0
OpDecorate %61 Binding 7
OpDecorate %62 Block
OpMemberDecorate %62 0 Offset 0
OpEntryPoint GLCompute %102 "main" %128
OpExecutionMode %102 LocalSize 1 1 1
OpDecorate %11 ArrayStride 4
OpMemberDecorate %13 0 Offset 0
OpMemberDecorate %13 1 Offset 12
OpDecorate %15 ArrayStride 8
OpDecorate %17 ArrayStride 16
OpDecorate %20 ArrayStride 32
OpDecorate %21 ArrayStride 64
OpDecorate %23 ArrayStride 32
OpDecorate %24 ArrayStride 64
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
OpDecorate %31 Block
OpMemberDecorate %31 0 Offset 0
OpDecorate %33 NonWritable
OpDecorate %33 DescriptorSet 0
OpDecorate %33 Binding 2
OpDecorate %34 Block
OpMemberDecorate %34 0 Offset 0
OpDecorate %36 DescriptorSet 0
OpDecorate %36 Binding 3
OpDecorate %37 Block
OpMemberDecorate %37 0 Offset 0
OpDecorate %39 DescriptorSet 0
OpDecorate %39 Binding 4
OpDecorate %40 Block
OpMemberDecorate %40 0 Offset 0
OpDecorate %42 DescriptorSet 0
OpDecorate %42 Binding 5
OpDecorate %43 Block
OpMemberDecorate %43 0 Offset 0
OpMemberDecorate %43 0 ColMajor
OpMemberDecorate %43 0 MatrixStride 8
OpDecorate %45 DescriptorSet 0
OpDecorate %45 Binding 6
OpDecorate %46 Block
OpMemberDecorate %46 0 Offset 0
OpDecorate %48 DescriptorSet 0
OpDecorate %48 Binding 7
OpDecorate %49 Block
OpMemberDecorate %49 0 Offset 0
OpDecorate %128 BuiltIn LocalInvocationId
%2 = OpTypeVoid
%4 = OpTypeBool
@@ -57,81 +57,81 @@ OpDecorate %128 BuiltIn LocalInvocationId
%8 = OpTypeInt 32 1
%7 = OpConstant %8 20
%9 = OpConstant %8 2
%11 = OpTypeFloat 32
%10 = OpConstant %11 1.0
%12 = OpConstant %8 1
%13 = OpConstant %8 0
%14 = OpConstant %11 2.0
%15 = OpConstant %11 3.0
%16 = OpConstant %8 7
%17 = OpConstant %8 6
%18 = OpConstant %8 5
%19 = OpConstant %8 4
%20 = OpConstant %8 3
%21 = OpConstant %11 4.0
%22 = OpConstant %6 2
%23 = OpConstantTrue %4
%24 = OpTypeArray %11 %5
%25 = OpTypeVector %11 3
%26 = OpTypeStruct %25 %11
%27 = OpTypeVector %11 2
%28 = OpTypeRuntimeArray %27
%29 = OpTypeVector %11 4
%30 = OpTypeArray %29 %7
%31 = OpTypeMatrix %27 3
%32 = OpTypeMatrix %29 2
%33 = OpTypeArray %32 %9
%34 = OpTypeArray %33 %9
%35 = OpTypeMatrix %27 4
%36 = OpTypeArray %35 %9
%37 = OpTypeArray %36 %9
%38 = OpTypeMatrix %25 3
%40 = OpTypePointer Workgroup %24
%39 = OpVariable %40 Workgroup
%42 = OpTypePointer Workgroup %6
%41 = OpVariable %42 Workgroup
%44 = OpTypeStruct %26
%45 = OpTypePointer StorageBuffer %44
%43 = OpVariable %45 StorageBuffer
%47 = OpTypeStruct %28
%48 = OpTypePointer StorageBuffer %47
%46 = OpVariable %48 StorageBuffer
%50 = OpTypeStruct %30
%51 = OpTypePointer Uniform %50
%49 = OpVariable %51 Uniform
%53 = OpTypeStruct %25
%54 = OpTypePointer Uniform %53
%52 = OpVariable %54 Uniform
%56 = OpTypeStruct %31
%57 = OpTypePointer Uniform %56
%55 = OpVariable %57 Uniform
%59 = OpTypeStruct %34
%60 = OpTypePointer Uniform %59
%58 = OpVariable %60 Uniform
%62 = OpTypeStruct %37
%63 = OpTypePointer Uniform %62
%61 = OpVariable %63 Uniform
%67 = OpTypeFunction %2 %25
%70 = OpTypePointer Function %8
%71 = OpConstantNull %8
%74 = OpTypeFunction %2
%75 = OpTypePointer StorageBuffer %26
%76 = OpConstant %6 0
%78 = OpConstantNull %38
%79 = OpConstantNull %38
%81 = OpTypePointer StorageBuffer %25
%84 = OpTypePointer StorageBuffer %11
%104 = OpTypePointer Function %11
%105 = OpConstantNull %11
%107 = OpTypePointer Function %4
%108 = OpConstantNull %4
%112 = OpTypePointer StorageBuffer %28
%114 = OpTypePointer Uniform %30
%116 = OpTypePointer Uniform %25
%118 = OpTypePointer Uniform %31
%120 = OpTypePointer Uniform %34
%122 = OpTypePointer Uniform %37
%125 = OpConstantNull %24
%10 = OpTypeFloat 32
%11 = OpTypeArray %10 %5
%12 = OpTypeVector %10 3
%13 = OpTypeStruct %12 %10
%14 = OpTypeVector %10 2
%15 = OpTypeRuntimeArray %14
%16 = OpTypeVector %10 4
%17 = OpTypeArray %16 %7
%18 = OpTypeMatrix %14 3
%19 = OpTypeMatrix %16 2
%20 = OpTypeArray %19 %9
%21 = OpTypeArray %20 %9
%22 = OpTypeMatrix %14 4
%23 = OpTypeArray %22 %9
%24 = OpTypeArray %23 %9
%25 = OpTypeMatrix %12 3
%27 = OpTypePointer Workgroup %11
%26 = OpVariable %27 Workgroup
%29 = OpTypePointer Workgroup %6
%28 = OpVariable %29 Workgroup
%31 = OpTypeStruct %13
%32 = OpTypePointer StorageBuffer %31
%30 = OpVariable %32 StorageBuffer
%34 = OpTypeStruct %15
%35 = OpTypePointer StorageBuffer %34
%33 = OpVariable %35 StorageBuffer
%37 = OpTypeStruct %17
%38 = OpTypePointer Uniform %37
%36 = OpVariable %38 Uniform
%40 = OpTypeStruct %12
%41 = OpTypePointer Uniform %40
%39 = OpVariable %41 Uniform
%43 = OpTypeStruct %18
%44 = OpTypePointer Uniform %43
%42 = OpVariable %44 Uniform
%46 = OpTypeStruct %21
%47 = OpTypePointer Uniform %46
%45 = OpVariable %47 Uniform
%49 = OpTypeStruct %24
%50 = OpTypePointer Uniform %49
%48 = OpVariable %50 Uniform
%54 = OpTypeFunction %2 %12
%57 = OpTypePointer Function %8
%58 = OpConstantNull %8
%61 = OpTypeFunction %2
%62 = OpTypePointer StorageBuffer %13
%63 = OpConstant %6 0
%65 = OpConstant %10 1.0
%66 = OpConstant %8 1
%67 = OpConstant %8 0
%68 = OpConstant %10 2.0
%69 = OpConstant %10 3.0
%70 = OpConstantNull %25
%71 = OpConstantNull %25
%73 = OpTypePointer StorageBuffer %12
%76 = OpTypePointer StorageBuffer %10
%96 = OpTypePointer Function %10
%97 = OpConstantNull %10
%99 = OpTypePointer Function %4
%100 = OpConstantNull %4
%104 = OpTypePointer StorageBuffer %15
%106 = OpTypePointer Uniform %17
%108 = OpTypePointer Uniform %12
%110 = OpTypePointer Uniform %18
%112 = OpTypePointer Uniform %21
%114 = OpTypePointer Uniform %24
%116 = OpConstant %8 7
%117 = OpConstant %8 6
%118 = OpConstant %8 5
%119 = OpConstant %8 4
%120 = OpConstant %8 3
%121 = OpConstant %10 4.0
%122 = OpConstant %6 2
%123 = OpConstantTrue %4
%125 = OpConstantNull %11
%126 = OpConstantNull %6
%127 = OpTypeVector %6 3
%129 = OpTypePointer Input %127
@@ -139,74 +139,74 @@ OpDecorate %128 BuiltIn LocalInvocationId
%131 = OpConstantNull %127
%132 = OpTypeVector %4 3
%137 = OpConstant %6 264
%140 = OpTypePointer Workgroup %11
%141 = OpTypePointer Uniform %36
%142 = OpTypePointer Uniform %35
%145 = OpTypePointer Uniform %33
%146 = OpTypePointer Uniform %32
%147 = OpTypePointer Uniform %29
%140 = OpTypePointer Workgroup %10
%141 = OpTypePointer Uniform %23
%142 = OpTypePointer Uniform %22
%145 = OpTypePointer Uniform %20
%146 = OpTypePointer Uniform %19
%147 = OpTypePointer Uniform %16
%152 = OpConstant %6 7
%158 = OpConstant %6 6
%160 = OpTypePointer StorageBuffer %27
%160 = OpTypePointer StorageBuffer %14
%161 = OpConstant %6 1
%164 = OpConstant %6 5
%166 = OpTypePointer Uniform %29
%167 = OpTypePointer Uniform %11
%166 = OpTypePointer Uniform %16
%167 = OpTypePointer Uniform %10
%168 = OpConstant %6 3
%171 = OpConstant %6 4
%173 = OpTypePointer StorageBuffer %11
%173 = OpTypePointer StorageBuffer %10
%184 = OpConstant %6 256
%66 = OpFunction %2 None %67
%65 = OpFunctionParameter %25
%64 = OpLabel
OpBranch %68
%68 = OpLabel
%53 = OpFunction %2 None %54
%52 = OpFunctionParameter %12
%51 = OpLabel
OpBranch %55
%55 = OpLabel
OpReturn
OpFunctionEnd
%73 = OpFunction %2 None %74
%60 = OpFunction %2 None %61
%59 = OpLabel
%56 = OpVariable %57 Function %58
%64 = OpAccessChain %62 %30 %63
OpBranch %72
%72 = OpLabel
%69 = OpVariable %70 Function %71
%77 = OpAccessChain %75 %43 %76
OpBranch %80
%80 = OpLabel
%82 = OpCompositeConstruct %25 %10 %10 %10
%83 = OpAccessChain %81 %77 %76
OpStore %83 %82
OpStore %69 %12
%85 = OpAccessChain %84 %77 %76 %76
OpStore %85 %10
%86 = OpAccessChain %84 %77 %76 %76
OpStore %86 %14
%87 = OpLoad %8 %69
%88 = OpAccessChain %84 %77 %76 %87
OpStore %88 %15
%89 = OpLoad %26 %77
%90 = OpCompositeExtract %25 %89 0
%91 = OpCompositeExtract %25 %89 0
%92 = OpVectorShuffle %27 %91 %91 2 0
%93 = OpCompositeExtract %25 %89 0
%94 = OpFunctionCall %2 %66 %93
%95 = OpCompositeExtract %25 %89 0
%96 = OpVectorTimesMatrix %25 %95 %78
%97 = OpCompositeExtract %25 %89 0
%98 = OpMatrixTimesVector %25 %79 %97
%99 = OpCompositeExtract %25 %89 0
%100 = OpVectorTimesScalar %25 %99 %14
%101 = OpCompositeExtract %25 %89 0
%102 = OpVectorTimesScalar %25 %101 %14
%74 = OpCompositeConstruct %12 %65 %65 %65
%75 = OpAccessChain %73 %64 %63
OpStore %75 %74
OpStore %56 %66
%77 = OpAccessChain %76 %64 %63 %63
OpStore %77 %65
%78 = OpAccessChain %76 %64 %63 %63
OpStore %78 %68
%79 = OpLoad %8 %56
%80 = OpAccessChain %76 %64 %63 %79
OpStore %80 %69
%81 = OpLoad %13 %64
%82 = OpCompositeExtract %12 %81 0
%83 = OpCompositeExtract %12 %81 0
%84 = OpVectorShuffle %14 %83 %83 2 0
%85 = OpCompositeExtract %12 %81 0
%86 = OpFunctionCall %2 %53 %85
%87 = OpCompositeExtract %12 %81 0
%88 = OpVectorTimesMatrix %12 %87 %70
%89 = OpCompositeExtract %12 %81 0
%90 = OpMatrixTimesVector %12 %71 %89
%91 = OpCompositeExtract %12 %81 0
%92 = OpVectorTimesScalar %12 %91 %68
%93 = OpCompositeExtract %12 %81 0
%94 = OpVectorTimesScalar %12 %93 %68
OpReturn
OpFunctionEnd
%110 = OpFunction %2 None %74
%109 = OpLabel
%103 = OpVariable %104 Function %105
%106 = OpVariable %107 Function %108
%111 = OpAccessChain %75 %43 %76
%113 = OpAccessChain %112 %46 %76
%115 = OpAccessChain %114 %49 %76
%117 = OpAccessChain %116 %52 %76
%119 = OpAccessChain %118 %55 %76
%121 = OpAccessChain %120 %58 %76
%123 = OpAccessChain %122 %61 %76
%102 = OpFunction %2 None %61
%101 = OpLabel
%95 = OpVariable %96 Function %97
%98 = OpVariable %99 Function %100
%103 = OpAccessChain %62 %30 %63
%105 = OpAccessChain %104 %33 %63
%107 = OpAccessChain %106 %36 %63
%109 = OpAccessChain %108 %39 %63
%111 = OpAccessChain %110 %42 %63
%113 = OpAccessChain %112 %45 %63
%115 = OpAccessChain %114 %48 %63
OpBranch %124
%124 = OpLabel
%130 = OpLoad %127 %128
@@ -215,52 +215,52 @@ OpBranch %124
OpSelectionMerge %135 None
OpBranchConditional %134 %136 %135
%136 = OpLabel
OpStore %39 %125
OpStore %41 %126
OpStore %26 %125
OpStore %28 %126
OpBranch %135
%135 = OpLabel
OpControlBarrier %22 %22 %137
OpControlBarrier %122 %122 %137
OpBranch %138
%138 = OpLabel
%139 = OpFunctionCall %2 %73
%143 = OpAccessChain %142 %123 %76 %76
%144 = OpLoad %35 %143
%148 = OpAccessChain %147 %121 %76 %76 %76
%149 = OpLoad %29 %148
%150 = OpMatrixTimesVector %27 %144 %149
%151 = OpCompositeExtract %11 %150 0
%153 = OpAccessChain %140 %39 %152
%139 = OpFunctionCall %2 %60
%143 = OpAccessChain %142 %115 %63 %63
%144 = OpLoad %22 %143
%148 = OpAccessChain %147 %113 %63 %63 %63
%149 = OpLoad %16 %148
%150 = OpMatrixTimesVector %14 %144 %149
%151 = OpCompositeExtract %10 %150 0
%153 = OpAccessChain %140 %26 %152
OpStore %153 %151
%154 = OpLoad %31 %119
%155 = OpLoad %25 %117
%156 = OpMatrixTimesVector %27 %154 %155
%157 = OpCompositeExtract %11 %156 0
%159 = OpAccessChain %140 %39 %158
%154 = OpLoad %18 %111
%155 = OpLoad %12 %109
%156 = OpMatrixTimesVector %14 %154 %155
%157 = OpCompositeExtract %10 %156 0
%159 = OpAccessChain %140 %26 %158
OpStore %159 %157
%162 = OpAccessChain %84 %113 %161 %161
%163 = OpLoad %11 %162
%165 = OpAccessChain %140 %39 %164
%162 = OpAccessChain %76 %105 %161 %161
%163 = OpLoad %10 %162
%165 = OpAccessChain %140 %26 %164
OpStore %165 %163
%169 = OpAccessChain %167 %115 %76 %168
%170 = OpLoad %11 %169
%172 = OpAccessChain %140 %39 %171
%169 = OpAccessChain %167 %107 %63 %168
%170 = OpLoad %10 %169
%172 = OpAccessChain %140 %26 %171
OpStore %172 %170
%174 = OpAccessChain %173 %111 %161
%175 = OpLoad %11 %174
%176 = OpAccessChain %140 %39 %168
%174 = OpAccessChain %173 %103 %161
%175 = OpLoad %10 %174
%176 = OpAccessChain %140 %26 %168
OpStore %176 %175
%177 = OpAccessChain %84 %111 %76 %76
%178 = OpLoad %11 %177
%179 = OpAccessChain %140 %39 %22
%177 = OpAccessChain %76 %103 %63 %63
%178 = OpLoad %10 %177
%179 = OpAccessChain %140 %26 %122
OpStore %179 %178
%180 = OpAccessChain %173 %111 %161
OpStore %180 %21
%181 = OpArrayLength %6 %46 0
%182 = OpConvertUToF %11 %181
%183 = OpAccessChain %140 %39 %161
%180 = OpAccessChain %173 %103 %161
OpStore %180 %121
%181 = OpArrayLength %6 %33 0
%182 = OpConvertUToF %10 %181
%183 = OpAccessChain %140 %26 %161
OpStore %183 %182
OpAtomicStore %41 %9 %184 %22
OpStore %103 %10
OpStore %106 %23
OpAtomicStore %28 %9 %184 %122
OpStore %95 %65
OpStore %98 %123
OpReturn
OpFunctionEnd

File diff suppressed because it is too large Load Diff

View File

@@ -1,88 +1,85 @@
; SPIR-V
; Version: 1.0
; Generator: rspirv
; Bound: 58
; Bound: 55
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %35 "compute" %23 %26 %28 %31 %33
OpExecutionMode %35 LocalSize 1 1 1
OpEntryPoint GLCompute %30 "compute" %18 %21 %23 %26 %28
OpExecutionMode %30 LocalSize 1 1 1
OpMemberDecorate %7 0 Offset 0
OpMemberDecorate %7 1 Offset 16
OpMemberDecorate %9 0 Offset 0
OpMemberDecorate %9 1 Offset 4
OpMemberDecorate %9 2 Offset 8
OpDecorate %11 ArrayStride 4
OpMemberDecorate %13 0 Offset 0
OpMemberDecorate %13 1 Offset 16
OpMemberDecorate %14 0 Offset 0
OpMemberDecorate %14 1 Offset 4
OpMemberDecorate %14 2 Offset 8
OpDecorate %16 ArrayStride 4
OpMemberDecorate %18 0 Offset 0
OpMemberDecorate %19 0 Offset 0
OpDecorate %23 BuiltIn GlobalInvocationId
OpDecorate %26 BuiltIn LocalInvocationId
OpDecorate %28 BuiltIn LocalInvocationIndex
OpDecorate %31 BuiltIn WorkgroupId
OpDecorate %33 BuiltIn NumWorkgroups
OpDecorate %18 BuiltIn GlobalInvocationId
OpDecorate %21 BuiltIn LocalInvocationId
OpDecorate %23 BuiltIn LocalInvocationIndex
OpDecorate %26 BuiltIn WorkgroupId
OpDecorate %28 BuiltIn NumWorkgroups
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpConstant %4 1.0
%6 = OpTypeInt 32 0
%5 = OpConstant %6 1
%7 = OpConstant %4 0.0
%9 = OpTypeInt 32 1
%8 = OpConstant %9 1
%10 = OpConstant %9 0
%11 = OpConstant %6 2
%12 = OpTypeVector %4 4
%13 = OpTypeStruct %12 %4
%14 = OpTypeStruct %4 %6 %4
%15 = OpTypeBool
%16 = OpTypeArray %6 %8
%17 = OpTypeVector %6 3
%18 = OpTypeStruct %6
%19 = OpTypeStruct %6
%21 = OpTypePointer Workgroup %16
%20 = OpVariable %21 Workgroup
%24 = OpTypePointer Input %17
%4 = OpTypeInt 32 1
%3 = OpConstant %4 1
%6 = OpTypeFloat 32
%5 = OpTypeVector %6 4
%7 = OpTypeStruct %5 %6
%8 = OpTypeInt 32 0
%9 = OpTypeStruct %6 %8 %6
%10 = OpTypeBool
%11 = OpTypeArray %8 %3
%12 = OpTypeVector %8 3
%13 = OpTypeStruct %8
%14 = OpTypeStruct %8
%16 = OpTypePointer Workgroup %11
%15 = OpVariable %16 Workgroup
%19 = OpTypePointer Input %12
%18 = OpVariable %19 Input
%21 = OpVariable %19 Input
%24 = OpTypePointer Input %8
%23 = OpVariable %24 Input
%26 = OpVariable %24 Input
%29 = OpTypePointer Input %6
%28 = OpVariable %29 Input
%31 = OpVariable %24 Input
%33 = OpVariable %24 Input
%36 = OpTypeFunction %2
%38 = OpConstantNull %16
%39 = OpConstantNull %17
%40 = OpTypeVector %15 3
%45 = OpConstant %6 264
%47 = OpTypePointer Workgroup %6
%56 = OpConstant %6 0
%35 = OpFunction %2 None %36
%22 = OpLabel
%25 = OpLoad %17 %23
%27 = OpLoad %17 %26
%30 = OpLoad %6 %28
%32 = OpLoad %17 %31
%34 = OpLoad %17 %33
OpBranch %37
%37 = OpLabel
%41 = OpIEqual %40 %27 %39
%42 = OpAll %15 %41
OpSelectionMerge %43 None
OpBranchConditional %42 %44 %43
%44 = OpLabel
OpStore %20 %38
%26 = OpVariable %19 Input
%28 = OpVariable %19 Input
%31 = OpTypeFunction %2
%32 = OpConstant %4 0
%34 = OpConstantNull %11
%35 = OpConstantNull %12
%36 = OpTypeVector %10 3
%41 = OpConstant %8 2
%42 = OpConstant %8 264
%44 = OpTypePointer Workgroup %8
%53 = OpConstant %8 0
%30 = OpFunction %2 None %31
%17 = OpLabel
%20 = OpLoad %12 %18
%22 = OpLoad %12 %21
%25 = OpLoad %8 %23
%27 = OpLoad %12 %26
%29 = OpLoad %12 %28
OpBranch %33
%33 = OpLabel
%37 = OpIEqual %36 %22 %35
%38 = OpAll %10 %37
OpSelectionMerge %39 None
OpBranchConditional %38 %40 %39
%40 = OpLabel
OpStore %15 %34
OpBranch %39
%39 = OpLabel
OpControlBarrier %41 %41 %42
OpBranch %43
%43 = OpLabel
OpControlBarrier %11 %11 %45
OpBranch %46
%46 = OpLabel
%48 = OpCompositeExtract %6 %25 0
%49 = OpCompositeExtract %6 %27 0
%50 = OpIAdd %6 %48 %49
%51 = OpIAdd %6 %50 %30
%52 = OpCompositeExtract %6 %32 0
%53 = OpIAdd %6 %51 %52
%54 = OpCompositeExtract %6 %34 0
%55 = OpIAdd %6 %53 %54
%57 = OpAccessChain %47 %20 %56
OpStore %57 %55
%45 = OpCompositeExtract %8 %20 0
%46 = OpCompositeExtract %8 %22 0
%47 = OpIAdd %8 %45 %46
%48 = OpIAdd %8 %47 %25
%49 = OpCompositeExtract %8 %27 0
%50 = OpIAdd %8 %48 %49
%51 = OpCompositeExtract %8 %29 0
%52 = OpIAdd %8 %50 %51
%54 = OpAccessChain %44 %15 %53
OpStore %54 %52
OpReturn
OpFunctionEnd

View File

@@ -1,90 +1,88 @@
; SPIR-V
; Version: 1.0
; Generator: rspirv
; Bound: 54
; Bound: 52
OpCapability Shader
OpCapability SampleRateShading
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %41 "fragment" %22 %25 %28 %31 %34 %36 %38 %40
OpExecutionMode %41 OriginUpperLeft
OpExecutionMode %41 DepthReplacing
OpEntryPoint Fragment %36 "fragment" %17 %20 %23 %26 %29 %31 %33 %35
OpExecutionMode %36 OriginUpperLeft
OpExecutionMode %36 DepthReplacing
OpMemberDecorate %7 0 Offset 0
OpMemberDecorate %7 1 Offset 16
OpMemberDecorate %9 0 Offset 0
OpMemberDecorate %9 1 Offset 4
OpMemberDecorate %9 2 Offset 8
OpDecorate %11 ArrayStride 4
OpMemberDecorate %13 0 Offset 0
OpMemberDecorate %13 1 Offset 16
OpMemberDecorate %14 0 Offset 0
OpMemberDecorate %14 1 Offset 4
OpMemberDecorate %14 2 Offset 8
OpDecorate %16 ArrayStride 4
OpMemberDecorate %18 0 Offset 0
OpMemberDecorate %19 0 Offset 0
OpDecorate %22 Invariant
OpDecorate %22 BuiltIn FragCoord
OpDecorate %25 Location 1
OpDecorate %28 BuiltIn FrontFacing
OpDecorate %28 Flat
OpDecorate %31 BuiltIn SampleId
OpDecorate %31 Flat
OpDecorate %34 BuiltIn SampleMask
OpDecorate %34 Flat
OpDecorate %36 BuiltIn FragDepth
OpDecorate %38 BuiltIn SampleMask
OpDecorate %40 Location 0
OpDecorate %17 Invariant
OpDecorate %17 BuiltIn FragCoord
OpDecorate %20 Location 1
OpDecorate %23 BuiltIn FrontFacing
OpDecorate %23 Flat
OpDecorate %26 BuiltIn SampleId
OpDecorate %26 Flat
OpDecorate %29 BuiltIn SampleMask
OpDecorate %29 Flat
OpDecorate %31 BuiltIn FragDepth
OpDecorate %33 BuiltIn SampleMask
OpDecorate %35 Location 0
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpConstant %4 1.0
%6 = OpTypeInt 32 0
%5 = OpConstant %6 1
%7 = OpConstant %4 0.0
%9 = OpTypeInt 32 1
%8 = OpConstant %9 1
%10 = OpConstant %9 0
%11 = OpConstant %6 2
%12 = OpTypeVector %4 4
%13 = OpTypeStruct %12 %4
%14 = OpTypeStruct %4 %6 %4
%15 = OpTypeBool
%16 = OpTypeArray %6 %8
%17 = OpTypeVector %6 3
%18 = OpTypeStruct %6
%19 = OpTypeStruct %6
%23 = OpTypePointer Input %12
%22 = OpVariable %23 Input
%26 = OpTypePointer Input %4
%25 = OpVariable %26 Input
%29 = OpTypePointer Input %15
%28 = OpVariable %29 Input
%32 = OpTypePointer Input %6
%31 = OpVariable %32 Input
%34 = OpVariable %32 Input
%37 = OpTypePointer Output %4
%36 = OpVariable %37 Output
%39 = OpTypePointer Output %6
%38 = OpVariable %39 Output
%40 = OpVariable %37 Output
%42 = OpTypeFunction %2
%41 = OpFunction %2 None %42
%20 = OpLabel
%24 = OpLoad %12 %22
%27 = OpLoad %4 %25
%21 = OpCompositeConstruct %13 %24 %27
%30 = OpLoad %15 %28
%33 = OpLoad %6 %31
%35 = OpLoad %6 %34
OpBranch %43
%43 = OpLabel
%44 = OpShiftLeftLogical %6 %5 %33
%45 = OpBitwiseAnd %6 %35 %44
%46 = OpSelect %4 %30 %3 %7
%47 = OpCompositeExtract %4 %21 1
%48 = OpCompositeConstruct %14 %47 %45 %46
%49 = OpCompositeExtract %4 %48 0
OpStore %36 %49
%50 = OpLoad %4 %36
%51 = OpExtInst %4 %1 FClamp %50 %7 %3
OpStore %36 %51
%52 = OpCompositeExtract %6 %48 1
OpStore %38 %52
%53 = OpCompositeExtract %4 %48 2
OpStore %40 %53
%4 = OpTypeInt 32 1
%3 = OpConstant %4 1
%6 = OpTypeFloat 32
%5 = OpTypeVector %6 4
%7 = OpTypeStruct %5 %6
%8 = OpTypeInt 32 0
%9 = OpTypeStruct %6 %8 %6
%10 = OpTypeBool
%11 = OpTypeArray %8 %3
%12 = OpTypeVector %8 3
%13 = OpTypeStruct %8
%14 = OpTypeStruct %8
%18 = OpTypePointer Input %5
%17 = OpVariable %18 Input
%21 = OpTypePointer Input %6
%20 = OpVariable %21 Input
%24 = OpTypePointer Input %10
%23 = OpVariable %24 Input
%27 = OpTypePointer Input %8
%26 = OpVariable %27 Input
%29 = OpVariable %27 Input
%32 = OpTypePointer Output %6
%31 = OpVariable %32 Output
%34 = OpTypePointer Output %8
%33 = OpVariable %34 Output
%35 = OpVariable %32 Output
%37 = OpTypeFunction %2
%38 = OpConstant %8 1
%39 = OpConstant %6 0.0
%40 = OpConstant %6 1.0
%36 = OpFunction %2 None %37
%15 = OpLabel
%19 = OpLoad %5 %17
%22 = OpLoad %6 %20
%16 = OpCompositeConstruct %7 %19 %22
%25 = OpLoad %10 %23
%28 = OpLoad %8 %26
%30 = OpLoad %8 %29
OpBranch %41
%41 = OpLabel
%42 = OpShiftLeftLogical %8 %38 %28
%43 = OpBitwiseAnd %8 %30 %42
%44 = OpSelect %6 %25 %40 %39
%45 = OpCompositeExtract %6 %16 1
%46 = OpCompositeConstruct %9 %45 %43 %44
%47 = OpCompositeExtract %6 %46 0
OpStore %31 %47
%48 = OpLoad %6 %31
%49 = OpExtInst %6 %1 FClamp %48 %39 %40
OpStore %31 %49
%50 = OpCompositeExtract %8 %46 1
OpStore %33 %50
%51 = OpCompositeExtract %6 %46 2
OpStore %35 %51
OpReturn
OpFunctionEnd

View File

@@ -1,71 +1,67 @@
; SPIR-V
; Version: 1.0
; Generator: rspirv
; Bound: 44
; Bound: 40
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %34 "vertex" %21 %24 %26 %28 %30 %32
OpEntryPoint Vertex %30 "vertex" %16 %19 %21 %23 %25 %27
OpMemberDecorate %7 0 Offset 0
OpMemberDecorate %7 1 Offset 16
OpMemberDecorate %9 0 Offset 0
OpMemberDecorate %9 1 Offset 4
OpMemberDecorate %9 2 Offset 8
OpDecorate %11 ArrayStride 4
OpMemberDecorate %13 0 Offset 0
OpMemberDecorate %13 1 Offset 16
OpMemberDecorate %14 0 Offset 0
OpMemberDecorate %14 1 Offset 4
OpMemberDecorate %14 2 Offset 8
OpDecorate %16 ArrayStride 4
OpMemberDecorate %18 0 Offset 0
OpMemberDecorate %19 0 Offset 0
OpDecorate %21 BuiltIn VertexIndex
OpDecorate %24 BuiltIn InstanceIndex
OpDecorate %26 Location 10
OpDecorate %28 Invariant
OpDecorate %28 BuiltIn Position
OpDecorate %30 Location 1
OpDecorate %32 BuiltIn PointSize
OpDecorate %16 BuiltIn VertexIndex
OpDecorate %19 BuiltIn InstanceIndex
OpDecorate %21 Location 10
OpDecorate %23 Invariant
OpDecorate %23 BuiltIn Position
OpDecorate %25 Location 1
OpDecorate %27 BuiltIn PointSize
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpConstant %4 1.0
%6 = OpTypeInt 32 0
%5 = OpConstant %6 1
%7 = OpConstant %4 0.0
%9 = OpTypeInt 32 1
%8 = OpConstant %9 1
%10 = OpConstant %9 0
%11 = OpConstant %6 2
%12 = OpTypeVector %4 4
%13 = OpTypeStruct %12 %4
%14 = OpTypeStruct %4 %6 %4
%15 = OpTypeBool
%16 = OpTypeArray %6 %8
%17 = OpTypeVector %6 3
%18 = OpTypeStruct %6
%19 = OpTypeStruct %6
%22 = OpTypePointer Input %6
%21 = OpVariable %22 Input
%24 = OpVariable %22 Input
%26 = OpVariable %22 Input
%29 = OpTypePointer Output %12
%28 = OpVariable %29 Output
%31 = OpTypePointer Output %4
%30 = OpVariable %31 Output
%33 = OpTypePointer Output %4
%32 = OpVariable %33 Output
%35 = OpTypeFunction %2
%34 = OpFunction %2 None %35
%20 = OpLabel
%23 = OpLoad %6 %21
%25 = OpLoad %6 %24
%27 = OpLoad %6 %26
OpStore %32 %3
OpBranch %36
%36 = OpLabel
%37 = OpIAdd %6 %23 %25
%38 = OpIAdd %6 %37 %27
%39 = OpCompositeConstruct %12 %3 %3 %3 %3
%40 = OpConvertUToF %4 %38
%41 = OpCompositeConstruct %13 %39 %40
%42 = OpCompositeExtract %12 %41 0
OpStore %28 %42
%43 = OpCompositeExtract %4 %41 1
OpStore %30 %43
%4 = OpTypeInt 32 1
%3 = OpConstant %4 1
%6 = OpTypeFloat 32
%5 = OpTypeVector %6 4
%7 = OpTypeStruct %5 %6
%8 = OpTypeInt 32 0
%9 = OpTypeStruct %6 %8 %6
%10 = OpTypeBool
%11 = OpTypeArray %8 %3
%12 = OpTypeVector %8 3
%13 = OpTypeStruct %8
%14 = OpTypeStruct %8
%17 = OpTypePointer Input %8
%16 = OpVariable %17 Input
%19 = OpVariable %17 Input
%21 = OpVariable %17 Input
%24 = OpTypePointer Output %5
%23 = OpVariable %24 Output
%26 = OpTypePointer Output %6
%25 = OpVariable %26 Output
%28 = OpTypePointer Output %6
%27 = OpVariable %28 Output
%29 = OpConstant %6 1.0
%31 = OpTypeFunction %2
%30 = OpFunction %2 None %31
%15 = OpLabel
%18 = OpLoad %8 %16
%20 = OpLoad %8 %19
%22 = OpLoad %8 %21
OpStore %27 %29
OpBranch %32
%32 = OpLabel
%33 = OpIAdd %8 %18 %20
%34 = OpIAdd %8 %33 %22
%35 = OpCompositeConstruct %5 %29 %29 %29 %29
%36 = OpConvertUToF %6 %34
%37 = OpCompositeConstruct %7 %35 %36
%38 = OpCompositeExtract %5 %37 0
OpStore %23 %38
%39 = OpCompositeExtract %6 %37 1
OpStore %25 %39
OpReturn
OpFunctionEnd

View File

@@ -1,70 +1,68 @@
; SPIR-V
; Version: 1.0
; Generator: rspirv
; Bound: 45
; Bound: 43
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %35 "vertex_two_structs" %25 %29 %31 %33
OpEntryPoint Vertex %31 "vertex_two_structs" %20 %24 %26 %28
OpMemberDecorate %7 0 Offset 0
OpMemberDecorate %7 1 Offset 16
OpMemberDecorate %9 0 Offset 0
OpMemberDecorate %9 1 Offset 4
OpMemberDecorate %9 2 Offset 8
OpDecorate %11 ArrayStride 4
OpMemberDecorate %13 0 Offset 0
OpMemberDecorate %13 1 Offset 16
OpMemberDecorate %14 0 Offset 0
OpMemberDecorate %14 1 Offset 4
OpMemberDecorate %14 2 Offset 8
OpDecorate %16 ArrayStride 4
OpMemberDecorate %18 0 Offset 0
OpMemberDecorate %19 0 Offset 0
OpDecorate %25 BuiltIn VertexIndex
OpDecorate %29 BuiltIn InstanceIndex
OpDecorate %31 Invariant
OpDecorate %31 BuiltIn Position
OpDecorate %33 BuiltIn PointSize
OpDecorate %20 BuiltIn VertexIndex
OpDecorate %24 BuiltIn InstanceIndex
OpDecorate %26 Invariant
OpDecorate %26 BuiltIn Position
OpDecorate %28 BuiltIn PointSize
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpConstant %4 1.0
%6 = OpTypeInt 32 0
%5 = OpConstant %6 1
%7 = OpConstant %4 0.0
%9 = OpTypeInt 32 1
%8 = OpConstant %9 1
%10 = OpConstant %9 0
%11 = OpConstant %6 2
%12 = OpTypeVector %4 4
%13 = OpTypeStruct %12 %4
%14 = OpTypeStruct %4 %6 %4
%15 = OpTypeBool
%16 = OpTypeArray %6 %8
%17 = OpTypeVector %6 3
%18 = OpTypeStruct %6
%19 = OpTypeStruct %6
%21 = OpTypePointer Function %6
%22 = OpConstantNull %6
%26 = OpTypePointer Input %6
%25 = OpVariable %26 Input
%29 = OpVariable %26 Input
%32 = OpTypePointer Output %12
%31 = OpVariable %32 Output
%34 = OpTypePointer Output %4
%33 = OpVariable %34 Output
%36 = OpTypeFunction %2
%35 = OpFunction %2 None %36
%23 = OpLabel
%20 = OpVariable %21 Function %22
%27 = OpLoad %6 %25
%24 = OpCompositeConstruct %18 %27
%30 = OpLoad %6 %29
%28 = OpCompositeConstruct %19 %30
OpStore %33 %3
OpBranch %37
%37 = OpLabel
OpStore %20 %11
%38 = OpCompositeExtract %6 %24 0
%39 = OpConvertUToF %4 %38
%40 = OpCompositeExtract %6 %28 0
%41 = OpConvertUToF %4 %40
%42 = OpLoad %6 %20
%43 = OpConvertUToF %4 %42
%44 = OpCompositeConstruct %12 %39 %41 %43 %7
OpStore %31 %44
%4 = OpTypeInt 32 1
%3 = OpConstant %4 1
%6 = OpTypeFloat 32
%5 = OpTypeVector %6 4
%7 = OpTypeStruct %5 %6
%8 = OpTypeInt 32 0
%9 = OpTypeStruct %6 %8 %6
%10 = OpTypeBool
%11 = OpTypeArray %8 %3
%12 = OpTypeVector %8 3
%13 = OpTypeStruct %8
%14 = OpTypeStruct %8
%16 = OpTypePointer Function %8
%17 = OpConstantNull %8
%21 = OpTypePointer Input %8
%20 = OpVariable %21 Input
%24 = OpVariable %21 Input
%27 = OpTypePointer Output %5
%26 = OpVariable %27 Output
%29 = OpTypePointer Output %6
%28 = OpVariable %29 Output
%30 = OpConstant %6 1.0
%32 = OpTypeFunction %2
%33 = OpConstant %8 2
%34 = OpConstant %6 0.0
%31 = OpFunction %2 None %32
%18 = OpLabel
%15 = OpVariable %16 Function %17
%22 = OpLoad %8 %20
%19 = OpCompositeConstruct %13 %22
%25 = OpLoad %8 %24
%23 = OpCompositeConstruct %14 %25
OpStore %28 %30
OpBranch %35
%35 = OpLabel
OpStore %15 %33
%36 = OpCompositeExtract %8 %19 0
%37 = OpConvertUToF %6 %36
%38 = OpCompositeExtract %8 %23 0
%39 = OpConvertUToF %6 %38
%40 = OpLoad %8 %15
%41 = OpConvertUToF %6 %40
%42 = OpCompositeConstruct %5 %37 %39 %41 %34
OpStore %26 %42
OpReturn
OpFunctionEnd

View File

@@ -6,29 +6,29 @@ OpCapability Shader
OpCapability SampleRateShading
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %46 "vert_main" %30 %32 %34 %36 %38 %40 %41 %42 %43
OpEntryPoint Vertex %29 "vert_main" %13 %15 %17 %19 %21 %23 %24 %25 %26
OpEntryPoint Fragment %109 "frag_main" %88 %91 %94 %97 %100 %103 %105 %107
OpExecutionMode %109 OriginUpperLeft
OpSource GLSL 450
OpMemberName %25 0 "position"
OpMemberName %25 1 "_flat"
OpMemberName %25 2 "_linear"
OpMemberName %25 3 "linear_centroid"
OpMemberName %25 4 "linear_sample"
OpMemberName %25 5 "perspective"
OpMemberName %25 6 "perspective_centroid"
OpMemberName %25 7 "perspective_sample"
OpName %25 "FragmentInput"
OpName %26 "out"
OpName %30 "position"
OpName %32 "_flat"
OpName %34 "_linear"
OpName %36 "linear_centroid"
OpName %38 "linear_sample"
OpName %40 "perspective"
OpName %41 "perspective_centroid"
OpName %42 "perspective_sample"
OpName %46 "vert_main"
OpMemberName %8 0 "position"
OpMemberName %8 1 "_flat"
OpMemberName %8 2 "_linear"
OpMemberName %8 3 "linear_centroid"
OpMemberName %8 4 "linear_sample"
OpMemberName %8 5 "perspective"
OpMemberName %8 6 "perspective_centroid"
OpMemberName %8 7 "perspective_sample"
OpName %8 "FragmentInput"
OpName %9 "out"
OpName %13 "position"
OpName %15 "_flat"
OpName %17 "_linear"
OpName %19 "linear_centroid"
OpName %21 "linear_sample"
OpName %23 "perspective"
OpName %24 "perspective_centroid"
OpName %25 "perspective_sample"
OpName %29 "vert_main"
OpName %88 "position"
OpName %91 "_flat"
OpName %94 "_linear"
@@ -38,31 +38,31 @@ OpName %103 "perspective"
OpName %105 "perspective_centroid"
OpName %107 "perspective_sample"
OpName %109 "frag_main"
OpMemberDecorate %25 0 Offset 0
OpMemberDecorate %25 1 Offset 16
OpMemberDecorate %25 2 Offset 20
OpMemberDecorate %25 3 Offset 24
OpMemberDecorate %25 4 Offset 32
OpMemberDecorate %25 5 Offset 48
OpMemberDecorate %25 6 Offset 64
OpMemberDecorate %25 7 Offset 68
OpDecorate %30 BuiltIn Position
OpDecorate %32 Location 0
OpDecorate %32 Flat
OpDecorate %34 Location 1
OpDecorate %34 NoPerspective
OpDecorate %36 Location 2
OpDecorate %36 NoPerspective
OpDecorate %36 Centroid
OpDecorate %38 Location 3
OpDecorate %38 NoPerspective
OpDecorate %38 Sample
OpDecorate %40 Location 4
OpDecorate %41 Location 5
OpDecorate %41 Centroid
OpDecorate %42 Location 6
OpDecorate %42 Sample
OpDecorate %43 BuiltIn PointSize
OpMemberDecorate %8 0 Offset 0
OpMemberDecorate %8 1 Offset 16
OpMemberDecorate %8 2 Offset 20
OpMemberDecorate %8 3 Offset 24
OpMemberDecorate %8 4 Offset 32
OpMemberDecorate %8 5 Offset 48
OpMemberDecorate %8 6 Offset 64
OpMemberDecorate %8 7 Offset 68
OpDecorate %13 BuiltIn Position
OpDecorate %15 Location 0
OpDecorate %15 Flat
OpDecorate %17 Location 1
OpDecorate %17 NoPerspective
OpDecorate %19 Location 2
OpDecorate %19 NoPerspective
OpDecorate %19 Centroid
OpDecorate %21 Location 3
OpDecorate %21 NoPerspective
OpDecorate %21 Sample
OpDecorate %23 Location 4
OpDecorate %24 Location 5
OpDecorate %24 Centroid
OpDecorate %25 Location 6
OpDecorate %25 Sample
OpDecorate %26 BuiltIn PointSize
OpDecorate %88 BuiltIn FragCoord
OpDecorate %91 Location 0
OpDecorate %91 Flat
@@ -81,133 +81,133 @@ OpDecorate %107 Location 6
OpDecorate %107 Sample
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpConstant %4 2.0
%5 = OpConstant %4 4.0
%6 = OpConstant %4 5.0
%7 = OpConstant %4 6.0
%9 = OpTypeInt 32 0
%8 = OpConstant %9 8
%10 = OpConstant %4 27.0
%11 = OpConstant %4 64.0
%12 = OpConstant %4 125.0
%13 = OpConstant %4 216.0
%14 = OpConstant %4 343.0
%15 = OpConstant %4 512.0
%16 = OpConstant %4 729.0
%17 = OpConstant %4 1000.0
%18 = OpConstant %4 1331.0
%19 = OpConstant %4 1728.0
%20 = OpConstant %4 2197.0
%21 = OpConstant %4 2744.0
%22 = OpTypeVector %4 4
%23 = OpTypeVector %4 2
%24 = OpTypeVector %4 3
%25 = OpTypeStruct %22 %9 %4 %23 %24 %22 %4 %4
%27 = OpTypePointer Function %25
%28 = OpConstantNull %25
%31 = OpTypePointer Output %22
%30 = OpVariable %31 Output
%33 = OpTypePointer Output %9
%32 = OpVariable %33 Output
%35 = OpTypePointer Output %4
%34 = OpVariable %35 Output
%37 = OpTypePointer Output %23
%36 = OpVariable %37 Output
%39 = OpTypePointer Output %24
%38 = OpVariable %39 Output
%40 = OpVariable %31 Output
%41 = OpVariable %35 Output
%42 = OpVariable %35 Output
%44 = OpTypePointer Output %4
%43 = OpVariable %44 Output
%45 = OpConstant %4 1.0
%47 = OpTypeFunction %2
%49 = OpTypePointer Function %22
%51 = OpConstant %9 0
%53 = OpTypePointer Function %9
%54 = OpConstant %9 1
%3 = OpTypeVector %4 4
%5 = OpTypeInt 32 0
%6 = OpTypeVector %4 2
%7 = OpTypeVector %4 3
%8 = OpTypeStruct %3 %5 %4 %6 %7 %3 %4 %4
%10 = OpTypePointer Function %8
%11 = OpConstantNull %8
%14 = OpTypePointer Output %3
%13 = OpVariable %14 Output
%16 = OpTypePointer Output %5
%15 = OpVariable %16 Output
%18 = OpTypePointer Output %4
%17 = OpVariable %18 Output
%20 = OpTypePointer Output %6
%19 = OpVariable %20 Output
%22 = OpTypePointer Output %7
%21 = OpVariable %22 Output
%23 = OpVariable %14 Output
%24 = OpVariable %18 Output
%25 = OpVariable %18 Output
%27 = OpTypePointer Output %4
%26 = OpVariable %27 Output
%28 = OpConstant %4 1.0
%30 = OpTypeFunction %2
%31 = OpConstant %4 2.0
%32 = OpConstant %4 4.0
%33 = OpConstant %4 5.0
%34 = OpConstant %4 6.0
%35 = OpConstant %5 8
%36 = OpConstant %4 27.0
%37 = OpConstant %4 64.0
%38 = OpConstant %4 125.0
%39 = OpConstant %4 216.0
%40 = OpConstant %4 343.0
%41 = OpConstant %4 512.0
%42 = OpConstant %4 729.0
%43 = OpConstant %4 1000.0
%44 = OpConstant %4 1331.0
%45 = OpConstant %4 1728.0
%46 = OpConstant %4 2197.0
%47 = OpConstant %4 2744.0
%49 = OpTypePointer Function %3
%51 = OpConstant %5 0
%53 = OpTypePointer Function %5
%54 = OpConstant %5 1
%56 = OpTypePointer Function %4
%57 = OpConstant %9 2
%59 = OpTypePointer Function %23
%61 = OpConstant %9 3
%63 = OpTypePointer Function %24
%65 = OpConstant %9 4
%68 = OpConstant %9 5
%70 = OpConstant %9 6
%72 = OpConstant %9 7
%89 = OpTypePointer Input %22
%57 = OpConstant %5 2
%59 = OpTypePointer Function %6
%61 = OpConstant %5 3
%63 = OpTypePointer Function %7
%65 = OpConstant %5 4
%68 = OpConstant %5 5
%70 = OpConstant %5 6
%72 = OpConstant %5 7
%89 = OpTypePointer Input %3
%88 = OpVariable %89 Input
%92 = OpTypePointer Input %9
%92 = OpTypePointer Input %5
%91 = OpVariable %92 Input
%95 = OpTypePointer Input %4
%94 = OpVariable %95 Input
%98 = OpTypePointer Input %23
%98 = OpTypePointer Input %6
%97 = OpVariable %98 Input
%101 = OpTypePointer Input %24
%101 = OpTypePointer Input %7
%100 = OpVariable %101 Input
%103 = OpVariable %89 Input
%105 = OpVariable %95 Input
%107 = OpVariable %95 Input
%46 = OpFunction %2 None %47
%29 = OpLabel
%26 = OpVariable %27 Function %28
OpStore %43 %45
%29 = OpFunction %2 None %30
%12 = OpLabel
%9 = OpVariable %10 Function %11
OpStore %26 %28
OpBranch %48
%48 = OpLabel
%50 = OpCompositeConstruct %22 %3 %5 %6 %7
%52 = OpAccessChain %49 %26 %51
%50 = OpCompositeConstruct %3 %31 %32 %33 %34
%52 = OpAccessChain %49 %9 %51
OpStore %52 %50
%55 = OpAccessChain %53 %26 %54
OpStore %55 %8
%58 = OpAccessChain %56 %26 %57
OpStore %58 %10
%60 = OpCompositeConstruct %23 %11 %12
%62 = OpAccessChain %59 %26 %61
%55 = OpAccessChain %53 %9 %54
OpStore %55 %35
%58 = OpAccessChain %56 %9 %57
OpStore %58 %36
%60 = OpCompositeConstruct %6 %37 %38
%62 = OpAccessChain %59 %9 %61
OpStore %62 %60
%64 = OpCompositeConstruct %24 %13 %14 %15
%66 = OpAccessChain %63 %26 %65
%64 = OpCompositeConstruct %7 %39 %40 %41
%66 = OpAccessChain %63 %9 %65
OpStore %66 %64
%67 = OpCompositeConstruct %22 %16 %17 %18 %19
%69 = OpAccessChain %49 %26 %68
%67 = OpCompositeConstruct %3 %42 %43 %44 %45
%69 = OpAccessChain %49 %9 %68
OpStore %69 %67
%71 = OpAccessChain %56 %26 %70
OpStore %71 %20
%73 = OpAccessChain %56 %26 %72
OpStore %73 %21
%74 = OpLoad %25 %26
%75 = OpCompositeExtract %22 %74 0
OpStore %30 %75
%76 = OpAccessChain %44 %30 %54
%71 = OpAccessChain %56 %9 %70
OpStore %71 %46
%73 = OpAccessChain %56 %9 %72
OpStore %73 %47
%74 = OpLoad %8 %9
%75 = OpCompositeExtract %3 %74 0
OpStore %13 %75
%76 = OpAccessChain %27 %13 %54
%77 = OpLoad %4 %76
%78 = OpFNegate %4 %77
OpStore %76 %78
%79 = OpCompositeExtract %9 %74 1
OpStore %32 %79
%79 = OpCompositeExtract %5 %74 1
OpStore %15 %79
%80 = OpCompositeExtract %4 %74 2
OpStore %34 %80
%81 = OpCompositeExtract %23 %74 3
OpStore %36 %81
%82 = OpCompositeExtract %24 %74 4
OpStore %38 %82
%83 = OpCompositeExtract %22 %74 5
OpStore %40 %83
OpStore %17 %80
%81 = OpCompositeExtract %6 %74 3
OpStore %19 %81
%82 = OpCompositeExtract %7 %74 4
OpStore %21 %82
%83 = OpCompositeExtract %3 %74 5
OpStore %23 %83
%84 = OpCompositeExtract %4 %74 6
OpStore %41 %84
OpStore %24 %84
%85 = OpCompositeExtract %4 %74 7
OpStore %42 %85
OpStore %25 %85
OpReturn
OpFunctionEnd
%109 = OpFunction %2 None %47
%109 = OpFunction %2 None %30
%86 = OpLabel
%90 = OpLoad %22 %88
%93 = OpLoad %9 %91
%90 = OpLoad %3 %88
%93 = OpLoad %5 %91
%96 = OpLoad %4 %94
%99 = OpLoad %23 %97
%102 = OpLoad %24 %100
%104 = OpLoad %22 %103
%99 = OpLoad %6 %97
%102 = OpLoad %7 %100
%104 = OpLoad %3 %103
%106 = OpLoad %4 %105
%108 = OpLoad %4 %107
%87 = OpCompositeConstruct %25 %90 %93 %96 %99 %102 %104 %106 %108
%87 = OpCompositeConstruct %8 %90 %93 %96 %99 %102 %104 %106 %108
OpBranch %110
%110 = OpLabel
OpReturn

View File

@@ -5,94 +5,94 @@
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %17 "main"
OpExecutionMode %17 OriginUpperLeft
OpEntryPoint Fragment %8 "main"
OpExecutionMode %8 OriginUpperLeft
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpConstant %4 1.0
%5 = OpConstant %4 0.0
%7 = OpTypeInt 32 0
%6 = OpConstant %7 0
%9 = OpTypeInt 32 1
%8 = OpConstant %9 -1
%10 = OpConstant %7 1
%11 = OpConstant %9 0
%12 = OpConstant %7 4294967295
%13 = OpConstant %9 1
%14 = OpTypeVector %4 4
%15 = OpTypeVector %9 2
%18 = OpTypeFunction %2
%19 = OpConstantNull %15
%20 = OpConstantNull %15
%28 = OpConstantComposite %14 %5 %5 %5 %5
%29 = OpConstantComposite %14 %3 %3 %3 %3
%32 = OpConstantNull %9
%45 = OpTypeVector %7 2
%55 = OpConstant %7 32
%3 = OpTypeVector %4 4
%6 = OpTypeInt 32 1
%5 = OpTypeVector %6 2
%9 = OpTypeFunction %2
%10 = OpConstant %4 1.0
%11 = OpConstant %4 0.0
%12 = OpConstantNull %5
%13 = OpConstantNull %5
%14 = OpTypeInt 32 0
%15 = OpConstant %14 0
%16 = OpConstant %6 -1
%17 = OpConstant %14 1
%18 = OpConstant %6 0
%19 = OpConstant %14 4294967295
%20 = OpConstant %6 1
%28 = OpConstantComposite %3 %11 %11 %11 %11
%29 = OpConstantComposite %3 %10 %10 %10 %10
%32 = OpConstantNull %6
%45 = OpTypeVector %14 2
%55 = OpConstant %14 32
%65 = OpConstantComposite %45 %55 %55
%77 = OpConstant %9 31
%83 = OpConstantComposite %15 %77 %77
%17 = OpFunction %2 None %18
%16 = OpLabel
%77 = OpConstant %6 31
%83 = OpConstantComposite %5 %77 %77
%8 = OpFunction %2 None %9
%7 = OpLabel
OpBranch %21
%21 = OpLabel
%22 = OpCompositeConstruct %14 %5 %5 %5 %5
%23 = OpExtInst %4 %1 Degrees %3
%24 = OpExtInst %4 %1 Radians %3
%25 = OpExtInst %14 %1 Degrees %22
%26 = OpExtInst %14 %1 Radians %22
%27 = OpExtInst %14 %1 FClamp %22 %28 %29
%30 = OpExtInst %14 %1 Refract %22 %22 %3
%33 = OpCompositeExtract %9 %19 0
%34 = OpCompositeExtract %9 %20 0
%35 = OpIMul %9 %33 %34
%36 = OpIAdd %9 %32 %35
%37 = OpCompositeExtract %9 %19 1
%38 = OpCompositeExtract %9 %20 1
%39 = OpIMul %9 %37 %38
%31 = OpIAdd %9 %36 %39
%40 = OpCopyObject %7 %6
%41 = OpExtInst %7 %1 FindUMsb %40
%42 = OpExtInst %9 %1 FindSMsb %8
%43 = OpCompositeConstruct %15 %8 %8
%44 = OpExtInst %15 %1 FindSMsb %43
%46 = OpCompositeConstruct %45 %10 %10
%22 = OpCompositeConstruct %3 %11 %11 %11 %11
%23 = OpExtInst %4 %1 Degrees %10
%24 = OpExtInst %4 %1 Radians %10
%25 = OpExtInst %3 %1 Degrees %22
%26 = OpExtInst %3 %1 Radians %22
%27 = OpExtInst %3 %1 FClamp %22 %28 %29
%30 = OpExtInst %3 %1 Refract %22 %22 %10
%33 = OpCompositeExtract %6 %12 0
%34 = OpCompositeExtract %6 %13 0
%35 = OpIMul %6 %33 %34
%36 = OpIAdd %6 %32 %35
%37 = OpCompositeExtract %6 %12 1
%38 = OpCompositeExtract %6 %13 1
%39 = OpIMul %6 %37 %38
%31 = OpIAdd %6 %36 %39
%40 = OpCopyObject %14 %15
%41 = OpExtInst %14 %1 FindUMsb %40
%42 = OpExtInst %6 %1 FindSMsb %16
%43 = OpCompositeConstruct %5 %16 %16
%44 = OpExtInst %5 %1 FindSMsb %43
%46 = OpCompositeConstruct %45 %17 %17
%47 = OpExtInst %45 %1 FindUMsb %46
%48 = OpExtInst %9 %1 FindILsb %8
%49 = OpExtInst %7 %1 FindILsb %10
%50 = OpCompositeConstruct %15 %8 %8
%51 = OpExtInst %15 %1 FindILsb %50
%52 = OpCompositeConstruct %45 %10 %10
%48 = OpExtInst %6 %1 FindILsb %16
%49 = OpExtInst %14 %1 FindILsb %17
%50 = OpCompositeConstruct %5 %16 %16
%51 = OpExtInst %5 %1 FindILsb %50
%52 = OpCompositeConstruct %45 %17 %17
%53 = OpExtInst %45 %1 FindILsb %52
%56 = OpExtInst %7 %1 FindILsb %6
%54 = OpExtInst %7 %1 UMin %55 %56
%58 = OpExtInst %9 %1 FindILsb %11
%57 = OpExtInst %9 %1 UMin %55 %58
%60 = OpExtInst %7 %1 FindILsb %12
%59 = OpExtInst %7 %1 UMin %55 %60
%62 = OpExtInst %9 %1 FindILsb %8
%61 = OpExtInst %9 %1 UMin %55 %62
%63 = OpCompositeConstruct %45 %6 %6
%56 = OpExtInst %14 %1 FindILsb %15
%54 = OpExtInst %14 %1 UMin %55 %56
%58 = OpExtInst %6 %1 FindILsb %18
%57 = OpExtInst %6 %1 UMin %55 %58
%60 = OpExtInst %14 %1 FindILsb %19
%59 = OpExtInst %14 %1 UMin %55 %60
%62 = OpExtInst %6 %1 FindILsb %16
%61 = OpExtInst %6 %1 UMin %55 %62
%63 = OpCompositeConstruct %45 %15 %15
%66 = OpExtInst %45 %1 FindILsb %63
%64 = OpExtInst %45 %1 UMin %65 %66
%67 = OpCompositeConstruct %15 %11 %11
%69 = OpExtInst %15 %1 FindILsb %67
%68 = OpExtInst %15 %1 UMin %65 %69
%70 = OpCompositeConstruct %45 %10 %10
%67 = OpCompositeConstruct %5 %18 %18
%69 = OpExtInst %5 %1 FindILsb %67
%68 = OpExtInst %5 %1 UMin %65 %69
%70 = OpCompositeConstruct %45 %17 %17
%72 = OpExtInst %45 %1 FindILsb %70
%71 = OpExtInst %45 %1 UMin %65 %72
%73 = OpCompositeConstruct %15 %13 %13
%75 = OpExtInst %15 %1 FindILsb %73
%74 = OpExtInst %15 %1 UMin %65 %75
%78 = OpExtInst %9 %1 FindUMsb %8
%76 = OpISub %9 %77 %78
%80 = OpExtInst %9 %1 FindUMsb %10
%79 = OpISub %7 %77 %80
%81 = OpCompositeConstruct %15 %8 %8
%84 = OpExtInst %15 %1 FindUMsb %81
%82 = OpISub %15 %83 %84
%85 = OpCompositeConstruct %45 %10 %10
%87 = OpExtInst %15 %1 FindUMsb %85
%73 = OpCompositeConstruct %5 %20 %20
%75 = OpExtInst %5 %1 FindILsb %73
%74 = OpExtInst %5 %1 UMin %65 %75
%78 = OpExtInst %6 %1 FindUMsb %16
%76 = OpISub %6 %77 %78
%80 = OpExtInst %6 %1 FindUMsb %17
%79 = OpISub %14 %77 %80
%81 = OpCompositeConstruct %5 %16 %16
%84 = OpExtInst %5 %1 FindUMsb %81
%82 = OpISub %5 %83 %84
%85 = OpCompositeConstruct %45 %17 %17
%87 = OpExtInst %5 %1 FindUMsb %85
%86 = OpISub %45 %83 %87
OpReturn
OpFunctionEnd

File diff suppressed because it is too large Load Diff

View File

@@ -5,95 +5,95 @@
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %27 "vertex" %25
OpEntryPoint Vertex %26 "vertex" %24
OpSource GLSL 450
OpMemberName %7 0 "a"
OpName %7 "S"
OpMemberName %8 0 "a"
OpName %8 "S"
OpMemberName %9 0 "a"
OpMemberName %9 1 "b"
OpName %9 "Test"
OpMemberName %11 0 "a"
OpMemberName %11 1 "b"
OpName %11 "Test2"
OpMemberName %13 0 "a"
OpMemberName %13 1 "b"
OpName %13 "Test3"
OpName %15 "input1"
OpName %18 "input2"
OpName %21 "input3"
OpName %27 "vertex"
OpMemberName %8 1 "b"
OpName %8 "Test"
OpMemberName %10 0 "a"
OpMemberName %10 1 "b"
OpName %10 "Test2"
OpMemberName %12 0 "a"
OpMemberName %12 1 "b"
OpName %12 "Test3"
OpName %14 "input1"
OpName %17 "input2"
OpName %20 "input3"
OpName %26 "vertex"
OpMemberDecorate %7 0 Offset 0
OpMemberDecorate %8 0 Offset 0
OpMemberDecorate %9 0 Offset 0
OpMemberDecorate %9 1 Offset 16
OpDecorate %10 ArrayStride 16
OpMemberDecorate %11 0 Offset 0
OpMemberDecorate %11 1 Offset 32
OpMemberDecorate %13 0 Offset 0
OpMemberDecorate %13 0 ColMajor
OpMemberDecorate %13 0 MatrixStride 16
OpMemberDecorate %13 1 Offset 64
OpDecorate %15 DescriptorSet 0
OpDecorate %15 Binding 0
OpDecorate %16 Block
OpMemberDecorate %16 0 Offset 0
OpDecorate %18 DescriptorSet 0
OpDecorate %18 Binding 1
OpDecorate %19 Block
OpMemberDecorate %19 0 Offset 0
OpDecorate %21 DescriptorSet 0
OpDecorate %21 Binding 2
OpDecorate %22 Block
OpMemberDecorate %22 0 Offset 0
OpDecorate %25 BuiltIn Position
OpMemberDecorate %8 1 Offset 16
OpDecorate %9 ArrayStride 16
OpMemberDecorate %10 0 Offset 0
OpMemberDecorate %10 1 Offset 32
OpMemberDecorate %12 0 Offset 0
OpMemberDecorate %12 0 ColMajor
OpMemberDecorate %12 0 MatrixStride 16
OpMemberDecorate %12 1 Offset 64
OpDecorate %14 DescriptorSet 0
OpDecorate %14 Binding 0
OpDecorate %15 Block
OpMemberDecorate %15 0 Offset 0
OpDecorate %17 DescriptorSet 0
OpDecorate %17 Binding 1
OpDecorate %18 Block
OpMemberDecorate %18 0 Offset 0
OpDecorate %20 DescriptorSet 0
OpDecorate %20 Binding 2
OpDecorate %21 Block
OpMemberDecorate %21 0 Offset 0
OpDecorate %24 BuiltIn Position
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 2
%6 = OpTypeFloat 32
%5 = OpConstant %6 1.0
%7 = OpTypeVector %6 3
%8 = OpTypeStruct %7
%9 = OpTypeStruct %8 %6
%10 = OpTypeArray %7 %3
%11 = OpTypeStruct %10 %6
%12 = OpTypeMatrix %7 4
%13 = OpTypeStruct %12 %6
%14 = OpTypeVector %6 4
%16 = OpTypeStruct %9
%17 = OpTypePointer Uniform %16
%15 = OpVariable %17 Uniform
%19 = OpTypeStruct %11
%20 = OpTypePointer Uniform %19
%18 = OpVariable %20 Uniform
%22 = OpTypeStruct %13
%23 = OpTypePointer Uniform %22
%21 = OpVariable %23 Uniform
%26 = OpTypePointer Output %14
%25 = OpVariable %26 Output
%28 = OpTypeFunction %2
%29 = OpTypePointer Uniform %9
%31 = OpTypeInt 32 0
%30 = OpConstant %31 0
%33 = OpTypePointer Uniform %11
%35 = OpTypePointer Uniform %13
%5 = OpTypeVector %6 3
%7 = OpTypeStruct %5
%8 = OpTypeStruct %7 %6
%9 = OpTypeArray %5 %3
%10 = OpTypeStruct %9 %6
%11 = OpTypeMatrix %5 4
%12 = OpTypeStruct %11 %6
%13 = OpTypeVector %6 4
%15 = OpTypeStruct %8
%16 = OpTypePointer Uniform %15
%14 = OpVariable %16 Uniform
%18 = OpTypeStruct %10
%19 = OpTypePointer Uniform %18
%17 = OpVariable %19 Uniform
%21 = OpTypeStruct %12
%22 = OpTypePointer Uniform %21
%20 = OpVariable %22 Uniform
%25 = OpTypePointer Output %13
%24 = OpVariable %25 Output
%27 = OpTypeFunction %2
%28 = OpTypePointer Uniform %8
%30 = OpTypeInt 32 0
%29 = OpConstant %30 0
%32 = OpTypePointer Uniform %10
%34 = OpTypePointer Uniform %12
%36 = OpConstant %6 1.0
%39 = OpTypePointer Uniform %6
%40 = OpConstant %31 1
%27 = OpFunction %2 None %28
%24 = OpLabel
%32 = OpAccessChain %29 %15 %30
%34 = OpAccessChain %33 %18 %30
%36 = OpAccessChain %35 %21 %30
%40 = OpConstant %30 1
%26 = OpFunction %2 None %27
%23 = OpLabel
%31 = OpAccessChain %28 %14 %29
%33 = OpAccessChain %32 %17 %29
%35 = OpAccessChain %34 %20 %29
OpBranch %37
%37 = OpLabel
%38 = OpCompositeConstruct %14 %5 %5 %5 %5
%41 = OpAccessChain %39 %32 %40
%38 = OpCompositeConstruct %13 %36 %36 %36 %36
%41 = OpAccessChain %39 %31 %40
%42 = OpLoad %6 %41
%43 = OpVectorTimesScalar %14 %38 %42
%44 = OpAccessChain %39 %34 %40
%43 = OpVectorTimesScalar %13 %38 %42
%44 = OpAccessChain %39 %33 %40
%45 = OpLoad %6 %44
%46 = OpVectorTimesScalar %14 %43 %45
%47 = OpAccessChain %39 %36 %40
%46 = OpVectorTimesScalar %13 %43 %45
%47 = OpAccessChain %39 %35 %40
%48 = OpLoad %6 %47
%49 = OpVectorTimesScalar %14 %46 %48
OpStore %25 %49
%49 = OpVectorTimesScalar %13 %46 %48
OpStore %24 %49
OpReturn
OpFunctionEnd

View File

@@ -8,71 +8,71 @@ OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpSource GLSL 450
OpMemberName %8 0 "arr"
OpName %8 "DynamicArray"
OpName %11 "dynamic_array"
OpName %12 "v"
OpName %16 "f"
OpMemberName %7 0 "arr"
OpName %7 "DynamicArray"
OpName %10 "dynamic_array"
OpName %11 "v"
OpName %15 "f"
OpName %23 "i"
OpName %24 "v"
OpName %25 "index_unsized"
OpName %34 "i"
OpName %35 "v"
OpName %36 "index_dynamic_array"
OpDecorate %7 ArrayStride 4
OpMemberDecorate %8 0 Offset 0
OpDecorate %11 DescriptorSet 0
OpDecorate %11 Binding 0
OpDecorate %8 Block
OpDecorate %6 ArrayStride 4
OpMemberDecorate %7 0 Offset 0
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %7 Block
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 10
%5 = OpTypeVector %4 2
%6 = OpTypeInt 32 0
%7 = OpTypeRuntimeArray %6
%8 = OpTypeStruct %7
%9 = OpTypePointer StorageBuffer %8
%10 = OpTypePointer StorageBuffer %7
%11 = OpVariable %9 StorageBuffer
%13 = OpTypePointer Function %5
%14 = OpConstantNull %5
%17 = OpTypeFunction %2
%3 = OpTypeVector %4 2
%5 = OpTypeInt 32 0
%6 = OpTypeRuntimeArray %5
%7 = OpTypeStruct %6
%8 = OpTypePointer StorageBuffer %7
%9 = OpTypePointer StorageBuffer %6
%10 = OpVariable %8 StorageBuffer
%12 = OpTypePointer Function %3
%13 = OpConstantNull %3
%16 = OpTypeFunction %2
%17 = OpConstant %4 10
%19 = OpTypePointer Function %4
%20 = OpConstant %6 0
%26 = OpTypeFunction %2 %4 %6
%28 = OpTypePointer StorageBuffer %6
%16 = OpFunction %2 None %17
%15 = OpLabel
%12 = OpVariable %13 Function %14
%20 = OpConstant %5 0
%26 = OpTypeFunction %2 %4 %5
%28 = OpTypePointer StorageBuffer %5
%15 = OpFunction %2 None %16
%14 = OpLabel
%11 = OpVariable %12 Function %13
OpBranch %18
%18 = OpLabel
%21 = OpAccessChain %19 %12 %20
OpStore %21 %3
%21 = OpAccessChain %19 %11 %20
OpStore %21 %17
OpReturn
OpFunctionEnd
%25 = OpFunction %2 None %26
%23 = OpFunctionParameter %4
%24 = OpFunctionParameter %6
%24 = OpFunctionParameter %5
%22 = OpLabel
OpBranch %27
%27 = OpLabel
%29 = OpAccessChain %28 %11 %20 %23
%30 = OpLoad %6 %29
%31 = OpIAdd %6 %30 %24
%32 = OpAccessChain %28 %11 %20 %23
%29 = OpAccessChain %28 %10 %20 %23
%30 = OpLoad %5 %29
%31 = OpIAdd %5 %30 %24
%32 = OpAccessChain %28 %10 %20 %23
OpStore %32 %31
OpReturn
OpFunctionEnd
%36 = OpFunction %2 None %26
%34 = OpFunctionParameter %4
%35 = OpFunctionParameter %6
%35 = OpFunctionParameter %5
%33 = OpLabel
OpBranch %37
%37 = OpLabel
%38 = OpAccessChain %28 %11 %20 %34
%39 = OpLoad %6 %38
%40 = OpIAdd %6 %39 %35
%41 = OpAccessChain %28 %11 %20 %34
%38 = OpAccessChain %28 %10 %20 %34
%39 = OpLoad %5 %38
%40 = OpIAdd %5 %39 %35
%41 = OpAccessChain %28 %10 %20 %34
OpStore %41 %40
OpReturn
OpFunctionEnd

View File

@@ -9,38 +9,38 @@ OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpSource GLSL 450
OpMemberName %15 0 "a"
OpName %15 "InStorage"
OpMemberName %17 0 "a"
OpName %17 "InUniform"
OpName %23 "in_storage"
OpName %26 "in_uniform"
OpName %29 "image_2d_array"
OpName %31 "in_workgroup"
OpName %33 "in_private"
OpName %36 "in_function"
OpName %40 "c"
OpName %41 "i"
OpName %42 "l"
OpName %43 "mock_function"
OpDecorate %14 ArrayStride 16
OpMemberDecorate %15 0 Offset 0
OpDecorate %16 ArrayStride 16
OpMemberDecorate %17 0 Offset 0
OpDecorate %19 ArrayStride 4
OpDecorate %20 ArrayStride 4
OpDecorate %22 ArrayStride 16
OpDecorate %23 NonWritable
OpMemberName %12 0 "a"
OpName %12 "InStorage"
OpMemberName %14 0 "a"
OpName %14 "InUniform"
OpName %20 "in_storage"
OpName %23 "in_uniform"
OpName %26 "image_2d_array"
OpName %28 "in_workgroup"
OpName %30 "in_private"
OpName %33 "in_function"
OpName %37 "c"
OpName %38 "i"
OpName %39 "l"
OpName %40 "mock_function"
OpDecorate %11 ArrayStride 16
OpMemberDecorate %12 0 Offset 0
OpDecorate %13 ArrayStride 16
OpMemberDecorate %14 0 Offset 0
OpDecorate %16 ArrayStride 4
OpDecorate %17 ArrayStride 4
OpDecorate %19 ArrayStride 16
OpDecorate %20 NonWritable
OpDecorate %20 DescriptorSet 0
OpDecorate %20 Binding 0
OpDecorate %21 Block
OpMemberDecorate %21 0 Offset 0
OpDecorate %23 DescriptorSet 0
OpDecorate %23 Binding 0
OpDecorate %23 Binding 1
OpDecorate %24 Block
OpMemberDecorate %24 0 Offset 0
OpDecorate %26 DescriptorSet 0
OpDecorate %26 Binding 1
OpDecorate %27 Block
OpMemberDecorate %27 0 Offset 0
OpDecorate %29 DescriptorSet 0
OpDecorate %29 Binding 2
OpDecorate %26 Binding 2
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 10
@@ -49,102 +49,102 @@ OpDecorate %29 Binding 2
%7 = OpConstant %4 40
%8 = OpConstant %4 2
%10 = OpTypeFloat 32
%9 = OpConstant %10 0.707
%11 = OpConstant %10 0.0
%12 = OpConstant %10 1.0
%13 = OpTypeVector %10 4
%14 = OpTypeArray %13 %3
%15 = OpTypeStruct %14
%16 = OpTypeArray %13 %5
%17 = OpTypeStruct %16
%18 = OpTypeImage %10 2D 0 1 0 1 Unknown
%19 = OpTypeArray %10 %6
%20 = OpTypeArray %10 %7
%21 = OpTypeVector %4 2
%22 = OpTypeArray %13 %8
%24 = OpTypeStruct %15
%25 = OpTypePointer StorageBuffer %24
%23 = OpVariable %25 StorageBuffer
%27 = OpTypeStruct %17
%28 = OpTypePointer Uniform %27
%26 = OpVariable %28 Uniform
%30 = OpTypePointer UniformConstant %18
%29 = OpVariable %30 UniformConstant
%32 = OpTypePointer Workgroup %19
%31 = OpVariable %32 Workgroup
%34 = OpTypePointer Private %20
%35 = OpConstantNull %20
%33 = OpVariable %34 Private %35
%37 = OpTypePointer Function %22
%38 = OpConstantNull %22
%44 = OpTypeFunction %13 %21 %4 %4
%45 = OpTypePointer StorageBuffer %15
%47 = OpTypeInt 32 0
%46 = OpConstant %47 0
%49 = OpTypePointer Uniform %17
%56 = OpTypePointer StorageBuffer %14
%57 = OpTypePointer StorageBuffer %13
%60 = OpTypePointer Uniform %16
%61 = OpTypePointer Uniform %13
%9 = OpTypeVector %10 4
%11 = OpTypeArray %9 %3
%12 = OpTypeStruct %11
%13 = OpTypeArray %9 %5
%14 = OpTypeStruct %13
%15 = OpTypeImage %10 2D 0 1 0 1 Unknown
%16 = OpTypeArray %10 %6
%17 = OpTypeArray %10 %7
%18 = OpTypeVector %4 2
%19 = OpTypeArray %9 %8
%21 = OpTypeStruct %12
%22 = OpTypePointer StorageBuffer %21
%20 = OpVariable %22 StorageBuffer
%24 = OpTypeStruct %14
%25 = OpTypePointer Uniform %24
%23 = OpVariable %25 Uniform
%27 = OpTypePointer UniformConstant %15
%26 = OpVariable %27 UniformConstant
%29 = OpTypePointer Workgroup %16
%28 = OpVariable %29 Workgroup
%31 = OpTypePointer Private %17
%32 = OpConstantNull %17
%30 = OpVariable %31 Private %32
%34 = OpTypePointer Function %19
%35 = OpConstantNull %19
%41 = OpTypeFunction %9 %18 %4 %4
%42 = OpTypePointer StorageBuffer %12
%44 = OpTypeInt 32 0
%43 = OpConstant %44 0
%46 = OpTypePointer Uniform %14
%49 = OpConstant %10 0.707
%50 = OpConstant %10 0.0
%51 = OpConstant %10 1.0
%56 = OpTypePointer StorageBuffer %11
%57 = OpTypePointer StorageBuffer %9
%60 = OpTypePointer Uniform %13
%61 = OpTypePointer Uniform %9
%65 = OpTypeVector %4 3
%67 = OpTypeBool
%68 = OpConstantNull %13
%68 = OpConstantNull %9
%74 = OpTypeVector %67 3
%81 = OpTypePointer Workgroup %10
%82 = OpConstant %47 29
%82 = OpConstant %44 29
%88 = OpTypePointer Private %10
%89 = OpConstant %47 39
%95 = OpTypePointer Function %13
%96 = OpConstant %47 1
%43 = OpFunction %13 None %44
%40 = OpFunctionParameter %21
%41 = OpFunctionParameter %4
%42 = OpFunctionParameter %4
%39 = OpLabel
%36 = OpVariable %37 Function %38
%48 = OpAccessChain %45 %23 %46
%50 = OpAccessChain %49 %26 %46
%51 = OpLoad %18 %29
%89 = OpConstant %44 39
%95 = OpTypePointer Function %9
%96 = OpConstant %44 1
%40 = OpFunction %9 None %41
%37 = OpFunctionParameter %18
%38 = OpFunctionParameter %4
%39 = OpFunctionParameter %4
%36 = OpLabel
%33 = OpVariable %34 Function %35
%45 = OpAccessChain %42 %20 %43
%47 = OpAccessChain %46 %23 %43
%48 = OpLoad %15 %26
OpBranch %52
%52 = OpLabel
%53 = OpCompositeConstruct %13 %9 %11 %11 %12
%54 = OpCompositeConstruct %13 %11 %9 %11 %12
%55 = OpCompositeConstruct %22 %53 %54
OpStore %36 %55
%58 = OpAccessChain %57 %48 %46 %41
%59 = OpLoad %13 %58
%62 = OpAccessChain %61 %50 %46 %41
%63 = OpLoad %13 %62
%64 = OpFAdd %13 %59 %63
%66 = OpCompositeConstruct %65 %40 %41
%69 = OpImageQueryLevels %4 %51
%70 = OpULessThan %67 %42 %69
%53 = OpCompositeConstruct %9 %49 %50 %50 %51
%54 = OpCompositeConstruct %9 %50 %49 %50 %51
%55 = OpCompositeConstruct %19 %53 %54
OpStore %33 %55
%58 = OpAccessChain %57 %45 %43 %38
%59 = OpLoad %9 %58
%62 = OpAccessChain %61 %47 %43 %38
%63 = OpLoad %9 %62
%64 = OpFAdd %9 %59 %63
%66 = OpCompositeConstruct %65 %37 %38
%69 = OpImageQueryLevels %4 %48
%70 = OpULessThan %67 %39 %69
OpSelectionMerge %71 None
OpBranchConditional %70 %72 %71
%72 = OpLabel
%73 = OpImageQuerySizeLod %65 %51 %42
%73 = OpImageQuerySizeLod %65 %48 %39
%75 = OpULessThan %74 %66 %73
%76 = OpAll %67 %75
OpBranchConditional %76 %77 %71
%77 = OpLabel
%78 = OpImageFetch %13 %51 %66 Lod %42
%78 = OpImageFetch %9 %48 %66 Lod %39
OpBranch %71
%71 = OpLabel
%79 = OpPhi %13 %68 %52 %68 %72 %78 %77
%80 = OpFAdd %13 %64 %79
%83 = OpExtInst %47 %1 UMin %41 %82
%84 = OpAccessChain %81 %31 %83
%79 = OpPhi %9 %68 %52 %68 %72 %78 %77
%80 = OpFAdd %9 %64 %79
%83 = OpExtInst %44 %1 UMin %38 %82
%84 = OpAccessChain %81 %28 %83
%85 = OpLoad %10 %84
%86 = OpCompositeConstruct %13 %85 %85 %85 %85
%87 = OpFAdd %13 %80 %86
%90 = OpExtInst %47 %1 UMin %41 %89
%91 = OpAccessChain %88 %33 %90
%86 = OpCompositeConstruct %9 %85 %85 %85 %85
%87 = OpFAdd %9 %80 %86
%90 = OpExtInst %44 %1 UMin %38 %89
%91 = OpAccessChain %88 %30 %90
%92 = OpLoad %10 %91
%93 = OpCompositeConstruct %13 %92 %92 %92 %92
%94 = OpFAdd %13 %87 %93
%97 = OpExtInst %47 %1 UMin %41 %96
%98 = OpAccessChain %95 %36 %97
%99 = OpLoad %13 %98
%100 = OpFAdd %13 %94 %99
%93 = OpCompositeConstruct %9 %92 %92 %92 %92
%94 = OpFAdd %9 %87 %93
%97 = OpExtInst %44 %1 UMin %38 %96
%98 = OpAccessChain %95 %33 %97
%99 = OpLoad %9 %98
%100 = OpFAdd %9 %94 %99
OpReturnValue %100
OpFunctionEnd

View File

@@ -5,115 +5,115 @@
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %27 "vert_main" %18 %21 %23 %25
OpEntryPoint Fragment %45 "frag_main" %42 %44
OpEntryPoint Fragment %61 "fs_extra" %60
OpExecutionMode %45 OriginUpperLeft
OpExecutionMode %61 OriginUpperLeft
OpEntryPoint Vertex %24 "vert_main" %15 %18 %20 %22
OpEntryPoint Fragment %44 "frag_main" %41 %43
OpEntryPoint Fragment %60 "fs_extra" %59
OpExecutionMode %44 OriginUpperLeft
OpExecutionMode %60 OriginUpperLeft
OpSource GLSL 450
OpName %3 "c_scale"
OpMemberName %10 0 "uv"
OpMemberName %10 1 "position"
OpName %10 "VertexOutput"
OpName %13 "u_texture"
OpName %15 "u_sampler"
OpName %18 "pos"
OpName %21 "uv"
OpName %23 "uv"
OpName %25 "position"
OpName %27 "vert_main"
OpName %42 "uv"
OpName %45 "frag_main"
OpName %61 "fs_extra"
OpMemberDecorate %10 0 Offset 0
OpMemberDecorate %10 1 Offset 16
OpDecorate %13 DescriptorSet 0
OpDecorate %13 Binding 0
OpDecorate %15 DescriptorSet 0
OpDecorate %15 Binding 1
OpDecorate %18 Location 0
OpDecorate %21 Location 1
OpDecorate %23 Location 0
OpDecorate %25 BuiltIn Position
OpDecorate %42 Location 0
OpDecorate %44 Location 0
OpDecorate %60 Location 0
OpMemberName %7 0 "uv"
OpMemberName %7 1 "position"
OpName %7 "VertexOutput"
OpName %10 "u_texture"
OpName %12 "u_sampler"
OpName %15 "pos"
OpName %18 "uv"
OpName %20 "uv"
OpName %22 "position"
OpName %24 "vert_main"
OpName %41 "uv"
OpName %44 "frag_main"
OpName %60 "fs_extra"
OpMemberDecorate %7 0 Offset 0
OpMemberDecorate %7 1 Offset 16
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %12 DescriptorSet 0
OpDecorate %12 Binding 1
OpDecorate %15 Location 0
OpDecorate %18 Location 1
OpDecorate %20 Location 0
OpDecorate %22 BuiltIn Position
OpDecorate %41 Location 0
OpDecorate %43 Location 0
OpDecorate %59 Location 0
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpConstant %4 1.2
%5 = OpConstant %4 0.0
%6 = OpConstant %4 1.0
%7 = OpConstant %4 0.5
%8 = OpTypeVector %4 2
%9 = OpTypeVector %4 4
%10 = OpTypeStruct %8 %9
%11 = OpTypeImage %4 2D 0 0 0 1 Unknown
%12 = OpTypeSampler
%14 = OpTypePointer UniformConstant %11
%13 = OpVariable %14 UniformConstant
%16 = OpTypePointer UniformConstant %12
%15 = OpVariable %16 UniformConstant
%19 = OpTypePointer Input %8
%18 = OpVariable %19 Input
%21 = OpVariable %19 Input
%24 = OpTypePointer Output %8
%23 = OpVariable %24 Output
%26 = OpTypePointer Output %9
%25 = OpVariable %26 Output
%28 = OpTypeFunction %2
%35 = OpTypePointer Output %4
%37 = OpTypeInt 32 0
%36 = OpConstant %37 1
%42 = OpVariable %19 Input
%44 = OpVariable %26 Output
%49 = OpTypeSampledImage %11
%53 = OpTypeBool
%60 = OpVariable %26 Output
%27 = OpFunction %2 None %28
%17 = OpLabel
%20 = OpLoad %8 %18
%22 = OpLoad %8 %21
OpBranch %29
%29 = OpLabel
%30 = OpVectorTimesScalar %8 %20 %3
%31 = OpCompositeConstruct %9 %30 %5 %6
%32 = OpCompositeConstruct %10 %22 %31
%33 = OpCompositeExtract %8 %32 0
OpStore %23 %33
%34 = OpCompositeExtract %9 %32 1
OpStore %25 %34
%38 = OpAccessChain %35 %25 %36
%39 = OpLoad %4 %38
%40 = OpFNegate %4 %39
OpStore %38 %40
%5 = OpTypeVector %4 2
%6 = OpTypeVector %4 4
%7 = OpTypeStruct %5 %6
%8 = OpTypeImage %4 2D 0 0 0 1 Unknown
%9 = OpTypeSampler
%11 = OpTypePointer UniformConstant %8
%10 = OpVariable %11 UniformConstant
%13 = OpTypePointer UniformConstant %9
%12 = OpVariable %13 UniformConstant
%16 = OpTypePointer Input %5
%15 = OpVariable %16 Input
%18 = OpVariable %16 Input
%21 = OpTypePointer Output %5
%20 = OpVariable %21 Output
%23 = OpTypePointer Output %6
%22 = OpVariable %23 Output
%25 = OpTypeFunction %2
%26 = OpConstant %4 0.0
%27 = OpConstant %4 1.0
%34 = OpTypePointer Output %4
%36 = OpTypeInt 32 0
%35 = OpConstant %36 1
%41 = OpVariable %16 Input
%43 = OpVariable %23 Output
%48 = OpTypeSampledImage %8
%52 = OpTypeBool
%59 = OpVariable %23 Output
%61 = OpConstant %4 0.5
%24 = OpFunction %2 None %25
%14 = OpLabel
%17 = OpLoad %5 %15
%19 = OpLoad %5 %18
OpBranch %28
%28 = OpLabel
%29 = OpVectorTimesScalar %5 %17 %3
%30 = OpCompositeConstruct %6 %29 %26 %27
%31 = OpCompositeConstruct %7 %19 %30
%32 = OpCompositeExtract %5 %31 0
OpStore %20 %32
%33 = OpCompositeExtract %6 %31 1
OpStore %22 %33
%37 = OpAccessChain %34 %22 %35
%38 = OpLoad %4 %37
%39 = OpFNegate %4 %38
OpStore %37 %39
OpReturn
OpFunctionEnd
%45 = OpFunction %2 None %28
%41 = OpLabel
%43 = OpLoad %8 %42
%46 = OpLoad %11 %13
%47 = OpLoad %12 %15
OpBranch %48
%48 = OpLabel
%50 = OpSampledImage %49 %46 %47
%51 = OpImageSampleImplicitLod %9 %50 %43
%52 = OpCompositeExtract %4 %51 3
%54 = OpFOrdEqual %53 %52 %5
OpSelectionMerge %55 None
OpBranchConditional %54 %56 %55
%56 = OpLabel
OpKill
%44 = OpFunction %2 None %25
%40 = OpLabel
%42 = OpLoad %5 %41
%45 = OpLoad %8 %10
%46 = OpLoad %9 %12
OpBranch %47
%47 = OpLabel
%49 = OpSampledImage %48 %45 %46
%50 = OpImageSampleImplicitLod %6 %49 %42
%51 = OpCompositeExtract %4 %50 3
%53 = OpFOrdEqual %52 %51 %26
OpSelectionMerge %54 None
OpBranchConditional %53 %55 %54
%55 = OpLabel
%57 = OpCompositeExtract %4 %51 3
%58 = OpVectorTimesScalar %9 %51 %57
OpStore %44 %58
OpKill
%54 = OpLabel
%56 = OpCompositeExtract %4 %50 3
%57 = OpVectorTimesScalar %6 %50 %56
OpStore %43 %57
OpReturn
OpFunctionEnd
%61 = OpFunction %2 None %28
%59 = OpLabel
%60 = OpFunction %2 None %25
%58 = OpLabel
OpBranch %62
%62 = OpLabel
%63 = OpCompositeConstruct %9 %5 %7 %5 %7
OpStore %60 %63
%63 = OpCompositeConstruct %6 %26 %61 %26 %61
OpStore %59 %63
OpReturn
OpFunctionEnd

View File

@@ -7,112 +7,112 @@ OpCapability Shader
OpExtension "SPV_KHR_ray_query"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %48 "main" %23 %25
OpExecutionMode %48 LocalSize 1 1 1
OpMemberDecorate %15 0 Offset 0
OpMemberDecorate %15 1 Offset 16
OpMemberDecorate %19 0 Offset 0
OpMemberDecorate %19 1 Offset 4
OpMemberDecorate %19 2 Offset 8
OpMemberDecorate %19 3 Offset 12
OpMemberDecorate %19 4 Offset 16
OpMemberDecorate %19 5 Offset 20
OpMemberDecorate %19 6 Offset 24
OpMemberDecorate %19 7 Offset 28
OpMemberDecorate %19 8 Offset 36
OpMemberDecorate %19 9 Offset 48
OpMemberDecorate %19 9 ColMajor
OpMemberDecorate %19 9 MatrixStride 16
OpMemberDecorate %19 10 Offset 112
OpMemberDecorate %19 10 ColMajor
OpMemberDecorate %19 10 MatrixStride 16
OpMemberDecorate %22 0 Offset 0
OpMemberDecorate %22 1 Offset 4
OpMemberDecorate %22 2 Offset 8
OpMemberDecorate %22 3 Offset 12
OpMemberDecorate %22 4 Offset 16
OpMemberDecorate %22 5 Offset 32
OpDecorate %23 DescriptorSet 0
OpDecorate %23 Binding 0
OpDecorate %25 DescriptorSet 0
OpDecorate %25 Binding 1
OpDecorate %26 Block
OpMemberDecorate %26 0 Offset 0
OpEntryPoint GLCompute %43 "main" %15 %17
OpExecutionMode %43 LocalSize 1 1 1
OpMemberDecorate %7 0 Offset 0
OpMemberDecorate %7 1 Offset 16
OpMemberDecorate %11 0 Offset 0
OpMemberDecorate %11 1 Offset 4
OpMemberDecorate %11 2 Offset 8
OpMemberDecorate %11 3 Offset 12
OpMemberDecorate %11 4 Offset 16
OpMemberDecorate %11 5 Offset 20
OpMemberDecorate %11 6 Offset 24
OpMemberDecorate %11 7 Offset 28
OpMemberDecorate %11 8 Offset 36
OpMemberDecorate %11 9 Offset 48
OpMemberDecorate %11 9 ColMajor
OpMemberDecorate %11 9 MatrixStride 16
OpMemberDecorate %11 10 Offset 112
OpMemberDecorate %11 10 ColMajor
OpMemberDecorate %11 10 MatrixStride 16
OpMemberDecorate %14 0 Offset 0
OpMemberDecorate %14 1 Offset 4
OpMemberDecorate %14 2 Offset 8
OpMemberDecorate %14 3 Offset 12
OpMemberDecorate %14 4 Offset 16
OpMemberDecorate %14 5 Offset 32
OpDecorate %15 DescriptorSet 0
OpDecorate %15 Binding 0
OpDecorate %17 DescriptorSet 0
OpDecorate %17 Binding 1
OpDecorate %18 Block
OpMemberDecorate %18 0 Offset 0
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpConstant %4 1.0
%5 = OpConstant %4 2.4
%6 = OpConstant %4 0.0
%8 = OpTypeInt 32 0
%7 = OpConstant %8 4
%9 = OpConstant %8 255
%10 = OpConstant %4 0.1
%11 = OpConstant %4 100.0
%12 = OpConstant %8 0
%13 = OpTypeAccelerationStructureNV
%14 = OpTypeVector %4 3
%15 = OpTypeStruct %8 %14
%16 = OpTypeVector %4 2
%17 = OpTypeBool
%18 = OpTypeMatrix %14 4
%19 = OpTypeStruct %8 %4 %8 %8 %8 %8 %8 %16 %17 %18 %18
%20 = OpTypeVector %4 4
%21 = OpTypeRayQueryKHR
%22 = OpTypeStruct %8 %8 %4 %4 %14 %14
%24 = OpTypePointer UniformConstant %13
%23 = OpVariable %24 UniformConstant
%26 = OpTypeStruct %15
%27 = OpTypePointer StorageBuffer %26
%25 = OpVariable %27 StorageBuffer
%32 = OpTypeFunction %14 %14 %19
%46 = OpTypePointer Function %21
%49 = OpTypeFunction %2
%51 = OpTypePointer StorageBuffer %15
%72 = OpConstant %8 1
%85 = OpTypePointer StorageBuffer %8
%90 = OpTypePointer StorageBuffer %14
%31 = OpFunction %14 None %32
%29 = OpFunctionParameter %14
%30 = OpFunctionParameter %19
%3 = OpTypeAccelerationStructureNV
%4 = OpTypeInt 32 0
%6 = OpTypeFloat 32
%5 = OpTypeVector %6 3
%7 = OpTypeStruct %4 %5
%8 = OpTypeVector %6 2
%9 = OpTypeBool
%10 = OpTypeMatrix %5 4
%11 = OpTypeStruct %4 %6 %4 %4 %4 %4 %4 %8 %9 %10 %10
%12 = OpTypeVector %6 4
%13 = OpTypeRayQueryKHR
%14 = OpTypeStruct %4 %4 %6 %6 %5 %5
%16 = OpTypePointer UniformConstant %3
%15 = OpVariable %16 UniformConstant
%18 = OpTypeStruct %7
%19 = OpTypePointer StorageBuffer %18
%17 = OpVariable %19 StorageBuffer
%24 = OpTypeFunction %5 %5 %11
%25 = OpConstant %6 1.0
%26 = OpConstant %6 2.4
%27 = OpConstant %6 0.0
%41 = OpTypePointer Function %13
%44 = OpTypeFunction %2
%46 = OpTypePointer StorageBuffer %7
%47 = OpConstant %4 0
%49 = OpConstant %4 4
%50 = OpConstant %4 255
%51 = OpConstant %6 0.1
%52 = OpConstant %6 100.0
%72 = OpConstant %4 1
%85 = OpTypePointer StorageBuffer %4
%90 = OpTypePointer StorageBuffer %5
%23 = OpFunction %5 None %24
%21 = OpFunctionParameter %5
%22 = OpFunctionParameter %11
%20 = OpLabel
OpBranch %28
%28 = OpLabel
OpBranch %33
%33 = OpLabel
%34 = OpCompositeExtract %18 %30 10
%35 = OpCompositeConstruct %20 %29 %3
%36 = OpMatrixTimesVector %14 %34 %35
%37 = OpVectorShuffle %16 %36 %36 0 1
%38 = OpExtInst %16 %1 Normalize %37
%39 = OpVectorTimesScalar %16 %38 %5
%40 = OpCompositeExtract %18 %30 9
%41 = OpCompositeConstruct %20 %39 %6 %3
%42 = OpMatrixTimesVector %14 %40 %41
%43 = OpFSub %14 %29 %42
%44 = OpExtInst %14 %1 Normalize %43
OpReturnValue %44
%29 = OpCompositeExtract %10 %22 10
%30 = OpCompositeConstruct %12 %21 %25
%31 = OpMatrixTimesVector %5 %29 %30
%32 = OpVectorShuffle %8 %31 %31 0 1
%33 = OpExtInst %8 %1 Normalize %32
%34 = OpVectorTimesScalar %8 %33 %26
%35 = OpCompositeExtract %10 %22 9
%36 = OpCompositeConstruct %12 %34 %27 %25
%37 = OpMatrixTimesVector %5 %35 %36
%38 = OpFSub %5 %21 %37
%39 = OpExtInst %5 %1 Normalize %38
OpReturnValue %39
OpFunctionEnd
%48 = OpFunction %2 None %49
%47 = OpLabel
%45 = OpVariable %46 Function
%50 = OpLoad %13 %23
%52 = OpAccessChain %51 %25 %12
%43 = OpFunction %2 None %44
%42 = OpLabel
%40 = OpVariable %41 Function
%45 = OpLoad %3 %15
%48 = OpAccessChain %46 %17 %47
OpBranch %53
%53 = OpLabel
%54 = OpCompositeConstruct %14 %6 %3 %6
%55 = OpCompositeConstruct %14 %6 %6 %6
%56 = OpCompositeConstruct %22 %7 %9 %10 %11 %55 %54
%57 = OpCompositeExtract %8 %56 0
%58 = OpCompositeExtract %8 %56 1
%59 = OpCompositeExtract %4 %56 2
%60 = OpCompositeExtract %4 %56 3
%61 = OpCompositeExtract %14 %56 4
%62 = OpCompositeExtract %14 %56 5
OpRayQueryInitializeKHR %45 %50 %57 %58 %61 %59 %62 %60
%54 = OpCompositeConstruct %5 %27 %25 %27
%55 = OpCompositeConstruct %5 %27 %27 %27
%56 = OpCompositeConstruct %14 %49 %50 %51 %52 %55 %54
%57 = OpCompositeExtract %4 %56 0
%58 = OpCompositeExtract %4 %56 1
%59 = OpCompositeExtract %6 %56 2
%60 = OpCompositeExtract %6 %56 3
%61 = OpCompositeExtract %5 %56 4
%62 = OpCompositeExtract %5 %56 5
OpRayQueryInitializeKHR %40 %45 %57 %58 %61 %59 %62 %60
OpBranch %63
%63 = OpLabel
OpLoopMerge %64 %66 None
OpBranch %65
%65 = OpLabel
%67 = OpRayQueryProceedKHR %17 %45
%67 = OpRayQueryProceedKHR %9 %40
OpSelectionMerge %68 None
OpBranchConditional %67 %68 %69
%69 = OpLabel
@@ -126,27 +126,27 @@ OpBranch %66
%66 = OpLabel
OpBranch %63
%64 = OpLabel
%73 = OpRayQueryGetIntersectionTypeKHR %8 %45 %72
%74 = OpRayQueryGetIntersectionInstanceCustomIndexKHR %8 %45 %72
%75 = OpRayQueryGetIntersectionInstanceIdKHR %8 %45 %72
%76 = OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR %8 %45 %72
%77 = OpRayQueryGetIntersectionGeometryIndexKHR %8 %45 %72
%78 = OpRayQueryGetIntersectionPrimitiveIndexKHR %8 %45 %72
%79 = OpRayQueryGetIntersectionTKHR %4 %45 %72
%80 = OpRayQueryGetIntersectionBarycentricsKHR %16 %45 %72
%81 = OpRayQueryGetIntersectionFrontFaceKHR %17 %45 %72
%82 = OpRayQueryGetIntersectionObjectToWorldKHR %18 %45 %72
%83 = OpRayQueryGetIntersectionWorldToObjectKHR %18 %45 %72
%84 = OpCompositeConstruct %19 %73 %79 %74 %75 %76 %77 %78 %80 %81 %82 %83
%86 = OpCompositeExtract %8 %84 0
%87 = OpIEqual %17 %86 %12
%88 = OpSelect %8 %87 %72 %12
%89 = OpAccessChain %85 %52 %12
%73 = OpRayQueryGetIntersectionTypeKHR %4 %40 %72
%74 = OpRayQueryGetIntersectionInstanceCustomIndexKHR %4 %40 %72
%75 = OpRayQueryGetIntersectionInstanceIdKHR %4 %40 %72
%76 = OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR %4 %40 %72
%77 = OpRayQueryGetIntersectionGeometryIndexKHR %4 %40 %72
%78 = OpRayQueryGetIntersectionPrimitiveIndexKHR %4 %40 %72
%79 = OpRayQueryGetIntersectionTKHR %6 %40 %72
%80 = OpRayQueryGetIntersectionBarycentricsKHR %8 %40 %72
%81 = OpRayQueryGetIntersectionFrontFaceKHR %9 %40 %72
%82 = OpRayQueryGetIntersectionObjectToWorldKHR %10 %40 %72
%83 = OpRayQueryGetIntersectionWorldToObjectKHR %10 %40 %72
%84 = OpCompositeConstruct %11 %73 %79 %74 %75 %76 %77 %78 %80 %81 %82 %83
%86 = OpCompositeExtract %4 %84 0
%87 = OpIEqual %9 %86 %47
%88 = OpSelect %4 %87 %72 %47
%89 = OpAccessChain %85 %48 %47
OpStore %89 %88
%91 = OpCompositeExtract %4 %84 1
%92 = OpVectorTimesScalar %14 %54 %91
%93 = OpFunctionCall %14 %31 %92 %84
%94 = OpAccessChain %90 %52 %72
%91 = OpCompositeExtract %6 %84 1
%92 = OpVectorTimesScalar %5 %54 %91
%93 = OpFunctionCall %5 %23 %92 %84
%94 = OpAccessChain %90 %48 %72
OpStore %94 %93
OpReturn
OpFunctionEnd

View File

@@ -6,44 +6,44 @@ OpCapability Shader
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %90 "vs_main" %80 %83 %85 %87 %89
OpEntryPoint Vertex %89 "vs_main" %79 %82 %84 %86 %88
OpEntryPoint Fragment %148 "fs_main" %139 %142 %145 %147
OpEntryPoint Fragment %217 "fs_main_without_storage" %210 %212 %214 %216
OpExecutionMode %148 OriginUpperLeft
OpExecutionMode %217 OriginUpperLeft
OpSource GLSL 450
OpName %11 "c_max_lights"
OpMemberName %18 0 "view_proj"
OpMemberName %18 1 "num_lights"
OpName %18 "Globals"
OpMemberName %19 0 "world"
OpMemberName %19 1 "color"
OpName %19 "Entity"
OpMemberName %21 0 "proj_position"
OpMemberName %21 1 "world_normal"
OpMemberName %21 2 "world_position"
OpName %21 "VertexOutput"
OpMemberName %24 0 "proj"
OpMemberName %24 1 "pos"
OpMemberName %24 2 "color"
OpName %24 "Light"
OpName %30 "c_ambient"
OpName %31 "u_globals"
OpName %34 "u_entity"
OpName %37 "s_lights"
OpName %40 "u_lights"
OpName %43 "t_shadow"
OpName %45 "sampler_shadow"
OpName %48 "light_id"
OpName %49 "homogeneous_coords"
OpName %50 "fetch_shadow"
OpName %76 "out"
OpName %80 "position"
OpName %83 "normal"
OpName %85 "proj_position"
OpName %87 "world_normal"
OpName %89 "world_position"
OpName %90 "vs_main"
OpName %7 "c_max_lights"
OpMemberName %13 0 "view_proj"
OpMemberName %13 1 "num_lights"
OpName %13 "Globals"
OpMemberName %14 0 "world"
OpMemberName %14 1 "color"
OpName %14 "Entity"
OpMemberName %16 0 "proj_position"
OpMemberName %16 1 "world_normal"
OpMemberName %16 2 "world_position"
OpName %16 "VertexOutput"
OpMemberName %19 0 "proj"
OpMemberName %19 1 "pos"
OpMemberName %19 2 "color"
OpName %19 "Light"
OpName %25 "c_ambient"
OpName %26 "u_globals"
OpName %29 "u_entity"
OpName %32 "s_lights"
OpName %35 "u_lights"
OpName %38 "t_shadow"
OpName %40 "sampler_shadow"
OpName %43 "light_id"
OpName %44 "homogeneous_coords"
OpName %45 "fetch_shadow"
OpName %75 "out"
OpName %79 "position"
OpName %82 "normal"
OpName %84 "proj_position"
OpName %86 "world_normal"
OpName %88 "world_position"
OpName %89 "vs_main"
OpName %132 "color"
OpName %134 "i"
OpName %139 "proj_position"
@@ -56,50 +56,50 @@ OpName %210 "proj_position"
OpName %212 "world_normal"
OpName %214 "world_position"
OpName %217 "fs_main_without_storage"
OpMemberDecorate %18 0 Offset 0
OpMemberDecorate %18 0 ColMajor
OpMemberDecorate %18 0 MatrixStride 16
OpMemberDecorate %18 1 Offset 64
OpMemberDecorate %13 0 Offset 0
OpMemberDecorate %13 0 ColMajor
OpMemberDecorate %13 0 MatrixStride 16
OpMemberDecorate %13 1 Offset 64
OpMemberDecorate %14 0 Offset 0
OpMemberDecorate %14 0 ColMajor
OpMemberDecorate %14 0 MatrixStride 16
OpMemberDecorate %14 1 Offset 64
OpMemberDecorate %16 0 Offset 0
OpMemberDecorate %16 1 Offset 16
OpMemberDecorate %16 2 Offset 32
OpMemberDecorate %19 0 Offset 0
OpMemberDecorate %19 0 ColMajor
OpMemberDecorate %19 0 MatrixStride 16
OpMemberDecorate %19 1 Offset 64
OpMemberDecorate %21 0 Offset 0
OpMemberDecorate %21 1 Offset 16
OpMemberDecorate %21 2 Offset 32
OpMemberDecorate %24 0 Offset 0
OpMemberDecorate %24 0 ColMajor
OpMemberDecorate %24 0 MatrixStride 16
OpMemberDecorate %24 1 Offset 64
OpMemberDecorate %24 2 Offset 80
OpDecorate %25 ArrayStride 96
OpDecorate %26 ArrayStride 96
OpDecorate %31 DescriptorSet 0
OpDecorate %31 Binding 0
OpDecorate %32 Block
OpMemberDecorate %32 0 Offset 0
OpDecorate %34 DescriptorSet 1
OpDecorate %34 Binding 0
OpDecorate %35 Block
OpMemberDecorate %35 0 Offset 0
OpDecorate %37 NonWritable
OpDecorate %37 DescriptorSet 0
OpDecorate %37 Binding 1
OpDecorate %38 Block
OpMemberDecorate %38 0 Offset 0
OpMemberDecorate %19 2 Offset 80
OpDecorate %20 ArrayStride 96
OpDecorate %21 ArrayStride 96
OpDecorate %26 DescriptorSet 0
OpDecorate %26 Binding 0
OpDecorate %27 Block
OpMemberDecorate %27 0 Offset 0
OpDecorate %29 DescriptorSet 1
OpDecorate %29 Binding 0
OpDecorate %30 Block
OpMemberDecorate %30 0 Offset 0
OpDecorate %32 NonWritable
OpDecorate %32 DescriptorSet 0
OpDecorate %32 Binding 1
OpDecorate %33 Block
OpMemberDecorate %33 0 Offset 0
OpDecorate %35 DescriptorSet 0
OpDecorate %35 Binding 1
OpDecorate %36 Block
OpMemberDecorate %36 0 Offset 0
OpDecorate %38 DescriptorSet 0
OpDecorate %38 Binding 2
OpDecorate %40 DescriptorSet 0
OpDecorate %40 Binding 1
OpDecorate %41 Block
OpMemberDecorate %41 0 Offset 0
OpDecorate %43 DescriptorSet 0
OpDecorate %43 Binding 2
OpDecorate %45 DescriptorSet 0
OpDecorate %45 Binding 3
OpDecorate %80 Location 0
OpDecorate %83 Location 1
OpDecorate %85 BuiltIn Position
OpDecorate %87 Location 0
OpDecorate %89 Location 1
OpDecorate %40 Binding 3
OpDecorate %79 Location 0
OpDecorate %82 Location 1
OpDecorate %84 BuiltIn Position
OpDecorate %86 Location 0
OpDecorate %88 Location 1
OpDecorate %139 BuiltIn FragCoord
OpDecorate %142 Location 0
OpDecorate %145 Location 1
@@ -112,199 +112,199 @@ OpDecorate %216 Location 0
%4 = OpTypeInt 32 1
%3 = OpConstant %4 10
%6 = OpTypeFloat 32
%5 = OpConstant %6 0.0
%7 = OpConstant %6 1.0
%8 = OpConstant %6 0.5
%9 = OpConstant %6 -0.5
%10 = OpConstant %6 0.05
%12 = OpTypeInt 32 0
%11 = OpConstant %12 10
%13 = OpConstant %12 0
%14 = OpConstant %12 1
%16 = OpTypeVector %6 4
%15 = OpTypeMatrix %16 4
%17 = OpTypeVector %12 4
%18 = OpTypeStruct %15 %17
%19 = OpTypeStruct %15 %16
%20 = OpTypeVector %6 3
%21 = OpTypeStruct %16 %20 %16
%22 = OpTypeVector %4 4
%23 = OpTypeMatrix %20 3
%24 = OpTypeStruct %15 %16 %16
%25 = OpTypeRuntimeArray %24
%26 = OpTypeArray %24 %3
%27 = OpTypeImage %6 2D 1 1 0 1 Unknown
%28 = OpTypeSampler
%29 = OpTypeVector %6 2
%30 = OpConstantComposite %20 %10 %10 %10
%32 = OpTypeStruct %18
%33 = OpTypePointer Uniform %32
%31 = OpVariable %33 Uniform
%35 = OpTypeStruct %19
%36 = OpTypePointer Uniform %35
%34 = OpVariable %36 Uniform
%38 = OpTypeStruct %25
%39 = OpTypePointer StorageBuffer %38
%37 = OpVariable %39 StorageBuffer
%41 = OpTypeStruct %26
%42 = OpTypePointer Uniform %41
%40 = OpVariable %42 Uniform
%44 = OpTypePointer UniformConstant %27
%43 = OpVariable %44 UniformConstant
%46 = OpTypePointer UniformConstant %28
%45 = OpVariable %46 UniformConstant
%51 = OpTypeFunction %6 %12 %16
%56 = OpTypeBool
%71 = OpTypeSampledImage %27
%77 = OpTypePointer Function %21
%78 = OpConstantNull %21
%81 = OpTypePointer Input %22
%80 = OpVariable %81 Input
%83 = OpVariable %81 Input
%86 = OpTypePointer Output %16
%85 = OpVariable %86 Output
%88 = OpTypePointer Output %20
%87 = OpVariable %88 Output
%89 = OpVariable %86 Output
%91 = OpTypeFunction %2
%92 = OpTypePointer Uniform %18
%94 = OpTypePointer Uniform %19
%97 = OpTypePointer Uniform %15
%104 = OpTypePointer Function %20
%5 = OpConstant %6 0.05
%8 = OpTypeInt 32 0
%7 = OpConstant %8 10
%9 = OpConstant %8 1
%11 = OpTypeVector %6 4
%10 = OpTypeMatrix %11 4
%12 = OpTypeVector %8 4
%13 = OpTypeStruct %10 %12
%14 = OpTypeStruct %10 %11
%15 = OpTypeVector %6 3
%16 = OpTypeStruct %11 %15 %11
%17 = OpTypeVector %4 4
%18 = OpTypeMatrix %15 3
%19 = OpTypeStruct %10 %11 %11
%20 = OpTypeRuntimeArray %19
%21 = OpTypeArray %19 %3
%22 = OpTypeImage %6 2D 1 1 0 1 Unknown
%23 = OpTypeSampler
%24 = OpTypeVector %6 2
%25 = OpConstantComposite %15 %5 %5 %5
%27 = OpTypeStruct %13
%28 = OpTypePointer Uniform %27
%26 = OpVariable %28 Uniform
%30 = OpTypeStruct %14
%31 = OpTypePointer Uniform %30
%29 = OpVariable %31 Uniform
%33 = OpTypeStruct %20
%34 = OpTypePointer StorageBuffer %33
%32 = OpVariable %34 StorageBuffer
%36 = OpTypeStruct %21
%37 = OpTypePointer Uniform %36
%35 = OpVariable %37 Uniform
%39 = OpTypePointer UniformConstant %22
%38 = OpVariable %39 UniformConstant
%41 = OpTypePointer UniformConstant %23
%40 = OpVariable %41 UniformConstant
%46 = OpTypeFunction %6 %8 %11
%49 = OpConstant %6 0.0
%50 = OpConstant %6 1.0
%51 = OpConstant %6 0.5
%52 = OpConstant %6 -0.5
%55 = OpTypeBool
%70 = OpTypeSampledImage %22
%76 = OpTypePointer Function %16
%77 = OpConstantNull %16
%80 = OpTypePointer Input %17
%79 = OpVariable %80 Input
%82 = OpVariable %80 Input
%85 = OpTypePointer Output %11
%84 = OpVariable %85 Output
%87 = OpTypePointer Output %15
%86 = OpVariable %87 Output
%88 = OpVariable %85 Output
%90 = OpTypeFunction %2
%91 = OpTypePointer Uniform %13
%92 = OpConstant %8 0
%94 = OpTypePointer Uniform %14
%97 = OpTypePointer Uniform %10
%104 = OpTypePointer Function %15
%112 = OpTypeVector %4 3
%117 = OpTypePointer Function %16
%118 = OpConstant %12 2
%117 = OpTypePointer Function %11
%118 = OpConstant %8 2
%126 = OpTypePointer Output %6
%133 = OpConstantNull %20
%135 = OpTypePointer Function %12
%136 = OpConstantNull %12
%140 = OpTypePointer Input %16
%133 = OpConstantNull %15
%135 = OpTypePointer Function %8
%136 = OpConstantNull %8
%140 = OpTypePointer Input %11
%139 = OpVariable %140 Input
%143 = OpTypePointer Input %20
%143 = OpTypePointer Input %15
%142 = OpVariable %143 Input
%145 = OpVariable %140 Input
%147 = OpVariable %86 Output
%151 = OpTypePointer StorageBuffer %25
%163 = OpTypePointer Uniform %17
%164 = OpTypePointer Uniform %12
%174 = OpTypePointer StorageBuffer %24
%200 = OpTypePointer Uniform %16
%205 = OpConstantNull %20
%207 = OpConstantNull %12
%147 = OpVariable %85 Output
%151 = OpTypePointer StorageBuffer %20
%163 = OpTypePointer Uniform %12
%164 = OpTypePointer Uniform %8
%174 = OpTypePointer StorageBuffer %19
%200 = OpTypePointer Uniform %11
%205 = OpConstantNull %15
%207 = OpConstantNull %8
%210 = OpVariable %140 Input
%212 = OpVariable %143 Input
%214 = OpVariable %140 Input
%216 = OpVariable %86 Output
%220 = OpTypePointer Uniform %26
%241 = OpTypePointer Uniform %24
%50 = OpFunction %6 None %51
%48 = OpFunctionParameter %12
%49 = OpFunctionParameter %16
%47 = OpLabel
%52 = OpLoad %27 %43
%53 = OpLoad %28 %45
OpBranch %54
%54 = OpLabel
%55 = OpCompositeExtract %6 %49 3
%57 = OpFOrdLessThanEqual %56 %55 %5
OpSelectionMerge %58 None
OpBranchConditional %57 %59 %58
%59 = OpLabel
OpReturnValue %7
%216 = OpVariable %85 Output
%220 = OpTypePointer Uniform %21
%241 = OpTypePointer Uniform %19
%45 = OpFunction %6 None %46
%43 = OpFunctionParameter %8
%44 = OpFunctionParameter %11
%42 = OpLabel
%47 = OpLoad %22 %38
%48 = OpLoad %23 %40
OpBranch %53
%53 = OpLabel
%54 = OpCompositeExtract %6 %44 3
%56 = OpFOrdLessThanEqual %55 %54 %49
OpSelectionMerge %57 None
OpBranchConditional %56 %58 %57
%58 = OpLabel
%60 = OpCompositeConstruct %29 %8 %9
%61 = OpCompositeExtract %6 %49 3
%62 = OpFDiv %6 %7 %61
%63 = OpVectorShuffle %29 %49 %49 0 1
%64 = OpFMul %29 %63 %60
%65 = OpVectorTimesScalar %29 %64 %62
%66 = OpCompositeConstruct %29 %8 %8
%67 = OpFAdd %29 %65 %66
%68 = OpBitcast %4 %48
%69 = OpCompositeExtract %6 %49 2
%70 = OpFMul %6 %69 %62
%72 = OpConvertSToF %6 %68
%73 = OpCompositeConstruct %20 %67 %72
%74 = OpSampledImage %71 %52 %53
%75 = OpImageSampleDrefExplicitLod %6 %74 %73 %70 Lod %5
OpReturnValue %75
OpReturnValue %50
%57 = OpLabel
%59 = OpCompositeConstruct %24 %51 %52
%60 = OpCompositeExtract %6 %44 3
%61 = OpFDiv %6 %50 %60
%62 = OpVectorShuffle %24 %44 %44 0 1
%63 = OpFMul %24 %62 %59
%64 = OpVectorTimesScalar %24 %63 %61
%65 = OpCompositeConstruct %24 %51 %51
%66 = OpFAdd %24 %64 %65
%67 = OpBitcast %4 %43
%68 = OpCompositeExtract %6 %44 2
%69 = OpFMul %6 %68 %61
%71 = OpConvertSToF %6 %67
%72 = OpCompositeConstruct %15 %66 %71
%73 = OpSampledImage %70 %47 %48
%74 = OpImageSampleDrefExplicitLod %6 %73 %72 %69 Lod %49
OpReturnValue %74
OpFunctionEnd
%90 = OpFunction %2 None %91
%79 = OpLabel
%76 = OpVariable %77 Function %78
%82 = OpLoad %22 %80
%84 = OpLoad %22 %83
%93 = OpAccessChain %92 %31 %13
%95 = OpAccessChain %94 %34 %13
%89 = OpFunction %2 None %90
%78 = OpLabel
%75 = OpVariable %76 Function %77
%81 = OpLoad %17 %79
%83 = OpLoad %17 %82
%93 = OpAccessChain %91 %26 %92
%95 = OpAccessChain %94 %29 %92
OpBranch %96
%96 = OpLabel
%98 = OpAccessChain %97 %95 %13
%99 = OpLoad %15 %98
%100 = OpAccessChain %97 %95 %13
%101 = OpLoad %15 %100
%102 = OpConvertSToF %16 %82
%103 = OpMatrixTimesVector %16 %101 %102
%105 = OpCompositeExtract %16 %99 0
%106 = OpVectorShuffle %20 %105 %105 0 1 2
%107 = OpCompositeExtract %16 %99 1
%108 = OpVectorShuffle %20 %107 %107 0 1 2
%109 = OpCompositeExtract %16 %99 2
%110 = OpVectorShuffle %20 %109 %109 0 1 2
%111 = OpCompositeConstruct %23 %106 %108 %110
%113 = OpVectorShuffle %112 %84 %84 0 1 2
%114 = OpConvertSToF %20 %113
%115 = OpMatrixTimesVector %20 %111 %114
%116 = OpAccessChain %104 %76 %14
%98 = OpAccessChain %97 %95 %92
%99 = OpLoad %10 %98
%100 = OpAccessChain %97 %95 %92
%101 = OpLoad %10 %100
%102 = OpConvertSToF %11 %81
%103 = OpMatrixTimesVector %11 %101 %102
%105 = OpCompositeExtract %11 %99 0
%106 = OpVectorShuffle %15 %105 %105 0 1 2
%107 = OpCompositeExtract %11 %99 1
%108 = OpVectorShuffle %15 %107 %107 0 1 2
%109 = OpCompositeExtract %11 %99 2
%110 = OpVectorShuffle %15 %109 %109 0 1 2
%111 = OpCompositeConstruct %18 %106 %108 %110
%113 = OpVectorShuffle %112 %83 %83 0 1 2
%114 = OpConvertSToF %15 %113
%115 = OpMatrixTimesVector %15 %111 %114
%116 = OpAccessChain %104 %75 %9
OpStore %116 %115
%119 = OpAccessChain %117 %76 %118
%119 = OpAccessChain %117 %75 %118
OpStore %119 %103
%120 = OpAccessChain %97 %93 %13
%121 = OpLoad %15 %120
%122 = OpMatrixTimesVector %16 %121 %103
%123 = OpAccessChain %117 %76 %13
%120 = OpAccessChain %97 %93 %92
%121 = OpLoad %10 %120
%122 = OpMatrixTimesVector %11 %121 %103
%123 = OpAccessChain %117 %75 %92
OpStore %123 %122
%124 = OpLoad %21 %76
%125 = OpCompositeExtract %16 %124 0
OpStore %85 %125
%127 = OpAccessChain %126 %85 %14
%124 = OpLoad %16 %75
%125 = OpCompositeExtract %11 %124 0
OpStore %84 %125
%127 = OpAccessChain %126 %84 %9
%128 = OpLoad %6 %127
%129 = OpFNegate %6 %128
OpStore %127 %129
%130 = OpCompositeExtract %20 %124 1
OpStore %87 %130
%131 = OpCompositeExtract %16 %124 2
OpStore %89 %131
%130 = OpCompositeExtract %15 %124 1
OpStore %86 %130
%131 = OpCompositeExtract %11 %124 2
OpStore %88 %131
OpReturn
OpFunctionEnd
%148 = OpFunction %2 None %91
%148 = OpFunction %2 None %90
%137 = OpLabel
%132 = OpVariable %104 Function %133
%134 = OpVariable %135 Function %136
%141 = OpLoad %16 %139
%144 = OpLoad %20 %142
%146 = OpLoad %16 %145
%138 = OpCompositeConstruct %21 %141 %144 %146
%149 = OpAccessChain %92 %31 %13
%150 = OpAccessChain %94 %34 %13
%152 = OpAccessChain %151 %37 %13
%153 = OpLoad %27 %43
%154 = OpLoad %28 %45
%141 = OpLoad %11 %139
%144 = OpLoad %15 %142
%146 = OpLoad %11 %145
%138 = OpCompositeConstruct %16 %141 %144 %146
%149 = OpAccessChain %91 %26 %92
%150 = OpAccessChain %94 %29 %92
%152 = OpAccessChain %151 %32 %92
%153 = OpLoad %22 %38
%154 = OpLoad %23 %40
OpBranch %155
%155 = OpLabel
%156 = OpCompositeExtract %20 %138 1
%157 = OpExtInst %20 %1 Normalize %156
OpStore %132 %30
OpStore %134 %13
%156 = OpCompositeExtract %15 %138 1
%157 = OpExtInst %15 %1 Normalize %156
OpStore %132 %25
OpStore %134 %92
OpBranch %158
%158 = OpLabel
OpLoopMerge %159 %161 None
OpBranch %160
%160 = OpLabel
%162 = OpLoad %12 %134
%165 = OpAccessChain %164 %149 %14 %13
%166 = OpLoad %12 %165
%167 = OpExtInst %12 %1 UMin %166 %11
%168 = OpULessThan %56 %162 %167
%162 = OpLoad %8 %134
%165 = OpAccessChain %164 %149 %9 %92
%166 = OpLoad %8 %165
%167 = OpExtInst %8 %1 UMin %166 %7
%168 = OpULessThan %55 %162 %167
OpSelectionMerge %169 None
OpBranchConditional %168 %169 %170
%170 = OpLabel
@@ -312,75 +312,75 @@ OpBranch %159
%169 = OpLabel
OpBranch %171
%171 = OpLabel
%173 = OpLoad %12 %134
%173 = OpLoad %8 %134
%175 = OpAccessChain %174 %152 %173
%176 = OpLoad %24 %175
%177 = OpLoad %12 %134
%178 = OpCompositeExtract %15 %176 0
%179 = OpCompositeExtract %16 %138 2
%180 = OpMatrixTimesVector %16 %178 %179
%181 = OpFunctionCall %6 %50 %177 %180
%182 = OpCompositeExtract %16 %176 1
%183 = OpVectorShuffle %20 %182 %182 0 1 2
%184 = OpCompositeExtract %16 %138 2
%185 = OpVectorShuffle %20 %184 %184 0 1 2
%186 = OpFSub %20 %183 %185
%187 = OpExtInst %20 %1 Normalize %186
%176 = OpLoad %19 %175
%177 = OpLoad %8 %134
%178 = OpCompositeExtract %10 %176 0
%179 = OpCompositeExtract %11 %138 2
%180 = OpMatrixTimesVector %11 %178 %179
%181 = OpFunctionCall %6 %45 %177 %180
%182 = OpCompositeExtract %11 %176 1
%183 = OpVectorShuffle %15 %182 %182 0 1 2
%184 = OpCompositeExtract %11 %138 2
%185 = OpVectorShuffle %15 %184 %184 0 1 2
%186 = OpFSub %15 %183 %185
%187 = OpExtInst %15 %1 Normalize %186
%188 = OpDot %6 %157 %187
%189 = OpExtInst %6 %1 FMax %5 %188
%189 = OpExtInst %6 %1 FMax %49 %188
%190 = OpFMul %6 %181 %189
%191 = OpCompositeExtract %16 %176 2
%192 = OpVectorShuffle %20 %191 %191 0 1 2
%193 = OpVectorTimesScalar %20 %192 %190
%194 = OpLoad %20 %132
%195 = OpFAdd %20 %194 %193
%191 = OpCompositeExtract %11 %176 2
%192 = OpVectorShuffle %15 %191 %191 0 1 2
%193 = OpVectorTimesScalar %15 %192 %190
%194 = OpLoad %15 %132
%195 = OpFAdd %15 %194 %193
OpStore %132 %195
OpBranch %172
%172 = OpLabel
OpBranch %161
%161 = OpLabel
%196 = OpLoad %12 %134
%197 = OpIAdd %12 %196 %14
%196 = OpLoad %8 %134
%197 = OpIAdd %8 %196 %9
OpStore %134 %197
OpBranch %158
%159 = OpLabel
%198 = OpLoad %20 %132
%199 = OpCompositeConstruct %16 %198 %7
%201 = OpAccessChain %200 %150 %14
%202 = OpLoad %16 %201
%203 = OpFMul %16 %199 %202
%198 = OpLoad %15 %132
%199 = OpCompositeConstruct %11 %198 %50
%201 = OpAccessChain %200 %150 %9
%202 = OpLoad %11 %201
%203 = OpFMul %11 %199 %202
OpStore %147 %203
OpReturn
OpFunctionEnd
%217 = OpFunction %2 None %91
%217 = OpFunction %2 None %90
%208 = OpLabel
%204 = OpVariable %104 Function %205
%206 = OpVariable %135 Function %207
%211 = OpLoad %16 %210
%213 = OpLoad %20 %212
%215 = OpLoad %16 %214
%209 = OpCompositeConstruct %21 %211 %213 %215
%218 = OpAccessChain %92 %31 %13
%219 = OpAccessChain %94 %34 %13
%221 = OpAccessChain %220 %40 %13
%222 = OpLoad %27 %43
%223 = OpLoad %28 %45
%211 = OpLoad %11 %210
%213 = OpLoad %15 %212
%215 = OpLoad %11 %214
%209 = OpCompositeConstruct %16 %211 %213 %215
%218 = OpAccessChain %91 %26 %92
%219 = OpAccessChain %94 %29 %92
%221 = OpAccessChain %220 %35 %92
%222 = OpLoad %22 %38
%223 = OpLoad %23 %40
OpBranch %224
%224 = OpLabel
%225 = OpCompositeExtract %20 %209 1
%226 = OpExtInst %20 %1 Normalize %225
OpStore %204 %30
OpStore %206 %13
%225 = OpCompositeExtract %15 %209 1
%226 = OpExtInst %15 %1 Normalize %225
OpStore %204 %25
OpStore %206 %92
OpBranch %227
%227 = OpLabel
OpLoopMerge %228 %230 None
OpBranch %229
%229 = OpLabel
%231 = OpLoad %12 %206
%232 = OpAccessChain %164 %218 %14 %13
%233 = OpLoad %12 %232
%234 = OpExtInst %12 %1 UMin %233 %11
%235 = OpULessThan %56 %231 %234
%231 = OpLoad %8 %206
%232 = OpAccessChain %164 %218 %9 %92
%233 = OpLoad %8 %232
%234 = OpExtInst %8 %1 UMin %233 %7
%235 = OpULessThan %55 %231 %234
OpSelectionMerge %236 None
OpBranchConditional %235 %236 %237
%237 = OpLabel
@@ -388,43 +388,43 @@ OpBranch %228
%236 = OpLabel
OpBranch %238
%238 = OpLabel
%240 = OpLoad %12 %206
%240 = OpLoad %8 %206
%242 = OpAccessChain %241 %221 %240
%243 = OpLoad %24 %242
%244 = OpLoad %12 %206
%245 = OpCompositeExtract %15 %243 0
%246 = OpCompositeExtract %16 %209 2
%247 = OpMatrixTimesVector %16 %245 %246
%248 = OpFunctionCall %6 %50 %244 %247
%249 = OpCompositeExtract %16 %243 1
%250 = OpVectorShuffle %20 %249 %249 0 1 2
%251 = OpCompositeExtract %16 %209 2
%252 = OpVectorShuffle %20 %251 %251 0 1 2
%253 = OpFSub %20 %250 %252
%254 = OpExtInst %20 %1 Normalize %253
%243 = OpLoad %19 %242
%244 = OpLoad %8 %206
%245 = OpCompositeExtract %10 %243 0
%246 = OpCompositeExtract %11 %209 2
%247 = OpMatrixTimesVector %11 %245 %246
%248 = OpFunctionCall %6 %45 %244 %247
%249 = OpCompositeExtract %11 %243 1
%250 = OpVectorShuffle %15 %249 %249 0 1 2
%251 = OpCompositeExtract %11 %209 2
%252 = OpVectorShuffle %15 %251 %251 0 1 2
%253 = OpFSub %15 %250 %252
%254 = OpExtInst %15 %1 Normalize %253
%255 = OpDot %6 %226 %254
%256 = OpExtInst %6 %1 FMax %5 %255
%256 = OpExtInst %6 %1 FMax %49 %255
%257 = OpFMul %6 %248 %256
%258 = OpCompositeExtract %16 %243 2
%259 = OpVectorShuffle %20 %258 %258 0 1 2
%260 = OpVectorTimesScalar %20 %259 %257
%261 = OpLoad %20 %204
%262 = OpFAdd %20 %261 %260
%258 = OpCompositeExtract %11 %243 2
%259 = OpVectorShuffle %15 %258 %258 0 1 2
%260 = OpVectorTimesScalar %15 %259 %257
%261 = OpLoad %15 %204
%262 = OpFAdd %15 %261 %260
OpStore %204 %262
OpBranch %239
%239 = OpLabel
OpBranch %230
%230 = OpLabel
%263 = OpLoad %12 %206
%264 = OpIAdd %12 %263 %14
%263 = OpLoad %8 %206
%264 = OpIAdd %8 %263 %9
OpStore %206 %264
OpBranch %227
%228 = OpLabel
%265 = OpLoad %20 %204
%266 = OpCompositeConstruct %16 %265 %7
%267 = OpAccessChain %200 %219 %14
%268 = OpLoad %16 %267
%269 = OpFMul %16 %266 %268
%265 = OpLoad %15 %204
%266 = OpCompositeConstruct %11 %265 %50
%267 = OpAccessChain %200 %219 %9
%268 = OpLoad %11 %267
%269 = OpFMul %11 %266 %268
OpStore %216 %269
OpReturn
OpFunctionEnd

View File

@@ -5,135 +5,135 @@
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %39 "vs_main" %32 %35 %37
OpEntryPoint Vertex %34 "vs_main" %27 %30 %32
OpEntryPoint Fragment %90 "fs_main" %83 %86 %89
OpExecutionMode %90 OriginUpperLeft
OpMemberDecorate %12 0 Offset 0
OpMemberDecorate %12 1 Offset 16
OpMemberDecorate %14 0 Offset 0
OpMemberDecorate %14 0 ColMajor
OpMemberDecorate %14 0 MatrixStride 16
OpMemberDecorate %14 1 Offset 64
OpMemberDecorate %14 1 ColMajor
OpMemberDecorate %14 1 MatrixStride 16
OpMemberDecorate %6 0 Offset 0
OpMemberDecorate %6 1 Offset 16
OpMemberDecorate %8 0 Offset 0
OpMemberDecorate %8 0 ColMajor
OpMemberDecorate %8 0 MatrixStride 16
OpMemberDecorate %8 1 Offset 64
OpMemberDecorate %8 1 ColMajor
OpMemberDecorate %8 1 MatrixStride 16
OpDecorate %14 DescriptorSet 0
OpDecorate %14 Binding 0
OpDecorate %15 Block
OpMemberDecorate %15 0 Offset 0
OpDecorate %17 DescriptorSet 0
OpDecorate %17 Binding 1
OpDecorate %19 DescriptorSet 0
OpDecorate %19 Binding 0
OpDecorate %20 Block
OpMemberDecorate %20 0 Offset 0
OpDecorate %22 DescriptorSet 0
OpDecorate %22 Binding 1
OpDecorate %24 DescriptorSet 0
OpDecorate %24 Binding 2
OpDecorate %32 BuiltIn VertexIndex
OpDecorate %35 BuiltIn Position
OpDecorate %37 Location 0
OpDecorate %19 Binding 2
OpDecorate %27 BuiltIn VertexIndex
OpDecorate %30 BuiltIn Position
OpDecorate %32 Location 0
OpDecorate %83 BuiltIn FragCoord
OpDecorate %86 Location 0
OpDecorate %89 Location 0
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 2
%5 = OpConstant %4 1
%7 = OpTypeFloat 32
%6 = OpConstant %7 4.0
%8 = OpConstant %7 1.0
%9 = OpConstant %7 0.0
%10 = OpTypeVector %7 4
%11 = OpTypeVector %7 3
%12 = OpTypeStruct %10 %11
%13 = OpTypeMatrix %10 4
%14 = OpTypeStruct %13 %13
%15 = OpTypeInt 32 0
%16 = OpTypeMatrix %11 3
%17 = OpTypeImage %7 Cube 0 0 0 1 Unknown
%18 = OpTypeSampler
%20 = OpTypeStruct %14
%21 = OpTypePointer Uniform %20
%19 = OpVariable %21 Uniform
%23 = OpTypePointer UniformConstant %17
%22 = OpVariable %23 UniformConstant
%25 = OpTypePointer UniformConstant %18
%24 = OpVariable %25 UniformConstant
%27 = OpTypePointer Function %4
%28 = OpConstantNull %4
%30 = OpConstantNull %4
%33 = OpTypePointer Input %15
%32 = OpVariable %33 Input
%36 = OpTypePointer Output %10
%35 = OpVariable %36 Output
%38 = OpTypePointer Output %11
%37 = OpVariable %38 Output
%40 = OpTypeFunction %2
%41 = OpTypePointer Uniform %14
%42 = OpConstant %15 0
%58 = OpTypePointer Uniform %13
%59 = OpTypePointer Uniform %10
%60 = OpConstant %15 1
%67 = OpConstant %15 2
%84 = OpTypePointer Input %10
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%5 = OpTypeVector %4 3
%6 = OpTypeStruct %3 %5
%7 = OpTypeMatrix %3 4
%8 = OpTypeStruct %7 %7
%9 = OpTypeInt 32 0
%10 = OpTypeInt 32 1
%11 = OpTypeMatrix %5 3
%12 = OpTypeImage %4 Cube 0 0 0 1 Unknown
%13 = OpTypeSampler
%15 = OpTypeStruct %8
%16 = OpTypePointer Uniform %15
%14 = OpVariable %16 Uniform
%18 = OpTypePointer UniformConstant %12
%17 = OpVariable %18 UniformConstant
%20 = OpTypePointer UniformConstant %13
%19 = OpVariable %20 UniformConstant
%22 = OpTypePointer Function %10
%23 = OpConstantNull %10
%25 = OpConstantNull %10
%28 = OpTypePointer Input %9
%27 = OpVariable %28 Input
%31 = OpTypePointer Output %3
%30 = OpVariable %31 Output
%33 = OpTypePointer Output %5
%32 = OpVariable %33 Output
%35 = OpTypeFunction %2
%36 = OpTypePointer Uniform %8
%37 = OpConstant %9 0
%39 = OpConstant %10 2
%40 = OpConstant %10 1
%41 = OpConstant %4 4.0
%42 = OpConstant %4 1.0
%43 = OpConstant %4 0.0
%58 = OpTypePointer Uniform %7
%59 = OpTypePointer Uniform %3
%60 = OpConstant %9 1
%67 = OpConstant %9 2
%84 = OpTypePointer Input %3
%83 = OpVariable %84 Input
%87 = OpTypePointer Input %11
%87 = OpTypePointer Input %5
%86 = OpVariable %87 Input
%89 = OpVariable %36 Output
%95 = OpTypeSampledImage %17
%39 = OpFunction %2 None %40
%31 = OpLabel
%26 = OpVariable %27 Function %28
%29 = OpVariable %27 Function %30
%34 = OpLoad %15 %32
%43 = OpAccessChain %41 %19 %42
%89 = OpVariable %31 Output
%95 = OpTypeSampledImage %12
%34 = OpFunction %2 None %35
%26 = OpLabel
%21 = OpVariable %22 Function %23
%24 = OpVariable %22 Function %25
%29 = OpLoad %9 %27
%38 = OpAccessChain %36 %14 %37
OpBranch %44
%44 = OpLabel
%45 = OpBitcast %4 %34
%46 = OpSDiv %4 %45 %3
OpStore %26 %46
%47 = OpBitcast %4 %34
%48 = OpBitwiseAnd %4 %47 %5
OpStore %29 %48
%49 = OpLoad %4 %26
%50 = OpConvertSToF %7 %49
%51 = OpFMul %7 %50 %6
%52 = OpFSub %7 %51 %8
%53 = OpLoad %4 %29
%54 = OpConvertSToF %7 %53
%55 = OpFMul %7 %54 %6
%56 = OpFSub %7 %55 %8
%57 = OpCompositeConstruct %10 %52 %56 %9 %8
%61 = OpAccessChain %59 %43 %60 %42
%62 = OpLoad %10 %61
%63 = OpVectorShuffle %11 %62 %62 0 1 2
%64 = OpAccessChain %59 %43 %60 %60
%65 = OpLoad %10 %64
%66 = OpVectorShuffle %11 %65 %65 0 1 2
%68 = OpAccessChain %59 %43 %60 %67
%69 = OpLoad %10 %68
%70 = OpVectorShuffle %11 %69 %69 0 1 2
%71 = OpCompositeConstruct %16 %63 %66 %70
%72 = OpTranspose %16 %71
%73 = OpAccessChain %58 %43 %42
%74 = OpLoad %13 %73
%75 = OpMatrixTimesVector %10 %74 %57
%76 = OpVectorShuffle %11 %75 %75 0 1 2
%77 = OpMatrixTimesVector %11 %72 %76
%78 = OpCompositeConstruct %12 %57 %77
%79 = OpCompositeExtract %10 %78 0
OpStore %35 %79
%80 = OpCompositeExtract %11 %78 1
OpStore %37 %80
%45 = OpBitcast %10 %29
%46 = OpSDiv %10 %45 %39
OpStore %21 %46
%47 = OpBitcast %10 %29
%48 = OpBitwiseAnd %10 %47 %40
OpStore %24 %48
%49 = OpLoad %10 %21
%50 = OpConvertSToF %4 %49
%51 = OpFMul %4 %50 %41
%52 = OpFSub %4 %51 %42
%53 = OpLoad %10 %24
%54 = OpConvertSToF %4 %53
%55 = OpFMul %4 %54 %41
%56 = OpFSub %4 %55 %42
%57 = OpCompositeConstruct %3 %52 %56 %43 %42
%61 = OpAccessChain %59 %38 %60 %37
%62 = OpLoad %3 %61
%63 = OpVectorShuffle %5 %62 %62 0 1 2
%64 = OpAccessChain %59 %38 %60 %60
%65 = OpLoad %3 %64
%66 = OpVectorShuffle %5 %65 %65 0 1 2
%68 = OpAccessChain %59 %38 %60 %67
%69 = OpLoad %3 %68
%70 = OpVectorShuffle %5 %69 %69 0 1 2
%71 = OpCompositeConstruct %11 %63 %66 %70
%72 = OpTranspose %11 %71
%73 = OpAccessChain %58 %38 %37
%74 = OpLoad %7 %73
%75 = OpMatrixTimesVector %3 %74 %57
%76 = OpVectorShuffle %5 %75 %75 0 1 2
%77 = OpMatrixTimesVector %5 %72 %76
%78 = OpCompositeConstruct %6 %57 %77
%79 = OpCompositeExtract %3 %78 0
OpStore %30 %79
%80 = OpCompositeExtract %5 %78 1
OpStore %32 %80
OpReturn
OpFunctionEnd
%90 = OpFunction %2 None %40
%90 = OpFunction %2 None %35
%81 = OpLabel
%85 = OpLoad %10 %83
%88 = OpLoad %11 %86
%82 = OpCompositeConstruct %12 %85 %88
%91 = OpLoad %17 %22
%92 = OpLoad %18 %24
%85 = OpLoad %3 %83
%88 = OpLoad %5 %86
%82 = OpCompositeConstruct %6 %85 %88
%91 = OpLoad %12 %17
%92 = OpLoad %13 %19
OpBranch %93
%93 = OpLabel
%94 = OpCompositeExtract %11 %82 1
%94 = OpCompositeExtract %5 %82 1
%96 = OpSampledImage %95 %91 %92
%97 = OpImageSampleImplicitLod %10 %96 %94
%97 = OpImageSampleImplicitLod %3 %96 %94
OpStore %89 %97
OpReturn
OpFunctionEnd

View File

@@ -8,53 +8,53 @@ OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %28 "main" %26
OpExecutionMode %28 OriginUpperLeft
OpSource GLSL 450
OpName %9 "Texture"
OpName %11 "Sampler"
OpName %14 "Passed_Texture"
OpName %16 "Passed_Sampler"
OpName %18 "test"
OpName %8 "Texture"
OpName %10 "Sampler"
OpName %13 "Passed_Texture"
OpName %15 "Passed_Sampler"
OpName %17 "test"
OpName %28 "main"
OpDecorate %9 DescriptorSet 0
OpDecorate %9 Binding 0
OpDecorate %11 DescriptorSet 0
OpDecorate %11 Binding 1
OpDecorate %8 DescriptorSet 0
OpDecorate %8 Binding 0
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 1
OpDecorate %26 Location 0
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpConstant %4 0.0
%5 = OpTypeImage %4 2D 0 0 0 1 Unknown
%6 = OpTypeSampler
%7 = OpTypeVector %4 4
%8 = OpTypeVector %4 2
%10 = OpTypePointer UniformConstant %5
%9 = OpVariable %10 UniformConstant
%12 = OpTypePointer UniformConstant %6
%11 = OpVariable %12 UniformConstant
%19 = OpTypeFunction %7 %10 %12
%22 = OpTypeSampledImage %5
%27 = OpTypePointer Output %7
%3 = OpTypeImage %4 2D 0 0 0 1 Unknown
%5 = OpTypeSampler
%6 = OpTypeVector %4 4
%7 = OpTypeVector %4 2
%9 = OpTypePointer UniformConstant %3
%8 = OpVariable %9 UniformConstant
%11 = OpTypePointer UniformConstant %5
%10 = OpVariable %11 UniformConstant
%18 = OpTypeFunction %6 %9 %11
%19 = OpConstant %4 0.0
%22 = OpTypeSampledImage %3
%27 = OpTypePointer Output %6
%26 = OpVariable %27 Output
%29 = OpTypeFunction %2
%18 = OpFunction %7 None %19
%14 = OpFunctionParameter %10
%16 = OpFunctionParameter %12
%13 = OpLabel
%15 = OpLoad %5 %14
%17 = OpLoad %6 %16
%17 = OpFunction %6 None %18
%13 = OpFunctionParameter %9
%15 = OpFunctionParameter %11
%12 = OpLabel
%14 = OpLoad %3 %13
%16 = OpLoad %5 %15
OpBranch %20
%20 = OpLabel
%21 = OpCompositeConstruct %8 %3 %3
%23 = OpSampledImage %22 %15 %17
%24 = OpImageSampleImplicitLod %7 %23 %21
%21 = OpCompositeConstruct %7 %19 %19
%23 = OpSampledImage %22 %14 %16
%24 = OpImageSampleImplicitLod %6 %23 %21
OpReturnValue %24
OpFunctionEnd
%28 = OpFunction %2 None %29
%25 = OpLabel
%30 = OpLoad %5 %9
%31 = OpLoad %6 %11
%30 = OpLoad %3 %8
%31 = OpLoad %5 %10
OpBranch %32
%32 = OpLabel
%33 = OpFunctionCall %7 %18 %9 %11
%33 = OpFunctionCall %6 %17 %8 %10
OpStore %26 %33
OpReturn
OpFunctionEnd

View File

@@ -125,7 +125,7 @@ fn main(@builtin(global_invocation_id) global_invocation_id: vec3<u32>) {
vVel = (((_e112 + (_e113 * _e116)) + (_e119 * _e122)) + (_e125 * _e128));
let _e131 = vVel;
let _e133 = vVel;
vVel = (normalize(_e131) * clamp(length(_e133), 0.0, 0.10000000149011612));
vVel = (normalize(_e131) * clamp(length(_e133), 0.0, 0.1));
let _e139 = vPos;
let _e140 = vVel;
let _e143 = params.deltaT;

View File

@@ -121,10 +121,10 @@ fn texture_sample() -> @location(0) vec4<f32> {
let _e19 = textureSample(image_2d, sampler_reg, tc, vec2<i32>(3, 1));
let _e20 = a;
a = (_e20 + _e19);
let _e24 = textureSampleLevel(image_2d, sampler_reg, tc, 2.299999952316284);
let _e24 = textureSampleLevel(image_2d, sampler_reg, tc, 2.3);
let _e25 = a;
a = (_e25 + _e24);
let _e29 = textureSampleLevel(image_2d, sampler_reg, tc, 2.299999952316284, vec2<i32>(3, 1));
let _e29 = textureSampleLevel(image_2d, sampler_reg, tc, 2.3, vec2<i32>(3, 1));
let _e30 = a;
a = (_e30 + _e29);
let _e35 = textureSampleBias(image_2d, sampler_reg, tc, 2.0, vec2<i32>(3, 1));
@@ -136,10 +136,10 @@ fn texture_sample() -> @location(0) vec4<f32> {
let _e47 = textureSample(image_2d_array, sampler_reg, tc, 0u, vec2<i32>(3, 1));
let _e48 = a;
a = (_e48 + _e47);
let _e53 = textureSampleLevel(image_2d_array, sampler_reg, tc, 0u, 2.299999952316284);
let _e53 = textureSampleLevel(image_2d_array, sampler_reg, tc, 0u, 2.3);
let _e54 = a;
a = (_e54 + _e53);
let _e59 = textureSampleLevel(image_2d_array, sampler_reg, tc, 0u, 2.299999952316284, vec2<i32>(3, 1));
let _e59 = textureSampleLevel(image_2d_array, sampler_reg, tc, 0u, 2.3, vec2<i32>(3, 1));
let _e60 = a;
a = (_e60 + _e59);
let _e66 = textureSampleBias(image_2d_array, sampler_reg, tc, 0u, 2.0, vec2<i32>(3, 1));
@@ -151,10 +151,10 @@ fn texture_sample() -> @location(0) vec4<f32> {
let _e78 = textureSample(image_2d_array, sampler_reg, tc, 0, vec2<i32>(3, 1));
let _e79 = a;
a = (_e79 + _e78);
let _e84 = textureSampleLevel(image_2d_array, sampler_reg, tc, 0, 2.299999952316284);
let _e84 = textureSampleLevel(image_2d_array, sampler_reg, tc, 0, 2.3);
let _e85 = a;
a = (_e85 + _e84);
let _e90 = textureSampleLevel(image_2d_array, sampler_reg, tc, 0, 2.299999952316284, vec2<i32>(3, 1));
let _e90 = textureSampleLevel(image_2d_array, sampler_reg, tc, 0, 2.3, vec2<i32>(3, 1));
let _e91 = a;
a = (_e91 + _e90);
let _e97 = textureSampleBias(image_2d_array, sampler_reg, tc, 0, 2.0, vec2<i32>(3, 1));
@@ -163,7 +163,7 @@ fn texture_sample() -> @location(0) vec4<f32> {
let _e103 = textureSample(image_cube_array, sampler_reg, tc3_, 0u);
let _e104 = a;
a = (_e104 + _e103);
let _e109 = textureSampleLevel(image_cube_array, sampler_reg, tc3_, 0u, 2.299999952316284);
let _e109 = textureSampleLevel(image_cube_array, sampler_reg, tc3_, 0u, 2.3);
let _e110 = a;
a = (_e110 + _e109);
let _e116 = textureSampleBias(image_cube_array, sampler_reg, tc3_, 0u, 2.0);
@@ -172,7 +172,7 @@ fn texture_sample() -> @location(0) vec4<f32> {
let _e122 = textureSample(image_cube_array, sampler_reg, tc3_, 0);
let _e123 = a;
a = (_e123 + _e122);
let _e128 = textureSampleLevel(image_cube_array, sampler_reg, tc3_, 0, 2.299999952316284);
let _e128 = textureSampleLevel(image_cube_array, sampler_reg, tc3_, 0, 2.3);
let _e129 = a;
a = (_e129 + _e128);
let _e135 = textureSampleBias(image_cube_array, sampler_reg, tc3_, 0, 2.0);

View File

@@ -12,7 +12,7 @@ fn builtins() -> vec4<f32> {
let s2_ = select(vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(1.0, 1.0, 1.0, 1.0), true);
let s3_ = select(vec4<f32>(1.0, 1.0, 1.0, 1.0), vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<bool>(false, false, false, false));
let m1_ = mix(vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(1.0, 1.0, 1.0, 1.0), vec4<f32>(0.5, 0.5, 0.5, 0.5));
let m2_ = mix(vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(1.0, 1.0, 1.0, 1.0), 0.10000000149011612);
let m2_ = mix(vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(1.0, 1.0, 1.0, 1.0), 0.1);
let b1_ = bitcast<f32>(vec4<i32>(1, 1, 1, 1).x);
let b2_ = bitcast<vec4<f32>>(vec4<i32>(1, 1, 1, 1));
let v_i32_zero = vec4<i32>(vec4<f32>(0.0, 0.0, 0.0, 0.0));