[naga wgsl-in] Proper singular generic in vec and matrix (#6189)

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
Samson 2024-09-02 14:04:51 +02:00 committed by GitHub
parent 8eb0e6451b
commit 105cb9db31
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
43 changed files with 2141 additions and 2073 deletions

View File

@ -578,8 +578,13 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
Constructor::Type(ty)
}
ast::ConstructorType::PartialVector { size } => Constructor::PartialVector { size },
ast::ConstructorType::Vector { size, scalar } => {
let ty = ctx.ensure_type_exists(scalar.to_inner_vector(size));
ast::ConstructorType::Vector { size, ty, ty_span } => {
let ty = self.resolve_ast_type(ty, &mut ctx.as_global())?;
let scalar = match ctx.module.types[ty].inner {
crate::TypeInner::Scalar(sc) => sc,
_ => return Err(Error::UnknownScalarType(ty_span)),
};
let ty = ctx.ensure_type_exists(crate::TypeInner::Vector { size, scalar });
Constructor::Type(ty)
}
ast::ConstructorType::PartialMatrix { columns, rows } => {
@ -588,13 +593,22 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
ast::ConstructorType::Matrix {
rows,
columns,
width,
ty,
ty_span,
} => {
let ty = ctx.ensure_type_exists(crate::TypeInner::Matrix {
columns,
rows,
scalar: crate::Scalar::float(width),
});
let ty = self.resolve_ast_type(ty, &mut ctx.as_global())?;
let scalar = match ctx.module.types[ty].inner {
crate::TypeInner::Scalar(sc) => sc,
_ => return Err(Error::UnknownScalarType(ty_span)),
};
let ty = match scalar.kind {
crate::ScalarKind::Float => ctx.ensure_type_exists(crate::TypeInner::Matrix {
columns,
rows,
scalar,
}),
_ => return Err(Error::BadMatrixScalarKind(ty_span, scalar)),
};
Constructor::Type(ty)
}
ast::ConstructorType::PartialArray => Constructor::PartialArray,

View File

@ -2965,16 +2965,34 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
) -> Result<Handle<crate::Type>, Error<'source>> {
let inner = match ctx.types[handle] {
ast::Type::Scalar(scalar) => scalar.to_inner_scalar(),
ast::Type::Vector { size, scalar } => scalar.to_inner_vector(size),
ast::Type::Vector { size, ty, ty_span } => {
let ty = self.resolve_ast_type(ty, ctx)?;
let scalar = match ctx.module.types[ty].inner {
crate::TypeInner::Scalar(sc) => sc,
_ => return Err(Error::UnknownScalarType(ty_span)),
};
crate::TypeInner::Vector { size, scalar }
}
ast::Type::Matrix {
rows,
columns,
width,
} => crate::TypeInner::Matrix {
columns,
rows,
scalar: crate::Scalar::float(width),
},
ty,
ty_span,
} => {
let ty = self.resolve_ast_type(ty, ctx)?;
let scalar = match ctx.module.types[ty].inner {
crate::TypeInner::Scalar(sc) => sc,
_ => return Err(Error::UnknownScalarType(ty_span)),
};
match scalar.kind {
crate::ScalarKind::Float => crate::TypeInner::Matrix {
columns,
rows,
scalar,
},
_ => return Err(Error::BadMatrixScalarKind(ty_span, scalar)),
}
}
ast::Type::Atomic(scalar) => scalar.to_inner_atomic(),
ast::Type::Pointer { base, space } => {
let base = self.resolve_ast_type(base, ctx)?;

View File

@ -198,12 +198,14 @@ pub enum Type<'a> {
Scalar(Scalar),
Vector {
size: crate::VectorSize,
scalar: Scalar,
ty: Handle<Type<'a>>,
ty_span: Span,
},
Matrix {
columns: crate::VectorSize,
rows: crate::VectorSize,
width: crate::Bytes,
ty: Handle<Type<'a>>,
ty_span: Span,
},
Atomic(Scalar),
Pointer {
@ -330,7 +332,8 @@ pub enum ConstructorType<'a> {
/// `vec3<f32>(1.0)`.
Vector {
size: crate::VectorSize,
scalar: Scalar,
ty: Handle<Type<'a>>,
ty_span: Span,
},
/// A matrix construction whose component type is inferred from the
@ -345,7 +348,8 @@ pub enum ConstructorType<'a> {
Matrix {
columns: crate::VectorSize,
rows: crate::VectorSize,
width: crate::Bytes,
ty: Handle<Type<'a>>,
ty_span: Span,
},
/// An array whose component type and size are inferred from the arguments:

View File

@ -111,6 +111,11 @@ impl<'a> ExpressionContext<'a, '_, '_> {
Ok(handle)
}
}
fn new_scalar(&mut self, scalar: Scalar) -> Handle<ast::Type<'a>> {
self.types
.append(ast::Type::Scalar(scalar), Span::UNDEFINED)
}
}
/// Which grammar rule we are in the midst of parsing.
@ -310,25 +315,22 @@ impl Parser {
"vec2i" => {
return Ok(Some(ast::ConstructorType::Vector {
size: crate::VectorSize::Bi,
scalar: Scalar {
kind: crate::ScalarKind::Sint,
width: 4,
},
ty: ctx.new_scalar(Scalar::I32),
ty_span: Span::UNDEFINED,
}))
}
"vec2u" => {
return Ok(Some(ast::ConstructorType::Vector {
size: crate::VectorSize::Bi,
scalar: Scalar {
kind: crate::ScalarKind::Uint,
width: 4,
},
ty: ctx.new_scalar(Scalar::U32),
ty_span: Span::UNDEFINED,
}))
}
"vec2f" => {
return Ok(Some(ast::ConstructorType::Vector {
size: crate::VectorSize::Bi,
scalar: Scalar::F32,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
}))
}
"vec3" => ast::ConstructorType::PartialVector {
@ -337,19 +339,22 @@ impl Parser {
"vec3i" => {
return Ok(Some(ast::ConstructorType::Vector {
size: crate::VectorSize::Tri,
scalar: Scalar::I32,
ty: ctx.new_scalar(Scalar::I32),
ty_span: Span::UNDEFINED,
}))
}
"vec3u" => {
return Ok(Some(ast::ConstructorType::Vector {
size: crate::VectorSize::Tri,
scalar: Scalar::U32,
ty: ctx.new_scalar(Scalar::U32),
ty_span: Span::UNDEFINED,
}))
}
"vec3f" => {
return Ok(Some(ast::ConstructorType::Vector {
size: crate::VectorSize::Tri,
scalar: Scalar::F32,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
}))
}
"vec4" => ast::ConstructorType::PartialVector {
@ -358,19 +363,22 @@ impl Parser {
"vec4i" => {
return Ok(Some(ast::ConstructorType::Vector {
size: crate::VectorSize::Quad,
scalar: Scalar::I32,
ty: ctx.new_scalar(Scalar::I32),
ty_span: Span::UNDEFINED,
}))
}
"vec4u" => {
return Ok(Some(ast::ConstructorType::Vector {
size: crate::VectorSize::Quad,
scalar: Scalar::U32,
ty: ctx.new_scalar(Scalar::U32),
ty_span: Span::UNDEFINED,
}))
}
"vec4f" => {
return Ok(Some(ast::ConstructorType::Vector {
size: crate::VectorSize::Quad,
scalar: Scalar::F32,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
}))
}
"mat2x2" => ast::ConstructorType::PartialMatrix {
@ -381,7 +389,8 @@ impl Parser {
return Ok(Some(ast::ConstructorType::Matrix {
columns: crate::VectorSize::Bi,
rows: crate::VectorSize::Bi,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
}))
}
"mat2x3" => ast::ConstructorType::PartialMatrix {
@ -392,7 +401,8 @@ impl Parser {
return Ok(Some(ast::ConstructorType::Matrix {
columns: crate::VectorSize::Bi,
rows: crate::VectorSize::Tri,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
}))
}
"mat2x4" => ast::ConstructorType::PartialMatrix {
@ -403,7 +413,8 @@ impl Parser {
return Ok(Some(ast::ConstructorType::Matrix {
columns: crate::VectorSize::Bi,
rows: crate::VectorSize::Quad,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
}))
}
"mat3x2" => ast::ConstructorType::PartialMatrix {
@ -414,7 +425,8 @@ impl Parser {
return Ok(Some(ast::ConstructorType::Matrix {
columns: crate::VectorSize::Tri,
rows: crate::VectorSize::Bi,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
}))
}
"mat3x3" => ast::ConstructorType::PartialMatrix {
@ -425,7 +437,8 @@ impl Parser {
return Ok(Some(ast::ConstructorType::Matrix {
columns: crate::VectorSize::Tri,
rows: crate::VectorSize::Tri,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
}))
}
"mat3x4" => ast::ConstructorType::PartialMatrix {
@ -436,7 +449,8 @@ impl Parser {
return Ok(Some(ast::ConstructorType::Matrix {
columns: crate::VectorSize::Tri,
rows: crate::VectorSize::Quad,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
}))
}
"mat4x2" => ast::ConstructorType::PartialMatrix {
@ -447,7 +461,8 @@ impl Parser {
return Ok(Some(ast::ConstructorType::Matrix {
columns: crate::VectorSize::Quad,
rows: crate::VectorSize::Bi,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
}))
}
"mat4x3" => ast::ConstructorType::PartialMatrix {
@ -458,7 +473,8 @@ impl Parser {
return Ok(Some(ast::ConstructorType::Matrix {
columns: crate::VectorSize::Quad,
rows: crate::VectorSize::Tri,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
}))
}
"mat4x4" => ast::ConstructorType::PartialMatrix {
@ -469,7 +485,8 @@ impl Parser {
return Ok(Some(ast::ConstructorType::Matrix {
columns: crate::VectorSize::Quad,
rows: crate::VectorSize::Quad,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
}))
}
"array" => ast::ConstructorType::PartialArray,
@ -502,19 +519,17 @@ impl Parser {
// parse component type if present
match (lexer.peek().0, partial) {
(Token::Paren('<'), ast::ConstructorType::PartialVector { size }) => {
let scalar = lexer.next_scalar_generic()?;
Ok(Some(ast::ConstructorType::Vector { size, scalar }))
let (ty, ty_span) = self.singular_generic(lexer, ctx)?;
Ok(Some(ast::ConstructorType::Vector { size, ty, ty_span }))
}
(Token::Paren('<'), ast::ConstructorType::PartialMatrix { columns, rows }) => {
let (scalar, span) = lexer.next_scalar_generic_with_span()?;
match scalar.kind {
crate::ScalarKind::Float => Ok(Some(ast::ConstructorType::Matrix {
columns,
rows,
width: scalar.width,
})),
_ => Err(Error::BadMatrixScalarKind(span, scalar)),
}
let (ty, ty_span) = self.singular_generic(lexer, ctx)?;
Ok(Some(ast::ConstructorType::Matrix {
columns,
rows,
ty,
ty_span,
}))
}
(Token::Paren('<'), ast::ConstructorType::PartialArray) => {
lexer.expect_generic_paren('<')?;
@ -570,11 +585,7 @@ impl Parser {
let expr = match name {
// bitcast looks like a function call, but it's an operator and must be handled differently.
"bitcast" => {
lexer.expect_generic_paren('<')?;
let start = lexer.start_byte_offset();
let to = self.type_decl(lexer, ctx)?;
let span = lexer.span_from(start);
lexer.expect_generic_paren('>')?;
let (to, span) = self.singular_generic(lexer, ctx)?;
lexer.open_arguments()?;
let expr = self.general_expression(lexer, ctx)?;
@ -1058,21 +1069,34 @@ impl Parser {
Ok(members)
}
fn matrix_scalar_type<'a>(
/// Parses `<T>`, returning T and span of T
fn singular_generic<'a>(
&mut self,
lexer: &mut Lexer<'a>,
ctx: &mut ExpressionContext<'a, '_, '_>,
) -> Result<(Handle<ast::Type<'a>>, Span), Error<'a>> {
lexer.expect_generic_paren('<')?;
let start = lexer.start_byte_offset();
let ty = self.type_decl(lexer, ctx)?;
let span = lexer.span_from(start);
lexer.expect_generic_paren('>')?;
Ok((ty, span))
}
fn matrix_with_type<'a>(
&mut self,
lexer: &mut Lexer<'a>,
ctx: &mut ExpressionContext<'a, '_, '_>,
columns: crate::VectorSize,
rows: crate::VectorSize,
) -> Result<ast::Type<'a>, Error<'a>> {
let (scalar, span) = lexer.next_scalar_generic_with_span()?;
match scalar.kind {
crate::ScalarKind::Float => Ok(ast::Type::Matrix {
columns,
rows,
width: scalar.width,
}),
_ => Err(Error::BadMatrixScalarKind(span, scalar)),
}
let (ty, ty_span) = self.singular_generic(lexer, ctx)?;
Ok(ast::Type::Matrix {
columns,
rows,
ty,
ty_span,
})
}
fn type_decl_impl<'a>(
@ -1087,151 +1111,154 @@ impl Parser {
Ok(Some(match word {
"vec2" => {
let scalar = lexer.next_scalar_generic()?;
let (ty, ty_span) = self.singular_generic(lexer, ctx)?;
ast::Type::Vector {
size: crate::VectorSize::Bi,
scalar,
ty,
ty_span,
}
}
"vec2i" => ast::Type::Vector {
size: crate::VectorSize::Bi,
scalar: Scalar {
kind: crate::ScalarKind::Sint,
width: 4,
},
ty: ctx.new_scalar(Scalar::I32),
ty_span: Span::UNDEFINED,
},
"vec2u" => ast::Type::Vector {
size: crate::VectorSize::Bi,
scalar: Scalar {
kind: crate::ScalarKind::Uint,
width: 4,
},
ty: ctx.new_scalar(Scalar::U32),
ty_span: Span::UNDEFINED,
},
"vec2f" => ast::Type::Vector {
size: crate::VectorSize::Bi,
scalar: Scalar::F32,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
},
"vec3" => {
let scalar = lexer.next_scalar_generic()?;
let (ty, ty_span) = self.singular_generic(lexer, ctx)?;
ast::Type::Vector {
size: crate::VectorSize::Tri,
scalar,
ty,
ty_span,
}
}
"vec3i" => ast::Type::Vector {
size: crate::VectorSize::Tri,
scalar: Scalar {
kind: crate::ScalarKind::Sint,
width: 4,
},
ty: ctx.new_scalar(Scalar::I32),
ty_span: Span::UNDEFINED,
},
"vec3u" => ast::Type::Vector {
size: crate::VectorSize::Tri,
scalar: Scalar {
kind: crate::ScalarKind::Uint,
width: 4,
},
ty: ctx.new_scalar(Scalar::U32),
ty_span: Span::UNDEFINED,
},
"vec3f" => ast::Type::Vector {
size: crate::VectorSize::Tri,
scalar: Scalar::F32,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
},
"vec4" => {
let scalar = lexer.next_scalar_generic()?;
let (ty, ty_span) = self.singular_generic(lexer, ctx)?;
ast::Type::Vector {
size: crate::VectorSize::Quad,
scalar,
ty,
ty_span,
}
}
"vec4i" => ast::Type::Vector {
size: crate::VectorSize::Quad,
scalar: Scalar {
kind: crate::ScalarKind::Sint,
width: 4,
},
ty: ctx.new_scalar(Scalar::I32),
ty_span: Span::UNDEFINED,
},
"vec4u" => ast::Type::Vector {
size: crate::VectorSize::Quad,
scalar: Scalar {
kind: crate::ScalarKind::Uint,
width: 4,
},
ty: ctx.new_scalar(Scalar::U32),
ty_span: Span::UNDEFINED,
},
"vec4f" => ast::Type::Vector {
size: crate::VectorSize::Quad,
scalar: Scalar::F32,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
},
"mat2x2" => {
self.matrix_scalar_type(lexer, crate::VectorSize::Bi, crate::VectorSize::Bi)?
self.matrix_with_type(lexer, ctx, crate::VectorSize::Bi, crate::VectorSize::Bi)?
}
"mat2x2f" => ast::Type::Matrix {
columns: crate::VectorSize::Bi,
rows: crate::VectorSize::Bi,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
},
"mat2x3" => {
self.matrix_scalar_type(lexer, crate::VectorSize::Bi, crate::VectorSize::Tri)?
self.matrix_with_type(lexer, ctx, crate::VectorSize::Bi, crate::VectorSize::Tri)?
}
"mat2x3f" => ast::Type::Matrix {
columns: crate::VectorSize::Bi,
rows: crate::VectorSize::Tri,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
},
"mat2x4" => {
self.matrix_scalar_type(lexer, crate::VectorSize::Bi, crate::VectorSize::Quad)?
self.matrix_with_type(lexer, ctx, crate::VectorSize::Bi, crate::VectorSize::Quad)?
}
"mat2x4f" => ast::Type::Matrix {
columns: crate::VectorSize::Bi,
rows: crate::VectorSize::Quad,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
},
"mat3x2" => {
self.matrix_scalar_type(lexer, crate::VectorSize::Tri, crate::VectorSize::Bi)?
self.matrix_with_type(lexer, ctx, crate::VectorSize::Tri, crate::VectorSize::Bi)?
}
"mat3x2f" => ast::Type::Matrix {
columns: crate::VectorSize::Tri,
rows: crate::VectorSize::Bi,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
},
"mat3x3" => {
self.matrix_scalar_type(lexer, crate::VectorSize::Tri, crate::VectorSize::Tri)?
self.matrix_with_type(lexer, ctx, crate::VectorSize::Tri, crate::VectorSize::Tri)?
}
"mat3x3f" => ast::Type::Matrix {
columns: crate::VectorSize::Tri,
rows: crate::VectorSize::Tri,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
},
"mat3x4" => {
self.matrix_scalar_type(lexer, crate::VectorSize::Tri, crate::VectorSize::Quad)?
self.matrix_with_type(lexer, ctx, crate::VectorSize::Tri, crate::VectorSize::Quad)?
}
"mat3x4f" => ast::Type::Matrix {
columns: crate::VectorSize::Tri,
rows: crate::VectorSize::Quad,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
},
"mat4x2" => {
self.matrix_scalar_type(lexer, crate::VectorSize::Quad, crate::VectorSize::Bi)?
self.matrix_with_type(lexer, ctx, crate::VectorSize::Quad, crate::VectorSize::Bi)?
}
"mat4x2f" => ast::Type::Matrix {
columns: crate::VectorSize::Quad,
rows: crate::VectorSize::Bi,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
},
"mat4x3" => {
self.matrix_scalar_type(lexer, crate::VectorSize::Quad, crate::VectorSize::Tri)?
self.matrix_with_type(lexer, ctx, crate::VectorSize::Quad, crate::VectorSize::Tri)?
}
"mat4x3f" => ast::Type::Matrix {
columns: crate::VectorSize::Quad,
rows: crate::VectorSize::Tri,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
},
"mat4x4" => {
self.matrix_scalar_type(lexer, crate::VectorSize::Quad, crate::VectorSize::Quad)?
self.matrix_with_type(lexer, ctx, crate::VectorSize::Quad, crate::VectorSize::Quad)?
}
"mat4x4f" => ast::Type::Matrix {
columns: crate::VectorSize::Quad,
rows: crate::VectorSize::Quad,
width: 4,
ty: ctx.new_scalar(Scalar::F32),
ty_span: Span::UNDEFINED,
},
"atomic" => {
let scalar = lexer.next_scalar_generic()?;

View File

@ -2,6 +2,8 @@ alias FVec3 = vec3<f32>;
alias IVec3 = vec3i;
alias Mat2 = mat2x2<f32>;
alias Mat3 = mat3x3f;
alias I32 = i32;
alias F32 = f32;
fn main() {
let a = FVec3(0.0, 0.0, 0.0);
@ -12,4 +14,7 @@ fn main() {
let f = Mat2(1.0, 2.0, 3.0, 4.0);
let g = Mat3(a, a, a);
let h = vec2<I32>();
let i = mat2x2<F32>();
}

File diff suppressed because it is too large Load Diff

View File

@ -26,7 +26,7 @@ layout(std430) buffer Bar_block_0Fragment {
AlignedWrapper data[];
} _group_0_binding_0_fs;
layout(std430) buffer type_12_block_1Fragment { ivec2 _group_0_binding_2_fs; };
layout(std430) buffer type_13_block_1Fragment { ivec2 _group_0_binding_2_fs; };
layout(location = 0) out vec4 _fs2p_location0;

View File

@ -28,7 +28,7 @@ layout(std430) buffer Bar_block_0Vertex {
uniform Baz_block_1Vertex { Baz _group_0_binding_1_vs; };
layout(std430) buffer type_12_block_2Vertex { ivec2 _group_0_binding_2_vs; };
layout(std430) buffer type_13_block_2Vertex { ivec2 _group_0_binding_2_vs; };
uniform MatCx2InArray_block_3Vertex { MatCx2InArray _group_0_binding_3_vs; };

View File

@ -28,7 +28,7 @@ uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; };
uniform Entity_block_1Fragment { Entity _group_1_binding_0_fs; };
layout(std430) readonly buffer type_6_block_2Fragment { Light _group_0_binding_1_fs[]; };
layout(std430) readonly buffer type_8_block_2Fragment { Light _group_0_binding_1_fs[]; };
uniform highp sampler2DArrayShadow _group_0_binding_2_fs;

View File

@ -28,7 +28,7 @@ uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; };
uniform Entity_block_1Fragment { Entity _group_1_binding_0_fs; };
uniform type_7_block_2Fragment { Light _group_0_binding_1_fs[10]; };
uniform type_9_block_2Fragment { Light _group_0_binding_1_fs[10]; };
uniform highp sampler2DArrayShadow _group_0_binding_2_fs;

View File

@ -64,6 +64,13 @@
span: 8,
),
),
(
name: None,
inner: Scalar((
kind: Float,
width: 4,
)),
),
(
name: None,
inner: Matrix(
@ -89,7 +96,7 @@
(
name: None,
inner: Array(
base: 6,
base: 7,
size: Constant(2),
stride: 16,
),
@ -104,7 +111,7 @@
(
name: None,
inner: Array(
base: 8,
base: 9,
size: Constant(10),
stride: 4,
),
@ -122,7 +129,7 @@
(
name: None,
inner: Array(
base: 10,
base: 11,
size: Constant(2),
stride: 8,
),
@ -141,37 +148,37 @@
members: [
(
name: Some("_matrix"),
ty: 5,
ty: 6,
binding: None,
offset: 0,
),
(
name: Some("matrix_array"),
ty: 7,
ty: 8,
binding: None,
offset: 64,
),
(
name: Some("atom"),
ty: 8,
ty: 9,
binding: None,
offset: 96,
),
(
name: Some("atom_arr"),
ty: 9,
ty: 10,
binding: None,
offset: 100,
),
(
name: Some("arr"),
ty: 11,
ty: 12,
binding: None,
offset: 144,
),
(
name: Some("data"),
ty: 12,
ty: 13,
binding: None,
offset: 160,
),
@ -196,7 +203,7 @@
members: [
(
name: Some("m"),
ty: 14,
ty: 15,
binding: None,
offset: 0,
),
@ -228,7 +235,7 @@
(
name: None,
inner: Array(
base: 17,
base: 18,
size: Constant(2),
stride: 32,
),
@ -239,7 +246,7 @@
members: [
(
name: Some("am"),
ty: 18,
ty: 19,
binding: None,
offset: 0,
),
@ -247,24 +254,17 @@
span: 64,
),
),
(
name: None,
inner: Scalar((
kind: Float,
width: 4,
)),
),
(
name: None,
inner: Pointer(
base: 20,
base: 5,
space: Function,
),
),
(
name: None,
inner: Array(
base: 20,
base: 5,
size: Constant(10),
stride: 4,
),
@ -342,7 +342,7 @@
group: 0,
binding: 0,
)),
ty: 13,
ty: 14,
init: None,
),
(
@ -352,7 +352,7 @@
group: 0,
binding: 1,
)),
ty: 15,
ty: 16,
init: None,
),
(
@ -364,7 +364,7 @@
group: 0,
binding: 2,
)),
ty: 16,
ty: 17,
init: None,
),
(
@ -374,7 +374,7 @@
group: 0,
binding: 3,
)),
ty: 19,
ty: 20,
init: None,
),
],
@ -414,7 +414,7 @@
),
(
name: Some("t"),
ty: 15,
ty: 16,
init: Some(48),
),
],
@ -557,7 +557,7 @@
value: 45,
),
Compose(
ty: 14,
ty: 15,
components: [
42,
44,
@ -565,7 +565,7 @@
],
),
Compose(
ty: 15,
ty: 16,
components: [
47,
],
@ -600,7 +600,7 @@
value: 58,
),
Compose(
ty: 14,
ty: 15,
components: [
55,
57,
@ -900,7 +900,7 @@
),
(
name: Some("t"),
ty: 19,
ty: 20,
init: Some(52),
),
],
@ -1063,9 +1063,9 @@
Load(
pointer: 49,
),
ZeroValue(18),
ZeroValue(19),
Compose(
ty: 19,
ty: 20,
components: [
51,
],
@ -1084,7 +1084,7 @@
base: 53,
index: 0,
),
ZeroValue(18),
ZeroValue(19),
AccessIndex(
base: 53,
index: 0,
@ -1114,7 +1114,7 @@
value: 67,
),
Compose(
ty: 17,
ty: 18,
components: [
62,
64,
@ -1502,7 +1502,7 @@
),
],
result: Some((
ty: 20,
ty: 5,
binding: None,
)),
local_variables: [],
@ -1535,7 +1535,7 @@
),
],
result: Some((
ty: 20,
ty: 5,
binding: None,
)),
local_variables: [],
@ -1680,7 +1680,7 @@
local_variables: [
(
name: Some("foo"),
ty: 20,
ty: 5,
init: Some(1),
),
(
@ -2017,7 +2017,7 @@
value: 13,
),
Compose(
ty: 5,
ty: 6,
components: [
8,
10,
@ -2041,7 +2041,7 @@
value: 20,
),
Compose(
ty: 11,
ty: 12,
components: [
19,
21,
@ -2062,7 +2062,7 @@
),
Literal(I32(1)),
GlobalVariable(3),
ZeroValue(16),
ZeroValue(17),
Literal(F32(0.0)),
Splat(
size: Quad,

View File

@ -64,6 +64,13 @@
span: 8,
),
),
(
name: None,
inner: Scalar((
kind: Float,
width: 4,
)),
),
(
name: None,
inner: Matrix(
@ -89,7 +96,7 @@
(
name: None,
inner: Array(
base: 6,
base: 7,
size: Constant(2),
stride: 16,
),
@ -104,7 +111,7 @@
(
name: None,
inner: Array(
base: 8,
base: 9,
size: Constant(10),
stride: 4,
),
@ -122,7 +129,7 @@
(
name: None,
inner: Array(
base: 10,
base: 11,
size: Constant(2),
stride: 8,
),
@ -141,37 +148,37 @@
members: [
(
name: Some("_matrix"),
ty: 5,
ty: 6,
binding: None,
offset: 0,
),
(
name: Some("matrix_array"),
ty: 7,
ty: 8,
binding: None,
offset: 64,
),
(
name: Some("atom"),
ty: 8,
ty: 9,
binding: None,
offset: 96,
),
(
name: Some("atom_arr"),
ty: 9,
ty: 10,
binding: None,
offset: 100,
),
(
name: Some("arr"),
ty: 11,
ty: 12,
binding: None,
offset: 144,
),
(
name: Some("data"),
ty: 12,
ty: 13,
binding: None,
offset: 160,
),
@ -196,7 +203,7 @@
members: [
(
name: Some("m"),
ty: 14,
ty: 15,
binding: None,
offset: 0,
),
@ -228,7 +235,7 @@
(
name: None,
inner: Array(
base: 17,
base: 18,
size: Constant(2),
stride: 32,
),
@ -239,7 +246,7 @@
members: [
(
name: Some("am"),
ty: 18,
ty: 19,
binding: None,
offset: 0,
),
@ -247,24 +254,17 @@
span: 64,
),
),
(
name: None,
inner: Scalar((
kind: Float,
width: 4,
)),
),
(
name: None,
inner: Pointer(
base: 20,
base: 5,
space: Function,
),
),
(
name: None,
inner: Array(
base: 20,
base: 5,
size: Constant(10),
stride: 4,
),
@ -342,7 +342,7 @@
group: 0,
binding: 0,
)),
ty: 13,
ty: 14,
init: None,
),
(
@ -352,7 +352,7 @@
group: 0,
binding: 1,
)),
ty: 15,
ty: 16,
init: None,
),
(
@ -364,7 +364,7 @@
group: 0,
binding: 2,
)),
ty: 16,
ty: 17,
init: None,
),
(
@ -374,7 +374,7 @@
group: 0,
binding: 3,
)),
ty: 19,
ty: 20,
init: None,
),
],
@ -414,7 +414,7 @@
),
(
name: Some("t"),
ty: 15,
ty: 16,
init: Some(48),
),
],
@ -557,7 +557,7 @@
value: 45,
),
Compose(
ty: 14,
ty: 15,
components: [
42,
44,
@ -565,7 +565,7 @@
],
),
Compose(
ty: 15,
ty: 16,
components: [
47,
],
@ -600,7 +600,7 @@
value: 58,
),
Compose(
ty: 14,
ty: 15,
components: [
55,
57,
@ -900,7 +900,7 @@
),
(
name: Some("t"),
ty: 19,
ty: 20,
init: Some(52),
),
],
@ -1063,9 +1063,9 @@
Load(
pointer: 49,
),
ZeroValue(18),
ZeroValue(19),
Compose(
ty: 19,
ty: 20,
components: [
51,
],
@ -1084,7 +1084,7 @@
base: 53,
index: 0,
),
ZeroValue(18),
ZeroValue(19),
AccessIndex(
base: 53,
index: 0,
@ -1114,7 +1114,7 @@
value: 67,
),
Compose(
ty: 17,
ty: 18,
components: [
62,
64,
@ -1502,7 +1502,7 @@
),
],
result: Some((
ty: 20,
ty: 5,
binding: None,
)),
local_variables: [],
@ -1535,7 +1535,7 @@
),
],
result: Some((
ty: 20,
ty: 5,
binding: None,
)),
local_variables: [],
@ -1680,7 +1680,7 @@
local_variables: [
(
name: Some("foo"),
ty: 20,
ty: 5,
init: Some(1),
),
(
@ -2017,7 +2017,7 @@
value: 13,
),
Compose(
ty: 5,
ty: 6,
components: [
8,
10,
@ -2041,7 +2041,7 @@
value: 20,
),
Compose(
ty: 11,
ty: 12,
components: [
19,
21,
@ -2062,7 +2062,7 @@
),
Literal(I32(1)),
GlobalVariable(3),
ZeroValue(16),
ZeroValue(17),
Literal(F32(0.0)),
Splat(
size: Quad,

View File

@ -4,7 +4,7 @@
using metal::uint;
struct type_5 {
struct type_7 {
float inner[2];
};
struct S {
@ -32,12 +32,12 @@ constant metal::int2 ivis_ai = metal::int2(1);
constant metal::uint2 ivus_ai = metal::uint2(1u);
constant metal::float2 ivfs_ai = metal::float2(1.0);
constant metal::float2 ivfs_af = metal::float2(1.0);
constant type_5 iafafaf = type_5 {1.0, 2.0};
constant type_5 iafaiai = type_5 {1.0, 2.0};
constant type_5 iafpafaf = type_5 {1.0, 2.0};
constant type_5 iafpaiaf = type_5 {1.0, 2.0};
constant type_5 iafpafai = type_5 {1.0, 2.0};
constant type_5 xafpafaf = type_5 {1.0, 2.0};
constant type_7 iafafaf = type_7 {1.0, 2.0};
constant type_7 iafaiai = type_7 {1.0, 2.0};
constant type_7 iafpafaf = type_7 {1.0, 2.0};
constant type_7 iafpaiaf = type_7 {1.0, 2.0};
constant type_7 iafpafai = type_7 {1.0, 2.0};
constant type_7 xafpafaf = type_7 {1.0, 2.0};
constant S s_f_i_u = S {1.0, 1, 1u};
constant S s_f_iai = S {1.0, 1, 1u};
constant S s_fai_u = S {1.0, 1, 1u};

View File

@ -4,10 +4,10 @@
using metal::uint;
struct type_5 {
struct type_7 {
float inner[2];
};
struct type_7 {
struct type_8 {
int inner[2];
};
@ -35,17 +35,17 @@ void all_constant_arguments(
metal::uint2 xvus_ai = metal::uint2(1u);
metal::float2 xvfs_ai = metal::float2(1.0);
metal::float2 xvfs_af = metal::float2(1.0);
type_5 xafafaf = type_5 {1.0, 2.0};
type_5 xaf_faf = type_5 {1.0, 2.0};
type_5 xafaf_f = type_5 {1.0, 2.0};
type_5 xafaiai = type_5 {1.0, 2.0};
type_7 xai_iai = type_7 {1, 2};
type_7 xaiai_i = type_7 {1, 2};
type_7 xaipaiai = type_7 {1, 2};
type_5 xafpaiai = type_5 {1.0, 2.0};
type_5 xafpaiaf = type_5 {1.0, 2.0};
type_5 xafpafai = type_5 {1.0, 2.0};
type_5 xafpafaf = type_5 {1.0, 2.0};
type_7 xafafaf = type_7 {1.0, 2.0};
type_7 xaf_faf = type_7 {1.0, 2.0};
type_7 xafaf_f = type_7 {1.0, 2.0};
type_7 xafaiai = type_7 {1.0, 2.0};
type_8 xai_iai = type_8 {1, 2};
type_8 xaiai_i = type_8 {1, 2};
type_8 xaipaiai = type_8 {1, 2};
type_7 xafpaiai = type_7 {1.0, 2.0};
type_7 xafpaiaf = type_7 {1.0, 2.0};
type_7 xafpafai = type_7 {1.0, 2.0};
type_7 xafpafaf = type_7 {1.0, 2.0};
}
void mixed_constant_and_runtime_arguments(
@ -61,18 +61,18 @@ void mixed_constant_and_runtime_arguments(
metal::float2x2 xmfpai_faiai_1 = {};
metal::float2x2 xmfpaiai_fai_1 = {};
metal::float2x2 xmfpaiaiai_f_1 = {};
type_5 xaf_faf_1 = {};
type_5 xafaf_f_1 = {};
type_5 xaf_fai = {};
type_5 xafai_f = {};
type_7 xai_iai_1 = {};
type_7 xaiai_i_1 = {};
type_5 xafp_faf = {};
type_5 xafpaf_f = {};
type_5 xafp_fai = {};
type_5 xafpai_f = {};
type_7 xaip_iai = {};
type_7 xaipai_i = {};
type_7 xaf_faf_1 = {};
type_7 xafaf_f_1 = {};
type_7 xaf_fai = {};
type_7 xafai_f = {};
type_8 xai_iai_1 = {};
type_8 xaiai_i_1 = {};
type_7 xafp_faf = {};
type_7 xafpaf_f = {};
type_7 xafp_fai = {};
type_7 xafpai_f = {};
type_8 xaip_iai = {};
type_8 xaipai_i = {};
uint _e3 = u;
xvupuai_1 = metal::uint2(_e3, 43u);
uint _e7 = u;
@ -90,28 +90,28 @@ void mixed_constant_and_runtime_arguments(
float _e43 = f;
xmfpaiaiai_f_1 = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, _e43));
float _e51 = f;
xaf_faf_1 = type_5 {_e51, 2.0};
xaf_faf_1 = type_7 {_e51, 2.0};
float _e55 = f;
xafaf_f_1 = type_5 {1.0, _e55};
xafaf_f_1 = type_7 {1.0, _e55};
float _e59 = f;
xaf_fai = type_5 {_e59, 2.0};
xaf_fai = type_7 {_e59, 2.0};
float _e63 = f;
xafai_f = type_5 {1.0, _e63};
xafai_f = type_7 {1.0, _e63};
int _e67 = i;
xai_iai_1 = type_7 {_e67, 2};
xai_iai_1 = type_8 {_e67, 2};
int _e71 = i;
xaiai_i_1 = type_7 {1, _e71};
xaiai_i_1 = type_8 {1, _e71};
float _e75 = f;
xafp_faf = type_5 {_e75, 2.0};
xafp_faf = type_7 {_e75, 2.0};
float _e79 = f;
xafpaf_f = type_5 {1.0, _e79};
xafpaf_f = type_7 {1.0, _e79};
float _e83 = f;
xafp_fai = type_5 {_e83, 2.0};
xafp_fai = type_7 {_e83, 2.0};
float _e87 = f;
xafpai_f = type_5 {1.0, _e87};
xafpai_f = type_7 {1.0, _e87};
int _e91 = i;
xaip_iai = type_7 {_e91, 2};
xaip_iai = type_8 {_e91, 2};
int _e95 = i;
xaipai_i = type_7 {1, _e95};
xaipai_i = type_8 {1, _e95};
return;
}

View File

@ -17,33 +17,33 @@ struct GlobalConst {
struct AlignedWrapper {
int value;
};
struct type_5 {
struct type_6 {
metal::float2x2 inner[2];
};
struct type_7 {
struct type_8 {
metal::atomic_int inner[10];
};
struct type_9 {
struct type_10 {
metal::uint2 inner[2];
};
typedef AlignedWrapper type_10[1];
typedef AlignedWrapper type_11[1];
struct Bar {
metal::float4x3 _matrix;
type_5 matrix_array;
type_6 matrix_array;
metal::atomic_int atom;
type_7 atom_arr;
type_8 atom_arr;
char _pad4[4];
type_9 arr;
type_10 data;
type_10 arr;
type_11 data;
};
struct Baz {
metal::float3x2 m;
};
struct type_14 {
struct type_15 {
metal::float4x2 inner[2];
};
struct MatCx2InArray {
type_14 am;
type_15 am;
};
struct type_17 {
float inner[10];
@ -98,10 +98,10 @@ void test_matrix_within_array_within_struct_accesses(
constant MatCx2InArray& nested_mat_cx2_
) {
int idx_1 = 1;
MatCx2InArray t_1 = MatCx2InArray {type_14 {}};
MatCx2InArray t_1 = MatCx2InArray {type_15 {}};
int _e3 = idx_1;
idx_1 = _e3 - 1;
type_14 l0_1 = nested_mat_cx2_.am;
type_15 l0_1 = nested_mat_cx2_.am;
metal::float4x2 l1_1 = nested_mat_cx2_.am.inner[0];
metal::float2 l2_1 = nested_mat_cx2_.am.inner[0][0];
int _e20 = idx_1;
@ -116,7 +116,7 @@ void test_matrix_within_array_within_struct_accesses(
float l7_ = nested_mat_cx2_.am.inner[0][_e46][_e48];
int _e55 = idx_1;
idx_1 = _e55 + 1;
t_1.am = type_14 {};
t_1.am = type_15 {};
t_1.am.inner[0] = metal::float4x2(metal::float2(8.0), metal::float2(7.0), metal::float2(6.0), metal::float2(5.0));
t_1.am.inner[0][0] = metal::float2(9.0);
int _e77 = idx_1;
@ -179,7 +179,7 @@ vertex foo_vertOutput foo_vert(
test_matrix_within_struct_accesses(baz);
test_matrix_within_array_within_struct_accesses(nested_mat_cx2_);
metal::float4x3 _matrix = bar._matrix;
type_9 arr_1 = bar.arr;
type_10 arr_1 = bar.arr;
float b = bar._matrix[3u].x;
int a_1 = bar.data[(1 + (_buffer_sizes.size1 - 160 - 8) / 8) - 2u].value;
metal::int2 c = qux;
@ -202,7 +202,7 @@ fragment foo_fragOutput foo_frag(
) {
bar._matrix[1].z = 1.0;
bar._matrix = metal::float4x3(metal::float3(0.0), metal::float3(1.0), metal::float3(2.0), metal::float3(3.0));
bar.arr = type_9 {metal::uint2(0u), metal::uint2(1u)};
bar.arr = type_10 {metal::uint2(0u), metal::uint2(1u)};
bar.data[1].value = 1;
qux = metal::int2 {};
return foo_fragOutput { metal::float4(0.0) };

View File

@ -8,7 +8,7 @@ struct Foo {
metal::float4 a;
int b;
};
struct type_5 {
struct type_6 {
metal::float2x2 inner[1];
};
struct type_10 {
@ -19,7 +19,7 @@ struct type_11 {
};
constant metal::float3 const2_ = metal::float3(0.0, 1.0, 2.0);
constant metal::float2x2 const3_ = metal::float2x2(metal::float2(0.0, 1.0), metal::float2(2.0, 3.0));
constant type_5 const4_ = type_5 {metal::float2x2(metal::float2(0.0, 1.0), metal::float2(2.0, 3.0))};
constant type_6 const4_ = type_6 {metal::float2x2(metal::float2(0.0, 1.0), metal::float2(2.0, 3.0))};
constant bool cz0_ = bool {};
constant int cz1_ = int {};
constant uint cz2_ = uint {};

View File

@ -10,17 +10,17 @@ struct DefaultConstructible {
}
};
struct type_1 {
struct type_2 {
metal::float4 inner[10];
};
struct InStorage {
type_1 a;
type_2 a;
};
struct type_2 {
struct type_3 {
metal::float4 inner[20];
};
struct InUniform {
type_2 a;
type_3 a;
};
struct type_5 {
float inner[30];

View File

@ -26,8 +26,8 @@ struct Light {
metal::float4 pos;
metal::float4 color;
};
typedef Light type_6[1];
struct type_7 {
typedef Light type_8[1];
struct type_9 {
Light inner[10];
};
constant metal::float3 c_ambient = metal::float3(0.05, 0.05, 0.05);
@ -91,7 +91,7 @@ fragment fs_mainOutput fs_main(
, metal::float4 proj_position [[position]]
, constant Globals& u_globals [[user(fake0)]]
, constant Entity& u_entity [[user(fake0)]]
, device type_6 const& s_lights [[user(fake0)]]
, device type_8 const& s_lights [[user(fake0)]]
, metal::depth2d_array<float, metal::access::sample> t_shadow [[user(fake0)]]
, metal::sampler sampler_shadow [[user(fake0)]]
, constant _mslBufferSizes& _buffer_sizes [[user(fake0)]]
@ -142,7 +142,7 @@ fragment fs_main_without_storageOutput fs_main_without_storage(
, metal::float4 proj_position_1 [[position]]
, constant Globals& u_globals [[user(fake0)]]
, constant Entity& u_entity [[user(fake0)]]
, constant type_7& u_lights [[user(fake0)]]
, constant type_9& u_lights [[user(fake0)]]
, metal::depth2d_array<float, metal::access::sample> t_shadow [[user(fake0)]]
, metal::sampler sampler_shadow [[user(fake0)]]
) {

View File

@ -11,36 +11,36 @@ OpMemberDecorate %12 0 Offset 0
OpMemberDecorate %12 1 Offset 4
OpMemberDecorate %12 2 Offset 8
%2 = OpTypeVoid
%4 = OpTypeInt 32 0
%3 = OpTypeVector %4 2
%6 = OpTypeFloat 32
%5 = OpTypeVector %6 2
%7 = OpTypeMatrix %5 2
%3 = OpTypeInt 32 0
%4 = OpTypeVector %3 2
%5 = OpTypeFloat 32
%6 = OpTypeVector %5 2
%7 = OpTypeMatrix %6 2
%9 = OpTypeInt 32 1
%8 = OpTypeVector %9 2
%11 = OpConstant %4 2
%10 = OpTypeArray %6 %11
%12 = OpTypeStruct %6 %9 %4
%13 = OpTypeVector %6 3
%14 = OpConstant %4 42
%15 = OpConstant %4 43
%16 = OpConstantComposite %3 %14 %15
%17 = OpConstant %6 44.0
%18 = OpConstant %6 45.0
%19 = OpConstantComposite %5 %17 %18
%20 = OpConstant %6 1.0
%21 = OpConstant %6 2.0
%22 = OpConstantComposite %5 %20 %21
%23 = OpConstant %6 3.0
%24 = OpConstant %6 4.0
%25 = OpConstantComposite %5 %23 %24
%11 = OpConstant %3 2
%10 = OpTypeArray %5 %11
%12 = OpTypeStruct %5 %9 %3
%13 = OpTypeVector %5 3
%14 = OpConstant %3 42
%15 = OpConstant %3 43
%16 = OpConstantComposite %4 %14 %15
%17 = OpConstant %5 44.0
%18 = OpConstant %5 45.0
%19 = OpConstantComposite %6 %17 %18
%20 = OpConstant %5 1.0
%21 = OpConstant %5 2.0
%22 = OpConstantComposite %6 %20 %21
%23 = OpConstant %5 3.0
%24 = OpConstant %5 4.0
%25 = OpConstantComposite %6 %23 %24
%26 = OpConstantComposite %7 %22 %25
%27 = OpConstant %9 1
%28 = OpConstantComposite %8 %27 %27
%29 = OpConstantComposite %5 %20 %20
%30 = OpConstant %4 1
%31 = OpConstantComposite %3 %30 %30
%29 = OpConstantComposite %6 %20 %20
%30 = OpConstant %3 1
%31 = OpConstantComposite %4 %30 %30
%32 = OpConstantComposite %10 %20 %21
%33 = OpConstantComposite %12 %20 %27 %30
%34 = OpConstantComposite %13 %20 %21 %23
%35 = OpConstantComposite %5 %21 %23
%35 = OpConstantComposite %6 %21 %23

View File

@ -9,48 +9,48 @@ OpMemoryModel Logical GLSL450
OpDecorate %10 ArrayStride 4
OpDecorate %12 ArrayStride 4
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpTypeVector %4 2
%6 = OpTypeInt 32 0
%5 = OpTypeVector %6 2
%8 = OpTypeFloat 32
%7 = OpTypeVector %8 2
%9 = OpTypeMatrix %7 2
%11 = OpConstant %6 2
%10 = OpTypeArray %8 %11
%12 = OpTypeArray %4 %11
%13 = OpConstant %4 42
%14 = OpConstant %4 43
%15 = OpConstantComposite %3 %13 %14
%16 = OpConstant %6 44
%17 = OpConstant %6 45
%18 = OpConstantComposite %5 %16 %17
%19 = OpConstant %8 46.0
%20 = OpConstant %8 47.0
%21 = OpConstantComposite %7 %19 %20
%22 = OpConstant %6 42
%23 = OpConstant %6 43
%24 = OpConstantComposite %5 %22 %23
%25 = OpConstant %8 1.0
%26 = OpConstant %8 2.0
%27 = OpConstantComposite %7 %25 %26
%28 = OpConstant %8 3.0
%29 = OpConstant %8 4.0
%30 = OpConstantComposite %7 %28 %29
%3 = OpTypeInt 32 1
%4 = OpTypeVector %3 2
%5 = OpTypeInt 32 0
%6 = OpTypeVector %5 2
%7 = OpTypeFloat 32
%8 = OpTypeVector %7 2
%9 = OpTypeMatrix %8 2
%11 = OpConstant %5 2
%10 = OpTypeArray %7 %11
%12 = OpTypeArray %3 %11
%13 = OpConstant %3 42
%14 = OpConstant %3 43
%15 = OpConstantComposite %4 %13 %14
%16 = OpConstant %5 44
%17 = OpConstant %5 45
%18 = OpConstantComposite %6 %16 %17
%19 = OpConstant %7 46.0
%20 = OpConstant %7 47.0
%21 = OpConstantComposite %8 %19 %20
%22 = OpConstant %5 42
%23 = OpConstant %5 43
%24 = OpConstantComposite %6 %22 %23
%25 = OpConstant %7 1.0
%26 = OpConstant %7 2.0
%27 = OpConstantComposite %8 %25 %26
%28 = OpConstant %7 3.0
%29 = OpConstant %7 4.0
%30 = OpConstantComposite %8 %28 %29
%31 = OpConstantComposite %9 %27 %30
%32 = OpConstant %4 1
%33 = OpConstantComposite %3 %32 %32
%34 = OpConstantComposite %7 %25 %25
%35 = OpConstant %6 1
%36 = OpConstantComposite %5 %35 %35
%32 = OpConstant %3 1
%33 = OpConstantComposite %4 %32 %32
%34 = OpConstantComposite %8 %25 %25
%35 = OpConstant %5 1
%36 = OpConstantComposite %6 %35 %35
%37 = OpConstantComposite %10 %25 %26
%38 = OpConstant %4 2
%38 = OpConstant %3 2
%39 = OpConstantComposite %12 %32 %38
%41 = OpTypePointer Private %3
%41 = OpTypePointer Private %4
%40 = OpVariable %41 Private %15
%43 = OpTypePointer Private %5
%43 = OpTypePointer Private %6
%42 = OpVariable %43 Private %18
%45 = OpTypePointer Private %7
%45 = OpTypePointer Private %8
%44 = OpVariable %45 Private %21
%46 = OpVariable %43 Private %24
%47 = OpVariable %43 Private %24
@ -77,22 +77,22 @@ OpDecorate %12 ArrayStride 4
%68 = OpVariable %63 Private %37
%69 = OpVariable %63 Private %37
%72 = OpTypeFunction %2
%74 = OpTypePointer Function %3
%76 = OpTypePointer Function %5
%78 = OpTypePointer Function %7
%74 = OpTypePointer Function %4
%76 = OpTypePointer Function %6
%78 = OpTypePointer Function %8
%84 = OpTypePointer Function %9
%100 = OpTypePointer Function %10
%105 = OpTypePointer Function %12
%116 = OpTypePointer Function %6
%117 = OpConstantNull %6
%119 = OpTypePointer Function %4
%120 = OpConstantNull %4
%122 = OpTypePointer Function %8
%123 = OpConstantNull %8
%125 = OpConstantNull %5
%127 = OpConstantNull %5
%129 = OpConstantNull %5
%131 = OpConstantNull %5
%116 = OpTypePointer Function %5
%117 = OpConstantNull %5
%119 = OpTypePointer Function %3
%120 = OpConstantNull %3
%122 = OpTypePointer Function %7
%123 = OpConstantNull %7
%125 = OpConstantNull %6
%127 = OpConstantNull %6
%129 = OpConstantNull %6
%131 = OpConstantNull %6
%133 = OpConstantNull %9
%135 = OpConstantNull %9
%137 = OpConstantNull %9
@ -175,68 +175,68 @@ OpFunctionEnd
%121 = OpVariable %122 Function %123
OpBranch %164
%164 = OpLabel
%165 = OpLoad %6 %115
%166 = OpCompositeConstruct %5 %165 %23
%165 = OpLoad %5 %115
%166 = OpCompositeConstruct %6 %165 %23
OpStore %124 %166
%167 = OpLoad %6 %115
%168 = OpCompositeConstruct %5 %22 %167
%167 = OpLoad %5 %115
%168 = OpCompositeConstruct %6 %22 %167
OpStore %126 %168
%169 = OpLoad %6 %115
%170 = OpCompositeConstruct %5 %169 %23
%169 = OpLoad %5 %115
%170 = OpCompositeConstruct %6 %169 %23
OpStore %128 %170
%171 = OpLoad %6 %115
%172 = OpCompositeConstruct %5 %22 %171
%171 = OpLoad %5 %115
%172 = OpCompositeConstruct %6 %22 %171
OpStore %130 %172
%173 = OpLoad %8 %121
%174 = OpCompositeConstruct %7 %173 %26
%173 = OpLoad %7 %121
%174 = OpCompositeConstruct %8 %173 %26
%175 = OpCompositeConstruct %9 %174 %30
OpStore %132 %175
%176 = OpLoad %8 %121
%177 = OpCompositeConstruct %7 %25 %176
%176 = OpLoad %7 %121
%177 = OpCompositeConstruct %8 %25 %176
%178 = OpCompositeConstruct %9 %177 %30
OpStore %134 %178
%179 = OpLoad %8 %121
%180 = OpCompositeConstruct %7 %179 %29
%179 = OpLoad %7 %121
%180 = OpCompositeConstruct %8 %179 %29
%181 = OpCompositeConstruct %9 %27 %180
OpStore %136 %181
%182 = OpLoad %8 %121
%183 = OpCompositeConstruct %7 %28 %182
%182 = OpLoad %7 %121
%183 = OpCompositeConstruct %8 %28 %182
%184 = OpCompositeConstruct %9 %27 %183
OpStore %138 %184
%185 = OpLoad %8 %121
%185 = OpLoad %7 %121
%186 = OpCompositeConstruct %10 %185 %26
OpStore %140 %186
%187 = OpLoad %8 %121
%187 = OpLoad %7 %121
%188 = OpCompositeConstruct %10 %25 %187
OpStore %142 %188
%189 = OpLoad %8 %121
%189 = OpLoad %7 %121
%190 = OpCompositeConstruct %10 %189 %26
OpStore %144 %190
%191 = OpLoad %8 %121
%191 = OpLoad %7 %121
%192 = OpCompositeConstruct %10 %25 %191
OpStore %146 %192
%193 = OpLoad %4 %118
%193 = OpLoad %3 %118
%194 = OpCompositeConstruct %12 %193 %38
OpStore %148 %194
%195 = OpLoad %4 %118
%195 = OpLoad %3 %118
%196 = OpCompositeConstruct %12 %32 %195
OpStore %150 %196
%197 = OpLoad %8 %121
%197 = OpLoad %7 %121
%198 = OpCompositeConstruct %10 %197 %26
OpStore %152 %198
%199 = OpLoad %8 %121
%199 = OpLoad %7 %121
%200 = OpCompositeConstruct %10 %25 %199
OpStore %154 %200
%201 = OpLoad %8 %121
%201 = OpLoad %7 %121
%202 = OpCompositeConstruct %10 %201 %26
OpStore %156 %202
%203 = OpLoad %8 %121
%203 = OpLoad %7 %121
%204 = OpCompositeConstruct %10 %25 %203
OpStore %158 %204
%205 = OpLoad %4 %118
%205 = OpLoad %3 %118
%206 = OpCompositeConstruct %12 %205 %38
OpStore %160 %206
%207 = OpLoad %4 %118
%207 = OpLoad %3 %118
%208 = OpCompositeConstruct %12 %32 %207
OpStore %162 %208
OpReturn

View File

@ -108,10 +108,10 @@ OpDecorate %272 Location 0
%5 = OpTypeInt 32 1
%6 = OpTypeStruct %3 %4 %5
%7 = OpTypeStruct %5
%10 = OpTypeFloat 32
%9 = OpTypeVector %10 3
%8 = OpTypeMatrix %9 4
%12 = OpTypeVector %10 2
%8 = OpTypeFloat 32
%10 = OpTypeVector %8 3
%9 = OpTypeMatrix %10 4
%12 = OpTypeVector %8 2
%11 = OpTypeMatrix %12 2
%14 = OpConstant %3 2
%13 = OpTypeArray %11 %14
@ -120,18 +120,18 @@ OpDecorate %272 Location 0
%17 = OpTypeVector %3 2
%18 = OpTypeArray %17 %14
%19 = OpTypeRuntimeArray %7
%20 = OpTypeStruct %8 %13 %5 %15 %18 %19
%20 = OpTypeStruct %9 %13 %5 %15 %18 %19
%21 = OpTypeMatrix %12 3
%22 = OpTypeStruct %21
%23 = OpTypeVector %5 2
%24 = OpTypeMatrix %12 4
%25 = OpTypeArray %24 %14
%26 = OpTypeStruct %25
%27 = OpTypePointer Function %10
%28 = OpTypeArray %10 %16
%27 = OpTypePointer Function %8
%28 = OpTypeArray %8 %16
%30 = OpConstant %3 5
%29 = OpTypeArray %28 %30
%31 = OpTypeVector %10 4
%31 = OpTypeVector %8 4
%32 = OpTypeArray %5 %30
%33 = OpTypePointer Function %3
%34 = OpTypeArray %31 %14
@ -156,44 +156,44 @@ OpDecorate %272 Location 0
%55 = OpTypeFunction %2
%56 = OpTypePointer Uniform %22
%58 = OpConstant %5 1
%59 = OpConstant %10 1.0
%59 = OpConstant %8 1.0
%60 = OpConstantComposite %12 %59 %59
%61 = OpConstant %10 2.0
%61 = OpConstant %8 2.0
%62 = OpConstantComposite %12 %61 %61
%63 = OpConstant %10 3.0
%63 = OpConstant %8 3.0
%64 = OpConstantComposite %12 %63 %63
%65 = OpConstantComposite %21 %60 %62 %64
%66 = OpConstantComposite %22 %65
%67 = OpConstant %10 6.0
%67 = OpConstant %8 6.0
%68 = OpConstantComposite %12 %67 %67
%69 = OpConstant %10 5.0
%69 = OpConstant %8 5.0
%70 = OpConstantComposite %12 %69 %69
%71 = OpConstant %10 4.0
%71 = OpConstant %8 4.0
%72 = OpConstantComposite %12 %71 %71
%73 = OpConstantComposite %21 %68 %70 %72
%74 = OpConstant %10 9.0
%74 = OpConstant %8 9.0
%75 = OpConstantComposite %12 %74 %74
%76 = OpConstant %10 90.0
%76 = OpConstant %8 90.0
%77 = OpConstantComposite %12 %76 %76
%78 = OpConstant %10 10.0
%79 = OpConstant %10 20.0
%80 = OpConstant %10 30.0
%81 = OpConstant %10 40.0
%78 = OpConstant %8 10.0
%79 = OpConstant %8 20.0
%80 = OpConstant %8 30.0
%81 = OpConstant %8 40.0
%83 = OpTypePointer Function %5
%85 = OpTypePointer Function %22
%89 = OpTypePointer Uniform %21
%92 = OpTypePointer Uniform %12
%98 = OpTypePointer Uniform %10
%98 = OpTypePointer Uniform %8
%99 = OpConstant %3 1
%114 = OpTypePointer Function %21
%116 = OpTypePointer Function %12
%120 = OpTypePointer Function %10
%120 = OpTypePointer Function %8
%131 = OpTypePointer Uniform %26
%133 = OpConstantNull %25
%134 = OpConstantComposite %26 %133
%135 = OpConstant %10 8.0
%135 = OpConstant %8 8.0
%136 = OpConstantComposite %12 %135 %135
%137 = OpConstant %10 7.0
%137 = OpConstant %8 7.0
%138 = OpConstantComposite %12 %137 %137
%139 = OpConstantComposite %24 %136 %138 %68 %70
%142 = OpTypePointer Function %26
@ -201,8 +201,8 @@ OpDecorate %272 Location 0
%149 = OpTypePointer Uniform %24
%171 = OpTypePointer Function %25
%173 = OpTypePointer Function %24
%189 = OpTypeFunction %10 %27
%195 = OpTypeFunction %10 %29
%189 = OpTypeFunction %8 %27
%195 = OpTypeFunction %8 %29
%202 = OpTypeFunction %2 %33
%203 = OpConstant %3 42
%208 = OpTypeFunction %2 %35
@ -214,7 +214,7 @@ OpDecorate %272 Location 0
%218 = OpTypePointer Output %31
%217 = OpVariable %218 Output
%221 = OpTypePointer StorageBuffer %23
%224 = OpConstant %10 0.0
%224 = OpConstant %8 0.0
%225 = OpConstant %3 3
%226 = OpConstant %5 3
%227 = OpConstant %5 4
@ -223,21 +223,21 @@ OpDecorate %272 Location 0
%230 = OpConstantNull %29
%233 = OpTypePointer Function %32
%234 = OpConstantNull %32
%239 = OpTypePointer StorageBuffer %8
%239 = OpTypePointer StorageBuffer %9
%242 = OpTypePointer StorageBuffer %18
%243 = OpConstant %3 4
%246 = OpTypePointer StorageBuffer %9
%247 = OpTypePointer StorageBuffer %10
%246 = OpTypePointer StorageBuffer %10
%247 = OpTypePointer StorageBuffer %8
%250 = OpTypePointer StorageBuffer %19
%253 = OpTypePointer StorageBuffer %7
%254 = OpTypePointer StorageBuffer %5
%266 = OpTypeVector %5 4
%272 = OpVariable %218 Output
%275 = OpConstantComposite %9 %224 %224 %224
%276 = OpConstantComposite %9 %59 %59 %59
%277 = OpConstantComposite %9 %61 %61 %61
%278 = OpConstantComposite %9 %63 %63 %63
%279 = OpConstantComposite %8 %275 %276 %277 %278
%275 = OpConstantComposite %10 %224 %224 %224
%276 = OpConstantComposite %10 %59 %59 %59
%277 = OpConstantComposite %10 %61 %61 %61
%278 = OpConstantComposite %10 %63 %63 %63
%279 = OpConstantComposite %9 %275 %276 %277 %278
%280 = OpConstantComposite %17 %36 %36
%281 = OpConstantComposite %17 %99 %99
%282 = OpConstantComposite %18 %280 %281
@ -265,17 +265,17 @@ OpStore %82 %88
%96 = OpAccessChain %92 %57 %36 %95
%97 = OpLoad %12 %96
%100 = OpAccessChain %98 %57 %36 %36 %99
%101 = OpLoad %10 %100
%101 = OpLoad %8 %100
%102 = OpLoad %5 %82
%103 = OpAccessChain %98 %57 %36 %36 %102
%104 = OpLoad %10 %103
%104 = OpLoad %8 %103
%105 = OpLoad %5 %82
%106 = OpAccessChain %98 %57 %36 %105 %99
%107 = OpLoad %10 %106
%107 = OpLoad %8 %106
%108 = OpLoad %5 %82
%109 = OpLoad %5 %82
%110 = OpAccessChain %98 %57 %36 %108 %109
%111 = OpLoad %10 %110
%111 = OpLoad %8 %110
%112 = OpLoad %5 %82
%113 = OpIAdd %5 %112 %58
OpStore %82 %113
@ -320,17 +320,17 @@ OpStore %140 %145
%155 = OpAccessChain %92 %132 %36 %36 %154
%156 = OpLoad %12 %155
%157 = OpAccessChain %98 %132 %36 %36 %36 %99
%158 = OpLoad %10 %157
%158 = OpLoad %8 %157
%159 = OpLoad %5 %140
%160 = OpAccessChain %98 %132 %36 %36 %36 %159
%161 = OpLoad %10 %160
%161 = OpLoad %8 %160
%162 = OpLoad %5 %140
%163 = OpAccessChain %98 %132 %36 %36 %162 %99
%164 = OpLoad %10 %163
%164 = OpLoad %8 %163
%165 = OpLoad %5 %140
%166 = OpLoad %5 %140
%167 = OpAccessChain %98 %132 %36 %36 %165 %166
%168 = OpLoad %10 %167
%168 = OpLoad %8 %167
%169 = OpLoad %5 %140
%170 = OpIAdd %5 %169 %58
OpStore %140 %170
@ -357,21 +357,21 @@ OpStore %182 %80
OpStore %185 %81
OpReturn
OpFunctionEnd
%188 = OpFunction %10 None %189
%188 = OpFunction %8 None %189
%187 = OpFunctionParameter %27
%186 = OpLabel
OpBranch %190
%190 = OpLabel
%191 = OpLoad %10 %187
%191 = OpLoad %8 %187
OpReturnValue %191
OpFunctionEnd
%194 = OpFunction %10 None %195
%194 = OpFunction %8 None %195
%193 = OpFunctionParameter %29
%192 = OpLabel
OpBranch %196
%196 = OpLabel
%197 = OpCompositeExtract %28 %193 4
%198 = OpCompositeExtract %10 %197 9
%198 = OpCompositeExtract %8 %197 9
OpReturnValue %198
OpFunctionEnd
%201 = OpFunction %2 None %202
@ -400,22 +400,22 @@ OpFunctionEnd
%223 = OpAccessChain %131 %50 %36
OpBranch %235
%235 = OpLabel
%236 = OpLoad %10 %231
%236 = OpLoad %8 %231
OpStore %231 %59
%237 = OpFunctionCall %2 %54
%238 = OpFunctionCall %2 %130
%240 = OpAccessChain %239 %42 %36
%241 = OpLoad %8 %240
%241 = OpLoad %9 %240
%244 = OpAccessChain %242 %42 %243
%245 = OpLoad %18 %244
%248 = OpAccessChain %247 %42 %36 %225 %36
%249 = OpLoad %10 %248
%249 = OpLoad %8 %248
%251 = OpArrayLength %3 %42 5
%252 = OpISub %3 %251 %14
%255 = OpAccessChain %254 %42 %30 %252 %36
%256 = OpLoad %5 %255
%257 = OpLoad %23 %222
%258 = OpFunctionCall %10 %188 %231
%258 = OpFunctionCall %8 %188 %231
%259 = OpConvertFToS %5 %249
%260 = OpCompositeConstruct %32 %256 %259 %226 %227 %228
OpStore %232 %260
@ -424,10 +424,10 @@ OpStore %232 %260
OpStore %262 %229
%263 = OpAccessChain %83 %232 %216
%264 = OpLoad %5 %263
%265 = OpFunctionCall %10 %194 %230
%265 = OpFunctionCall %8 %194 %230
%267 = OpCompositeConstruct %266 %264 %264 %264 %264
%268 = OpConvertSToF %31 %267
%269 = OpMatrixTimesVector %9 %241 %268
%269 = OpMatrixTimesVector %10 %241 %268
%270 = OpCompositeConstruct %31 %269 %61
OpStore %217 %270
OpReturn

View File

@ -61,10 +61,10 @@ OpDecorate %18 Binding 2
OpDecorate %20 BuiltIn GlobalInvocationId
%2 = OpTypeVoid
%3 = OpTypeInt 32 0
%5 = OpTypeFloat 32
%4 = OpTypeVector %5 2
%6 = OpTypeStruct %4 %4
%7 = OpTypeStruct %5 %5 %5 %5 %5 %5 %5
%4 = OpTypeFloat 32
%5 = OpTypeVector %4 2
%6 = OpTypeStruct %5 %5
%7 = OpTypeStruct %4 %4 %4 %4 %4 %4 %4
%8 = OpTypeRuntimeArray %6
%9 = OpTypeStruct %8
%10 = OpTypeVector %3 3
@ -81,32 +81,32 @@ OpDecorate %20 BuiltIn GlobalInvocationId
%24 = OpTypeFunction %2
%25 = OpTypePointer Uniform %7
%26 = OpConstant %3 0
%28 = OpConstant %5 0.0
%29 = OpConstantComposite %4 %28 %28
%28 = OpConstant %4 0.0
%29 = OpConstantComposite %5 %28 %28
%30 = OpConstant %11 0
%31 = OpConstant %11 1
%32 = OpConstant %3 1
%33 = OpConstant %5 0.1
%34 = OpConstant %5 -1.0
%35 = OpConstant %5 1.0
%37 = OpTypePointer Function %4
%38 = OpConstantNull %4
%40 = OpConstantNull %4
%33 = OpConstant %4 0.1
%34 = OpConstant %4 -1.0
%35 = OpConstant %4 1.0
%37 = OpTypePointer Function %5
%38 = OpConstantNull %5
%40 = OpConstantNull %5
%45 = OpTypePointer Function %11
%48 = OpConstantNull %4
%50 = OpConstantNull %4
%48 = OpConstantNull %5
%50 = OpConstantNull %5
%52 = OpTypePointer Function %3
%55 = OpTypeBool
%59 = OpTypePointer StorageBuffer %8
%60 = OpTypePointer StorageBuffer %6
%61 = OpTypePointer StorageBuffer %4
%87 = OpTypePointer Uniform %5
%61 = OpTypePointer StorageBuffer %5
%87 = OpTypePointer Uniform %4
%101 = OpConstant %3 2
%115 = OpConstant %3 3
%150 = OpConstant %3 4
%156 = OpConstant %3 5
%162 = OpConstant %3 6
%179 = OpTypePointer Function %5
%179 = OpTypePointer Function %4
%23 = OpFunction %2 None %24
%19 = OpLabel
%51 = OpVariable %52 Function %26
@ -131,10 +131,10 @@ OpBranchConditional %56 %58 %57
OpReturn
%57 = OpLabel
%62 = OpAccessChain %61 %16 %26 %54 %26
%63 = OpLoad %4 %62
%63 = OpLoad %5 %62
OpStore %36 %63
%64 = OpAccessChain %61 %16 %26 %54 %32
%65 = OpLoad %4 %64
%65 = OpLoad %5 %64
OpStore %39 %65
OpBranch %66
%66 = OpLabel
@ -157,59 +157,59 @@ OpBranch %69
%76 = OpLabel
%78 = OpLoad %3 %51
%79 = OpAccessChain %61 %16 %26 %78 %26
%80 = OpLoad %4 %79
%80 = OpLoad %5 %79
OpStore %47 %80
%81 = OpLoad %3 %51
%82 = OpAccessChain %61 %16 %26 %81 %32
%83 = OpLoad %4 %82
%83 = OpLoad %5 %82
OpStore %49 %83
%84 = OpLoad %4 %47
%85 = OpLoad %4 %36
%86 = OpExtInst %5 %1 Distance %84 %85
%84 = OpLoad %5 %47
%85 = OpLoad %5 %36
%86 = OpExtInst %4 %1 Distance %84 %85
%88 = OpAccessChain %87 %27 %32
%89 = OpLoad %5 %88
%89 = OpLoad %4 %88
%90 = OpFOrdLessThan %55 %86 %89
OpSelectionMerge %91 None
OpBranchConditional %90 %92 %91
%92 = OpLabel
%93 = OpLoad %4 %41
%94 = OpLoad %4 %47
%95 = OpFAdd %4 %93 %94
%93 = OpLoad %5 %41
%94 = OpLoad %5 %47
%95 = OpFAdd %5 %93 %94
OpStore %41 %95
%96 = OpLoad %11 %44
%97 = OpIAdd %11 %96 %31
OpStore %44 %97
OpBranch %91
%91 = OpLabel
%98 = OpLoad %4 %47
%99 = OpLoad %4 %36
%100 = OpExtInst %5 %1 Distance %98 %99
%98 = OpLoad %5 %47
%99 = OpLoad %5 %36
%100 = OpExtInst %4 %1 Distance %98 %99
%102 = OpAccessChain %87 %27 %101
%103 = OpLoad %5 %102
%103 = OpLoad %4 %102
%104 = OpFOrdLessThan %55 %100 %103
OpSelectionMerge %105 None
OpBranchConditional %104 %106 %105
%106 = OpLabel
%107 = OpLoad %4 %43
%108 = OpLoad %4 %47
%109 = OpLoad %4 %36
%110 = OpFSub %4 %108 %109
%111 = OpFSub %4 %107 %110
%107 = OpLoad %5 %43
%108 = OpLoad %5 %47
%109 = OpLoad %5 %36
%110 = OpFSub %5 %108 %109
%111 = OpFSub %5 %107 %110
OpStore %43 %111
OpBranch %105
%105 = OpLabel
%112 = OpLoad %4 %47
%113 = OpLoad %4 %36
%114 = OpExtInst %5 %1 Distance %112 %113
%112 = OpLoad %5 %47
%113 = OpLoad %5 %36
%114 = OpExtInst %4 %1 Distance %112 %113
%116 = OpAccessChain %87 %27 %115
%117 = OpLoad %5 %116
%117 = OpLoad %4 %116
%118 = OpFOrdLessThan %55 %114 %117
OpSelectionMerge %119 None
OpBranchConditional %118 %120 %119
%120 = OpLabel
%121 = OpLoad %4 %42
%122 = OpLoad %4 %49
%123 = OpFAdd %4 %121 %122
%121 = OpLoad %5 %42
%122 = OpLoad %5 %49
%123 = OpFAdd %5 %121 %122
OpStore %42 %123
%124 = OpLoad %11 %46
%125 = OpIAdd %11 %124 %31
@ -228,13 +228,13 @@ OpBranch %66
OpSelectionMerge %130 None
OpBranchConditional %129 %131 %130
%131 = OpLabel
%132 = OpLoad %4 %41
%132 = OpLoad %5 %41
%133 = OpLoad %11 %44
%134 = OpConvertSToF %5 %133
%135 = OpCompositeConstruct %4 %134 %134
%136 = OpFDiv %4 %132 %135
%137 = OpLoad %4 %36
%138 = OpFSub %4 %136 %137
%134 = OpConvertSToF %4 %133
%135 = OpCompositeConstruct %5 %134 %134
%136 = OpFDiv %5 %132 %135
%137 = OpLoad %5 %36
%138 = OpFSub %5 %136 %137
OpStore %41 %138
OpBranch %130
%130 = OpLabel
@ -243,47 +243,47 @@ OpBranch %130
OpSelectionMerge %141 None
OpBranchConditional %140 %142 %141
%142 = OpLabel
%143 = OpLoad %4 %42
%143 = OpLoad %5 %42
%144 = OpLoad %11 %46
%145 = OpConvertSToF %5 %144
%146 = OpCompositeConstruct %4 %145 %145
%147 = OpFDiv %4 %143 %146
%145 = OpConvertSToF %4 %144
%146 = OpCompositeConstruct %5 %145 %145
%147 = OpFDiv %5 %143 %146
OpStore %42 %147
OpBranch %141
%141 = OpLabel
%148 = OpLoad %4 %39
%149 = OpLoad %4 %41
%148 = OpLoad %5 %39
%149 = OpLoad %5 %41
%151 = OpAccessChain %87 %27 %150
%152 = OpLoad %5 %151
%153 = OpVectorTimesScalar %4 %149 %152
%154 = OpFAdd %4 %148 %153
%155 = OpLoad %4 %43
%152 = OpLoad %4 %151
%153 = OpVectorTimesScalar %5 %149 %152
%154 = OpFAdd %5 %148 %153
%155 = OpLoad %5 %43
%157 = OpAccessChain %87 %27 %156
%158 = OpLoad %5 %157
%159 = OpVectorTimesScalar %4 %155 %158
%160 = OpFAdd %4 %154 %159
%161 = OpLoad %4 %42
%158 = OpLoad %4 %157
%159 = OpVectorTimesScalar %5 %155 %158
%160 = OpFAdd %5 %154 %159
%161 = OpLoad %5 %42
%163 = OpAccessChain %87 %27 %162
%164 = OpLoad %5 %163
%165 = OpVectorTimesScalar %4 %161 %164
%166 = OpFAdd %4 %160 %165
%164 = OpLoad %4 %163
%165 = OpVectorTimesScalar %5 %161 %164
%166 = OpFAdd %5 %160 %165
OpStore %39 %166
%167 = OpLoad %4 %39
%168 = OpExtInst %4 %1 Normalize %167
%169 = OpLoad %4 %39
%170 = OpExtInst %5 %1 Length %169
%171 = OpExtInst %5 %1 FClamp %170 %28 %33
%172 = OpVectorTimesScalar %4 %168 %171
%167 = OpLoad %5 %39
%168 = OpExtInst %5 %1 Normalize %167
%169 = OpLoad %5 %39
%170 = OpExtInst %4 %1 Length %169
%171 = OpExtInst %4 %1 FClamp %170 %28 %33
%172 = OpVectorTimesScalar %5 %168 %171
OpStore %39 %172
%173 = OpLoad %4 %36
%174 = OpLoad %4 %39
%173 = OpLoad %5 %36
%174 = OpLoad %5 %39
%175 = OpAccessChain %87 %27 %26
%176 = OpLoad %5 %175
%177 = OpVectorTimesScalar %4 %174 %176
%178 = OpFAdd %4 %173 %177
%176 = OpLoad %4 %175
%177 = OpVectorTimesScalar %5 %174 %176
%178 = OpFAdd %5 %173 %177
OpStore %36 %178
%180 = OpAccessChain %179 %36 %26
%181 = OpLoad %5 %180
%181 = OpLoad %4 %180
%182 = OpFOrdLessThan %55 %181 %34
OpSelectionMerge %183 None
OpBranchConditional %182 %184 %183
@ -293,7 +293,7 @@ OpStore %185 %35
OpBranch %183
%183 = OpLabel
%186 = OpAccessChain %179 %36 %26
%187 = OpLoad %5 %186
%187 = OpLoad %4 %186
%188 = OpFOrdGreaterThan %55 %187 %35
OpSelectionMerge %189 None
OpBranchConditional %188 %190 %189
@ -303,7 +303,7 @@ OpStore %191 %34
OpBranch %189
%189 = OpLabel
%192 = OpAccessChain %179 %36 %32
%193 = OpLoad %5 %192
%193 = OpLoad %4 %192
%194 = OpFOrdLessThan %55 %193 %34
OpSelectionMerge %195 None
OpBranchConditional %194 %196 %195
@ -313,7 +313,7 @@ OpStore %197 %35
OpBranch %195
%195 = OpLabel
%198 = OpAccessChain %179 %36 %32
%199 = OpLoad %5 %198
%199 = OpLoad %4 %198
%200 = OpFOrdGreaterThan %55 %199 %35
OpSelectionMerge %201 None
OpBranchConditional %200 %202 %201
@ -322,10 +322,10 @@ OpBranchConditional %200 %202 %201
OpStore %203 %34
OpBranch %201
%201 = OpLabel
%204 = OpLoad %4 %36
%204 = OpLoad %5 %36
%205 = OpAccessChain %61 %18 %26 %54 %26
OpStore %205 %204
%206 = OpLoad %4 %39
%206 = OpLoad %5 %39
%207 = OpAccessChain %61 %18 %26 %54 %32
OpStore %207 %206
OpReturn

View File

@ -11,25 +11,25 @@ OpExecutionMode %100 LocalSize 2 3 1
%3 = OpTypeInt 32 0
%4 = OpTypeInt 32 1
%5 = OpTypeVector %4 4
%7 = OpTypeFloat 32
%6 = OpTypeVector %7 4
%8 = OpTypeVector %7 2
%6 = OpTypeFloat 32
%7 = OpTypeVector %6 4
%8 = OpTypeVector %6 2
%10 = OpTypeBool
%9 = OpTypeVector %10 2
%11 = OpConstant %3 2
%12 = OpConstant %4 3
%13 = OpConstant %4 4
%14 = OpConstant %4 8
%15 = OpConstant %7 3.141
%16 = OpConstant %7 6.282
%17 = OpConstant %7 0.44444445
%18 = OpConstant %7 0.0
%19 = OpConstantComposite %6 %17 %18 %18 %18
%15 = OpConstant %6 3.141
%16 = OpConstant %6 6.282
%17 = OpConstant %6 0.44444445
%18 = OpConstant %6 0.0
%19 = OpConstantComposite %7 %17 %18 %18 %18
%20 = OpConstant %4 0
%21 = OpConstant %4 1
%22 = OpConstant %4 2
%23 = OpConstant %7 4.0
%24 = OpConstant %7 5.0
%23 = OpConstant %6 4.0
%24 = OpConstant %6 5.0
%25 = OpConstantComposite %8 %23 %24
%26 = OpConstantTrue %10
%27 = OpConstantFalse %10
@ -46,10 +46,10 @@ OpExecutionMode %100 LocalSize 2 3 1
%57 = OpConstantNull %5
%68 = OpConstant %4 -4
%69 = OpConstantComposite %5 %68 %68 %68 %68
%78 = OpConstant %7 1.0
%79 = OpConstant %7 2.0
%80 = OpConstantComposite %6 %79 %78 %78 %78
%82 = OpTypePointer Function %6
%78 = OpConstant %6 1.0
%79 = OpConstant %6 2.0
%80 = OpConstantComposite %7 %79 %78 %78 %78
%82 = OpTypePointer Function %7
%87 = OpTypeFunction %3 %4
%88 = OpConstant %3 10
%89 = OpConstant %3 20

View File

@ -13,12 +13,12 @@ OpDecorate %10 ArrayStride 16
OpDecorate %15 ArrayStride 32
OpDecorate %17 ArrayStride 4
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 4
%5 = OpTypeInt 32 1
%6 = OpTypeStruct %3 %5
%7 = OpTypeVector %4 3
%9 = OpTypeVector %4 2
%6 = OpTypeStruct %4 %5
%7 = OpTypeVector %3 3
%9 = OpTypeVector %3 2
%8 = OpTypeMatrix %9 2
%12 = OpTypeInt 32 0
%11 = OpConstant %12 1
@ -29,13 +29,13 @@ OpDecorate %17 ArrayStride 4
%15 = OpTypeArray %6 %16
%18 = OpConstant %12 4
%17 = OpTypeArray %5 %18
%19 = OpTypeMatrix %3 4
%19 = OpTypeMatrix %4 4
%20 = OpTypeMatrix %7 2
%21 = OpConstant %4 0.0
%22 = OpConstant %4 1.0
%23 = OpConstant %4 2.0
%21 = OpConstant %3 0.0
%22 = OpConstant %3 1.0
%23 = OpConstant %3 2.0
%24 = OpConstantComposite %7 %21 %22 %23
%25 = OpConstant %4 3.0
%25 = OpConstant %3 3.0
%26 = OpConstantComposite %9 %21 %22
%27 = OpConstantComposite %9 %23 %25
%28 = OpConstantComposite %8 %26 %27
@ -43,7 +43,7 @@ OpDecorate %17 ArrayStride 4
%30 = OpConstantNull %13
%31 = OpConstantNull %5
%32 = OpConstantNull %12
%33 = OpConstantNull %4
%33 = OpConstantNull %3
%34 = OpConstantNull %14
%35 = OpConstantNull %8
%36 = OpConstantNull %15
@ -54,14 +54,14 @@ OpDecorate %17 ArrayStride 4
%41 = OpConstant %5 3
%42 = OpConstantComposite %17 %38 %39 %40 %41
%45 = OpTypeFunction %2
%46 = OpConstantComposite %3 %22 %22 %22 %22
%46 = OpConstantComposite %4 %22 %22 %22 %22
%47 = OpConstantComposite %6 %46 %39
%48 = OpConstantComposite %9 %22 %21
%49 = OpConstantComposite %8 %48 %26
%50 = OpConstantComposite %3 %22 %21 %21 %21
%51 = OpConstantComposite %3 %21 %22 %21 %21
%52 = OpConstantComposite %3 %21 %21 %22 %21
%53 = OpConstantComposite %3 %21 %21 %21 %22
%50 = OpConstantComposite %4 %22 %21 %21 %21
%51 = OpConstantComposite %4 %21 %22 %21 %21
%52 = OpConstantComposite %4 %21 %21 %22 %21
%53 = OpConstantComposite %4 %21 %21 %21 %22
%54 = OpConstantComposite %19 %50 %51 %52 %53
%55 = OpConstant %12 0
%56 = OpConstantComposite %14 %55 %55

View File

@ -7653,17 +7653,17 @@ OpDecorate %578 Location 0
OpDecorate %580 Location 1
OpDecorate %582 Location 0
%2 = OpTypeVoid
%5 = OpTypeFloat 32
%4 = OpTypeVector %5 3
%6 = OpTypeVector %5 2
%7 = OpTypeVector %5 4
%4 = OpTypeFloat 32
%5 = OpTypeVector %4 3
%6 = OpTypeVector %4 2
%7 = OpTypeVector %4 4
%8 = OpTypeInt 32 0
%9 = OpTypeMatrix %6 2
%10 = OpTypeVector %8 2
%12 = OpTypeInt 32 1
%11 = OpTypeVector %12 2
%13 = OpTypeStruct %10 %11 %6
%14 = OpTypeStruct %4 %4
%14 = OpTypeStruct %5 %5
%15 = OpTypeRuntimeArray %14
%16 = OpTypeStruct %15
%17 = OpTypeRuntimeArray %8
@ -7674,9 +7674,9 @@ OpDecorate %582 Location 0
%22 = OpTypeStruct %8 %8
%23 = OpTypeMatrix %7 4
%24 = OpTypeStruct %7 %23
%25 = OpTypeStruct %4 %4
%26 = OpTypeStruct %7 %4 %4
%27 = OpTypeImage %5 2D 0 0 0 1 Unknown
%25 = OpTypeStruct %5 %5
%26 = OpTypeStruct %7 %5 %5
%27 = OpTypeImage %4 2D 0 0 0 1 Unknown
%28 = OpTypeSampler
%30 = OpTypeStruct %13
%31 = OpTypePointer Uniform %30
@ -7700,67 +7700,67 @@ OpDecorate %582 Location 0
%47 = OpVariable %48 UniformConstant
%49 = OpVariable %46 UniformConstant
%50 = OpVariable %48 UniformConstant
%54 = OpTypeFunction %4 %4
%55 = OpConstant %5 34.0
%56 = OpConstant %5 1.0
%57 = OpConstantComposite %4 %56 %56 %56
%58 = OpConstant %5 289.0
%59 = OpConstantComposite %4 %58 %58 %58
%68 = OpTypeFunction %5 %6
%69 = OpConstant %5 0.21132487
%70 = OpConstant %5 0.36602542
%71 = OpConstant %5 -0.57735026
%72 = OpConstant %5 0.024390243
%54 = OpTypeFunction %5 %5
%55 = OpConstant %4 34.0
%56 = OpConstant %4 1.0
%57 = OpConstantComposite %5 %56 %56 %56
%58 = OpConstant %4 289.0
%59 = OpConstantComposite %5 %58 %58 %58
%68 = OpTypeFunction %4 %6
%69 = OpConstant %4 0.21132487
%70 = OpConstant %4 0.36602542
%71 = OpConstant %4 -0.57735026
%72 = OpConstant %4 0.024390243
%73 = OpConstantComposite %7 %69 %70 %71 %72
%74 = OpConstant %5 0.0
%74 = OpConstant %4 0.0
%75 = OpConstantComposite %6 %56 %74
%76 = OpConstantComposite %6 %74 %56
%77 = OpConstantComposite %6 %58 %58
%78 = OpConstant %5 0.5
%79 = OpConstantComposite %4 %78 %78 %78
%80 = OpConstantComposite %4 %74 %74 %74
%81 = OpConstant %5 2.0
%82 = OpConstant %5 0.85373473
%83 = OpConstant %5 1.7928429
%84 = OpConstantComposite %4 %83 %83 %83
%85 = OpConstant %5 130.0
%78 = OpConstant %4 0.5
%79 = OpConstantComposite %5 %78 %78 %78
%80 = OpConstantComposite %5 %74 %74 %74
%81 = OpConstant %4 2.0
%82 = OpConstant %4 0.85373473
%83 = OpConstant %4 1.7928429
%84 = OpConstantComposite %5 %83 %83 %83
%85 = OpConstant %4 130.0
%87 = OpTypePointer Function %6
%88 = OpConstantNull %6
%90 = OpConstantNull %6
%92 = OpTypePointer Function %7
%93 = OpConstantNull %7
%95 = OpTypePointer Function %4
%96 = OpConstantNull %4
%95 = OpTypePointer Function %5
%96 = OpConstantNull %5
%112 = OpTypeBool
%115 = OpTypeVector %112 2
%125 = OpTypePointer Function %5
%125 = OpTypePointer Function %4
%126 = OpConstant %8 1
%135 = OpConstant %8 0
%205 = OpConstant %8 5
%206 = OpConstant %5 0.01
%207 = OpConstant %5 100.0
%206 = OpConstant %4 0.01
%207 = OpConstant %4 100.0
%208 = OpConstantComposite %6 %207 %207
%209 = OpConstant %5 0.87758255
%210 = OpConstant %5 0.47942555
%209 = OpConstant %4 0.87758255
%210 = OpConstant %4 0.47942555
%211 = OpConstantComposite %6 %209 %210
%213 = OpConstantNull %6
%215 = OpTypePointer Function %5
%215 = OpTypePointer Function %4
%218 = OpTypePointer Function %8
%258 = OpTypeFunction %4 %6 %6
%258 = OpTypeFunction %5 %6 %6
%271 = OpTypeFunction %14 %6 %6
%272 = OpConstant %5 0.1
%272 = OpConstant %4 0.1
%273 = OpConstantComposite %6 %272 %74
%274 = OpConstantComposite %6 %74 %272
%275 = OpConstant %5 -0.1
%275 = OpConstant %4 -0.1
%276 = OpConstantComposite %6 %275 %74
%277 = OpConstantComposite %6 %74 %275
%304 = OpTypeFunction %6 %8 %10 %11
%321 = OpTypeFunction %4 %6
%322 = OpConstant %5 23.0
%323 = OpConstant %5 32.0
%321 = OpTypeFunction %5 %6
%322 = OpConstant %4 23.0
%323 = OpConstant %4 32.0
%324 = OpConstantComposite %6 %322 %323
%325 = OpConstant %5 -43.0
%326 = OpConstant %5 3.0
%325 = OpConstant %4 -43.0
%326 = OpConstant %4 3.0
%327 = OpConstantComposite %6 %325 %326
%343 = OpTypePointer Input %19
%342 = OpVariable %343 Input
@ -7787,7 +7787,7 @@ OpDecorate %582 Location 0
%414 = OpTypePointer Output %6
%413 = OpVariable %414 Output
%416 = OpTypePointer Uniform %20
%418 = OpConstant %5 -1.0
%418 = OpConstant %4 -1.0
%419 = OpConstantComposite %6 %418 %418
%434 = OpTypePointer Uniform %8
%455 = OpVariable %407 Input
@ -7797,12 +7797,12 @@ OpDecorate %582 Location 0
%460 = OpVariable %461 Input
%463 = OpVariable %410 Output
%464 = OpVariable %410 Output
%467 = OpConstant %5 6.0
%550 = OpTypePointer Input %4
%467 = OpConstant %4 6.0
%550 = OpTypePointer Input %5
%549 = OpVariable %550 Input
%552 = OpVariable %550 Input
%554 = OpVariable %412 Output
%556 = OpTypePointer Output %4
%556 = OpTypePointer Output %5
%555 = OpVariable %556 Output
%557 = OpVariable %556 Output
%559 = OpTypePointer Uniform %24
@ -7812,30 +7812,30 @@ OpDecorate %582 Location 0
%580 = OpVariable %550 Input
%582 = OpVariable %412 Output
%585 = OpTypePointer Uniform %25
%587 = OpConstantComposite %4 %272 %272 %272
%588 = OpConstant %5 0.7
%589 = OpConstantComposite %4 %78 %272 %588
%590 = OpConstant %5 0.2
%591 = OpConstantComposite %4 %590 %590 %590
%593 = OpConstantNull %4
%608 = OpTypePointer Uniform %4
%587 = OpConstantComposite %5 %272 %272 %272
%588 = OpConstant %4 0.7
%589 = OpConstantComposite %5 %78 %272 %588
%590 = OpConstant %4 0.2
%591 = OpConstantComposite %5 %590 %590 %590
%593 = OpConstantNull %5
%608 = OpTypePointer Uniform %5
%617 = OpTypePointer Uniform %7
%53 = OpFunction %4 None %54
%52 = OpFunctionParameter %4
%53 = OpFunction %5 None %54
%52 = OpFunctionParameter %5
%51 = OpLabel
OpBranch %60
%60 = OpLabel
OpLine %3 5734 52
%61 = OpVectorTimesScalar %4 %52 %55
%61 = OpVectorTimesScalar %5 %52 %55
OpLine %3 5734 63
OpLine %3 5734 50
%62 = OpFAdd %4 %61 %57
%63 = OpFMul %4 %62 %52
%62 = OpFAdd %5 %61 %57
%63 = OpFMul %5 %62 %52
OpLine %3 5734 49
%64 = OpFRem %4 %63 %59
%64 = OpFRem %5 %63 %59
OpReturnValue %64
OpFunctionEnd
%67 = OpFunction %5 None %68
%67 = OpFunction %4 None %68
%66 = OpFunctionParameter %6
%65 = OpLabel
%89 = OpVariable %87 Function %90
@ -7847,7 +7847,7 @@ OpBranch %97
OpLine %3 5737 13
OpLine %3 5738 24
%98 = OpVectorShuffle %6 %73 %73 1 1
%99 = OpDot %5 %66 %98
%99 = OpDot %4 %66 %98
%100 = OpCompositeConstruct %6 %99 %99
%101 = OpFAdd %6 %66 %100
%102 = OpExtInst %6 %1 Floor %101
@ -7858,13 +7858,13 @@ OpLine %3 5739 14
%104 = OpFSub %6 %66 %103
%105 = OpLoad %6 %86
%106 = OpVectorShuffle %6 %73 %73 0 0
%107 = OpDot %5 %105 %106
%107 = OpDot %4 %105 %106
%108 = OpCompositeConstruct %6 %107 %107
%109 = OpFAdd %6 %104 %108
OpLine %3 5741 32
OpLine %3 5741 25
%110 = OpCompositeExtract %5 %109 0
%111 = OpCompositeExtract %5 %109 1
%110 = OpCompositeExtract %4 %109 0
%111 = OpCompositeExtract %4 %109 1
%113 = OpFOrdLessThan %112 %110 %111
%116 = OpCompositeConstruct %115 %113 %113
%114 = OpSelect %6 %116 %76 %75
@ -7888,101 +7888,101 @@ OpLine %3 5743 5
OpStore %86 %124
OpLine %3 5744 31
%127 = OpAccessChain %125 %86 %126
%128 = OpLoad %5 %127
%128 = OpLoad %4 %127
OpLine %3 5744 51
%129 = OpAccessChain %125 %89 %126
%130 = OpLoad %5 %129
%130 = OpLoad %4 %129
OpLine %3 5744 31
%131 = OpCompositeConstruct %4 %74 %130 %56
%132 = OpCompositeConstruct %4 %128 %128 %128
%133 = OpFAdd %4 %132 %131
%131 = OpCompositeConstruct %5 %74 %130 %56
%132 = OpCompositeConstruct %5 %128 %128 %128
%133 = OpFAdd %5 %132 %131
OpLine %3 5744 22
%134 = OpFunctionCall %4 %53 %133
%134 = OpFunctionCall %5 %53 %133
OpLine %3 5744 22
%136 = OpAccessChain %125 %86 %135
%137 = OpLoad %5 %136
%138 = OpCompositeConstruct %4 %137 %137 %137
%139 = OpFAdd %4 %134 %138
%137 = OpLoad %4 %136
%138 = OpCompositeConstruct %5 %137 %137 %137
%139 = OpFAdd %5 %134 %138
OpLine %3 5744 84
%140 = OpAccessChain %125 %89 %135
%141 = OpLoad %5 %140
%141 = OpLoad %4 %140
OpLine %3 5744 22
%142 = OpCompositeConstruct %4 %74 %141 %56
%143 = OpFAdd %4 %139 %142
%142 = OpCompositeConstruct %5 %74 %141 %56
%143 = OpFAdd %5 %139 %142
OpLine %3 5744 13
%144 = OpFunctionCall %4 %53 %143
%144 = OpFunctionCall %5 %53 %143
OpLine %3 5745 28
%145 = OpDot %5 %109 %109
%145 = OpDot %4 %109 %109
%146 = OpLoad %7 %91
%147 = OpVectorShuffle %6 %146 %146 0 1
%148 = OpLoad %7 %91
%149 = OpVectorShuffle %6 %148 %148 0 1
%150 = OpDot %5 %147 %149
%150 = OpDot %4 %147 %149
%151 = OpLoad %7 %91
%152 = OpVectorShuffle %6 %151 %151 2 3
%153 = OpLoad %7 %91
%154 = OpVectorShuffle %6 %153 %153 2 3
%155 = OpDot %5 %152 %154
%156 = OpCompositeConstruct %4 %145 %150 %155
%155 = OpDot %4 %152 %154
%156 = OpCompositeConstruct %5 %145 %150 %155
OpLine %3 5745 28
%157 = OpFSub %4 %79 %156
%157 = OpFSub %5 %79 %156
OpLine %3 5745 24
%158 = OpExtInst %4 %1 FMax %157 %80
%158 = OpExtInst %5 %1 FMax %157 %80
OpLine %3 5745 5
OpStore %94 %158
OpLine %3 5746 9
%159 = OpLoad %4 %94
%160 = OpLoad %4 %94
%161 = OpFMul %4 %159 %160
%159 = OpLoad %5 %94
%160 = OpLoad %5 %94
%161 = OpFMul %5 %159 %160
OpLine %3 5746 5
OpStore %94 %161
OpLine %3 5747 9
%162 = OpLoad %4 %94
%163 = OpLoad %4 %94
%164 = OpFMul %4 %162 %163
%162 = OpLoad %5 %94
%163 = OpLoad %5 %94
%164 = OpFMul %5 %162 %163
OpLine %3 5747 5
OpStore %94 %164
OpLine %3 5748 18
%165 = OpVectorShuffle %4 %73 %73 3 3 3
%166 = OpFMul %4 %144 %165
%167 = OpExtInst %4 %1 Fract %166
%165 = OpVectorShuffle %5 %73 %73 3 3 3
%166 = OpFMul %5 %144 %165
%167 = OpExtInst %5 %1 Fract %166
OpLine %3 5748 13
%168 = OpVectorTimesScalar %4 %167 %81
%168 = OpVectorTimesScalar %5 %167 %81
OpLine %3 5748 37
OpLine %3 5748 13
%169 = OpFSub %4 %168 %57
%169 = OpFSub %5 %168 %57
OpLine %3 5749 13
%170 = OpExtInst %4 %1 FAbs %169
%170 = OpExtInst %5 %1 FAbs %169
OpLine %3 5749 22
OpLine %3 5749 13
%171 = OpFSub %4 %170 %79
%171 = OpFSub %5 %170 %79
OpLine %3 7169 24
OpLine %3 7169 14
%172 = OpFAdd %4 %169 %79
%173 = OpExtInst %4 %1 Floor %172
%172 = OpFAdd %5 %169 %79
%173 = OpExtInst %5 %1 Floor %172
OpLine %3 7170 14
%174 = OpFSub %4 %169 %173
%174 = OpFSub %5 %169 %173
OpLine %3 1 1
%175 = OpLoad %4 %94
%175 = OpLoad %5 %94
OpLine %3 7171 53
%176 = OpFMul %4 %174 %174
%177 = OpFMul %4 %171 %171
%178 = OpFAdd %4 %176 %177
%176 = OpFMul %5 %174 %174
%177 = OpFMul %5 %171 %171
%178 = OpFAdd %5 %176 %177
OpLine %3 7171 14
%179 = OpVectorTimesScalar %4 %178 %82
%179 = OpVectorTimesScalar %5 %178 %82
OpLine %3 7171 9
%180 = OpFSub %4 %84 %179
%181 = OpFMul %4 %175 %180
%180 = OpFSub %5 %84 %179
%181 = OpFMul %5 %175 %180
OpLine %3 7171 5
OpStore %94 %181
OpLine %3 7172 13
%182 = OpCompositeExtract %5 %174 0
%183 = OpCompositeExtract %5 %109 0
%184 = OpFMul %5 %182 %183
%185 = OpCompositeExtract %5 %171 0
%186 = OpCompositeExtract %5 %109 1
%187 = OpFMul %5 %185 %186
%188 = OpFAdd %5 %184 %187
%182 = OpCompositeExtract %4 %174 0
%183 = OpCompositeExtract %4 %109 0
%184 = OpFMul %4 %182 %183
%185 = OpCompositeExtract %4 %171 0
%186 = OpCompositeExtract %4 %109 1
%187 = OpFMul %4 %185 %186
%188 = OpFAdd %4 %184 %187
%189 = OpVectorShuffle %6 %174 %174 1 2
%190 = OpLoad %7 %91
%191 = OpVectorShuffle %6 %190 %190 0 2
@ -7992,15 +7992,15 @@ OpLine %3 7172 13
%195 = OpVectorShuffle %6 %194 %194 1 3
%196 = OpFMul %6 %193 %195
%197 = OpFAdd %6 %192 %196
%198 = OpCompositeConstruct %4 %188 %197
%198 = OpCompositeConstruct %5 %188 %197
OpLine %3 7173 19
%199 = OpLoad %4 %94
%200 = OpDot %5 %199 %198
%199 = OpLoad %5 %94
%200 = OpDot %4 %199 %198
OpLine %3 7173 12
%201 = OpFMul %5 %85 %200
%201 = OpFMul %4 %85 %200
OpReturnValue %201
OpFunctionEnd
%204 = OpFunction %5 None %68
%204 = OpFunction %4 None %68
%203 = OpFunctionParameter %6
%202 = OpLabel
%214 = OpVariable %215 Function %74
@ -8016,11 +8016,11 @@ OpStore %212 %220
OpLine %3 7182 17
OpLine %3 7183 14
OpLine %3 7184 15
%221 = OpCompositeExtract %5 %211 0
%222 = OpCompositeExtract %5 %211 1
%223 = OpCompositeExtract %5 %211 1
%224 = OpFNegate %5 %223
%225 = OpCompositeExtract %5 %211 0
%221 = OpCompositeExtract %4 %211 0
%222 = OpCompositeExtract %4 %211 1
%223 = OpCompositeExtract %4 %211 1
%224 = OpFNegate %4 %223
%225 = OpCompositeExtract %4 %211 0
%226 = OpCompositeConstruct %6 %221 %222
%227 = OpCompositeConstruct %6 %224 %225
%228 = OpCompositeConstruct %9 %226 %227
@ -8042,14 +8042,14 @@ OpBranch %230
OpBranch %237
%237 = OpLabel
OpLine %3 1 1
%239 = OpLoad %5 %214
%240 = OpLoad %5 %216
%239 = OpLoad %4 %214
%240 = OpLoad %4 %216
%241 = OpLoad %6 %212
OpLine %3 7187 21
%242 = OpFunctionCall %5 %67 %241
%242 = OpFunctionCall %4 %67 %241
OpLine %3 7187 13
%243 = OpFMul %5 %240 %242
%244 = OpFAdd %5 %239 %243
%243 = OpFMul %4 %240 %242
%244 = OpFAdd %4 %239 %243
OpLine %3 7187 9
OpStore %214 %244
OpLine %3 7188 13
@ -8061,9 +8061,9 @@ OpLine %3 7188 13
OpLine %3 7188 9
OpStore %212 %248
OpLine %3 1 1
%249 = OpLoad %5 %216
%249 = OpLoad %4 %216
OpLine %3 7189 13
%250 = OpFMul %5 %249 %78
%250 = OpFMul %4 %249 %78
OpLine %3 7189 9
OpStore %216 %250
OpBranch %238
@ -8079,25 +8079,25 @@ OpStore %217 %252
OpBranch %229
%230 = OpLabel
OpLine %3 1 1
%253 = OpLoad %5 %214
%253 = OpLoad %4 %214
OpReturnValue %253
OpFunctionEnd
%257 = OpFunction %4 None %258
%257 = OpFunction %5 None %258
%255 = OpFunctionParameter %6
%256 = OpFunctionParameter %6
%254 = OpLabel
OpBranch %259
%259 = OpLabel
OpLine %3 7220 9
%260 = OpCompositeExtract %5 %255 0
%261 = OpCompositeExtract %5 %256 0
%262 = OpCompositeExtract %5 %256 1
%260 = OpCompositeExtract %4 %255 0
%261 = OpCompositeExtract %4 %256 0
%262 = OpCompositeExtract %4 %256 1
OpLine %3 7221 49
%263 = OpFunctionCall %5 %204 %255
%263 = OpFunctionCall %4 %204 %255
OpLine %3 7219 12
%264 = OpExtInst %5 %1 FMix %261 %262 %263
%265 = OpCompositeExtract %5 %255 1
%266 = OpCompositeConstruct %4 %260 %264 %265
%264 = OpExtInst %4 %1 FMix %261 %262 %263
%265 = OpCompositeExtract %4 %255 1
%266 = OpCompositeConstruct %5 %260 %264 %265
OpReturnValue %266
OpFunctionEnd
%270 = OpFunction %14 None %271
@ -8107,41 +8107,41 @@ OpFunctionEnd
OpBranch %278
%278 = OpLabel
OpLine %3 7227 13
%279 = OpFunctionCall %4 %257 %268 %269
%279 = OpFunctionCall %5 %257 %268 %269
OpLine %3 7229 29
%280 = OpFAdd %6 %268 %273
OpLine %3 7229 15
%281 = OpFunctionCall %4 %257 %280 %269
%281 = OpFunctionCall %5 %257 %280 %269
OpLine %3 7229 15
%282 = OpFSub %4 %281 %279
%282 = OpFSub %5 %281 %279
OpLine %3 7230 29
%283 = OpFAdd %6 %268 %274
OpLine %3 7230 15
%284 = OpFunctionCall %4 %257 %283 %269
%284 = OpFunctionCall %5 %257 %283 %269
OpLine %3 7230 15
%285 = OpFSub %4 %284 %279
%285 = OpFSub %5 %284 %279
OpLine %3 7231 29
%286 = OpFAdd %6 %268 %276
OpLine %3 7231 15
%287 = OpFunctionCall %4 %257 %286 %269
%287 = OpFunctionCall %5 %257 %286 %269
OpLine %3 7231 15
%288 = OpFSub %4 %287 %279
%288 = OpFSub %5 %287 %279
OpLine %3 7232 29
%289 = OpFAdd %6 %268 %277
OpLine %3 7232 15
%290 = OpFunctionCall %4 %257 %289 %269
%290 = OpFunctionCall %5 %257 %289 %269
OpLine %3 7232 15
%291 = OpFSub %4 %290 %279
%291 = OpFSub %5 %290 %279
OpLine %3 7234 14
%292 = OpExtInst %4 %1 Cross %285 %282
%293 = OpExtInst %4 %1 Normalize %292
%292 = OpExtInst %5 %1 Cross %285 %282
%293 = OpExtInst %5 %1 Normalize %292
OpLine %3 7235 14
%294 = OpExtInst %4 %1 Cross %291 %288
%295 = OpExtInst %4 %1 Normalize %294
%294 = OpExtInst %5 %1 Cross %291 %288
%295 = OpExtInst %5 %1 Normalize %294
OpLine %3 7237 14
%296 = OpFAdd %4 %293 %295
%296 = OpFAdd %5 %293 %295
OpLine %3 7237 13
%297 = OpVectorTimesScalar %4 %296 %78
%297 = OpVectorTimesScalar %5 %296 %78
OpLine %3 7239 12
%298 = OpCompositeConstruct %14 %279 %297
OpReturnValue %298
@ -8154,50 +8154,50 @@ OpFunctionEnd
OpBranch %305
%305 = OpLabel
OpLine %3 7244 9
%306 = OpConvertUToF %5 %300
%306 = OpConvertUToF %4 %300
%307 = OpCompositeExtract %8 %301 0
OpLine %3 7244 9
%308 = OpIAdd %8 %307 %126
%309 = OpConvertUToF %5 %308
%310 = OpFRem %5 %306 %309
%309 = OpConvertUToF %4 %308
%310 = OpFRem %4 %306 %309
%311 = OpCompositeExtract %8 %301 0
OpLine %3 7243 12
%312 = OpIAdd %8 %311 %126
%313 = OpUDiv %8 %300 %312
%314 = OpConvertUToF %5 %313
%314 = OpConvertUToF %4 %313
%315 = OpCompositeConstruct %6 %310 %314
%316 = OpConvertSToF %6 %302
%317 = OpFAdd %6 %315 %316
OpReturnValue %317
OpFunctionEnd
%320 = OpFunction %4 None %321
%320 = OpFunction %5 None %321
%319 = OpFunctionParameter %6
%318 = OpLabel
OpBranch %328
%328 = OpLabel
OpLine %3 7413 9
%329 = OpFunctionCall %5 %67 %319
%329 = OpFunctionCall %4 %67 %319
OpLine %3 7413 9
%330 = OpFMul %5 %329 %78
%330 = OpFMul %4 %329 %78
OpLine %3 7413 9
%331 = OpFAdd %5 %330 %78
%331 = OpFAdd %4 %330 %78
OpLine %3 7414 17
%332 = OpFAdd %6 %319 %324
OpLine %3 7414 9
%333 = OpFunctionCall %5 %67 %332
%333 = OpFunctionCall %4 %67 %332
OpLine %3 7414 9
%334 = OpFMul %5 %333 %78
%334 = OpFMul %4 %333 %78
OpLine %3 7414 9
%335 = OpFAdd %5 %334 %78
%335 = OpFAdd %4 %334 %78
OpLine %3 7415 17
%336 = OpFAdd %6 %319 %327
OpLine %3 7415 9
%337 = OpFunctionCall %5 %67 %336
%337 = OpFunctionCall %4 %67 %336
OpLine %3 7415 9
%338 = OpFMul %5 %337 %78
%338 = OpFMul %4 %337 %78
OpLine %3 7412 12
%339 = OpFAdd %5 %338 %78
%340 = OpCompositeConstruct %4 %331 %335 %339
%339 = OpFAdd %4 %338 %78
%340 = OpCompositeConstruct %5 %331 %335 %339
OpReturnValue %340
OpFunctionEnd
%345 = OpFunction %2 None %346
@ -8310,14 +8310,14 @@ OpLine %3 7304 18
%422 = OpUDiv %8 %421 %351
OpLine %3 7304 13
%423 = OpUMod %8 %422 %350
%424 = OpConvertUToF %5 %423
%424 = OpConvertUToF %4 %423
OpLine %3 7305 19
%425 = OpIAdd %8 %408 %126
OpLine %3 7305 18
%426 = OpUDiv %8 %425 %351
OpLine %3 7305 13
%427 = OpUMod %8 %426 %350
%428 = OpConvertUToF %5 %427
%428 = OpConvertUToF %4 %427
OpLine %3 7306 14
%429 = OpCompositeConstruct %6 %424 %428
OpLine %3 7308 30
@ -8327,19 +8327,19 @@ OpLine %3 7308 30
OpLine %3 7308 20
%432 = OpCompositeConstruct %7 %431 %74 %56
OpLine %3 7311 21
%433 = OpCompositeExtract %5 %429 0
%433 = OpCompositeExtract %4 %429 0
OpLine %3 7311 21
%435 = OpAccessChain %434 %417 %351
%436 = OpLoad %8 %435
%437 = OpConvertUToF %5 %436
%438 = OpFMul %5 %433 %437
%439 = OpCompositeExtract %5 %429 1
%437 = OpConvertUToF %4 %436
%438 = OpFMul %4 %433 %437
%439 = OpCompositeExtract %4 %429 1
OpLine %3 7311 17
%440 = OpAccessChain %434 %417 %351
%441 = OpLoad %8 %440
%442 = OpConvertUToF %5 %441
%443 = OpFMul %5 %439 %442
%444 = OpFAdd %5 %438 %443
%442 = OpConvertUToF %4 %441
%443 = OpFMul %4 %439 %442
%444 = OpFAdd %4 %438 %443
%445 = OpConvertFToU %8 %444
OpLine %3 7311 17
%446 = OpAccessChain %434 %417 %352
@ -8368,14 +8368,14 @@ OpBranch %470
%470 = OpLabel
OpLine %3 7324 17
%471 = OpCompositeExtract %6 %454 2
%472 = OpCompositeExtract %5 %471 0
%472 = OpCompositeExtract %4 %471 0
OpLine %3 7324 17
%473 = OpAccessChain %434 %466 %351
%474 = OpLoad %8 %473
%475 = OpConvertUToF %5 %474
%476 = OpFMul %5 %472 %475
%475 = OpConvertUToF %4 %474
%476 = OpFMul %4 %472 %475
%477 = OpCompositeExtract %6 %454 2
%478 = OpCompositeExtract %5 %477 1
%478 = OpCompositeExtract %4 %477 1
OpLine %3 7324 70
%479 = OpAccessChain %434 %466 %351
%480 = OpLoad %8 %479
@ -8383,19 +8383,19 @@ OpLine %3 7324 13
%481 = OpAccessChain %434 %466 %351
%482 = OpLoad %8 %481
%483 = OpIMul %8 %480 %482
%484 = OpConvertUToF %5 %483
%485 = OpFMul %5 %478 %484
%486 = OpFAdd %5 %476 %485
%484 = OpConvertUToF %4 %483
%485 = OpFMul %4 %478 %484
%486 = OpFAdd %4 %476 %485
%487 = OpConvertFToU %8 %486
OpLine %3 7324 13
%488 = OpAccessChain %434 %466 %352
%489 = OpLoad %8 %488
%490 = OpIAdd %8 %487 %489
OpLine %3 7325 32
%491 = OpConvertUToF %5 %490
%491 = OpConvertUToF %4 %490
OpLine %3 7325 22
%492 = OpFDiv %5 %491 %467
%493 = OpExtInst %5 %1 Floor %492
%492 = OpFDiv %4 %491 %467
%493 = OpExtInst %4 %1 Floor %492
%494 = OpConvertFToU %8 %493
OpLine %3 7326 22
%495 = OpUMod %8 %490 %349
@ -8417,43 +8417,43 @@ OpSelectionMerge %504 None
OpSwitch %495 %511 0 %505 1 %506 2 %507 3 %508 4 %509 5 %510
%505 = OpLabel
OpLine %3 7334 37
%512 = OpCompositeExtract %4 %503 0
%513 = OpCompositeExtract %5 %512 0
%512 = OpCompositeExtract %5 %503 0
%513 = OpCompositeExtract %4 %512 0
OpLine %3 7334 20
OpStore %468 %513
OpBranch %504
%506 = OpLabel
OpLine %3 7335 37
%514 = OpCompositeExtract %4 %503 0
%515 = OpCompositeExtract %5 %514 1
%514 = OpCompositeExtract %5 %503 0
%515 = OpCompositeExtract %4 %514 1
OpLine %3 7335 20
OpStore %468 %515
OpBranch %504
%507 = OpLabel
OpLine %3 7336 37
%516 = OpCompositeExtract %4 %503 0
%517 = OpCompositeExtract %5 %516 2
%516 = OpCompositeExtract %5 %503 0
%517 = OpCompositeExtract %4 %516 2
OpLine %3 7336 20
OpStore %468 %517
OpBranch %504
%508 = OpLabel
OpLine %3 7337 37
%518 = OpCompositeExtract %4 %503 1
%519 = OpCompositeExtract %5 %518 0
%518 = OpCompositeExtract %5 %503 1
%519 = OpCompositeExtract %4 %518 0
OpLine %3 7337 20
OpStore %468 %519
OpBranch %504
%509 = OpLabel
OpLine %3 7338 37
%520 = OpCompositeExtract %4 %503 1
%521 = OpCompositeExtract %5 %520 1
%520 = OpCompositeExtract %5 %503 1
%521 = OpCompositeExtract %4 %520 1
OpLine %3 7338 20
OpStore %468 %521
OpBranch %504
%510 = OpLabel
OpLine %3 7339 37
%522 = OpCompositeExtract %4 %503 1
%523 = OpCompositeExtract %5 %522 2
%522 = OpCompositeExtract %5 %503 1
%523 = OpCompositeExtract %4 %522 2
OpLine %3 7339 20
OpStore %468 %523
OpBranch %504
@ -8502,7 +8502,7 @@ OpLine %3 7356 13
OpLine %3 7356 5
OpStore %469 %540
OpLine %3 7365 27
%541 = OpLoad %5 %468
%541 = OpLoad %4 %468
%542 = OpBitcast %8 %541
OpLine %3 7366 12
%543 = OpLoad %8 %469
@ -8515,8 +8515,8 @@ OpReturn
OpFunctionEnd
%558 = OpFunction %2 None %346
%547 = OpLabel
%551 = OpLoad %4 %549
%553 = OpLoad %4 %552
%551 = OpLoad %5 %549
%553 = OpLoad %5 %552
%548 = OpCompositeConstruct %14 %551 %553
%560 = OpAccessChain %559 %39 %135
OpBranch %561
@ -8524,20 +8524,20 @@ OpBranch %561
OpLine %3 7397 25
%563 = OpAccessChain %562 %560 %126
%564 = OpLoad %23 %563
%565 = OpCompositeExtract %4 %548 0
%565 = OpCompositeExtract %5 %548 0
OpLine %3 7397 25
%566 = OpCompositeConstruct %7 %565 %56
%567 = OpMatrixTimesVector %7 %564 %566
OpLine %3 7398 18
%568 = OpCompositeExtract %4 %548 1
%568 = OpCompositeExtract %5 %548 1
OpLine %3 7399 12
%569 = OpCompositeExtract %4 %548 0
%569 = OpCompositeExtract %5 %548 0
%570 = OpCompositeConstruct %26 %567 %568 %569
%571 = OpCompositeExtract %7 %570 0
OpStore %554 %571
%572 = OpCompositeExtract %4 %570 1
%572 = OpCompositeExtract %5 %570 1
OpStore %555 %572
%573 = OpCompositeExtract %4 %570 2
%573 = OpCompositeExtract %5 %570 2
OpStore %557 %573
OpReturn
OpFunctionEnd
@ -8545,8 +8545,8 @@ OpFunctionEnd
%574 = OpLabel
%592 = OpVariable %95 Function %593
%577 = OpLoad %7 %576
%579 = OpLoad %4 %578
%581 = OpLoad %4 %580
%579 = OpLoad %5 %578
%581 = OpLoad %5 %580
%575 = OpCompositeConstruct %26 %577 %579 %581
%584 = OpAccessChain %559 %39 %135
%586 = OpAccessChain %585 %42 %135
@ -8554,70 +8554,70 @@ OpBranch %594
%594 = OpLabel
OpLine %3 7421 28
OpLine %3 7421 17
%595 = OpCompositeExtract %4 %575 2
%596 = OpExtInst %4 %1 Fract %595
%597 = OpExtInst %4 %1 SmoothStep %80 %587 %596
%595 = OpCompositeExtract %5 %575 2
%596 = OpExtInst %5 %1 Fract %595
%597 = OpExtInst %5 %1 SmoothStep %80 %587 %596
OpLine %3 7421 5
OpStore %592 %597
OpLine %3 7422 17
OpLine %3 7422 13
%598 = OpAccessChain %125 %592 %135
%599 = OpLoad %5 %598
%599 = OpLoad %4 %598
%600 = OpAccessChain %125 %592 %126
%601 = OpLoad %5 %600
%602 = OpFMul %5 %599 %601
%601 = OpLoad %4 %600
%602 = OpFMul %4 %599 %601
%603 = OpAccessChain %125 %592 %350
%604 = OpLoad %5 %603
%605 = OpFMul %5 %602 %604
%606 = OpCompositeConstruct %4 %605 %605 %605
%607 = OpExtInst %4 %1 FMix %589 %591 %606
%604 = OpLoad %4 %603
%605 = OpFMul %4 %602 %604
%606 = OpCompositeConstruct %5 %605 %605 %605
%607 = OpExtInst %5 %1 FMix %589 %591 %606
OpLine %3 7422 5
OpStore %592 %607
OpLine %3 7425 25
%609 = OpAccessChain %608 %586 %126
%610 = OpLoad %4 %609
%611 = OpVectorTimesScalar %4 %610 %272
%610 = OpLoad %5 %609
%611 = OpVectorTimesScalar %5 %610 %272
OpLine %3 7427 21
%612 = OpAccessChain %608 %586 %135
%613 = OpLoad %4 %612
%614 = OpCompositeExtract %4 %575 2
%615 = OpFSub %4 %613 %614
%616 = OpExtInst %4 %1 Normalize %615
%613 = OpLoad %5 %612
%614 = OpCompositeExtract %5 %575 2
%615 = OpFSub %5 %613 %614
%616 = OpExtInst %5 %1 Normalize %615
OpLine %3 7428 20
%618 = OpAccessChain %617 %584 %135
%619 = OpLoad %7 %618
%620 = OpVectorShuffle %4 %619 %619 0 1 2
%621 = OpCompositeExtract %4 %575 2
%622 = OpFSub %4 %620 %621
%623 = OpExtInst %4 %1 Normalize %622
%620 = OpVectorShuffle %5 %619 %619 0 1 2
%621 = OpCompositeExtract %5 %575 2
%622 = OpFSub %5 %620 %621
%623 = OpExtInst %5 %1 Normalize %622
OpLine %3 7429 20
%624 = OpFAdd %4 %623 %616
%625 = OpExtInst %4 %1 Normalize %624
%624 = OpFAdd %5 %623 %616
%625 = OpExtInst %5 %1 Normalize %624
OpLine %3 7431 32
%626 = OpCompositeExtract %4 %575 1
%627 = OpDot %5 %626 %616
%626 = OpCompositeExtract %5 %575 1
%627 = OpDot %4 %626 %616
OpLine %3 7431 28
%628 = OpExtInst %5 %1 FMax %627 %74
%628 = OpExtInst %4 %1 FMax %627 %74
OpLine %3 7432 25
%629 = OpAccessChain %608 %586 %126
%630 = OpLoad %4 %629
%631 = OpVectorTimesScalar %4 %630 %628
%630 = OpLoad %5 %629
%631 = OpVectorTimesScalar %5 %630 %628
OpLine %3 7434 37
%632 = OpCompositeExtract %4 %575 1
%633 = OpDot %5 %632 %625
%632 = OpCompositeExtract %5 %575 1
%633 = OpDot %4 %632 %625
OpLine %3 7434 33
%634 = OpExtInst %5 %1 FMax %633 %74
%634 = OpExtInst %4 %1 FMax %633 %74
OpLine %3 7434 29
%635 = OpExtInst %5 %1 Pow %634 %323
%635 = OpExtInst %4 %1 Pow %634 %323
OpLine %3 7435 26
%636 = OpAccessChain %608 %586 %126
%637 = OpLoad %4 %636
%638 = OpVectorTimesScalar %4 %637 %635
%637 = OpLoad %5 %636
%638 = OpVectorTimesScalar %5 %637 %635
OpLine %3 7437 18
%639 = OpFAdd %4 %611 %631
%640 = OpFAdd %4 %639 %638
%641 = OpLoad %4 %592
%642 = OpFMul %4 %640 %641
%639 = OpFAdd %5 %611 %631
%640 = OpFAdd %5 %639 %638
%641 = OpLoad %5 %592
%642 = OpFMul %5 %640 %641
OpLine %3 7439 12
%643 = OpCompositeConstruct %7 %642 %56
OpStore %582 %643

View File

@ -72,24 +72,24 @@ OpDecorate %43 BuiltIn FragCoord
OpDecorate %46 Location 0
OpDecorate %48 Location 0
%2 = OpTypeVoid
%5 = OpTypeFloat 32
%4 = OpTypeVector %5 3
%6 = OpTypeStruct %4 %4
%7 = OpTypeVector %5 4
%8 = OpTypeStruct %7 %4
%4 = OpTypeFloat 32
%5 = OpTypeVector %4 3
%6 = OpTypeStruct %5 %5
%7 = OpTypeVector %4 4
%8 = OpTypeStruct %7 %5
%9 = OpTypeInt 32 1
%13 = OpTypePointer Input %4
%13 = OpTypePointer Input %5
%12 = OpVariable %13 Input
%15 = OpVariable %13 Input
%18 = OpTypePointer Output %7
%17 = OpVariable %18 Output
%20 = OpTypePointer Output %4
%20 = OpTypePointer Output %5
%19 = OpVariable %20 Output
%22 = OpTypeFunction %2
%23 = OpConstant %5 1.0
%23 = OpConstant %4 1.0
%25 = OpTypePointer Function %8
%26 = OpConstantNull %8
%28 = OpTypePointer Function %4
%28 = OpTypePointer Function %5
%31 = OpTypeInt 32 0
%30 = OpConstant %31 1
%33 = OpTypePointer Function %7
@ -100,30 +100,30 @@ OpDecorate %48 Location 0
%48 = OpVariable %18 Output
%50 = OpConstant %9 0
%51 = OpConstant %9 10
%52 = OpConstant %5 0.001
%53 = OpConstant %5 0.002
%52 = OpConstant %4 0.001
%53 = OpConstant %4 0.002
%54 = OpConstant %9 1
%56 = OpConstantNull %4
%56 = OpConstantNull %5
%58 = OpTypePointer Function %9
%60 = OpTypePointer Function %5
%61 = OpConstantNull %5
%60 = OpTypePointer Function %4
%61 = OpConstantNull %4
%69 = OpTypeBool
%77 = OpTypePointer Function %5
%77 = OpTypePointer Function %4
%21 = OpFunction %2 None %22
%10 = OpLabel
%24 = OpVariable %25 Function %26
%14 = OpLoad %4 %12
%16 = OpLoad %4 %15
%14 = OpLoad %5 %12
%16 = OpLoad %5 %15
%11 = OpCompositeConstruct %6 %14 %16
OpBranch %27
%27 = OpLabel
OpLine %3 16 5
%29 = OpCompositeExtract %4 %11 1
%29 = OpCompositeExtract %5 %11 1
OpLine %3 16 5
%32 = OpAccessChain %28 %24 %30
OpStore %32 %29
OpLine %3 17 5
%34 = OpCompositeExtract %4 %11 0
%34 = OpCompositeExtract %5 %11 0
OpLine %3 17 25
%35 = OpCompositeConstruct %7 %34 %23
OpLine %3 17 5
@ -133,7 +133,7 @@ OpLine %3 1 1
%38 = OpLoad %8 %24
%39 = OpCompositeExtract %7 %38 0
OpStore %17 %39
%40 = OpCompositeExtract %4 %38 1
%40 = OpCompositeExtract %5 %38 1
OpStore %19 %40
OpReturn
OpFunctionEnd
@ -143,12 +143,12 @@ OpFunctionEnd
%57 = OpVariable %58 Function %50
%59 = OpVariable %60 Function %61
%45 = OpLoad %7 %43
%47 = OpLoad %4 %46
%47 = OpLoad %5 %46
%42 = OpCompositeConstruct %8 %45 %47
OpBranch %62
%62 = OpLabel
OpLine %3 25 17
%63 = OpCompositeExtract %4 %42 1
%63 = OpCompositeExtract %5 %42 1
OpLine %3 25 5
OpStore %55 %63
OpBranch %64
@ -171,26 +171,26 @@ OpBranch %73
%73 = OpLabel
OpLine %3 27 18
%75 = OpLoad %9 %57
%76 = OpConvertSToF %5 %75
%76 = OpConvertSToF %4 %75
OpLine %3 27 9
OpStore %59 %76
OpLine %3 28 9
%78 = OpLoad %5 %59
%78 = OpLoad %4 %59
OpLine %3 28 9
%79 = OpFMul %5 %78 %52
%79 = OpFMul %4 %78 %52
%80 = OpAccessChain %77 %55 %36
%81 = OpLoad %5 %80
%82 = OpFAdd %5 %81 %79
%81 = OpLoad %4 %80
%82 = OpFAdd %4 %81 %79
OpLine %3 28 9
%83 = OpAccessChain %77 %55 %36
OpStore %83 %82
OpLine %3 29 9
%84 = OpLoad %5 %59
%84 = OpLoad %4 %59
OpLine %3 29 9
%85 = OpFMul %5 %84 %53
%85 = OpFMul %4 %84 %53
%86 = OpAccessChain %77 %55 %30
%87 = OpLoad %5 %86
%88 = OpFAdd %5 %87 %85
%87 = OpLoad %4 %86
%88 = OpFAdd %4 %87 %85
OpLine %3 29 9
%89 = OpAccessChain %77 %55 %30
OpStore %89 %88
@ -206,7 +206,7 @@ OpStore %57 %91
OpBranch %64
%65 = OpLabel
OpLine %3 1 1
%92 = OpLoad %4 %55
%92 = OpLoad %5 %55
OpLine %3 32 12
%93 = OpCompositeConstruct %7 %92 %23
OpStore %48 %93

View File

@ -488,17 +488,17 @@ OpDecorate %578 Location 0
OpDecorate %580 Location 1
OpDecorate %582 Location 0
%2 = OpTypeVoid
%5 = OpTypeFloat 32
%4 = OpTypeVector %5 3
%6 = OpTypeVector %5 2
%7 = OpTypeVector %5 4
%4 = OpTypeFloat 32
%5 = OpTypeVector %4 3
%6 = OpTypeVector %4 2
%7 = OpTypeVector %4 4
%8 = OpTypeInt 32 0
%9 = OpTypeMatrix %6 2
%10 = OpTypeVector %8 2
%12 = OpTypeInt 32 1
%11 = OpTypeVector %12 2
%13 = OpTypeStruct %10 %11 %6
%14 = OpTypeStruct %4 %4
%14 = OpTypeStruct %5 %5
%15 = OpTypeRuntimeArray %14
%16 = OpTypeStruct %15
%17 = OpTypeRuntimeArray %8
@ -509,9 +509,9 @@ OpDecorate %582 Location 0
%22 = OpTypeStruct %8 %8
%23 = OpTypeMatrix %7 4
%24 = OpTypeStruct %7 %23
%25 = OpTypeStruct %4 %4
%26 = OpTypeStruct %7 %4 %4
%27 = OpTypeImage %5 2D 0 0 0 1 Unknown
%25 = OpTypeStruct %5 %5
%26 = OpTypeStruct %7 %5 %5
%27 = OpTypeImage %4 2D 0 0 0 1 Unknown
%28 = OpTypeSampler
%30 = OpTypeStruct %13
%31 = OpTypePointer Uniform %30
@ -535,67 +535,67 @@ OpDecorate %582 Location 0
%47 = OpVariable %48 UniformConstant
%49 = OpVariable %46 UniformConstant
%50 = OpVariable %48 UniformConstant
%54 = OpTypeFunction %4 %4
%55 = OpConstant %5 34.0
%56 = OpConstant %5 1.0
%57 = OpConstantComposite %4 %56 %56 %56
%58 = OpConstant %5 289.0
%59 = OpConstantComposite %4 %58 %58 %58
%68 = OpTypeFunction %5 %6
%69 = OpConstant %5 0.21132487
%70 = OpConstant %5 0.36602542
%71 = OpConstant %5 -0.57735026
%72 = OpConstant %5 0.024390243
%54 = OpTypeFunction %5 %5
%55 = OpConstant %4 34.0
%56 = OpConstant %4 1.0
%57 = OpConstantComposite %5 %56 %56 %56
%58 = OpConstant %4 289.0
%59 = OpConstantComposite %5 %58 %58 %58
%68 = OpTypeFunction %4 %6
%69 = OpConstant %4 0.21132487
%70 = OpConstant %4 0.36602542
%71 = OpConstant %4 -0.57735026
%72 = OpConstant %4 0.024390243
%73 = OpConstantComposite %7 %69 %70 %71 %72
%74 = OpConstant %5 0.0
%74 = OpConstant %4 0.0
%75 = OpConstantComposite %6 %56 %74
%76 = OpConstantComposite %6 %74 %56
%77 = OpConstantComposite %6 %58 %58
%78 = OpConstant %5 0.5
%79 = OpConstantComposite %4 %78 %78 %78
%80 = OpConstantComposite %4 %74 %74 %74
%81 = OpConstant %5 2.0
%82 = OpConstant %5 0.85373473
%83 = OpConstant %5 1.7928429
%84 = OpConstantComposite %4 %83 %83 %83
%85 = OpConstant %5 130.0
%78 = OpConstant %4 0.5
%79 = OpConstantComposite %5 %78 %78 %78
%80 = OpConstantComposite %5 %74 %74 %74
%81 = OpConstant %4 2.0
%82 = OpConstant %4 0.85373473
%83 = OpConstant %4 1.7928429
%84 = OpConstantComposite %5 %83 %83 %83
%85 = OpConstant %4 130.0
%87 = OpTypePointer Function %6
%88 = OpConstantNull %6
%90 = OpConstantNull %6
%92 = OpTypePointer Function %7
%93 = OpConstantNull %7
%95 = OpTypePointer Function %4
%96 = OpConstantNull %4
%95 = OpTypePointer Function %5
%96 = OpConstantNull %5
%112 = OpTypeBool
%115 = OpTypeVector %112 2
%125 = OpTypePointer Function %5
%125 = OpTypePointer Function %4
%126 = OpConstant %8 1
%135 = OpConstant %8 0
%205 = OpConstant %8 5
%206 = OpConstant %5 0.01
%207 = OpConstant %5 100.0
%206 = OpConstant %4 0.01
%207 = OpConstant %4 100.0
%208 = OpConstantComposite %6 %207 %207
%209 = OpConstant %5 0.87758255
%210 = OpConstant %5 0.47942555
%209 = OpConstant %4 0.87758255
%210 = OpConstant %4 0.47942555
%211 = OpConstantComposite %6 %209 %210
%213 = OpConstantNull %6
%215 = OpTypePointer Function %5
%215 = OpTypePointer Function %4
%218 = OpTypePointer Function %8
%258 = OpTypeFunction %4 %6 %6
%258 = OpTypeFunction %5 %6 %6
%271 = OpTypeFunction %14 %6 %6
%272 = OpConstant %5 0.1
%272 = OpConstant %4 0.1
%273 = OpConstantComposite %6 %272 %74
%274 = OpConstantComposite %6 %74 %272
%275 = OpConstant %5 -0.1
%275 = OpConstant %4 -0.1
%276 = OpConstantComposite %6 %275 %74
%277 = OpConstantComposite %6 %74 %275
%304 = OpTypeFunction %6 %8 %10 %11
%321 = OpTypeFunction %4 %6
%322 = OpConstant %5 23.0
%323 = OpConstant %5 32.0
%321 = OpTypeFunction %5 %6
%322 = OpConstant %4 23.0
%323 = OpConstant %4 32.0
%324 = OpConstantComposite %6 %322 %323
%325 = OpConstant %5 -43.0
%326 = OpConstant %5 3.0
%325 = OpConstant %4 -43.0
%326 = OpConstant %4 3.0
%327 = OpConstantComposite %6 %325 %326
%343 = OpTypePointer Input %19
%342 = OpVariable %343 Input
@ -622,7 +622,7 @@ OpDecorate %582 Location 0
%414 = OpTypePointer Output %6
%413 = OpVariable %414 Output
%416 = OpTypePointer Uniform %20
%418 = OpConstant %5 -1.0
%418 = OpConstant %4 -1.0
%419 = OpConstantComposite %6 %418 %418
%434 = OpTypePointer Uniform %8
%455 = OpVariable %407 Input
@ -632,12 +632,12 @@ OpDecorate %582 Location 0
%460 = OpVariable %461 Input
%463 = OpVariable %410 Output
%464 = OpVariable %410 Output
%467 = OpConstant %5 6.0
%550 = OpTypePointer Input %4
%467 = OpConstant %4 6.0
%550 = OpTypePointer Input %5
%549 = OpVariable %550 Input
%552 = OpVariable %550 Input
%554 = OpVariable %412 Output
%556 = OpTypePointer Output %4
%556 = OpTypePointer Output %5
%555 = OpVariable %556 Output
%557 = OpVariable %556 Output
%559 = OpTypePointer Uniform %24
@ -647,30 +647,30 @@ OpDecorate %582 Location 0
%580 = OpVariable %550 Input
%582 = OpVariable %412 Output
%585 = OpTypePointer Uniform %25
%587 = OpConstantComposite %4 %272 %272 %272
%588 = OpConstant %5 0.7
%589 = OpConstantComposite %4 %78 %272 %588
%590 = OpConstant %5 0.2
%591 = OpConstantComposite %4 %590 %590 %590
%593 = OpConstantNull %4
%608 = OpTypePointer Uniform %4
%587 = OpConstantComposite %5 %272 %272 %272
%588 = OpConstant %4 0.7
%589 = OpConstantComposite %5 %78 %272 %588
%590 = OpConstant %4 0.2
%591 = OpConstantComposite %5 %590 %590 %590
%593 = OpConstantNull %5
%608 = OpTypePointer Uniform %5
%617 = OpTypePointer Uniform %7
%53 = OpFunction %4 None %54
%52 = OpFunctionParameter %4
%53 = OpFunction %5 None %54
%52 = OpFunctionParameter %5
%51 = OpLabel
OpBranch %60
%60 = OpLabel
OpLine %3 10 52
%61 = OpVectorTimesScalar %4 %52 %55
%61 = OpVectorTimesScalar %5 %52 %55
OpLine %3 10 63
OpLine %3 10 50
%62 = OpFAdd %4 %61 %57
%63 = OpFMul %4 %62 %52
%62 = OpFAdd %5 %61 %57
%63 = OpFMul %5 %62 %52
OpLine %3 10 49
%64 = OpFRem %4 %63 %59
%64 = OpFRem %5 %63 %59
OpReturnValue %64
OpFunctionEnd
%67 = OpFunction %5 None %68
%67 = OpFunction %4 None %68
%66 = OpFunctionParameter %6
%65 = OpLabel
%89 = OpVariable %87 Function %90
@ -682,7 +682,7 @@ OpBranch %97
OpLine %3 13 13
OpLine %3 14 24
%98 = OpVectorShuffle %6 %73 %73 1 1
%99 = OpDot %5 %66 %98
%99 = OpDot %4 %66 %98
%100 = OpCompositeConstruct %6 %99 %99
%101 = OpFAdd %6 %66 %100
%102 = OpExtInst %6 %1 Floor %101
@ -693,13 +693,13 @@ OpLine %3 15 14
%104 = OpFSub %6 %66 %103
%105 = OpLoad %6 %86
%106 = OpVectorShuffle %6 %73 %73 0 0
%107 = OpDot %5 %105 %106
%107 = OpDot %4 %105 %106
%108 = OpCompositeConstruct %6 %107 %107
%109 = OpFAdd %6 %104 %108
OpLine %3 17 32
OpLine %3 17 25
%110 = OpCompositeExtract %5 %109 0
%111 = OpCompositeExtract %5 %109 1
%110 = OpCompositeExtract %4 %109 0
%111 = OpCompositeExtract %4 %109 1
%113 = OpFOrdLessThan %112 %110 %111
%116 = OpCompositeConstruct %115 %113 %113
%114 = OpSelect %6 %116 %76 %75
@ -723,101 +723,101 @@ OpLine %3 19 5
OpStore %86 %124
OpLine %3 20 31
%127 = OpAccessChain %125 %86 %126
%128 = OpLoad %5 %127
%128 = OpLoad %4 %127
OpLine %3 20 51
%129 = OpAccessChain %125 %89 %126
%130 = OpLoad %5 %129
%130 = OpLoad %4 %129
OpLine %3 20 31
%131 = OpCompositeConstruct %4 %74 %130 %56
%132 = OpCompositeConstruct %4 %128 %128 %128
%133 = OpFAdd %4 %132 %131
%131 = OpCompositeConstruct %5 %74 %130 %56
%132 = OpCompositeConstruct %5 %128 %128 %128
%133 = OpFAdd %5 %132 %131
OpLine %3 20 22
%134 = OpFunctionCall %4 %53 %133
%134 = OpFunctionCall %5 %53 %133
OpLine %3 20 22
%136 = OpAccessChain %125 %86 %135
%137 = OpLoad %5 %136
%138 = OpCompositeConstruct %4 %137 %137 %137
%139 = OpFAdd %4 %134 %138
%137 = OpLoad %4 %136
%138 = OpCompositeConstruct %5 %137 %137 %137
%139 = OpFAdd %5 %134 %138
OpLine %3 20 84
%140 = OpAccessChain %125 %89 %135
%141 = OpLoad %5 %140
%141 = OpLoad %4 %140
OpLine %3 20 22
%142 = OpCompositeConstruct %4 %74 %141 %56
%143 = OpFAdd %4 %139 %142
%142 = OpCompositeConstruct %5 %74 %141 %56
%143 = OpFAdd %5 %139 %142
OpLine %3 20 13
%144 = OpFunctionCall %4 %53 %143
%144 = OpFunctionCall %5 %53 %143
OpLine %3 21 28
%145 = OpDot %5 %109 %109
%145 = OpDot %4 %109 %109
%146 = OpLoad %7 %91
%147 = OpVectorShuffle %6 %146 %146 0 1
%148 = OpLoad %7 %91
%149 = OpVectorShuffle %6 %148 %148 0 1
%150 = OpDot %5 %147 %149
%150 = OpDot %4 %147 %149
%151 = OpLoad %7 %91
%152 = OpVectorShuffle %6 %151 %151 2 3
%153 = OpLoad %7 %91
%154 = OpVectorShuffle %6 %153 %153 2 3
%155 = OpDot %5 %152 %154
%156 = OpCompositeConstruct %4 %145 %150 %155
%155 = OpDot %4 %152 %154
%156 = OpCompositeConstruct %5 %145 %150 %155
OpLine %3 21 28
%157 = OpFSub %4 %79 %156
%157 = OpFSub %5 %79 %156
OpLine %3 21 24
%158 = OpExtInst %4 %1 FMax %157 %80
%158 = OpExtInst %5 %1 FMax %157 %80
OpLine %3 21 5
OpStore %94 %158
OpLine %3 22 9
%159 = OpLoad %4 %94
%160 = OpLoad %4 %94
%161 = OpFMul %4 %159 %160
%159 = OpLoad %5 %94
%160 = OpLoad %5 %94
%161 = OpFMul %5 %159 %160
OpLine %3 22 5
OpStore %94 %161
OpLine %3 23 9
%162 = OpLoad %4 %94
%163 = OpLoad %4 %94
%164 = OpFMul %4 %162 %163
%162 = OpLoad %5 %94
%163 = OpLoad %5 %94
%164 = OpFMul %5 %162 %163
OpLine %3 23 5
OpStore %94 %164
OpLine %3 24 18
%165 = OpVectorShuffle %4 %73 %73 3 3 3
%166 = OpFMul %4 %144 %165
%167 = OpExtInst %4 %1 Fract %166
%165 = OpVectorShuffle %5 %73 %73 3 3 3
%166 = OpFMul %5 %144 %165
%167 = OpExtInst %5 %1 Fract %166
OpLine %3 24 13
%168 = OpVectorTimesScalar %4 %167 %81
%168 = OpVectorTimesScalar %5 %167 %81
OpLine %3 24 37
OpLine %3 24 13
%169 = OpFSub %4 %168 %57
%169 = OpFSub %5 %168 %57
OpLine %3 25 13
%170 = OpExtInst %4 %1 FAbs %169
%170 = OpExtInst %5 %1 FAbs %169
OpLine %3 25 22
OpLine %3 25 13
%171 = OpFSub %4 %170 %79
%171 = OpFSub %5 %170 %79
OpLine %3 26 24
OpLine %3 26 14
%172 = OpFAdd %4 %169 %79
%173 = OpExtInst %4 %1 Floor %172
%172 = OpFAdd %5 %169 %79
%173 = OpExtInst %5 %1 Floor %172
OpLine %3 27 14
%174 = OpFSub %4 %169 %173
%174 = OpFSub %5 %169 %173
OpLine %3 1 1
%175 = OpLoad %4 %94
%175 = OpLoad %5 %94
OpLine %3 28 53
%176 = OpFMul %4 %174 %174
%177 = OpFMul %4 %171 %171
%178 = OpFAdd %4 %176 %177
%176 = OpFMul %5 %174 %174
%177 = OpFMul %5 %171 %171
%178 = OpFAdd %5 %176 %177
OpLine %3 28 14
%179 = OpVectorTimesScalar %4 %178 %82
%179 = OpVectorTimesScalar %5 %178 %82
OpLine %3 28 9
%180 = OpFSub %4 %84 %179
%181 = OpFMul %4 %175 %180
%180 = OpFSub %5 %84 %179
%181 = OpFMul %5 %175 %180
OpLine %3 28 5
OpStore %94 %181
OpLine %3 29 13
%182 = OpCompositeExtract %5 %174 0
%183 = OpCompositeExtract %5 %109 0
%184 = OpFMul %5 %182 %183
%185 = OpCompositeExtract %5 %171 0
%186 = OpCompositeExtract %5 %109 1
%187 = OpFMul %5 %185 %186
%188 = OpFAdd %5 %184 %187
%182 = OpCompositeExtract %4 %174 0
%183 = OpCompositeExtract %4 %109 0
%184 = OpFMul %4 %182 %183
%185 = OpCompositeExtract %4 %171 0
%186 = OpCompositeExtract %4 %109 1
%187 = OpFMul %4 %185 %186
%188 = OpFAdd %4 %184 %187
%189 = OpVectorShuffle %6 %174 %174 1 2
%190 = OpLoad %7 %91
%191 = OpVectorShuffle %6 %190 %190 0 2
@ -827,15 +827,15 @@ OpLine %3 29 13
%195 = OpVectorShuffle %6 %194 %194 1 3
%196 = OpFMul %6 %193 %195
%197 = OpFAdd %6 %192 %196
%198 = OpCompositeConstruct %4 %188 %197
%198 = OpCompositeConstruct %5 %188 %197
OpLine %3 30 19
%199 = OpLoad %4 %94
%200 = OpDot %5 %199 %198
%199 = OpLoad %5 %94
%200 = OpDot %4 %199 %198
OpLine %3 30 12
%201 = OpFMul %5 %85 %200
%201 = OpFMul %4 %85 %200
OpReturnValue %201
OpFunctionEnd
%204 = OpFunction %5 None %68
%204 = OpFunction %4 None %68
%203 = OpFunctionParameter %6
%202 = OpLabel
%214 = OpVariable %215 Function %74
@ -851,11 +851,11 @@ OpStore %212 %220
OpLine %3 39 17
OpLine %3 40 14
OpLine %3 41 15
%221 = OpCompositeExtract %5 %211 0
%222 = OpCompositeExtract %5 %211 1
%223 = OpCompositeExtract %5 %211 1
%224 = OpFNegate %5 %223
%225 = OpCompositeExtract %5 %211 0
%221 = OpCompositeExtract %4 %211 0
%222 = OpCompositeExtract %4 %211 1
%223 = OpCompositeExtract %4 %211 1
%224 = OpFNegate %4 %223
%225 = OpCompositeExtract %4 %211 0
%226 = OpCompositeConstruct %6 %221 %222
%227 = OpCompositeConstruct %6 %224 %225
%228 = OpCompositeConstruct %9 %226 %227
@ -877,14 +877,14 @@ OpBranch %230
OpBranch %237
%237 = OpLabel
OpLine %3 1 1
%239 = OpLoad %5 %214
%240 = OpLoad %5 %216
%239 = OpLoad %4 %214
%240 = OpLoad %4 %216
%241 = OpLoad %6 %212
OpLine %3 44 21
%242 = OpFunctionCall %5 %67 %241
%242 = OpFunctionCall %4 %67 %241
OpLine %3 44 13
%243 = OpFMul %5 %240 %242
%244 = OpFAdd %5 %239 %243
%243 = OpFMul %4 %240 %242
%244 = OpFAdd %4 %239 %243
OpLine %3 44 9
OpStore %214 %244
OpLine %3 45 13
@ -896,9 +896,9 @@ OpLine %3 45 13
OpLine %3 45 9
OpStore %212 %248
OpLine %3 1 1
%249 = OpLoad %5 %216
%249 = OpLoad %4 %216
OpLine %3 46 13
%250 = OpFMul %5 %249 %78
%250 = OpFMul %4 %249 %78
OpLine %3 46 9
OpStore %216 %250
OpBranch %238
@ -914,25 +914,25 @@ OpStore %217 %252
OpBranch %229
%230 = OpLabel
OpLine %3 1 1
%253 = OpLoad %5 %214
%253 = OpLoad %4 %214
OpReturnValue %253
OpFunctionEnd
%257 = OpFunction %4 None %258
%257 = OpFunction %5 None %258
%255 = OpFunctionParameter %6
%256 = OpFunctionParameter %6
%254 = OpLabel
OpBranch %259
%259 = OpLabel
OpLine %3 77 9
%260 = OpCompositeExtract %5 %255 0
%261 = OpCompositeExtract %5 %256 0
%262 = OpCompositeExtract %5 %256 1
%260 = OpCompositeExtract %4 %255 0
%261 = OpCompositeExtract %4 %256 0
%262 = OpCompositeExtract %4 %256 1
OpLine %3 78 49
%263 = OpFunctionCall %5 %204 %255
%263 = OpFunctionCall %4 %204 %255
OpLine %3 76 12
%264 = OpExtInst %5 %1 FMix %261 %262 %263
%265 = OpCompositeExtract %5 %255 1
%266 = OpCompositeConstruct %4 %260 %264 %265
%264 = OpExtInst %4 %1 FMix %261 %262 %263
%265 = OpCompositeExtract %4 %255 1
%266 = OpCompositeConstruct %5 %260 %264 %265
OpReturnValue %266
OpFunctionEnd
%270 = OpFunction %14 None %271
@ -942,41 +942,41 @@ OpFunctionEnd
OpBranch %278
%278 = OpLabel
OpLine %3 84 13
%279 = OpFunctionCall %4 %257 %268 %269
%279 = OpFunctionCall %5 %257 %268 %269
OpLine %3 86 29
%280 = OpFAdd %6 %268 %273
OpLine %3 86 15
%281 = OpFunctionCall %4 %257 %280 %269
%281 = OpFunctionCall %5 %257 %280 %269
OpLine %3 86 15
%282 = OpFSub %4 %281 %279
%282 = OpFSub %5 %281 %279
OpLine %3 87 29
%283 = OpFAdd %6 %268 %274
OpLine %3 87 15
%284 = OpFunctionCall %4 %257 %283 %269
%284 = OpFunctionCall %5 %257 %283 %269
OpLine %3 87 15
%285 = OpFSub %4 %284 %279
%285 = OpFSub %5 %284 %279
OpLine %3 88 29
%286 = OpFAdd %6 %268 %276
OpLine %3 88 15
%287 = OpFunctionCall %4 %257 %286 %269
%287 = OpFunctionCall %5 %257 %286 %269
OpLine %3 88 15
%288 = OpFSub %4 %287 %279
%288 = OpFSub %5 %287 %279
OpLine %3 89 29
%289 = OpFAdd %6 %268 %277
OpLine %3 89 15
%290 = OpFunctionCall %4 %257 %289 %269
%290 = OpFunctionCall %5 %257 %289 %269
OpLine %3 89 15
%291 = OpFSub %4 %290 %279
%291 = OpFSub %5 %290 %279
OpLine %3 91 14
%292 = OpExtInst %4 %1 Cross %285 %282
%293 = OpExtInst %4 %1 Normalize %292
%292 = OpExtInst %5 %1 Cross %285 %282
%293 = OpExtInst %5 %1 Normalize %292
OpLine %3 92 14
%294 = OpExtInst %4 %1 Cross %291 %288
%295 = OpExtInst %4 %1 Normalize %294
%294 = OpExtInst %5 %1 Cross %291 %288
%295 = OpExtInst %5 %1 Normalize %294
OpLine %3 94 14
%296 = OpFAdd %4 %293 %295
%296 = OpFAdd %5 %293 %295
OpLine %3 94 13
%297 = OpVectorTimesScalar %4 %296 %78
%297 = OpVectorTimesScalar %5 %296 %78
OpLine %3 96 12
%298 = OpCompositeConstruct %14 %279 %297
OpReturnValue %298
@ -989,50 +989,50 @@ OpFunctionEnd
OpBranch %305
%305 = OpLabel
OpLine %3 101 9
%306 = OpConvertUToF %5 %300
%306 = OpConvertUToF %4 %300
%307 = OpCompositeExtract %8 %301 0
OpLine %3 101 9
%308 = OpIAdd %8 %307 %126
%309 = OpConvertUToF %5 %308
%310 = OpFRem %5 %306 %309
%309 = OpConvertUToF %4 %308
%310 = OpFRem %4 %306 %309
%311 = OpCompositeExtract %8 %301 0
OpLine %3 100 12
%312 = OpIAdd %8 %311 %126
%313 = OpUDiv %8 %300 %312
%314 = OpConvertUToF %5 %313
%314 = OpConvertUToF %4 %313
%315 = OpCompositeConstruct %6 %310 %314
%316 = OpConvertSToF %6 %302
%317 = OpFAdd %6 %315 %316
OpReturnValue %317
OpFunctionEnd
%320 = OpFunction %4 None %321
%320 = OpFunction %5 None %321
%319 = OpFunctionParameter %6
%318 = OpLabel
OpBranch %328
%328 = OpLabel
OpLine %3 270 9
%329 = OpFunctionCall %5 %67 %319
%329 = OpFunctionCall %4 %67 %319
OpLine %3 270 9
%330 = OpFMul %5 %329 %78
%330 = OpFMul %4 %329 %78
OpLine %3 270 9
%331 = OpFAdd %5 %330 %78
%331 = OpFAdd %4 %330 %78
OpLine %3 271 17
%332 = OpFAdd %6 %319 %324
OpLine %3 271 9
%333 = OpFunctionCall %5 %67 %332
%333 = OpFunctionCall %4 %67 %332
OpLine %3 271 9
%334 = OpFMul %5 %333 %78
%334 = OpFMul %4 %333 %78
OpLine %3 271 9
%335 = OpFAdd %5 %334 %78
%335 = OpFAdd %4 %334 %78
OpLine %3 272 17
%336 = OpFAdd %6 %319 %327
OpLine %3 272 9
%337 = OpFunctionCall %5 %67 %336
%337 = OpFunctionCall %4 %67 %336
OpLine %3 272 9
%338 = OpFMul %5 %337 %78
%338 = OpFMul %4 %337 %78
OpLine %3 269 12
%339 = OpFAdd %5 %338 %78
%340 = OpCompositeConstruct %4 %331 %335 %339
%339 = OpFAdd %4 %338 %78
%340 = OpCompositeConstruct %5 %331 %335 %339
OpReturnValue %340
OpFunctionEnd
%345 = OpFunction %2 None %346
@ -1145,14 +1145,14 @@ OpLine %3 161 18
%422 = OpUDiv %8 %421 %351
OpLine %3 161 13
%423 = OpUMod %8 %422 %350
%424 = OpConvertUToF %5 %423
%424 = OpConvertUToF %4 %423
OpLine %3 162 19
%425 = OpIAdd %8 %408 %126
OpLine %3 162 18
%426 = OpUDiv %8 %425 %351
OpLine %3 162 13
%427 = OpUMod %8 %426 %350
%428 = OpConvertUToF %5 %427
%428 = OpConvertUToF %4 %427
OpLine %3 163 14
%429 = OpCompositeConstruct %6 %424 %428
OpLine %3 165 30
@ -1162,19 +1162,19 @@ OpLine %3 165 30
OpLine %3 165 20
%432 = OpCompositeConstruct %7 %431 %74 %56
OpLine %3 168 21
%433 = OpCompositeExtract %5 %429 0
%433 = OpCompositeExtract %4 %429 0
OpLine %3 168 21
%435 = OpAccessChain %434 %417 %351
%436 = OpLoad %8 %435
%437 = OpConvertUToF %5 %436
%438 = OpFMul %5 %433 %437
%439 = OpCompositeExtract %5 %429 1
%437 = OpConvertUToF %4 %436
%438 = OpFMul %4 %433 %437
%439 = OpCompositeExtract %4 %429 1
OpLine %3 168 17
%440 = OpAccessChain %434 %417 %351
%441 = OpLoad %8 %440
%442 = OpConvertUToF %5 %441
%443 = OpFMul %5 %439 %442
%444 = OpFAdd %5 %438 %443
%442 = OpConvertUToF %4 %441
%443 = OpFMul %4 %439 %442
%444 = OpFAdd %4 %438 %443
%445 = OpConvertFToU %8 %444
OpLine %3 168 17
%446 = OpAccessChain %434 %417 %352
@ -1203,14 +1203,14 @@ OpBranch %470
%470 = OpLabel
OpLine %3 181 17
%471 = OpCompositeExtract %6 %454 2
%472 = OpCompositeExtract %5 %471 0
%472 = OpCompositeExtract %4 %471 0
OpLine %3 181 17
%473 = OpAccessChain %434 %466 %351
%474 = OpLoad %8 %473
%475 = OpConvertUToF %5 %474
%476 = OpFMul %5 %472 %475
%475 = OpConvertUToF %4 %474
%476 = OpFMul %4 %472 %475
%477 = OpCompositeExtract %6 %454 2
%478 = OpCompositeExtract %5 %477 1
%478 = OpCompositeExtract %4 %477 1
OpLine %3 181 70
%479 = OpAccessChain %434 %466 %351
%480 = OpLoad %8 %479
@ -1218,19 +1218,19 @@ OpLine %3 181 13
%481 = OpAccessChain %434 %466 %351
%482 = OpLoad %8 %481
%483 = OpIMul %8 %480 %482
%484 = OpConvertUToF %5 %483
%485 = OpFMul %5 %478 %484
%486 = OpFAdd %5 %476 %485
%484 = OpConvertUToF %4 %483
%485 = OpFMul %4 %478 %484
%486 = OpFAdd %4 %476 %485
%487 = OpConvertFToU %8 %486
OpLine %3 181 13
%488 = OpAccessChain %434 %466 %352
%489 = OpLoad %8 %488
%490 = OpIAdd %8 %487 %489
OpLine %3 182 32
%491 = OpConvertUToF %5 %490
%491 = OpConvertUToF %4 %490
OpLine %3 182 22
%492 = OpFDiv %5 %491 %467
%493 = OpExtInst %5 %1 Floor %492
%492 = OpFDiv %4 %491 %467
%493 = OpExtInst %4 %1 Floor %492
%494 = OpConvertFToU %8 %493
OpLine %3 183 22
%495 = OpUMod %8 %490 %349
@ -1252,43 +1252,43 @@ OpSelectionMerge %504 None
OpSwitch %495 %511 0 %505 1 %506 2 %507 3 %508 4 %509 5 %510
%505 = OpLabel
OpLine %3 191 37
%512 = OpCompositeExtract %4 %503 0
%513 = OpCompositeExtract %5 %512 0
%512 = OpCompositeExtract %5 %503 0
%513 = OpCompositeExtract %4 %512 0
OpLine %3 191 20
OpStore %468 %513
OpBranch %504
%506 = OpLabel
OpLine %3 192 37
%514 = OpCompositeExtract %4 %503 0
%515 = OpCompositeExtract %5 %514 1
%514 = OpCompositeExtract %5 %503 0
%515 = OpCompositeExtract %4 %514 1
OpLine %3 192 20
OpStore %468 %515
OpBranch %504
%507 = OpLabel
OpLine %3 193 37
%516 = OpCompositeExtract %4 %503 0
%517 = OpCompositeExtract %5 %516 2
%516 = OpCompositeExtract %5 %503 0
%517 = OpCompositeExtract %4 %516 2
OpLine %3 193 20
OpStore %468 %517
OpBranch %504
%508 = OpLabel
OpLine %3 194 37
%518 = OpCompositeExtract %4 %503 1
%519 = OpCompositeExtract %5 %518 0
%518 = OpCompositeExtract %5 %503 1
%519 = OpCompositeExtract %4 %518 0
OpLine %3 194 20
OpStore %468 %519
OpBranch %504
%509 = OpLabel
OpLine %3 195 37
%520 = OpCompositeExtract %4 %503 1
%521 = OpCompositeExtract %5 %520 1
%520 = OpCompositeExtract %5 %503 1
%521 = OpCompositeExtract %4 %520 1
OpLine %3 195 20
OpStore %468 %521
OpBranch %504
%510 = OpLabel
OpLine %3 196 37
%522 = OpCompositeExtract %4 %503 1
%523 = OpCompositeExtract %5 %522 2
%522 = OpCompositeExtract %5 %503 1
%523 = OpCompositeExtract %4 %522 2
OpLine %3 196 20
OpStore %468 %523
OpBranch %504
@ -1337,7 +1337,7 @@ OpLine %3 213 13
OpLine %3 213 5
OpStore %469 %540
OpLine %3 222 27
%541 = OpLoad %5 %468
%541 = OpLoad %4 %468
%542 = OpBitcast %8 %541
OpLine %3 223 12
%543 = OpLoad %8 %469
@ -1350,8 +1350,8 @@ OpReturn
OpFunctionEnd
%558 = OpFunction %2 None %346
%547 = OpLabel
%551 = OpLoad %4 %549
%553 = OpLoad %4 %552
%551 = OpLoad %5 %549
%553 = OpLoad %5 %552
%548 = OpCompositeConstruct %14 %551 %553
%560 = OpAccessChain %559 %39 %135
OpBranch %561
@ -1359,20 +1359,20 @@ OpBranch %561
OpLine %3 254 25
%563 = OpAccessChain %562 %560 %126
%564 = OpLoad %23 %563
%565 = OpCompositeExtract %4 %548 0
%565 = OpCompositeExtract %5 %548 0
OpLine %3 254 25
%566 = OpCompositeConstruct %7 %565 %56
%567 = OpMatrixTimesVector %7 %564 %566
OpLine %3 255 18
%568 = OpCompositeExtract %4 %548 1
%568 = OpCompositeExtract %5 %548 1
OpLine %3 256 12
%569 = OpCompositeExtract %4 %548 0
%569 = OpCompositeExtract %5 %548 0
%570 = OpCompositeConstruct %26 %567 %568 %569
%571 = OpCompositeExtract %7 %570 0
OpStore %554 %571
%572 = OpCompositeExtract %4 %570 1
%572 = OpCompositeExtract %5 %570 1
OpStore %555 %572
%573 = OpCompositeExtract %4 %570 2
%573 = OpCompositeExtract %5 %570 2
OpStore %557 %573
OpReturn
OpFunctionEnd
@ -1380,8 +1380,8 @@ OpFunctionEnd
%574 = OpLabel
%592 = OpVariable %95 Function %593
%577 = OpLoad %7 %576
%579 = OpLoad %4 %578
%581 = OpLoad %4 %580
%579 = OpLoad %5 %578
%581 = OpLoad %5 %580
%575 = OpCompositeConstruct %26 %577 %579 %581
%584 = OpAccessChain %559 %39 %135
%586 = OpAccessChain %585 %42 %135
@ -1389,70 +1389,70 @@ OpBranch %594
%594 = OpLabel
OpLine %3 278 28
OpLine %3 278 17
%595 = OpCompositeExtract %4 %575 2
%596 = OpExtInst %4 %1 Fract %595
%597 = OpExtInst %4 %1 SmoothStep %80 %587 %596
%595 = OpCompositeExtract %5 %575 2
%596 = OpExtInst %5 %1 Fract %595
%597 = OpExtInst %5 %1 SmoothStep %80 %587 %596
OpLine %3 278 5
OpStore %592 %597
OpLine %3 279 17
OpLine %3 279 13
%598 = OpAccessChain %125 %592 %135
%599 = OpLoad %5 %598
%599 = OpLoad %4 %598
%600 = OpAccessChain %125 %592 %126
%601 = OpLoad %5 %600
%602 = OpFMul %5 %599 %601
%601 = OpLoad %4 %600
%602 = OpFMul %4 %599 %601
%603 = OpAccessChain %125 %592 %350
%604 = OpLoad %5 %603
%605 = OpFMul %5 %602 %604
%606 = OpCompositeConstruct %4 %605 %605 %605
%607 = OpExtInst %4 %1 FMix %589 %591 %606
%604 = OpLoad %4 %603
%605 = OpFMul %4 %602 %604
%606 = OpCompositeConstruct %5 %605 %605 %605
%607 = OpExtInst %5 %1 FMix %589 %591 %606
OpLine %3 279 5
OpStore %592 %607
OpLine %3 282 25
%609 = OpAccessChain %608 %586 %126
%610 = OpLoad %4 %609
%611 = OpVectorTimesScalar %4 %610 %272
%610 = OpLoad %5 %609
%611 = OpVectorTimesScalar %5 %610 %272
OpLine %3 284 21
%612 = OpAccessChain %608 %586 %135
%613 = OpLoad %4 %612
%614 = OpCompositeExtract %4 %575 2
%615 = OpFSub %4 %613 %614
%616 = OpExtInst %4 %1 Normalize %615
%613 = OpLoad %5 %612
%614 = OpCompositeExtract %5 %575 2
%615 = OpFSub %5 %613 %614
%616 = OpExtInst %5 %1 Normalize %615
OpLine %3 285 20
%618 = OpAccessChain %617 %584 %135
%619 = OpLoad %7 %618
%620 = OpVectorShuffle %4 %619 %619 0 1 2
%621 = OpCompositeExtract %4 %575 2
%622 = OpFSub %4 %620 %621
%623 = OpExtInst %4 %1 Normalize %622
%620 = OpVectorShuffle %5 %619 %619 0 1 2
%621 = OpCompositeExtract %5 %575 2
%622 = OpFSub %5 %620 %621
%623 = OpExtInst %5 %1 Normalize %622
OpLine %3 286 20
%624 = OpFAdd %4 %623 %616
%625 = OpExtInst %4 %1 Normalize %624
%624 = OpFAdd %5 %623 %616
%625 = OpExtInst %5 %1 Normalize %624
OpLine %3 288 32
%626 = OpCompositeExtract %4 %575 1
%627 = OpDot %5 %626 %616
%626 = OpCompositeExtract %5 %575 1
%627 = OpDot %4 %626 %616
OpLine %3 288 28
%628 = OpExtInst %5 %1 FMax %627 %74
%628 = OpExtInst %4 %1 FMax %627 %74
OpLine %3 289 25
%629 = OpAccessChain %608 %586 %126
%630 = OpLoad %4 %629
%631 = OpVectorTimesScalar %4 %630 %628
%630 = OpLoad %5 %629
%631 = OpVectorTimesScalar %5 %630 %628
OpLine %3 291 37
%632 = OpCompositeExtract %4 %575 1
%633 = OpDot %5 %632 %625
%632 = OpCompositeExtract %5 %575 1
%633 = OpDot %4 %632 %625
OpLine %3 291 33
%634 = OpExtInst %5 %1 FMax %633 %74
%634 = OpExtInst %4 %1 FMax %633 %74
OpLine %3 291 29
%635 = OpExtInst %5 %1 Pow %634 %323
%635 = OpExtInst %4 %1 Pow %634 %323
OpLine %3 292 26
%636 = OpAccessChain %608 %586 %126
%637 = OpLoad %4 %636
%638 = OpVectorTimesScalar %4 %637 %635
%637 = OpLoad %5 %636
%638 = OpVectorTimesScalar %5 %637 %635
OpLine %3 294 18
%639 = OpFAdd %4 %611 %631
%640 = OpFAdd %4 %639 %638
%641 = OpLoad %4 %592
%642 = OpFMul %4 %640 %641
%639 = OpFAdd %5 %611 %631
%640 = OpFAdd %5 %639 %638
%641 = OpLoad %5 %592
%642 = OpFMul %5 %640 %641
OpLine %3 296 12
%643 = OpCompositeConstruct %7 %642 %56
OpStore %582 %643

View File

@ -34,25 +34,25 @@ OpDecorate %76 Location 3
OpDecorate %78 Location 4
OpDecorate %80 Location 5
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%6 = OpTypeInt 32 1
%5 = OpTypeVector %6 4
%8 = OpTypeInt 32 0
%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
%19 = OpTypePointer Output %3
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 4
%5 = OpTypeInt 32 1
%6 = OpTypeVector %5 4
%7 = OpTypeInt 32 0
%8 = OpTypeVector %7 4
%9 = OpTypeVector %3 3
%10 = OpTypeVector %5 3
%11 = OpTypeVector %7 3
%12 = OpTypeStruct %4 %6 %8 %9 %10 %11
%13 = OpTypeVector %3 2
%14 = OpTypeVector %5 2
%15 = OpTypeVector %7 2
%16 = OpTypeStruct %13 %14 %15 %3 %5 %7
%19 = OpTypePointer Output %4
%18 = OpVariable %19 Output
%21 = OpTypePointer Output %5
%21 = OpTypePointer Output %6
%20 = OpVariable %21 Output
%23 = OpTypePointer Output %7
%23 = OpTypePointer Output %8
%22 = OpVariable %23 Output
%25 = OpTypePointer Output %9
%24 = OpVariable %25 Output
@ -61,39 +61,39 @@ OpDecorate %80 Location 5
%29 = OpTypePointer Output %11
%28 = OpVariable %29 Output
%31 = OpTypeFunction %2
%32 = OpConstant %4 0.0
%33 = OpConstantComposite %3 %32 %32 %32 %32
%34 = OpConstant %6 0
%35 = OpConstantComposite %5 %34 %34 %34 %34
%36 = OpConstant %8 0
%37 = OpConstantComposite %7 %36 %36 %36 %36
%32 = OpConstant %3 0.0
%33 = OpConstantComposite %4 %32 %32 %32 %32
%34 = OpConstant %5 0
%35 = OpConstantComposite %6 %34 %34 %34 %34
%36 = OpConstant %7 0
%37 = OpConstantComposite %8 %36 %36 %36 %36
%38 = OpConstantComposite %9 %32 %32 %32
%39 = OpConstantComposite %10 %34 %34 %34
%40 = OpConstantComposite %11 %36 %36 %36
%42 = OpTypePointer Function %12
%43 = OpConstantNull %12
%45 = OpTypePointer Function %3
%47 = OpTypePointer Function %5
%48 = OpConstant %8 1
%50 = OpTypePointer Function %7
%51 = OpConstant %8 2
%45 = OpTypePointer Function %4
%47 = OpTypePointer Function %6
%48 = OpConstant %7 1
%50 = OpTypePointer Function %8
%51 = OpConstant %7 2
%53 = OpTypePointer Function %9
%54 = OpConstant %8 3
%54 = OpConstant %7 3
%56 = OpTypePointer Function %10
%57 = OpConstant %8 4
%57 = OpConstant %7 4
%59 = OpTypePointer Function %11
%60 = OpConstant %8 5
%60 = OpConstant %7 5
%71 = OpTypePointer Output %13
%70 = OpVariable %71 Output
%73 = OpTypePointer Output %14
%72 = OpVariable %73 Output
%75 = OpTypePointer Output %15
%74 = OpVariable %75 Output
%77 = OpTypePointer Output %4
%77 = OpTypePointer Output %3
%76 = OpVariable %77 Output
%79 = OpTypePointer Output %6
%79 = OpTypePointer Output %5
%78 = OpVariable %79 Output
%81 = OpTypePointer Output %8
%81 = OpTypePointer Output %7
%80 = OpVariable %81 Output
%83 = OpConstantComposite %13 %32 %32
%84 = OpConstantComposite %14 %34 %34
@ -103,9 +103,9 @@ OpDecorate %80 Location 5
%90 = OpTypePointer Function %13
%92 = OpTypePointer Function %14
%94 = OpTypePointer Function %15
%96 = OpTypePointer Function %4
%98 = OpTypePointer Function %6
%100 = OpTypePointer Function %8
%96 = OpTypePointer Function %3
%98 = OpTypePointer Function %5
%100 = OpTypePointer Function %7
%30 = OpFunction %2 None %31
%17 = OpLabel
%41 = OpVariable %42 Function %43
@ -124,11 +124,11 @@ OpStore %58 %39
%61 = OpAccessChain %59 %41 %60
OpStore %61 %40
%62 = OpLoad %12 %41
%63 = OpCompositeExtract %3 %62 0
%63 = OpCompositeExtract %4 %62 0
OpStore %18 %63
%64 = OpCompositeExtract %5 %62 1
%64 = OpCompositeExtract %6 %62 1
OpStore %20 %64
%65 = OpCompositeExtract %7 %62 2
%65 = OpCompositeExtract %8 %62 2
OpStore %22 %65
%66 = OpCompositeExtract %9 %62 3
OpStore %24 %66
@ -162,11 +162,11 @@ OpStore %70 %103
OpStore %72 %104
%105 = OpCompositeExtract %15 %102 2
OpStore %74 %105
%106 = OpCompositeExtract %4 %102 3
%106 = OpCompositeExtract %3 %102 3
OpStore %76 %106
%107 = OpCompositeExtract %6 %102 4
%107 = OpCompositeExtract %5 %102 4
OpStore %78 %107
%108 = OpCompositeExtract %8 %102 5
%108 = OpCompositeExtract %7 %102 5
OpStore %80 %108
OpReturn
OpFunctionEnd

View File

@ -21,11 +21,11 @@ OpDecorate %22 BuiltIn LocalInvocationIndex
OpDecorate %25 BuiltIn WorkgroupId
OpDecorate %27 BuiltIn NumWorkgroups
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%5 = OpTypeStruct %3 %4
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 4
%5 = OpTypeStruct %4 %3
%6 = OpTypeInt 32 0
%7 = OpTypeStruct %4 %6 %4
%7 = OpTypeStruct %3 %6 %3
%8 = OpTypeBool
%10 = OpConstant %6 1
%9 = OpTypeArray %6 %10

View File

@ -30,38 +30,38 @@ OpDecorate %30 BuiltIn FragDepth
OpDecorate %32 BuiltIn SampleMask
OpDecorate %34 Location 0
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%5 = OpTypeStruct %3 %4
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 4
%5 = OpTypeStruct %4 %3
%6 = OpTypeInt 32 0
%7 = OpTypeStruct %4 %6 %4
%7 = OpTypeStruct %3 %6 %3
%8 = OpTypeBool
%10 = OpConstant %6 1
%9 = OpTypeArray %6 %10
%11 = OpTypeVector %6 3
%12 = OpTypeStruct %6
%13 = OpTypeStruct %6
%17 = OpTypePointer Input %3
%17 = OpTypePointer Input %4
%16 = OpVariable %17 Input
%20 = OpTypePointer Input %4
%20 = OpTypePointer Input %3
%19 = OpVariable %20 Input
%23 = OpTypePointer Input %8
%22 = OpVariable %23 Input
%26 = OpTypePointer Input %6
%25 = OpVariable %26 Input
%28 = OpVariable %26 Input
%31 = OpTypePointer Output %4
%31 = OpTypePointer Output %3
%30 = OpVariable %31 Output
%33 = OpTypePointer Output %6
%32 = OpVariable %33 Output
%34 = OpVariable %31 Output
%36 = OpTypeFunction %2
%37 = OpConstant %4 0.0
%38 = OpConstant %4 1.0
%37 = OpConstant %3 0.0
%38 = OpConstant %3 1.0
%35 = OpFunction %2 None %36
%14 = OpLabel
%18 = OpLoad %3 %16
%21 = OpLoad %4 %19
%18 = OpLoad %4 %16
%21 = OpLoad %3 %19
%15 = OpCompositeConstruct %5 %18 %21
%24 = OpLoad %8 %22
%27 = OpLoad %6 %25
@ -70,17 +70,17 @@ OpBranch %39
%39 = OpLabel
%40 = OpShiftLeftLogical %6 %10 %27
%41 = OpBitwiseAnd %6 %29 %40
%42 = OpSelect %4 %24 %38 %37
%43 = OpCompositeExtract %4 %15 1
%42 = OpSelect %3 %24 %38 %37
%43 = OpCompositeExtract %3 %15 1
%44 = OpCompositeConstruct %7 %43 %41 %42
%45 = OpCompositeExtract %4 %44 0
%45 = OpCompositeExtract %3 %44 0
OpStore %30 %45
%46 = OpLoad %4 %30
%47 = OpExtInst %4 %1 FClamp %46 %37 %38
%46 = OpLoad %3 %30
%47 = OpExtInst %3 %1 FClamp %46 %37 %38
OpStore %30 %47
%48 = OpCompositeExtract %6 %44 1
OpStore %32 %48
%49 = OpCompositeExtract %4 %44 2
%49 = OpCompositeExtract %3 %44 2
OpStore %34 %49
OpReturn
OpFunctionEnd

View File

@ -22,11 +22,11 @@ OpDecorate %22 BuiltIn Position
OpDecorate %24 Location 1
OpDecorate %26 BuiltIn PointSize
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%5 = OpTypeStruct %3 %4
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 4
%5 = OpTypeStruct %4 %3
%6 = OpTypeInt 32 0
%7 = OpTypeStruct %4 %6 %4
%7 = OpTypeStruct %3 %6 %3
%8 = OpTypeBool
%10 = OpConstant %6 1
%9 = OpTypeArray %6 %10
@ -37,15 +37,15 @@ OpDecorate %26 BuiltIn PointSize
%15 = OpVariable %16 Input
%18 = OpVariable %16 Input
%20 = OpVariable %16 Input
%23 = OpTypePointer Output %3
%23 = OpTypePointer Output %4
%22 = OpVariable %23 Output
%25 = OpTypePointer Output %4
%25 = OpTypePointer Output %3
%24 = OpVariable %25 Output
%27 = OpTypePointer Output %4
%27 = OpTypePointer Output %3
%26 = OpVariable %27 Output
%28 = OpConstant %4 1.0
%28 = OpConstant %3 1.0
%30 = OpTypeFunction %2
%31 = OpConstantComposite %3 %28 %28 %28 %28
%31 = OpConstantComposite %4 %28 %28 %28 %28
%29 = OpFunction %2 None %30
%14 = OpLabel
%17 = OpLoad %6 %15
@ -56,11 +56,11 @@ OpBranch %32
%32 = OpLabel
%33 = OpIAdd %6 %17 %19
%34 = OpIAdd %6 %33 %21
%35 = OpConvertUToF %4 %34
%35 = OpConvertUToF %3 %34
%36 = OpCompositeConstruct %5 %31 %35
%37 = OpCompositeExtract %3 %36 0
%37 = OpCompositeExtract %4 %36 0
OpStore %22 %37
%38 = OpCompositeExtract %4 %36 1
%38 = OpCompositeExtract %3 %36 1
OpStore %24 %38
OpReturn
OpFunctionEnd

View File

@ -20,11 +20,11 @@ OpDecorate %22 Invariant
OpDecorate %22 BuiltIn Position
OpDecorate %24 BuiltIn PointSize
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%5 = OpTypeStruct %3 %4
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 4
%5 = OpTypeStruct %4 %3
%6 = OpTypeInt 32 0
%7 = OpTypeStruct %4 %6 %4
%7 = OpTypeStruct %3 %6 %3
%8 = OpTypeBool
%10 = OpConstant %6 1
%9 = OpTypeArray %6 %10
@ -34,14 +34,14 @@ OpDecorate %24 BuiltIn PointSize
%17 = OpTypePointer Input %6
%16 = OpVariable %17 Input
%20 = OpVariable %17 Input
%23 = OpTypePointer Output %3
%23 = OpTypePointer Output %4
%22 = OpVariable %23 Output
%25 = OpTypePointer Output %4
%25 = OpTypePointer Output %3
%24 = OpVariable %25 Output
%26 = OpConstant %4 1.0
%26 = OpConstant %3 1.0
%28 = OpTypeFunction %2
%29 = OpConstant %6 2
%30 = OpConstant %4 0.0
%30 = OpConstant %3 0.0
%32 = OpTypePointer Function %6
%27 = OpFunction %2 None %28
%14 = OpLabel
@ -54,12 +54,12 @@ OpStore %24 %26
OpBranch %33
%33 = OpLabel
%34 = OpCompositeExtract %6 %15 0
%35 = OpConvertUToF %4 %34
%35 = OpConvertUToF %3 %34
%36 = OpCompositeExtract %6 %19 0
%37 = OpConvertUToF %4 %36
%37 = OpConvertUToF %3 %36
%38 = OpLoad %6 %31
%39 = OpConvertUToF %4 %38
%40 = OpCompositeConstruct %3 %35 %37 %39 %30
%39 = OpConvertUToF %3 %38
%40 = OpCompositeConstruct %4 %35 %37 %39 %30
OpStore %22 %40
OpReturn
OpFunctionEnd

View File

@ -95,19 +95,19 @@ OpDecorate %117 Centroid
OpDecorate %119 Location 9
OpDecorate %119 Sample
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 4
%5 = OpTypeInt 32 0
%6 = OpTypeVector %4 2
%7 = OpTypeVector %4 3
%8 = OpTypeStruct %3 %5 %5 %5 %4 %6 %7 %3 %4 %4
%11 = OpTypePointer Output %3
%6 = OpTypeVector %3 2
%7 = OpTypeVector %3 3
%8 = OpTypeStruct %4 %5 %5 %5 %3 %6 %7 %4 %3 %3
%11 = OpTypePointer Output %4
%10 = OpVariable %11 Output
%13 = OpTypePointer Output %5
%12 = OpVariable %13 Output
%14 = OpVariable %13 Output
%15 = OpVariable %13 Output
%17 = OpTypePointer Output %4
%17 = OpTypePointer Output %3
%16 = OpVariable %17 Output
%19 = OpTypePointer Output %6
%18 = OpVariable %19 Output
@ -116,55 +116,55 @@ OpDecorate %119 Sample
%22 = OpVariable %11 Output
%23 = OpVariable %17 Output
%24 = OpVariable %17 Output
%26 = OpTypePointer Output %4
%26 = OpTypePointer Output %3
%25 = OpVariable %26 Output
%27 = OpConstant %4 1.0
%27 = OpConstant %3 1.0
%29 = OpTypeFunction %2
%30 = OpConstant %4 2.0
%31 = OpConstant %4 4.0
%32 = OpConstant %4 5.0
%33 = OpConstant %4 6.0
%34 = OpConstantComposite %3 %30 %31 %32 %33
%30 = OpConstant %3 2.0
%31 = OpConstant %3 4.0
%32 = OpConstant %3 5.0
%33 = OpConstant %3 6.0
%34 = OpConstantComposite %4 %30 %31 %32 %33
%35 = OpConstant %5 8
%36 = OpConstant %5 9
%37 = OpConstant %5 10
%38 = OpConstant %4 27.0
%39 = OpConstant %4 64.0
%40 = OpConstant %4 125.0
%38 = OpConstant %3 27.0
%39 = OpConstant %3 64.0
%40 = OpConstant %3 125.0
%41 = OpConstantComposite %6 %39 %40
%42 = OpConstant %4 216.0
%43 = OpConstant %4 343.0
%44 = OpConstant %4 512.0
%42 = OpConstant %3 216.0
%43 = OpConstant %3 343.0
%44 = OpConstant %3 512.0
%45 = OpConstantComposite %7 %42 %43 %44
%46 = OpConstant %4 729.0
%47 = OpConstant %4 1000.0
%48 = OpConstant %4 1331.0
%49 = OpConstant %4 1728.0
%50 = OpConstantComposite %3 %46 %47 %48 %49
%51 = OpConstant %4 2197.0
%52 = OpConstant %4 2744.0
%46 = OpConstant %3 729.0
%47 = OpConstant %3 1000.0
%48 = OpConstant %3 1331.0
%49 = OpConstant %3 1728.0
%50 = OpConstantComposite %4 %46 %47 %48 %49
%51 = OpConstant %3 2197.0
%52 = OpConstant %3 2744.0
%54 = OpTypePointer Function %8
%55 = OpConstantNull %8
%57 = OpTypePointer Function %3
%57 = OpTypePointer Function %4
%58 = OpConstant %5 0
%60 = OpTypePointer Function %5
%61 = OpConstant %5 1
%63 = OpConstant %5 2
%65 = OpConstant %5 3
%67 = OpTypePointer Function %4
%67 = OpTypePointer Function %3
%68 = OpConstant %5 4
%70 = OpTypePointer Function %6
%71 = OpConstant %5 5
%73 = OpTypePointer Function %7
%74 = OpConstant %5 6
%76 = OpConstant %5 7
%97 = OpTypePointer Input %3
%97 = OpTypePointer Input %4
%96 = OpVariable %97 Input
%100 = OpTypePointer Input %5
%99 = OpVariable %100 Input
%102 = OpVariable %100 Input
%104 = OpVariable %100 Input
%107 = OpTypePointer Input %4
%107 = OpTypePointer Input %3
%106 = OpVariable %107 Input
%110 = OpTypePointer Input %6
%109 = OpVariable %110 Input
@ -200,11 +200,11 @@ OpStore %78 %51
%79 = OpAccessChain %67 %53 %36
OpStore %79 %52
%80 = OpLoad %8 %53
%81 = OpCompositeExtract %3 %80 0
%81 = OpCompositeExtract %4 %80 0
OpStore %10 %81
%82 = OpAccessChain %26 %10 %61
%83 = OpLoad %4 %82
%84 = OpFNegate %4 %83
%83 = OpLoad %3 %82
%84 = OpFNegate %3 %83
OpStore %82 %84
%85 = OpCompositeExtract %5 %80 1
OpStore %12 %85
@ -212,32 +212,32 @@ OpStore %12 %85
OpStore %14 %86
%87 = OpCompositeExtract %5 %80 3
OpStore %15 %87
%88 = OpCompositeExtract %4 %80 4
%88 = OpCompositeExtract %3 %80 4
OpStore %16 %88
%89 = OpCompositeExtract %6 %80 5
OpStore %18 %89
%90 = OpCompositeExtract %7 %80 6
OpStore %20 %90
%91 = OpCompositeExtract %3 %80 7
%91 = OpCompositeExtract %4 %80 7
OpStore %22 %91
%92 = OpCompositeExtract %4 %80 8
%92 = OpCompositeExtract %3 %80 8
OpStore %23 %92
%93 = OpCompositeExtract %4 %80 9
%93 = OpCompositeExtract %3 %80 9
OpStore %24 %93
OpReturn
OpFunctionEnd
%121 = OpFunction %2 None %29
%94 = OpLabel
%98 = OpLoad %3 %96
%98 = OpLoad %4 %96
%101 = OpLoad %5 %99
%103 = OpLoad %5 %102
%105 = OpLoad %5 %104
%108 = OpLoad %4 %106
%108 = OpLoad %3 %106
%111 = OpLoad %6 %109
%114 = OpLoad %7 %112
%116 = OpLoad %3 %115
%118 = OpLoad %4 %117
%120 = OpLoad %4 %119
%116 = OpLoad %4 %115
%118 = OpLoad %3 %117
%120 = OpLoad %3 %119
%95 = OpCompositeConstruct %8 %98 %101 %103 %105 %108 %111 %114 %116 %118 %120
OpBranch %122
%122 = OpLabel

View File

@ -87,18 +87,18 @@ OpDecorate %111 Centroid
OpDecorate %113 Location 9
OpDecorate %113 Sample
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 4
%5 = OpTypeInt 32 0
%6 = OpTypeVector %4 2
%7 = OpTypeVector %4 3
%8 = OpTypeStruct %3 %5 %5 %4 %6 %7 %3 %4 %4
%11 = OpTypePointer Output %3
%6 = OpTypeVector %3 2
%7 = OpTypeVector %3 3
%8 = OpTypeStruct %4 %5 %5 %3 %6 %7 %4 %3 %3
%11 = OpTypePointer Output %4
%10 = OpVariable %11 Output
%13 = OpTypePointer Output %5
%12 = OpVariable %13 Output
%14 = OpVariable %13 Output
%16 = OpTypePointer Output %4
%16 = OpTypePointer Output %3
%15 = OpVariable %16 Output
%18 = OpTypePointer Output %6
%17 = OpVariable %18 Output
@ -107,40 +107,40 @@ OpDecorate %113 Sample
%21 = OpVariable %11 Output
%22 = OpVariable %16 Output
%23 = OpVariable %16 Output
%25 = OpTypePointer Output %4
%25 = OpTypePointer Output %3
%24 = OpVariable %25 Output
%26 = OpConstant %4 1.0
%26 = OpConstant %3 1.0
%28 = OpTypeFunction %2
%29 = OpConstant %4 2.0
%30 = OpConstant %4 4.0
%31 = OpConstant %4 5.0
%32 = OpConstant %4 6.0
%33 = OpConstantComposite %3 %29 %30 %31 %32
%29 = OpConstant %3 2.0
%30 = OpConstant %3 4.0
%31 = OpConstant %3 5.0
%32 = OpConstant %3 6.0
%33 = OpConstantComposite %4 %29 %30 %31 %32
%34 = OpConstant %5 8
%35 = OpConstant %5 10
%36 = OpConstant %4 27.0
%37 = OpConstant %4 64.0
%38 = OpConstant %4 125.0
%36 = OpConstant %3 27.0
%37 = OpConstant %3 64.0
%38 = OpConstant %3 125.0
%39 = OpConstantComposite %6 %37 %38
%40 = OpConstant %4 216.0
%41 = OpConstant %4 343.0
%42 = OpConstant %4 512.0
%40 = OpConstant %3 216.0
%41 = OpConstant %3 343.0
%42 = OpConstant %3 512.0
%43 = OpConstantComposite %7 %40 %41 %42
%44 = OpConstant %4 729.0
%45 = OpConstant %4 1000.0
%46 = OpConstant %4 1331.0
%47 = OpConstant %4 1728.0
%48 = OpConstantComposite %3 %44 %45 %46 %47
%49 = OpConstant %4 2197.0
%50 = OpConstant %4 2744.0
%44 = OpConstant %3 729.0
%45 = OpConstant %3 1000.0
%46 = OpConstant %3 1331.0
%47 = OpConstant %3 1728.0
%48 = OpConstantComposite %4 %44 %45 %46 %47
%49 = OpConstant %3 2197.0
%50 = OpConstant %3 2744.0
%52 = OpTypePointer Function %8
%53 = OpConstantNull %8
%55 = OpTypePointer Function %3
%55 = OpTypePointer Function %4
%56 = OpConstant %5 0
%58 = OpTypePointer Function %5
%59 = OpConstant %5 1
%61 = OpConstant %5 2
%63 = OpTypePointer Function %4
%63 = OpTypePointer Function %3
%64 = OpConstant %5 3
%66 = OpTypePointer Function %6
%67 = OpConstant %5 4
@ -148,12 +148,12 @@ OpDecorate %113 Sample
%70 = OpConstant %5 5
%72 = OpConstant %5 6
%74 = OpConstant %5 7
%93 = OpTypePointer Input %3
%93 = OpTypePointer Input %4
%92 = OpVariable %93 Input
%96 = OpTypePointer Input %5
%95 = OpVariable %96 Input
%98 = OpVariable %96 Input
%101 = OpTypePointer Input %4
%101 = OpTypePointer Input %3
%100 = OpVariable %101 Input
%104 = OpTypePointer Input %6
%103 = OpVariable %104 Input
@ -187,41 +187,41 @@ OpStore %75 %49
%76 = OpAccessChain %63 %51 %34
OpStore %76 %50
%77 = OpLoad %8 %51
%78 = OpCompositeExtract %3 %77 0
%78 = OpCompositeExtract %4 %77 0
OpStore %10 %78
%79 = OpAccessChain %25 %10 %59
%80 = OpLoad %4 %79
%81 = OpFNegate %4 %80
%80 = OpLoad %3 %79
%81 = OpFNegate %3 %80
OpStore %79 %81
%82 = OpCompositeExtract %5 %77 1
OpStore %12 %82
%83 = OpCompositeExtract %5 %77 2
OpStore %14 %83
%84 = OpCompositeExtract %4 %77 3
%84 = OpCompositeExtract %3 %77 3
OpStore %15 %84
%85 = OpCompositeExtract %6 %77 4
OpStore %17 %85
%86 = OpCompositeExtract %7 %77 5
OpStore %19 %86
%87 = OpCompositeExtract %3 %77 6
%87 = OpCompositeExtract %4 %77 6
OpStore %21 %87
%88 = OpCompositeExtract %4 %77 7
%88 = OpCompositeExtract %3 %77 7
OpStore %22 %88
%89 = OpCompositeExtract %4 %77 8
%89 = OpCompositeExtract %3 %77 8
OpStore %23 %89
OpReturn
OpFunctionEnd
%115 = OpFunction %2 None %28
%90 = OpLabel
%94 = OpLoad %3 %92
%94 = OpLoad %4 %92
%97 = OpLoad %5 %95
%99 = OpLoad %5 %98
%102 = OpLoad %4 %100
%102 = OpLoad %3 %100
%105 = OpLoad %6 %103
%108 = OpLoad %7 %106
%110 = OpLoad %3 %109
%112 = OpLoad %4 %111
%114 = OpLoad %4 %113
%110 = OpLoad %4 %109
%112 = OpLoad %3 %111
%114 = OpLoad %3 %113
%91 = OpCompositeConstruct %8 %94 %97 %99 %102 %105 %108 %110 %112 %114
OpBranch %116
%116 = OpLabel

View File

@ -18,27 +18,27 @@ OpMemberDecorate %14 1 Offset 4
OpMemberDecorate %15 0 Offset 0
OpMemberDecorate %15 1 Offset 16
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 4
%6 = OpTypeInt 32 1
%5 = OpTypeVector %6 4
%7 = OpTypeVector %6 2
%9 = OpTypeInt 32 0
%8 = OpTypeVector %9 2
%10 = OpTypeVector %4 2
%11 = OpTypeStruct %4 %4
%10 = OpTypeVector %3 2
%11 = OpTypeStruct %3 %3
%12 = OpTypeStruct %10 %10
%13 = OpTypeStruct %3 %3
%14 = OpTypeStruct %4 %6
%15 = OpTypeStruct %3 %5
%13 = OpTypeStruct %4 %4
%14 = OpTypeStruct %3 %6
%15 = OpTypeStruct %4 %5
%18 = OpTypeFunction %2
%19 = OpConstant %4 1.0
%20 = OpConstant %4 0.0
%21 = OpConstantComposite %3 %20 %20 %20 %20
%19 = OpConstant %3 1.0
%20 = OpConstant %3 0.0
%21 = OpConstantComposite %4 %20 %20 %20 %20
%22 = OpConstant %6 -1
%23 = OpConstantComposite %5 %22 %22 %22 %22
%24 = OpConstant %4 -1.0
%25 = OpConstantComposite %3 %24 %24 %24 %24
%24 = OpConstant %3 -1.0
%25 = OpConstantComposite %4 %24 %24 %24 %24
%26 = OpConstantNull %7
%27 = OpConstant %9 4294967295
%28 = OpConstantComposite %7 %22 %22
@ -53,26 +53,26 @@ OpMemberDecorate %15 1 Offset 16
%37 = OpConstant %9 31
%38 = OpConstantComposite %8 %37 %37
%39 = OpConstant %6 2
%40 = OpConstant %4 2.0
%40 = OpConstant %3 2.0
%41 = OpConstantComposite %10 %19 %40
%42 = OpConstant %6 3
%43 = OpConstant %6 4
%44 = OpConstantComposite %7 %42 %43
%45 = OpConstant %4 1.5
%45 = OpConstant %3 1.5
%46 = OpConstantComposite %10 %45 %45
%47 = OpConstantComposite %3 %45 %45 %45 %45
%54 = OpConstantComposite %3 %19 %19 %19 %19
%47 = OpConstantComposite %4 %45 %45 %45 %45
%54 = OpConstantComposite %4 %19 %19 %19 %19
%57 = OpConstantNull %6
%17 = OpFunction %2 None %18
%16 = OpLabel
OpBranch %48
%48 = OpLabel
%49 = OpExtInst %4 %1 Degrees %19
%50 = OpExtInst %4 %1 Radians %19
%51 = OpExtInst %3 %1 Degrees %21
%52 = OpExtInst %3 %1 Radians %21
%53 = OpExtInst %3 %1 FClamp %21 %21 %54
%55 = OpExtInst %3 %1 Refract %21 %21 %19
%49 = OpExtInst %3 %1 Degrees %19
%50 = OpExtInst %3 %1 Radians %19
%51 = OpExtInst %4 %1 Degrees %21
%52 = OpExtInst %4 %1 Radians %21
%53 = OpExtInst %4 %1 FClamp %21 %21 %54
%55 = OpExtInst %4 %1 Refract %21 %21 %19
%58 = OpCompositeExtract %6 %26 0
%59 = OpCompositeExtract %6 %26 0
%60 = OpIMul %6 %58 %59
@ -81,23 +81,23 @@ OpBranch %48
%63 = OpCompositeExtract %6 %26 1
%64 = OpIMul %6 %62 %63
%56 = OpIAdd %6 %61 %64
%65 = OpExtInst %4 %1 Ldexp %19 %39
%65 = OpExtInst %3 %1 Ldexp %19 %39
%66 = OpExtInst %10 %1 Ldexp %41 %44
%67 = OpExtInst %11 %1 ModfStruct %45
%68 = OpExtInst %11 %1 ModfStruct %45
%69 = OpCompositeExtract %4 %68 0
%69 = OpCompositeExtract %3 %68 0
%70 = OpExtInst %11 %1 ModfStruct %45
%71 = OpCompositeExtract %4 %70 1
%71 = OpCompositeExtract %3 %70 1
%72 = OpExtInst %12 %1 ModfStruct %46
%73 = OpExtInst %13 %1 ModfStruct %47
%74 = OpCompositeExtract %3 %73 1
%75 = OpCompositeExtract %4 %74 0
%74 = OpCompositeExtract %4 %73 1
%75 = OpCompositeExtract %3 %74 0
%76 = OpExtInst %12 %1 ModfStruct %46
%77 = OpCompositeExtract %10 %76 0
%78 = OpCompositeExtract %4 %77 1
%78 = OpCompositeExtract %3 %77 1
%79 = OpExtInst %14 %1 FrexpStruct %45
%80 = OpExtInst %14 %1 FrexpStruct %45
%81 = OpCompositeExtract %4 %80 0
%81 = OpCompositeExtract %3 %80 0
%82 = OpExtInst %14 %1 FrexpStruct %45
%83 = OpCompositeExtract %6 %82 1
%84 = OpExtInst %15 %1 FrexpStruct %47

View File

@ -9,47 +9,47 @@ OpEntryPoint GLCompute %374 "main" %371
OpExecutionMode %374 LocalSize 1 1 1
OpDecorate %371 BuiltIn WorkgroupId
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%6 = OpTypeInt 32 1
%5 = OpTypeVector %6 4
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 4
%5 = OpTypeInt 32 1
%6 = OpTypeVector %5 4
%8 = OpTypeBool
%7 = OpTypeVector %8 4
%9 = OpTypeVector %4 2
%10 = OpTypeVector %4 3
%9 = OpTypeVector %3 2
%10 = OpTypeVector %3 3
%11 = OpTypeMatrix %10 3
%12 = OpTypeMatrix %10 4
%13 = OpTypeMatrix %3 3
%14 = OpTypeVector %6 3
%13 = OpTypeMatrix %4 3
%14 = OpTypeVector %5 3
%16 = OpTypeInt 32 0
%15 = OpTypeVector %16 3
%17 = OpConstant %4 1.0
%18 = OpConstantComposite %3 %17 %17 %17 %17
%19 = OpConstant %4 0.0
%20 = OpConstantComposite %3 %19 %19 %19 %19
%21 = OpConstant %4 0.5
%22 = OpConstantComposite %3 %21 %21 %21 %21
%23 = OpConstant %6 1
%24 = OpConstantComposite %5 %23 %23 %23 %23
%27 = OpTypeFunction %3
%17 = OpConstant %3 1.0
%18 = OpConstantComposite %4 %17 %17 %17 %17
%19 = OpConstant %3 0.0
%20 = OpConstantComposite %4 %19 %19 %19 %19
%21 = OpConstant %3 0.5
%22 = OpConstantComposite %4 %21 %21 %21 %21
%23 = OpConstant %5 1
%24 = OpConstantComposite %6 %23 %23 %23 %23
%27 = OpTypeFunction %4
%28 = OpConstantTrue %8
%29 = OpConstant %6 0
%29 = OpConstant %5 0
%30 = OpConstantFalse %8
%31 = OpConstantComposite %7 %30 %30 %30 %30
%32 = OpConstant %4 0.1
%33 = OpConstantComposite %5 %29 %29 %29 %29
%57 = OpTypeFunction %3 %4 %6
%58 = OpConstant %4 2.0
%32 = OpConstant %3 0.1
%33 = OpConstantComposite %6 %29 %29 %29 %29
%57 = OpTypeFunction %4 %3 %5
%58 = OpConstant %3 2.0
%59 = OpConstantComposite %9 %58 %58
%60 = OpConstant %4 4.0
%60 = OpConstant %3 4.0
%61 = OpConstantComposite %9 %60 %60
%62 = OpConstant %4 8.0
%62 = OpConstant %3 8.0
%63 = OpConstantComposite %9 %62 %62
%64 = OpConstant %6 2
%65 = OpConstantComposite %5 %64 %64 %64 %64
%64 = OpConstant %5 2
%65 = OpConstantComposite %6 %64 %64 %64 %64
%78 = OpTypeFunction %9
%79 = OpConstantComposite %9 %17 %17
%80 = OpConstant %4 3.0
%80 = OpConstant %3 3.0
%81 = OpConstantComposite %9 %80 %80
%83 = OpTypePointer Function %9
%95 = OpTypeFunction %10 %10
@ -65,13 +65,13 @@ OpDecorate %371 BuiltIn WorkgroupId
%110 = OpConstantComposite %7 %30 %30 %30 %30
%122 = OpConstant %16 1
%123 = OpConstant %16 2
%124 = OpTypeVector %6 2
%124 = OpTypeVector %5 2
%125 = OpConstantComposite %124 %23 %23
%126 = OpConstantComposite %124 %64 %64
%127 = OpConstantComposite %15 %123 %123 %123
%128 = OpConstantComposite %15 %122 %122 %122
%129 = OpConstantComposite %3 %58 %58 %58 %58
%130 = OpConstantComposite %3 %17 %17 %17 %17
%129 = OpConstantComposite %4 %58 %58 %58 %58
%130 = OpConstantComposite %4 %17 %17 %17 %17
%131 = OpTypeVector %16 2
%132 = OpConstantComposite %131 %123 %123
%133 = OpConstantComposite %131 %122 %122
@ -80,40 +80,40 @@ OpDecorate %371 BuiltIn WorkgroupId
%136 = OpConstantComposite %10 %58 %58 %58
%137 = OpConstantNull %13
%301 = OpConstantNull %14
%303 = OpTypePointer Function %6
%304 = OpConstantNull %6
%303 = OpTypePointer Function %5
%304 = OpConstantNull %5
%306 = OpTypePointer Function %14
%334 = OpTypePointer Function %6
%334 = OpTypePointer Function %5
%372 = OpTypePointer Input %15
%371 = OpVariable %372 Input
%375 = OpConstantComposite %10 %17 %17 %17
%26 = OpFunction %3 None %27
%26 = OpFunction %4 None %27
%25 = OpLabel
OpBranch %34
%34 = OpLabel
%35 = OpSelect %6 %28 %23 %29
%35 = OpSelect %5 %28 %23 %29
%37 = OpCompositeConstruct %7 %28 %28 %28 %28
%36 = OpSelect %3 %37 %18 %20
%38 = OpSelect %3 %31 %20 %18
%39 = OpExtInst %3 %1 FMix %20 %18 %22
%41 = OpCompositeConstruct %3 %32 %32 %32 %32
%40 = OpExtInst %3 %1 FMix %20 %18 %41
%42 = OpBitcast %4 %23
%43 = OpBitcast %3 %24
%44 = OpCompositeConstruct %5 %35 %35 %35 %35
%45 = OpIAdd %5 %44 %33
%46 = OpConvertSToF %3 %45
%47 = OpFAdd %3 %46 %36
%48 = OpFAdd %3 %47 %39
%49 = OpFAdd %3 %48 %40
%50 = OpCompositeConstruct %3 %42 %42 %42 %42
%51 = OpFAdd %3 %49 %50
%52 = OpFAdd %3 %51 %43
%36 = OpSelect %4 %37 %18 %20
%38 = OpSelect %4 %31 %20 %18
%39 = OpExtInst %4 %1 FMix %20 %18 %22
%41 = OpCompositeConstruct %4 %32 %32 %32 %32
%40 = OpExtInst %4 %1 FMix %20 %18 %41
%42 = OpBitcast %3 %23
%43 = OpBitcast %4 %24
%44 = OpCompositeConstruct %6 %35 %35 %35 %35
%45 = OpIAdd %6 %44 %33
%46 = OpConvertSToF %4 %45
%47 = OpFAdd %4 %46 %36
%48 = OpFAdd %4 %47 %39
%49 = OpFAdd %4 %48 %40
%50 = OpCompositeConstruct %4 %42 %42 %42 %42
%51 = OpFAdd %4 %49 %50
%52 = OpFAdd %4 %51 %43
OpReturnValue %52
OpFunctionEnd
%56 = OpFunction %3 None %57
%54 = OpFunctionParameter %4
%55 = OpFunctionParameter %6
%56 = OpFunction %4 None %57
%54 = OpFunctionParameter %3
%55 = OpFunctionParameter %5
%53 = OpLabel
OpBranch %66
%66 = OpLabel
@ -121,11 +121,11 @@ OpBranch %66
%68 = OpFAdd %9 %59 %67
%69 = OpFSub %9 %68 %61
%70 = OpFDiv %9 %69 %63
%71 = OpCompositeConstruct %5 %55 %55 %55 %55
%72 = OpSRem %5 %71 %65
%73 = OpVectorShuffle %3 %70 %70 0 1 0 1
%74 = OpConvertSToF %3 %72
%75 = OpFAdd %3 %73 %74
%71 = OpCompositeConstruct %6 %55 %55 %55 %55
%72 = OpSRem %6 %71 %65
%73 = OpVectorShuffle %4 %70 %70 0 1 0 1
%74 = OpConvertSToF %4 %72
%75 = OpFAdd %4 %73 %74
OpReturnValue %75
OpFunctionEnd
%77 = OpFunction %9 None %78
@ -172,39 +172,39 @@ OpFunctionEnd
%120 = OpLabel
OpBranch %138
%138 = OpLabel
%139 = OpFNegate %4 %17
%139 = OpFNegate %3 %17
%140 = OpSNegate %124 %125
%141 = OpFNegate %9 %79
%142 = OpIAdd %6 %64 %23
%142 = OpIAdd %5 %64 %23
%143 = OpIAdd %16 %123 %122
%144 = OpFAdd %4 %58 %17
%144 = OpFAdd %3 %58 %17
%145 = OpIAdd %124 %126 %125
%146 = OpIAdd %15 %127 %128
%147 = OpFAdd %3 %129 %130
%148 = OpISub %6 %64 %23
%147 = OpFAdd %4 %129 %130
%148 = OpISub %5 %64 %23
%149 = OpISub %16 %123 %122
%150 = OpFSub %4 %58 %17
%150 = OpFSub %3 %58 %17
%151 = OpISub %124 %126 %125
%152 = OpISub %15 %127 %128
%153 = OpFSub %3 %129 %130
%154 = OpIMul %6 %64 %23
%153 = OpFSub %4 %129 %130
%154 = OpIMul %5 %64 %23
%155 = OpIMul %16 %123 %122
%156 = OpFMul %4 %58 %17
%156 = OpFMul %3 %58 %17
%157 = OpIMul %124 %126 %125
%158 = OpIMul %15 %127 %128
%159 = OpFMul %3 %129 %130
%160 = OpSDiv %6 %64 %23
%159 = OpFMul %4 %129 %130
%160 = OpSDiv %5 %64 %23
%161 = OpUDiv %16 %123 %122
%162 = OpFDiv %4 %58 %17
%162 = OpFDiv %3 %58 %17
%163 = OpSDiv %124 %126 %125
%164 = OpUDiv %15 %127 %128
%165 = OpFDiv %3 %129 %130
%166 = OpSRem %6 %64 %23
%165 = OpFDiv %4 %129 %130
%166 = OpSRem %5 %64 %23
%167 = OpUMod %16 %123 %122
%168 = OpFRem %4 %58 %17
%168 = OpFRem %3 %58 %17
%169 = OpSRem %124 %126 %125
%170 = OpUMod %15 %127 %128
%171 = OpFRem %3 %129 %130
%171 = OpFRem %4 %129 %130
OpBranch %172
%172 = OpLabel
%174 = OpIAdd %124 %126 %125
@ -266,7 +266,7 @@ OpBranch %173
%228 = OpMatrixTimesScalar %11 %134 %17
%229 = OpMatrixTimesScalar %11 %134 %58
%230 = OpMatrixTimesVector %10 %135 %130
%231 = OpVectorTimesMatrix %3 %136 %135
%231 = OpVectorTimesMatrix %4 %136 %135
%232 = OpMatrixTimesMatrix %11 %135 %137
OpReturn
OpFunctionEnd
@ -274,27 +274,27 @@ OpFunctionEnd
%233 = OpLabel
OpBranch %235
%235 = OpLabel
%236 = OpNot %6 %23
%236 = OpNot %5 %23
%237 = OpNot %16 %122
%238 = OpNot %124 %125
%239 = OpNot %15 %128
%240 = OpBitwiseOr %6 %64 %23
%240 = OpBitwiseOr %5 %64 %23
%241 = OpBitwiseOr %16 %123 %122
%242 = OpBitwiseOr %124 %126 %125
%243 = OpBitwiseOr %15 %127 %128
%244 = OpBitwiseAnd %6 %64 %23
%244 = OpBitwiseAnd %5 %64 %23
%245 = OpBitwiseAnd %16 %123 %122
%246 = OpBitwiseAnd %124 %126 %125
%247 = OpBitwiseAnd %15 %127 %128
%248 = OpBitwiseXor %6 %64 %23
%248 = OpBitwiseXor %5 %64 %23
%249 = OpBitwiseXor %16 %123 %122
%250 = OpBitwiseXor %124 %126 %125
%251 = OpBitwiseXor %15 %127 %128
%252 = OpShiftLeftLogical %6 %64 %122
%252 = OpShiftLeftLogical %5 %64 %122
%253 = OpShiftLeftLogical %16 %123 %122
%254 = OpShiftLeftLogical %124 %126 %133
%255 = OpShiftLeftLogical %15 %127 %128
%256 = OpShiftRightArithmetic %6 %64 %122
%256 = OpShiftRightArithmetic %5 %64 %122
%257 = OpShiftRightLogical %16 %123 %122
%258 = OpShiftRightArithmetic %124 %126 %133
%259 = OpShiftRightLogical %15 %127 %128
@ -349,52 +349,52 @@ OpFunctionEnd
OpBranch %307
%307 = OpLabel
OpStore %302 %23
%308 = OpLoad %6 %302
%309 = OpIAdd %6 %308 %23
%308 = OpLoad %5 %302
%309 = OpIAdd %5 %308 %23
OpStore %302 %309
%310 = OpLoad %6 %302
%311 = OpISub %6 %310 %23
%310 = OpLoad %5 %302
%311 = OpISub %5 %310 %23
OpStore %302 %311
%312 = OpLoad %6 %302
%313 = OpLoad %6 %302
%314 = OpIMul %6 %313 %312
%312 = OpLoad %5 %302
%313 = OpLoad %5 %302
%314 = OpIMul %5 %313 %312
OpStore %302 %314
%315 = OpLoad %6 %302
%316 = OpLoad %6 %302
%317 = OpSDiv %6 %316 %315
%315 = OpLoad %5 %302
%316 = OpLoad %5 %302
%317 = OpSDiv %5 %316 %315
OpStore %302 %317
%318 = OpLoad %6 %302
%319 = OpSRem %6 %318 %23
%318 = OpLoad %5 %302
%319 = OpSRem %5 %318 %23
OpStore %302 %319
%320 = OpLoad %6 %302
%321 = OpBitwiseAnd %6 %320 %29
%320 = OpLoad %5 %302
%321 = OpBitwiseAnd %5 %320 %29
OpStore %302 %321
%322 = OpLoad %6 %302
%323 = OpBitwiseOr %6 %322 %29
%322 = OpLoad %5 %302
%323 = OpBitwiseOr %5 %322 %29
OpStore %302 %323
%324 = OpLoad %6 %302
%325 = OpBitwiseXor %6 %324 %29
%324 = OpLoad %5 %302
%325 = OpBitwiseXor %5 %324 %29
OpStore %302 %325
%326 = OpLoad %6 %302
%327 = OpShiftLeftLogical %6 %326 %123
%326 = OpLoad %5 %302
%327 = OpShiftLeftLogical %5 %326 %123
OpStore %302 %327
%328 = OpLoad %6 %302
%329 = OpShiftRightArithmetic %6 %328 %122
%328 = OpLoad %5 %302
%329 = OpShiftRightArithmetic %5 %328 %122
OpStore %302 %329
%330 = OpLoad %6 %302
%331 = OpIAdd %6 %330 %23
%330 = OpLoad %5 %302
%331 = OpIAdd %5 %330 %23
OpStore %302 %331
%332 = OpLoad %6 %302
%333 = OpISub %6 %332 %23
%332 = OpLoad %5 %302
%333 = OpISub %5 %332 %23
OpStore %302 %333
%335 = OpAccessChain %334 %305 %23
%336 = OpLoad %6 %335
%337 = OpIAdd %6 %336 %23
%336 = OpLoad %5 %335
%337 = OpIAdd %5 %336 %23
%338 = OpAccessChain %334 %305 %23
OpStore %338 %337
%339 = OpAccessChain %334 %305 %23
%340 = OpLoad %6 %339
%341 = OpISub %6 %340 %23
%340 = OpLoad %5 %339
%341 = OpISub %5 %340 %23
%342 = OpAccessChain %334 %305 %23
OpStore %342 %341
OpReturn
@ -403,30 +403,30 @@ OpFunctionEnd
%343 = OpLabel
OpBranch %345
%345 = OpLabel
%346 = OpSNegate %6 %23
%347 = OpSNegate %6 %23
%348 = OpSNegate %6 %347
%349 = OpSNegate %6 %23
%350 = OpSNegate %6 %349
%351 = OpSNegate %6 %23
%352 = OpSNegate %6 %351
%353 = OpSNegate %6 %23
%354 = OpSNegate %6 %353
%355 = OpSNegate %6 %354
%356 = OpSNegate %6 %23
%357 = OpSNegate %6 %356
%358 = OpSNegate %6 %357
%359 = OpSNegate %6 %358
%360 = OpSNegate %6 %23
%361 = OpSNegate %6 %360
%362 = OpSNegate %6 %361
%363 = OpSNegate %6 %362
%364 = OpSNegate %6 %363
%365 = OpSNegate %6 %23
%366 = OpSNegate %6 %365
%367 = OpSNegate %6 %366
%368 = OpSNegate %6 %367
%369 = OpSNegate %6 %368
%346 = OpSNegate %5 %23
%347 = OpSNegate %5 %23
%348 = OpSNegate %5 %347
%349 = OpSNegate %5 %23
%350 = OpSNegate %5 %349
%351 = OpSNegate %5 %23
%352 = OpSNegate %5 %351
%353 = OpSNegate %5 %23
%354 = OpSNegate %5 %353
%355 = OpSNegate %5 %354
%356 = OpSNegate %5 %23
%357 = OpSNegate %5 %356
%358 = OpSNegate %5 %357
%359 = OpSNegate %5 %358
%360 = OpSNegate %5 %23
%361 = OpSNegate %5 %360
%362 = OpSNegate %5 %361
%363 = OpSNegate %5 %362
%364 = OpSNegate %5 %363
%365 = OpSNegate %5 %23
%366 = OpSNegate %5 %365
%367 = OpSNegate %5 %366
%368 = OpSNegate %5 %367
%369 = OpSNegate %5 %368
OpReturn
OpFunctionEnd
%374 = OpFunction %2 None %104
@ -434,12 +434,12 @@ OpFunctionEnd
%373 = OpLoad %15 %371
OpBranch %376
%376 = OpLabel
%377 = OpFunctionCall %3 %26
%377 = OpFunctionCall %4 %26
%378 = OpCompositeExtract %16 %373 0
%379 = OpConvertUToF %4 %378
%379 = OpConvertUToF %3 %378
%380 = OpCompositeExtract %16 %373 1
%381 = OpBitcast %6 %380
%382 = OpFunctionCall %3 %56 %379 %381
%381 = OpBitcast %5 %380
%382 = OpFunctionCall %4 %56 %379 %381
%383 = OpFunctionCall %10 %94 %375
%384 = OpFunctionCall %2 %103
%385 = OpFunctionCall %2 %121

View File

@ -45,17 +45,17 @@ OpDecorate %21 Block
OpMemberDecorate %21 0 Offset 0
OpDecorate %24 BuiltIn Position
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 3
%5 = OpTypeStruct %3
%6 = OpTypeStruct %5 %4
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 3
%5 = OpTypeStruct %4
%6 = OpTypeStruct %5 %3
%9 = OpTypeInt 32 0
%8 = OpConstant %9 2
%7 = OpTypeArray %3 %8
%10 = OpTypeStruct %7 %4
%11 = OpTypeMatrix %3 4
%12 = OpTypeStruct %11 %4
%13 = OpTypeVector %4 4
%7 = OpTypeArray %4 %8
%10 = OpTypeStruct %7 %3
%11 = OpTypeMatrix %4 4
%12 = OpTypeStruct %11 %3
%13 = OpTypeVector %3 4
%15 = OpTypeStruct %6
%16 = OpTypePointer Uniform %15
%14 = OpVariable %16 Uniform
@ -72,9 +72,9 @@ OpDecorate %24 BuiltIn Position
%29 = OpConstant %9 0
%31 = OpTypePointer Uniform %10
%33 = OpTypePointer Uniform %12
%35 = OpConstant %4 1.0
%35 = OpConstant %3 1.0
%36 = OpConstantComposite %13 %35 %35 %35 %35
%38 = OpTypePointer Uniform %4
%38 = OpTypePointer Uniform %3
%39 = OpConstant %9 1
%26 = OpFunction %2 None %27
%23 = OpLabel
@ -84,13 +84,13 @@ OpDecorate %24 BuiltIn Position
OpBranch %37
%37 = OpLabel
%40 = OpAccessChain %38 %30 %39
%41 = OpLoad %4 %40
%41 = OpLoad %3 %40
%42 = OpVectorTimesScalar %13 %36 %41
%43 = OpAccessChain %38 %32 %39
%44 = OpLoad %4 %43
%44 = OpLoad %3 %43
%45 = OpVectorTimesScalar %13 %42 %44
%46 = OpAccessChain %38 %34 %39
%47 = OpLoad %4 %46
%47 = OpLoad %3 %46
%48 = OpVectorTimesScalar %13 %45 %47
OpStore %24 %48
OpReturn

View File

@ -24,20 +24,20 @@ OpDecorate %7 Block
OpDecorate %8 DescriptorSet 0
OpDecorate %8 Binding 0
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpTypeVector %4 2
%3 = OpTypeInt 32 1
%4 = OpTypeVector %3 2
%5 = OpTypeInt 32 0
%6 = OpTypeRuntimeArray %5
%7 = OpTypeStruct %6
%9 = OpTypePointer StorageBuffer %7
%8 = OpVariable %9 StorageBuffer
%12 = OpTypeFunction %2
%13 = OpConstant %4 10
%15 = OpTypePointer Function %3
%16 = OpConstantNull %3
%18 = OpTypePointer Function %4
%13 = OpConstant %3 10
%15 = OpTypePointer Function %4
%16 = OpConstantNull %4
%18 = OpTypePointer Function %3
%19 = OpConstant %5 0
%25 = OpTypeFunction %2 %4 %5
%25 = OpTypeFunction %2 %3 %5
%27 = OpTypePointer StorageBuffer %6
%28 = OpTypePointer StorageBuffer %5
%11 = OpFunction %2 None %12
@ -50,7 +50,7 @@ OpStore %20 %13
OpReturn
OpFunctionEnd
%24 = OpFunction %2 None %25
%22 = OpFunctionParameter %4
%22 = OpFunctionParameter %3
%23 = OpFunctionParameter %5
%21 = OpLabel
OpBranch %26
@ -63,7 +63,7 @@ OpStore %32 %31
OpReturn
OpFunctionEnd
%36 = OpFunction %2 None %25
%34 = OpFunctionParameter %4
%34 = OpFunctionParameter %3
%35 = OpFunctionParameter %5
%33 = OpLabel
OpBranch %37

View File

@ -41,24 +41,24 @@ OpMemberDecorate %25 0 Offset 0
OpDecorate %27 DescriptorSet 0
OpDecorate %27 Binding 2
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 4
%7 = OpTypeInt 32 0
%6 = OpConstant %7 10
%5 = OpTypeArray %3 %6
%5 = OpTypeArray %4 %6
%8 = OpTypeStruct %5
%10 = OpConstant %7 20
%9 = OpTypeArray %3 %10
%9 = OpTypeArray %4 %10
%11 = OpTypeStruct %9
%12 = OpTypeImage %4 2D 0 1 0 1 Unknown
%12 = OpTypeImage %3 2D 0 1 0 1 Unknown
%14 = OpConstant %7 30
%13 = OpTypeArray %4 %14
%13 = OpTypeArray %3 %14
%16 = OpConstant %7 40
%15 = OpTypeArray %4 %16
%18 = OpTypeInt 32 1
%17 = OpTypeVector %18 2
%15 = OpTypeArray %3 %16
%17 = OpTypeInt 32 1
%18 = OpTypeVector %17 2
%20 = OpConstant %7 2
%19 = OpTypeArray %3 %20
%19 = OpTypeArray %4 %20
%22 = OpTypeStruct %8
%23 = OpTypePointer StorageBuffer %22
%21 = OpVariable %23 StorageBuffer
@ -72,35 +72,35 @@ OpDecorate %27 Binding 2
%32 = OpTypePointer Private %15
%33 = OpConstantNull %15
%31 = OpVariable %32 Private %33
%39 = OpTypeFunction %3 %17 %18 %18
%39 = OpTypeFunction %4 %18 %17 %17
%40 = OpTypePointer StorageBuffer %8
%41 = OpConstant %7 0
%43 = OpTypePointer Uniform %11
%46 = OpConstant %4 0.707
%47 = OpConstant %4 0.0
%48 = OpConstant %4 1.0
%49 = OpConstantComposite %3 %46 %47 %47 %48
%50 = OpConstantComposite %3 %47 %46 %47 %48
%46 = OpConstant %3 0.707
%47 = OpConstant %3 0.0
%48 = OpConstant %3 1.0
%49 = OpConstantComposite %4 %46 %47 %47 %48
%50 = OpConstantComposite %4 %47 %46 %47 %48
%51 = OpConstantComposite %19 %49 %50
%53 = OpTypePointer Function %19
%55 = OpTypePointer StorageBuffer %5
%56 = OpTypePointer StorageBuffer %3
%56 = OpTypePointer StorageBuffer %4
%59 = OpTypePointer Uniform %9
%60 = OpTypePointer Uniform %3
%64 = OpTypeVector %18 3
%60 = OpTypePointer Uniform %4
%64 = OpTypeVector %17 3
%66 = OpTypeBool
%67 = OpConstantNull %3
%67 = OpConstantNull %4
%73 = OpTypeVector %66 3
%80 = OpTypePointer Workgroup %4
%80 = OpTypePointer Workgroup %3
%81 = OpConstant %7 29
%87 = OpTypePointer Private %4
%87 = OpTypePointer Private %3
%88 = OpConstant %7 39
%94 = OpTypePointer Function %3
%94 = OpTypePointer Function %4
%95 = OpConstant %7 1
%38 = OpFunction %3 None %39
%35 = OpFunctionParameter %17
%36 = OpFunctionParameter %18
%37 = OpFunctionParameter %18
%38 = OpFunction %4 None %39
%35 = OpFunctionParameter %18
%36 = OpFunctionParameter %17
%37 = OpFunctionParameter %17
%34 = OpLabel
%52 = OpVariable %53 Function %51
%42 = OpAccessChain %40 %21 %41
@ -109,12 +109,12 @@ OpDecorate %27 Binding 2
OpBranch %54
%54 = OpLabel
%57 = OpAccessChain %56 %42 %41 %36
%58 = OpLoad %3 %57
%58 = OpLoad %4 %57
%61 = OpAccessChain %60 %44 %41 %36
%62 = OpLoad %3 %61
%63 = OpFAdd %3 %58 %62
%62 = OpLoad %4 %61
%63 = OpFAdd %4 %58 %62
%65 = OpCompositeConstruct %64 %35 %36
%68 = OpImageQueryLevels %18 %45
%68 = OpImageQueryLevels %17 %45
%69 = OpULessThan %66 %37 %68
OpSelectionMerge %70 None
OpBranchConditional %69 %71 %70
@ -124,24 +124,24 @@ OpBranchConditional %69 %71 %70
%75 = OpAll %66 %74
OpBranchConditional %75 %76 %70
%76 = OpLabel
%77 = OpImageFetch %3 %45 %65 Lod %37
%77 = OpImageFetch %4 %45 %65 Lod %37
OpBranch %70
%70 = OpLabel
%78 = OpPhi %3 %67 %54 %67 %71 %77 %76
%79 = OpFAdd %3 %63 %78
%78 = OpPhi %4 %67 %54 %67 %71 %77 %76
%79 = OpFAdd %4 %63 %78
%82 = OpExtInst %7 %1 UMin %36 %81
%83 = OpAccessChain %80 %29 %82
%84 = OpLoad %4 %83
%85 = OpCompositeConstruct %3 %84 %84 %84 %84
%86 = OpFAdd %3 %79 %85
%84 = OpLoad %3 %83
%85 = OpCompositeConstruct %4 %84 %84 %84 %84
%86 = OpFAdd %4 %79 %85
%89 = OpExtInst %7 %1 UMin %36 %88
%90 = OpAccessChain %87 %31 %89
%91 = OpLoad %4 %90
%92 = OpCompositeConstruct %3 %91 %91 %91 %91
%93 = OpFAdd %3 %86 %92
%91 = OpLoad %3 %90
%92 = OpCompositeConstruct %4 %91 %91 %91 %91
%93 = OpFAdd %4 %86 %92
%96 = OpExtInst %7 %1 UMin %36 %95
%97 = OpAccessChain %94 %52 %96
%98 = OpLoad %3 %97
%99 = OpFAdd %3 %93 %98
%98 = OpLoad %4 %97
%99 = OpFAdd %4 %93 %98
OpReturnValue %99
OpFunctionEnd

View File

@ -39,44 +39,44 @@ OpDecorate %17 Binding 1
OpDecorate %18 Block
OpMemberDecorate %18 0 Offset 0
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 3
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 3
%5 = OpTypeAccelerationStructureNV
%6 = OpTypeInt 32 0
%7 = OpTypeVector %4 2
%7 = OpTypeVector %3 2
%8 = OpTypeBool
%9 = OpTypeMatrix %3 4
%10 = OpTypeStruct %6 %4 %6 %6 %6 %6 %6 %7 %8 %9 %9
%9 = OpTypeMatrix %4 4
%10 = OpTypeStruct %6 %3 %6 %6 %6 %6 %6 %7 %8 %9 %9
%11 = OpTypeRayQueryKHR
%12 = OpTypeStruct %6 %6 %4 %4 %3 %3
%13 = OpTypeStruct %6 %3
%14 = OpTypeVector %4 4
%12 = OpTypeStruct %6 %6 %3 %3 %4 %4
%13 = OpTypeStruct %6 %4
%14 = OpTypeVector %3 4
%16 = OpTypePointer UniformConstant %5
%15 = OpVariable %16 UniformConstant
%18 = OpTypeStruct %13
%19 = OpTypePointer StorageBuffer %18
%17 = OpVariable %19 StorageBuffer
%26 = OpTypeFunction %10 %3 %3 %16
%26 = OpTypeFunction %10 %4 %4 %16
%27 = OpConstant %6 4
%28 = OpConstant %6 255
%29 = OpConstant %4 0.1
%30 = OpConstant %4 100.0
%29 = OpConstant %3 0.1
%30 = OpConstant %3 100.0
%32 = OpTypePointer Function %11
%50 = OpConstant %6 1
%67 = OpTypeFunction %3 %3 %10
%68 = OpConstant %4 1.0
%69 = OpConstant %4 2.4
%70 = OpConstant %4 0.0
%67 = OpTypeFunction %4 %4 %10
%68 = OpConstant %3 1.0
%69 = OpConstant %3 2.4
%70 = OpConstant %3 0.0
%85 = OpTypeFunction %2
%87 = OpTypePointer StorageBuffer %13
%88 = OpConstant %6 0
%90 = OpConstantComposite %3 %70 %70 %70
%91 = OpConstantComposite %3 %70 %68 %70
%90 = OpConstantComposite %4 %70 %70 %70
%91 = OpConstantComposite %4 %70 %68 %70
%94 = OpTypePointer StorageBuffer %6
%99 = OpTypePointer StorageBuffer %3
%99 = OpTypePointer StorageBuffer %4
%25 = OpFunction %10 None %26
%21 = OpFunctionParameter %3
%22 = OpFunctionParameter %3
%21 = OpFunctionParameter %4
%22 = OpFunctionParameter %4
%23 = OpFunctionParameter %16
%20 = OpLabel
%31 = OpVariable %32 Function
@ -86,10 +86,10 @@ OpBranch %33
%34 = OpCompositeConstruct %12 %27 %28 %29 %30 %21 %22
%35 = OpCompositeExtract %6 %34 0
%36 = OpCompositeExtract %6 %34 1
%37 = OpCompositeExtract %4 %34 2
%38 = OpCompositeExtract %4 %34 3
%39 = OpCompositeExtract %3 %34 4
%40 = OpCompositeExtract %3 %34 5
%37 = OpCompositeExtract %3 %34 2
%38 = OpCompositeExtract %3 %34 3
%39 = OpCompositeExtract %4 %34 4
%40 = OpCompositeExtract %4 %34 5
OpRayQueryInitializeKHR %31 %24 %35 %36 %39 %37 %40 %38
OpBranch %41
%41 = OpLabel
@ -116,7 +116,7 @@ OpBranch %41
%54 = OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR %6 %31 %50
%55 = OpRayQueryGetIntersectionGeometryIndexKHR %6 %31 %50
%56 = OpRayQueryGetIntersectionPrimitiveIndexKHR %6 %31 %50
%57 = OpRayQueryGetIntersectionTKHR %4 %31 %50
%57 = OpRayQueryGetIntersectionTKHR %3 %31 %50
%58 = OpRayQueryGetIntersectionBarycentricsKHR %7 %31 %50
%59 = OpRayQueryGetIntersectionFrontFaceKHR %8 %31 %50
%60 = OpRayQueryGetIntersectionObjectToWorldKHR %9 %31 %50
@ -124,23 +124,23 @@ OpBranch %41
%62 = OpCompositeConstruct %10 %51 %57 %52 %53 %54 %55 %56 %58 %59 %60 %61
OpReturnValue %62
OpFunctionEnd
%66 = OpFunction %3 None %67
%64 = OpFunctionParameter %3
%66 = OpFunction %4 None %67
%64 = OpFunctionParameter %4
%65 = OpFunctionParameter %10
%63 = OpLabel
OpBranch %71
%71 = OpLabel
%72 = OpCompositeExtract %9 %65 10
%73 = OpCompositeConstruct %14 %64 %68
%74 = OpMatrixTimesVector %3 %72 %73
%74 = OpMatrixTimesVector %4 %72 %73
%75 = OpVectorShuffle %7 %74 %74 0 1
%76 = OpExtInst %7 %1 Normalize %75
%77 = OpVectorTimesScalar %7 %76 %69
%78 = OpCompositeExtract %9 %65 9
%79 = OpCompositeConstruct %14 %77 %70 %68
%80 = OpMatrixTimesVector %3 %78 %79
%81 = OpFSub %3 %64 %80
%82 = OpExtInst %3 %1 Normalize %81
%80 = OpMatrixTimesVector %4 %78 %79
%81 = OpFSub %4 %64 %80
%82 = OpExtInst %4 %1 Normalize %81
OpReturnValue %82
OpFunctionEnd
%84 = OpFunction %2 None %85
@ -155,9 +155,9 @@ OpBranch %92
%97 = OpSelect %6 %96 %50 %88
%98 = OpAccessChain %94 %89 %88
OpStore %98 %97
%100 = OpCompositeExtract %4 %93 1
%101 = OpVectorTimesScalar %3 %91 %100
%102 = OpFunctionCall %3 %66 %101 %93
%100 = OpCompositeExtract %3 %93 1
%101 = OpVectorTimesScalar %4 %91 %100
%102 = OpFunctionCall %4 %66 %101 %93
%103 = OpAccessChain %99 %89 %50
OpStore %103 %102
OpReturn

View File

@ -108,26 +108,26 @@ OpDecorate %205 Location 0
OpDecorate %207 Location 1
OpDecorate %209 Location 0
%2 = OpTypeVoid
%5 = OpTypeFloat 32
%4 = OpTypeVector %5 4
%3 = OpTypeMatrix %4 4
%7 = OpTypeInt 32 0
%6 = OpTypeVector %7 4
%8 = OpTypeStruct %3 %6
%9 = OpTypeStruct %3 %4
%10 = OpTypeVector %5 3
%11 = OpTypeStruct %4 %10 %4
%3 = OpTypeFloat 32
%5 = OpTypeVector %3 4
%4 = OpTypeMatrix %5 4
%6 = OpTypeInt 32 0
%7 = OpTypeVector %6 4
%8 = OpTypeStruct %4 %7
%9 = OpTypeStruct %4 %5
%10 = OpTypeVector %3 3
%11 = OpTypeStruct %5 %10 %5
%13 = OpTypeInt 32 1
%12 = OpTypeVector %13 4
%14 = OpTypeMatrix %10 3
%15 = OpTypeStruct %3 %4 %4
%15 = OpTypeStruct %4 %5 %5
%16 = OpTypeRuntimeArray %15
%18 = OpConstant %7 10
%18 = OpConstant %6 10
%17 = OpTypeArray %15 %18
%19 = OpTypeImage %5 2D 1 1 0 1 Unknown
%19 = OpTypeImage %3 2D 1 1 0 1 Unknown
%20 = OpTypeSampler
%21 = OpTypeVector %5 2
%22 = OpConstant %5 0.05
%21 = OpTypeVector %3 2
%22 = OpConstant %3 0.05
%23 = OpConstantComposite %10 %22 %22 %22
%25 = OpTypeStruct %8
%26 = OpTypePointer Uniform %25
@ -145,11 +145,11 @@ OpDecorate %209 Location 0
%36 = OpVariable %37 UniformConstant
%39 = OpTypePointer UniformConstant %20
%38 = OpVariable %39 UniformConstant
%44 = OpTypeFunction %5 %7 %4
%47 = OpConstant %5 0.0
%48 = OpConstant %5 1.0
%49 = OpConstant %5 0.5
%50 = OpConstant %5 -0.5
%44 = OpTypeFunction %3 %6 %5
%47 = OpConstant %3 0.0
%48 = OpConstant %3 1.0
%49 = OpConstant %3 0.5
%50 = OpConstant %3 -0.5
%51 = OpConstantComposite %21 %49 %50
%52 = OpConstantComposite %21 %49 %49
%55 = OpTypeBool
@ -157,70 +157,70 @@ OpDecorate %209 Location 0
%75 = OpTypePointer Input %12
%74 = OpVariable %75 Input
%77 = OpVariable %75 Input
%80 = OpTypePointer Output %4
%80 = OpTypePointer Output %5
%79 = OpVariable %80 Output
%82 = OpTypePointer Output %10
%81 = OpVariable %82 Output
%83 = OpVariable %80 Output
%85 = OpTypeFunction %2
%86 = OpTypePointer Uniform %8
%87 = OpConstant %7 0
%87 = OpConstant %6 0
%89 = OpTypePointer Uniform %9
%92 = OpTypePointer Function %11
%93 = OpConstantNull %11
%95 = OpTypePointer Uniform %3
%95 = OpTypePointer Uniform %4
%102 = OpTypePointer Function %10
%110 = OpTypeVector %13 3
%114 = OpConstant %7 1
%116 = OpTypePointer Function %4
%117 = OpConstant %7 2
%125 = OpTypePointer Output %5
%134 = OpTypePointer Input %4
%114 = OpConstant %6 1
%116 = OpTypePointer Function %5
%117 = OpConstant %6 2
%125 = OpTypePointer Output %3
%134 = OpTypePointer Input %5
%133 = OpVariable %134 Input
%137 = OpTypePointer Input %10
%136 = OpVariable %137 Input
%139 = OpVariable %134 Input
%141 = OpVariable %80 Output
%145 = OpTypePointer StorageBuffer %16
%151 = OpTypePointer Function %7
%160 = OpTypePointer Uniform %6
%161 = OpTypePointer Uniform %7
%151 = OpTypePointer Function %6
%160 = OpTypePointer Uniform %7
%161 = OpTypePointer Uniform %6
%171 = OpTypePointer StorageBuffer %15
%197 = OpTypePointer Uniform %4
%197 = OpTypePointer Uniform %5
%203 = OpVariable %134 Input
%205 = OpVariable %137 Input
%207 = OpVariable %134 Input
%209 = OpVariable %80 Output
%213 = OpTypePointer Uniform %17
%236 = OpTypePointer Uniform %15
%43 = OpFunction %5 None %44
%41 = OpFunctionParameter %7
%42 = OpFunctionParameter %4
%43 = OpFunction %3 None %44
%41 = OpFunctionParameter %6
%42 = OpFunctionParameter %5
%40 = OpLabel
%45 = OpLoad %19 %36
%46 = OpLoad %20 %38
OpBranch %53
%53 = OpLabel
%54 = OpCompositeExtract %5 %42 3
%54 = OpCompositeExtract %3 %42 3
%56 = OpFOrdLessThanEqual %55 %54 %47
OpSelectionMerge %57 None
OpBranchConditional %56 %58 %57
%58 = OpLabel
OpReturnValue %48
%57 = OpLabel
%59 = OpCompositeExtract %5 %42 3
%60 = OpFDiv %5 %48 %59
%59 = OpCompositeExtract %3 %42 3
%60 = OpFDiv %3 %48 %59
%61 = OpVectorShuffle %21 %42 %42 0 1
%62 = OpFMul %21 %61 %51
%63 = OpVectorTimesScalar %21 %62 %60
%64 = OpFAdd %21 %63 %52
%65 = OpBitcast %13 %41
%66 = OpCompositeExtract %5 %42 2
%67 = OpFMul %5 %66 %60
%69 = OpConvertSToF %5 %65
%66 = OpCompositeExtract %3 %42 2
%67 = OpFMul %3 %66 %60
%69 = OpConvertSToF %3 %65
%70 = OpCompositeConstruct %10 %64 %69
%71 = OpSampledImage %68 %45 %46
%72 = OpImageSampleDrefExplicitLod %5 %71 %70 %67 Lod %47
%72 = OpImageSampleDrefExplicitLod %3 %71 %70 %67 Lod %47
OpReturnValue %72
OpFunctionEnd
%84 = OpFunction %2 None %85
@ -233,16 +233,16 @@ OpFunctionEnd
OpBranch %94
%94 = OpLabel
%96 = OpAccessChain %95 %90 %87
%97 = OpLoad %3 %96
%97 = OpLoad %4 %96
%98 = OpAccessChain %95 %90 %87
%99 = OpLoad %3 %98
%100 = OpConvertSToF %4 %76
%101 = OpMatrixTimesVector %4 %99 %100
%103 = OpCompositeExtract %4 %97 0
%99 = OpLoad %4 %98
%100 = OpConvertSToF %5 %76
%101 = OpMatrixTimesVector %5 %99 %100
%103 = OpCompositeExtract %5 %97 0
%104 = OpVectorShuffle %10 %103 %103 0 1 2
%105 = OpCompositeExtract %4 %97 1
%105 = OpCompositeExtract %5 %97 1
%106 = OpVectorShuffle %10 %105 %105 0 1 2
%107 = OpCompositeExtract %4 %97 2
%107 = OpCompositeExtract %5 %97 2
%108 = OpVectorShuffle %10 %107 %107 0 1 2
%109 = OpCompositeConstruct %14 %104 %106 %108
%111 = OpVectorShuffle %110 %78 %78 0 1 2
@ -253,20 +253,20 @@ OpStore %115 %113
%118 = OpAccessChain %116 %91 %117
OpStore %118 %101
%119 = OpAccessChain %95 %88 %87
%120 = OpLoad %3 %119
%121 = OpMatrixTimesVector %4 %120 %101
%120 = OpLoad %4 %119
%121 = OpMatrixTimesVector %5 %120 %101
%122 = OpAccessChain %116 %91 %87
OpStore %122 %121
%123 = OpLoad %11 %91
%124 = OpCompositeExtract %4 %123 0
%124 = OpCompositeExtract %5 %123 0
OpStore %79 %124
%126 = OpAccessChain %125 %79 %114
%127 = OpLoad %5 %126
%128 = OpFNegate %5 %127
%127 = OpLoad %3 %126
%128 = OpFNegate %3 %127
OpStore %126 %128
%129 = OpCompositeExtract %10 %123 1
OpStore %81 %129
%130 = OpCompositeExtract %4 %123 2
%130 = OpCompositeExtract %5 %123 2
OpStore %83 %130
OpReturn
OpFunctionEnd
@ -274,9 +274,9 @@ OpFunctionEnd
%131 = OpLabel
%149 = OpVariable %102 Function %23
%150 = OpVariable %151 Function %87
%135 = OpLoad %4 %133
%135 = OpLoad %5 %133
%138 = OpLoad %10 %136
%140 = OpLoad %4 %139
%140 = OpLoad %5 %139
%132 = OpCompositeConstruct %11 %135 %138 %140
%143 = OpAccessChain %86 %24 %87
%144 = OpAccessChain %89 %27 %87
@ -292,10 +292,10 @@ OpBranch %155
OpLoopMerge %156 %158 None
OpBranch %157
%157 = OpLabel
%159 = OpLoad %7 %150
%159 = OpLoad %6 %150
%162 = OpAccessChain %161 %143 %114 %87
%163 = OpLoad %7 %162
%164 = OpExtInst %7 %1 UMin %163 %18
%163 = OpLoad %6 %162
%164 = OpExtInst %6 %1 UMin %163 %18
%165 = OpULessThan %55 %159 %164
OpSelectionMerge %166 None
OpBranchConditional %165 %166 %167
@ -304,24 +304,24 @@ OpBranch %156
%166 = OpLabel
OpBranch %168
%168 = OpLabel
%170 = OpLoad %7 %150
%170 = OpLoad %6 %150
%172 = OpAccessChain %171 %146 %170
%173 = OpLoad %15 %172
%174 = OpLoad %7 %150
%175 = OpCompositeExtract %3 %173 0
%176 = OpCompositeExtract %4 %132 2
%177 = OpMatrixTimesVector %4 %175 %176
%178 = OpFunctionCall %5 %43 %174 %177
%179 = OpCompositeExtract %4 %173 1
%174 = OpLoad %6 %150
%175 = OpCompositeExtract %4 %173 0
%176 = OpCompositeExtract %5 %132 2
%177 = OpMatrixTimesVector %5 %175 %176
%178 = OpFunctionCall %3 %43 %174 %177
%179 = OpCompositeExtract %5 %173 1
%180 = OpVectorShuffle %10 %179 %179 0 1 2
%181 = OpCompositeExtract %4 %132 2
%181 = OpCompositeExtract %5 %132 2
%182 = OpVectorShuffle %10 %181 %181 0 1 2
%183 = OpFSub %10 %180 %182
%184 = OpExtInst %10 %1 Normalize %183
%185 = OpDot %5 %154 %184
%186 = OpExtInst %5 %1 FMax %47 %185
%187 = OpFMul %5 %178 %186
%188 = OpCompositeExtract %4 %173 2
%185 = OpDot %3 %154 %184
%186 = OpExtInst %3 %1 FMax %47 %185
%187 = OpFMul %3 %178 %186
%188 = OpCompositeExtract %5 %173 2
%189 = OpVectorShuffle %10 %188 %188 0 1 2
%190 = OpVectorTimesScalar %10 %189 %187
%191 = OpLoad %10 %149
@ -331,16 +331,16 @@ OpBranch %169
%169 = OpLabel
OpBranch %158
%158 = OpLabel
%193 = OpLoad %7 %150
%194 = OpIAdd %7 %193 %114
%193 = OpLoad %6 %150
%194 = OpIAdd %6 %193 %114
OpStore %150 %194
OpBranch %155
%156 = OpLabel
%195 = OpLoad %10 %149
%196 = OpCompositeConstruct %4 %195 %48
%196 = OpCompositeConstruct %5 %195 %48
%198 = OpAccessChain %197 %144 %114
%199 = OpLoad %4 %198
%200 = OpFMul %4 %196 %199
%199 = OpLoad %5 %198
%200 = OpFMul %5 %196 %199
OpStore %141 %200
OpReturn
OpFunctionEnd
@ -348,9 +348,9 @@ OpFunctionEnd
%201 = OpLabel
%217 = OpVariable %102 Function %23
%218 = OpVariable %151 Function %87
%204 = OpLoad %4 %203
%204 = OpLoad %5 %203
%206 = OpLoad %10 %205
%208 = OpLoad %4 %207
%208 = OpLoad %5 %207
%202 = OpCompositeConstruct %11 %204 %206 %208
%211 = OpAccessChain %86 %24 %87
%212 = OpAccessChain %89 %27 %87
@ -366,10 +366,10 @@ OpBranch %222
OpLoopMerge %223 %225 None
OpBranch %224
%224 = OpLabel
%226 = OpLoad %7 %218
%226 = OpLoad %6 %218
%227 = OpAccessChain %161 %211 %114 %87
%228 = OpLoad %7 %227
%229 = OpExtInst %7 %1 UMin %228 %18
%228 = OpLoad %6 %227
%229 = OpExtInst %6 %1 UMin %228 %18
%230 = OpULessThan %55 %226 %229
OpSelectionMerge %231 None
OpBranchConditional %230 %231 %232
@ -378,24 +378,24 @@ OpBranch %223
%231 = OpLabel
OpBranch %233
%233 = OpLabel
%235 = OpLoad %7 %218
%235 = OpLoad %6 %218
%237 = OpAccessChain %236 %214 %235
%238 = OpLoad %15 %237
%239 = OpLoad %7 %218
%240 = OpCompositeExtract %3 %238 0
%241 = OpCompositeExtract %4 %202 2
%242 = OpMatrixTimesVector %4 %240 %241
%243 = OpFunctionCall %5 %43 %239 %242
%244 = OpCompositeExtract %4 %238 1
%239 = OpLoad %6 %218
%240 = OpCompositeExtract %4 %238 0
%241 = OpCompositeExtract %5 %202 2
%242 = OpMatrixTimesVector %5 %240 %241
%243 = OpFunctionCall %3 %43 %239 %242
%244 = OpCompositeExtract %5 %238 1
%245 = OpVectorShuffle %10 %244 %244 0 1 2
%246 = OpCompositeExtract %4 %202 2
%246 = OpCompositeExtract %5 %202 2
%247 = OpVectorShuffle %10 %246 %246 0 1 2
%248 = OpFSub %10 %245 %247
%249 = OpExtInst %10 %1 Normalize %248
%250 = OpDot %5 %221 %249
%251 = OpExtInst %5 %1 FMax %47 %250
%252 = OpFMul %5 %243 %251
%253 = OpCompositeExtract %4 %238 2
%250 = OpDot %3 %221 %249
%251 = OpExtInst %3 %1 FMax %47 %250
%252 = OpFMul %3 %243 %251
%253 = OpCompositeExtract %5 %238 2
%254 = OpVectorShuffle %10 %253 %253 0 1 2
%255 = OpVectorTimesScalar %10 %254 %252
%256 = OpLoad %10 %217
@ -405,16 +405,16 @@ OpBranch %234
%234 = OpLabel
OpBranch %225
%225 = OpLabel
%258 = OpLoad %7 %218
%259 = OpIAdd %7 %258 %114
%258 = OpLoad %6 %218
%259 = OpIAdd %6 %258 %114
OpStore %218 %259
OpBranch %222
%223 = OpLabel
%260 = OpLoad %10 %217
%261 = OpCompositeConstruct %4 %260 %48
%261 = OpCompositeConstruct %5 %260 %48
%262 = OpAccessChain %197 %212 %114
%263 = OpLoad %4 %262
%264 = OpFMul %4 %261 %263
%263 = OpLoad %5 %262
%264 = OpFMul %5 %261 %263
OpStore %209 %264
OpReturn
OpFunctionEnd

View File

@ -52,11 +52,11 @@ OpDecorate %73 Location 1
OpDecorate %75 Location 2
OpDecorate %77 BuiltIn Position
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 3
%5 = OpTypeStruct %3 %4
%6 = OpTypeVector %4 4
%7 = OpTypeStruct %4 %3 %4
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 3
%5 = OpTypeStruct %4 %3
%6 = OpTypeVector %3 4
%7 = OpTypeStruct %3 %4 %3
%9 = OpTypeStruct %5
%10 = OpTypePointer Uniform %9
%8 = OpVariable %10 Uniform
@ -69,14 +69,14 @@ OpDecorate %77 BuiltIn Position
%18 = OpTypeStruct %7
%19 = OpTypePointer StorageBuffer %18
%17 = OpVariable %19 StorageBuffer
%23 = OpTypePointer Input %3
%23 = OpTypePointer Input %4
%22 = OpVariable %23 Input
%26 = OpTypePointer Input %4
%26 = OpTypePointer Input %3
%25 = OpVariable %26 Input
%29 = OpTypePointer Output %6
%28 = OpVariable %29 Output
%31 = OpTypeFunction %2
%32 = OpConstant %4 0.0
%32 = OpConstant %3 0.0
%33 = OpConstantComposite %6 %32 %32 %32 %32
%37 = OpVariable %23 Input
%39 = OpVariable %26 Input
@ -101,8 +101,8 @@ OpDecorate %77 BuiltIn Position
%88 = OpConstantNull %7
%30 = OpFunction %2 None %31
%20 = OpLabel
%24 = OpLoad %3 %22
%27 = OpLoad %4 %25
%24 = OpLoad %4 %22
%27 = OpLoad %3 %25
%21 = OpCompositeConstruct %5 %24 %27
OpBranch %34
%34 = OpLabel
@ -111,8 +111,8 @@ OpReturn
OpFunctionEnd
%42 = OpFunction %2 None %31
%35 = OpLabel
%38 = OpLoad %3 %37
%40 = OpLoad %4 %39
%38 = OpLoad %4 %37
%40 = OpLoad %3 %39
%36 = OpCompositeConstruct %5 %38 %40
OpBranch %43
%43 = OpLabel
@ -134,9 +134,9 @@ OpReturn
OpFunctionEnd
%67 = OpFunction %2 None %31
%58 = OpLabel
%61 = OpLoad %4 %60
%63 = OpLoad %3 %62
%65 = OpLoad %4 %64
%61 = OpLoad %3 %60
%63 = OpLoad %4 %62
%65 = OpLoad %3 %64
%59 = OpCompositeConstruct %7 %61 %63 %65
OpBranch %68
%68 = OpLabel
@ -145,9 +145,9 @@ OpReturn
OpFunctionEnd
%78 = OpFunction %2 None %31
%69 = OpLabel
%72 = OpLoad %4 %71
%74 = OpLoad %3 %73
%76 = OpLoad %4 %75
%72 = OpLoad %3 %71
%74 = OpLoad %4 %73
%76 = OpLoad %3 %75
%70 = OpCompositeConstruct %7 %72 %74 %76
OpBranch %79
%79 = OpLabel

View File

@ -363,13 +363,13 @@ fn unknown_ident() {
fn unknown_scalar_type() {
check(
r#"
const a: vec2<something>;
const a = vec2<vec2f>();
"#,
r#"error: unknown scalar type: 'something'
wgsl:2:27
r#"error: unknown scalar type: 'vec2f'
wgsl:2:28
2 const a: vec2<something>;
^^^^^^^^^ unknown scalar type
2 const a = vec2<vec2f>();
^^^^^ unknown scalar type
= note: Valid scalar types are f32, f64, i32, u32, bool
@ -833,13 +833,13 @@ fn matrix_with_bad_type() {
check(
r#"
fn main() {
let m: mat3x3<i32>;
var m: mat3x3<i32>;
}
"#,
r#"error: matrix scalar type must be floating-point, but found `i32`
wgsl:3:31
3 let m: mat3x3<i32>;
3 var m: mat3x3<i32>;
^^^ must be floating-point (e.g. `f32`)
"#,