mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-02-20 02:42:43 +00:00
use LocalVariable init
This commit is contained in:
parent
a730236b68
commit
3fb4c333a7
@ -1605,7 +1605,7 @@ impl<'a, W: Write> Writer<'a, W> {
|
||||
|
||||
// Write the constant
|
||||
// `write_constant` adds no trailing or leading space/newline
|
||||
self.write_const_expr(init)?;
|
||||
self.write_expr(init, &ctx)?;
|
||||
} else if is_value_init_supported(self.module, local.ty) {
|
||||
write!(self.out, " = ")?;
|
||||
self.write_zero_init_value(local.ty)?;
|
||||
|
@ -1238,7 +1238,7 @@ impl<'a, W: fmt::Write> super::Writer<'a, W> {
|
||||
write!(self.out, " = ")?;
|
||||
// Write the local initializer if needed
|
||||
if let Some(init) = local.init {
|
||||
self.write_const_expression(module, init)?;
|
||||
self.write_expr(module, init, func_ctx)?;
|
||||
} else {
|
||||
// Zero initialize local variables
|
||||
self.write_default_init(module, local.ty)?;
|
||||
|
@ -3557,29 +3557,6 @@ impl<W: Write> Writer<W> {
|
||||
|
||||
writeln!(self.out, ") {{")?;
|
||||
|
||||
for (local_handle, local) in fun.local_variables.iter() {
|
||||
let ty_name = TypeContext {
|
||||
handle: local.ty,
|
||||
gctx: module.to_ctx(),
|
||||
names: &self.names,
|
||||
access: crate::StorageAccess::empty(),
|
||||
binding: None,
|
||||
first_time: false,
|
||||
};
|
||||
let local_name = &self.names[&NameKey::FunctionLocal(fun_handle, local_handle)];
|
||||
write!(self.out, "{}{} {}", back::INDENT, ty_name, local_name)?;
|
||||
match local.init {
|
||||
Some(value) => {
|
||||
write!(self.out, " = ")?;
|
||||
self.put_const_expression(value, module, mod_info)?;
|
||||
}
|
||||
None => {
|
||||
write!(self.out, " = {{}}")?;
|
||||
}
|
||||
};
|
||||
writeln!(self.out, ";")?;
|
||||
}
|
||||
|
||||
let guarded_indices =
|
||||
index::find_checked_indexes(module, fun, fun_info, options.bounds_check_policies);
|
||||
|
||||
@ -3596,6 +3573,30 @@ impl<W: Write> Writer<W> {
|
||||
},
|
||||
result_struct: None,
|
||||
};
|
||||
|
||||
for (local_handle, local) in fun.local_variables.iter() {
|
||||
let ty_name = TypeContext {
|
||||
handle: local.ty,
|
||||
gctx: module.to_ctx(),
|
||||
names: &self.names,
|
||||
access: crate::StorageAccess::empty(),
|
||||
binding: None,
|
||||
first_time: false,
|
||||
};
|
||||
let local_name = &self.names[&NameKey::FunctionLocal(fun_handle, local_handle)];
|
||||
write!(self.out, "{}{} {}", back::INDENT, ty_name, local_name)?;
|
||||
match local.init {
|
||||
Some(value) => {
|
||||
write!(self.out, " = ")?;
|
||||
self.put_expression(value, &context.expression, true)?;
|
||||
}
|
||||
None => {
|
||||
write!(self.out, " = {{}}")?;
|
||||
}
|
||||
};
|
||||
writeln!(self.out, ";")?;
|
||||
}
|
||||
|
||||
self.named_expressions.clear();
|
||||
self.update_expressions_to_bake(fun, fun_info, &context.expression);
|
||||
self.put_block(back::Level(1), &fun.body, &context)?;
|
||||
@ -4112,31 +4113,6 @@ impl<W: Write> Writer<W> {
|
||||
}
|
||||
}
|
||||
|
||||
// Finally, declare all the local variables that we need
|
||||
//TODO: we can postpone this till the relevant expressions are emitted
|
||||
for (local_handle, local) in fun.local_variables.iter() {
|
||||
let name = &self.names[&NameKey::EntryPointLocal(ep_index as _, local_handle)];
|
||||
let ty_name = TypeContext {
|
||||
handle: local.ty,
|
||||
gctx: module.to_ctx(),
|
||||
names: &self.names,
|
||||
access: crate::StorageAccess::empty(),
|
||||
binding: None,
|
||||
first_time: false,
|
||||
};
|
||||
write!(self.out, "{}{} {}", back::INDENT, ty_name, name)?;
|
||||
match local.init {
|
||||
Some(value) => {
|
||||
write!(self.out, " = ")?;
|
||||
self.put_const_expression(value, module, mod_info)?;
|
||||
}
|
||||
None => {
|
||||
write!(self.out, " = {{}}")?;
|
||||
}
|
||||
};
|
||||
writeln!(self.out, ";")?;
|
||||
}
|
||||
|
||||
let guarded_indices =
|
||||
index::find_checked_indexes(module, fun, fun_info, options.bounds_check_policies);
|
||||
|
||||
@ -4153,6 +4129,32 @@ impl<W: Write> Writer<W> {
|
||||
},
|
||||
result_struct: Some(&stage_out_name),
|
||||
};
|
||||
|
||||
// Finally, declare all the local variables that we need
|
||||
//TODO: we can postpone this till the relevant expressions are emitted
|
||||
for (local_handle, local) in fun.local_variables.iter() {
|
||||
let name = &self.names[&NameKey::EntryPointLocal(ep_index as _, local_handle)];
|
||||
let ty_name = TypeContext {
|
||||
handle: local.ty,
|
||||
gctx: module.to_ctx(),
|
||||
names: &self.names,
|
||||
access: crate::StorageAccess::empty(),
|
||||
binding: None,
|
||||
first_time: false,
|
||||
};
|
||||
write!(self.out, "{}{} {}", back::INDENT, ty_name, name)?;
|
||||
match local.init {
|
||||
Some(value) => {
|
||||
write!(self.out, " = ")?;
|
||||
self.put_expression(value, &context.expression, true)?;
|
||||
}
|
||||
None => {
|
||||
write!(self.out, " = {{}}")?;
|
||||
}
|
||||
};
|
||||
writeln!(self.out, ";")?;
|
||||
}
|
||||
|
||||
self.named_expressions.clear();
|
||||
self.update_expressions_to_bake(fun, fun_info, &context.expression);
|
||||
self.put_block(back::Level(1), &fun.body, &context)?;
|
||||
|
@ -252,13 +252,39 @@ impl<'w> BlockContext<'w> {
|
||||
self.temp_list.push(self.cached[component]);
|
||||
}
|
||||
|
||||
let id = self.gen_id();
|
||||
block.body.push(Instruction::composite_construct(
|
||||
result_type_id,
|
||||
id,
|
||||
&self.temp_list,
|
||||
));
|
||||
id
|
||||
if self.ir_function.expressions.is_const(expr_handle) {
|
||||
let ty = self
|
||||
.writer
|
||||
.get_expression_lookup_type(&self.fun_info[expr_handle].ty);
|
||||
self.writer.get_constant_composite(ty, &self.temp_list)
|
||||
} else {
|
||||
let id = self.gen_id();
|
||||
block.body.push(Instruction::composite_construct(
|
||||
result_type_id,
|
||||
id,
|
||||
&self.temp_list,
|
||||
));
|
||||
id
|
||||
}
|
||||
}
|
||||
crate::Expression::Splat { size, value } => {
|
||||
let value_id = self.cached[value];
|
||||
let components = &[value_id; 4][..size as usize];
|
||||
|
||||
if self.ir_function.expressions.is_const(expr_handle) {
|
||||
let ty = self
|
||||
.writer
|
||||
.get_expression_lookup_type(&self.fun_info[expr_handle].ty);
|
||||
self.writer.get_constant_composite(ty, components)
|
||||
} else {
|
||||
let id = self.gen_id();
|
||||
block.body.push(Instruction::composite_construct(
|
||||
result_type_id,
|
||||
id,
|
||||
components,
|
||||
));
|
||||
id
|
||||
}
|
||||
}
|
||||
crate::Expression::Access { base, index: _ } if self.is_intermediate(base) => {
|
||||
// See `is_intermediate`; we'll handle this later in
|
||||
@ -405,17 +431,6 @@ impl<'w> BlockContext<'w> {
|
||||
crate::Expression::GlobalVariable(handle) => {
|
||||
self.writer.global_variables[handle.index()].access_id
|
||||
}
|
||||
crate::Expression::Splat { size, value } => {
|
||||
let value_id = self.cached[value];
|
||||
let components = [value_id; 4];
|
||||
let id = self.gen_id();
|
||||
block.body.push(Instruction::composite_construct(
|
||||
result_type_id,
|
||||
id,
|
||||
&components[..size as usize],
|
||||
));
|
||||
id
|
||||
}
|
||||
crate::Expression::Swizzle {
|
||||
size,
|
||||
vector,
|
||||
@ -1758,7 +1773,9 @@ impl<'w> BlockContext<'w> {
|
||||
match *statement {
|
||||
crate::Statement::Emit(ref range) => {
|
||||
for handle in range.clone() {
|
||||
self.cache_expression_value(handle, &mut block)?;
|
||||
if !self.ir_function.expressions.is_const(handle) {
|
||||
self.cache_expression_value(handle, &mut block)?;
|
||||
}
|
||||
}
|
||||
}
|
||||
crate::Statement::Block(ref block_statements) => {
|
||||
|
@ -338,37 +338,6 @@ impl Writer {
|
||||
) -> Result<Word, Error> {
|
||||
let mut function = Function::default();
|
||||
|
||||
for (handle, variable) in ir_function.local_variables.iter() {
|
||||
let id = self.id_gen.next();
|
||||
|
||||
if self.flags.contains(WriterFlags::DEBUG) {
|
||||
if let Some(ref name) = variable.name {
|
||||
self.debugs.push(Instruction::name(id, name));
|
||||
}
|
||||
}
|
||||
|
||||
let init_word = variable
|
||||
.init
|
||||
.map(|constant| self.constant_ids[constant.index()]);
|
||||
let pointer_type_id =
|
||||
self.get_pointer_id(&ir_module.types, variable.ty, spirv::StorageClass::Function)?;
|
||||
let instruction = Instruction::variable(
|
||||
pointer_type_id,
|
||||
id,
|
||||
spirv::StorageClass::Function,
|
||||
init_word.or_else(|| match ir_module.types[variable.ty].inner {
|
||||
crate::TypeInner::RayQuery => None,
|
||||
_ => {
|
||||
let type_id = self.get_type_id(LookupType::Handle(variable.ty));
|
||||
Some(self.get_constant_null(type_id))
|
||||
}
|
||||
}),
|
||||
);
|
||||
function
|
||||
.variables
|
||||
.insert(handle, LocalVariable { id, instruction });
|
||||
}
|
||||
|
||||
let prelude_id = self.id_gen.next();
|
||||
let mut prelude = Block::new(prelude_id);
|
||||
let mut ep_context = EntryPointContext {
|
||||
@ -656,7 +625,48 @@ impl Writer {
|
||||
// fill up the pre-emitted expressions
|
||||
context.cached.reset(ir_function.expressions.len());
|
||||
for (handle, expr) in ir_function.expressions.iter() {
|
||||
if expr.needs_pre_emit() {
|
||||
if (expr.needs_pre_emit() && !matches!(*expr, crate::Expression::LocalVariable(_)))
|
||||
|| ir_function.expressions.is_const(handle)
|
||||
{
|
||||
context.cache_expression_value(handle, &mut prelude)?;
|
||||
}
|
||||
}
|
||||
|
||||
for (handle, variable) in ir_function.local_variables.iter() {
|
||||
let id = context.gen_id();
|
||||
|
||||
if context.writer.flags.contains(WriterFlags::DEBUG) {
|
||||
if let Some(ref name) = variable.name {
|
||||
context.writer.debugs.push(Instruction::name(id, name));
|
||||
}
|
||||
}
|
||||
|
||||
let init_word = variable.init.map(|constant| context.cached[constant]);
|
||||
let pointer_type_id = context.writer.get_pointer_id(
|
||||
&ir_module.types,
|
||||
variable.ty,
|
||||
spirv::StorageClass::Function,
|
||||
)?;
|
||||
let instruction = Instruction::variable(
|
||||
pointer_type_id,
|
||||
id,
|
||||
spirv::StorageClass::Function,
|
||||
init_word.or_else(|| match ir_module.types[variable.ty].inner {
|
||||
crate::TypeInner::RayQuery => None,
|
||||
_ => {
|
||||
let type_id = context.get_type_id(LookupType::Handle(variable.ty));
|
||||
Some(context.writer.write_constant_null(type_id))
|
||||
}
|
||||
}),
|
||||
);
|
||||
context
|
||||
.function
|
||||
.variables
|
||||
.insert(handle, LocalVariable { id, instruction });
|
||||
}
|
||||
|
||||
for (handle, expr) in ir_function.expressions.iter() {
|
||||
if expr.needs_pre_emit() && matches!(*expr, crate::Expression::LocalVariable(_)) {
|
||||
context.cache_expression_value(handle, &mut prelude)?;
|
||||
}
|
||||
}
|
||||
|
@ -292,7 +292,7 @@ impl<W: Write> Writer<W> {
|
||||
|
||||
// Write the constant
|
||||
// `write_constant` adds no trailing or leading space/newline
|
||||
self.write_const_expression(module, init)?;
|
||||
self.write_expr(module, init, func_ctx)?;
|
||||
}
|
||||
|
||||
// Finish the local with `;` and add a newline (only for readability)
|
||||
|
@ -27,7 +27,7 @@ impl<'a> FunctionTracer<'a> {
|
||||
for (_, local) in self.function.local_variables.iter() {
|
||||
self.trace_type(local.ty);
|
||||
if let Some(init) = local.init {
|
||||
self.trace_const_expression(init);
|
||||
self.trace_expression(init);
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,12 +48,6 @@ impl<'a> FunctionTracer<'a> {
|
||||
self.as_expression().trace_expression(expr);
|
||||
}
|
||||
|
||||
pub fn trace_const_expression(&mut self, expr: Handle<crate::Expression>) {
|
||||
self.as_expression()
|
||||
.as_const_expression()
|
||||
.trace_expression(expr);
|
||||
}
|
||||
|
||||
fn as_type(&mut self) -> super::types::TypeTracer {
|
||||
super::types::TypeTracer {
|
||||
types: &self.module.types,
|
||||
@ -99,7 +93,7 @@ impl FunctionMap {
|
||||
log::trace!("adjusting local variable {:?}", local.name);
|
||||
module_map.types.adjust(&mut local.ty);
|
||||
if let Some(ref mut init) = local.init {
|
||||
module_map.const_expressions.adjust(init);
|
||||
self.expressions.adjust(init);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -988,18 +988,16 @@ impl<'a> Context<'a> {
|
||||
// pointer type which is required for dynamic indexing
|
||||
if !constant_index {
|
||||
if let Some((constant, ty)) = var.constant {
|
||||
let local =
|
||||
self.locals.append(
|
||||
LocalVariable {
|
||||
name: None,
|
||||
ty,
|
||||
init: Some(self.module.const_expressions.append(
|
||||
Expression::Constant(constant),
|
||||
Span::default(),
|
||||
)),
|
||||
},
|
||||
Span::default(),
|
||||
);
|
||||
let init = self
|
||||
.add_expression(Expression::Constant(constant), Span::default())?;
|
||||
let local = self.locals.append(
|
||||
LocalVariable {
|
||||
name: None,
|
||||
ty,
|
||||
init: Some(init),
|
||||
},
|
||||
Span::default(),
|
||||
);
|
||||
|
||||
self.add_expression(Expression::LocalVariable(local), Span::default())?
|
||||
} else {
|
||||
|
@ -1395,7 +1395,7 @@ impl<I: Iterator<Item = u32>> Frontend<I> {
|
||||
let init_id = self.next()?;
|
||||
let lconst = self.lookup_constant.lookup(init_id)?;
|
||||
Some(
|
||||
ctx.const_expressions
|
||||
ctx.expressions
|
||||
.append(crate::Expression::Constant(lconst.handle), span),
|
||||
)
|
||||
} else {
|
||||
|
@ -1031,6 +1031,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
|
||||
let mut typifier = Typifier::default();
|
||||
let mut body = self.block(
|
||||
&f.body,
|
||||
false,
|
||||
StatementContext {
|
||||
local_table: &mut local_table,
|
||||
globals: ctx.globals,
|
||||
@ -1091,12 +1092,13 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
|
||||
fn block(
|
||||
&mut self,
|
||||
b: &ast::Block<'source>,
|
||||
is_inside_loop: bool,
|
||||
mut ctx: StatementContext<'source, '_, '_>,
|
||||
) -> Result<crate::Block, Error<'source>> {
|
||||
let mut block = crate::Block::default();
|
||||
|
||||
for stmt in b.stmts.iter() {
|
||||
self.statement(stmt, &mut block, ctx.reborrow())?;
|
||||
self.statement(stmt, &mut block, is_inside_loop, ctx.reborrow())?;
|
||||
}
|
||||
|
||||
Ok(block)
|
||||
@ -1106,11 +1108,12 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
|
||||
&mut self,
|
||||
stmt: &ast::Statement<'source>,
|
||||
block: &mut crate::Block,
|
||||
is_inside_loop: bool,
|
||||
mut ctx: StatementContext<'source, '_, '_>,
|
||||
) -> Result<(), Error<'source>> {
|
||||
let out = match stmt.kind {
|
||||
ast::StatementKind::Block(ref block) => {
|
||||
let block = self.block(block, ctx.reborrow())?;
|
||||
let block = self.block(block, is_inside_loop, ctx.reborrow())?;
|
||||
crate::Statement::Block(block)
|
||||
}
|
||||
ast::StatementKind::LocalDecl(ref decl) => match *decl {
|
||||
@ -1191,11 +1194,21 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
|
||||
}
|
||||
};
|
||||
|
||||
let (const_initializer, initializer) = {
|
||||
match initializer {
|
||||
Some(init) if ctx.naga_expressions.is_const(init) => {
|
||||
(Some(init), is_inside_loop.then_some(init))
|
||||
}
|
||||
Some(init) => (None, Some(init)),
|
||||
None => (None, None),
|
||||
}
|
||||
};
|
||||
|
||||
let var = ctx.variables.append(
|
||||
crate::LocalVariable {
|
||||
name: Some(v.name.name.to_string()),
|
||||
ty,
|
||||
init: None,
|
||||
init: const_initializer,
|
||||
},
|
||||
stmt.span,
|
||||
);
|
||||
@ -1234,8 +1247,8 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
|
||||
self.expression(condition, ctx.as_expression(block, &mut emitter))?;
|
||||
block.extend(emitter.finish(ctx.naga_expressions));
|
||||
|
||||
let accept = self.block(accept, ctx.reborrow())?;
|
||||
let reject = self.block(reject, ctx.reborrow())?;
|
||||
let accept = self.block(accept, is_inside_loop, ctx.reborrow())?;
|
||||
let reject = self.block(reject, is_inside_loop, ctx.reborrow())?;
|
||||
|
||||
crate::Statement::If {
|
||||
condition,
|
||||
@ -1282,7 +1295,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
|
||||
}
|
||||
ast::SwitchValue::Default => crate::SwitchValue::Default,
|
||||
},
|
||||
body: self.block(&case.body, ctx.reborrow())?,
|
||||
body: self.block(&case.body, is_inside_loop, ctx.reborrow())?,
|
||||
fall_through: case.fall_through,
|
||||
})
|
||||
})
|
||||
@ -1295,8 +1308,8 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
|
||||
ref continuing,
|
||||
break_if,
|
||||
} => {
|
||||
let body = self.block(body, ctx.reborrow())?;
|
||||
let mut continuing = self.block(continuing, ctx.reborrow())?;
|
||||
let body = self.block(body, true, ctx.reborrow())?;
|
||||
let mut continuing = self.block(continuing, true, ctx.reborrow())?;
|
||||
|
||||
let mut emitter = Emitter::default();
|
||||
emitter.start(ctx.naga_expressions);
|
||||
|
@ -978,9 +978,7 @@ pub struct LocalVariable {
|
||||
pub name: Option<String>,
|
||||
/// The type of this variable.
|
||||
pub ty: Handle<Type>,
|
||||
/// Initial value for this variable.
|
||||
///
|
||||
/// Expression handle lives in const_expressions
|
||||
/// Initial value for this variable. Must be a const-expression.
|
||||
pub init: Option<Handle<Expression>>,
|
||||
}
|
||||
|
||||
|
@ -91,6 +91,20 @@ pub enum ExprType {
|
||||
// Math
|
||||
// As
|
||||
|
||||
// TODO(teoxoy): consider accumulating this metadata instead of recursing through subexpressions
|
||||
impl Arena<Expression> {
|
||||
pub fn is_const(&self, handle: Handle<Expression>) -> bool {
|
||||
match self[handle] {
|
||||
Expression::Literal(_) | Expression::ZeroValue(_) | Expression::Constant(_) => true,
|
||||
Expression::Compose { ref components, .. } => {
|
||||
components.iter().all(|h| self.is_const(*h))
|
||||
}
|
||||
Expression::Splat { ref value, .. } => self.is_const(*value),
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, F: FnMut(&mut Arena<Expression>, Expression, Span) -> Handle<Expression>>
|
||||
ConstantEvaluator<'a, F>
|
||||
{
|
||||
|
@ -1041,6 +1041,12 @@ impl ModuleInfo {
|
||||
}
|
||||
}
|
||||
|
||||
for (_, expr) in fun.local_variables.iter() {
|
||||
if let Some(init) = expr.init {
|
||||
let _ = info.add_ref(init);
|
||||
}
|
||||
}
|
||||
|
||||
let uniformity = info.process_block(&fun.body, &self.functions, None, &fun.expressions)?;
|
||||
info.uniformity = uniformity.result;
|
||||
info.may_kill = uniformity.exit.contains(ExitFlags::MAY_KILL);
|
||||
|
@ -941,7 +941,7 @@ impl super::Validator {
|
||||
&self,
|
||||
var: &crate::LocalVariable,
|
||||
gctx: crate::proc::GlobalCtx,
|
||||
mod_info: &ModuleInfo,
|
||||
fun_info: &FunctionInfo,
|
||||
) -> Result<(), LocalVariableError> {
|
||||
log::debug!("var {:?}", var);
|
||||
let type_info = self
|
||||
@ -954,7 +954,7 @@ impl super::Validator {
|
||||
|
||||
if let Some(init) = var.init {
|
||||
let decl_ty = &gctx.types[var.ty].inner;
|
||||
let init_ty = mod_info[init].inner_with(gctx.types);
|
||||
let init_ty = fun_info[init].ty.inner_with(gctx.types);
|
||||
if !decl_ty.equivalent(init_ty, gctx.types) {
|
||||
return Err(LocalVariableError::InitializerType);
|
||||
}
|
||||
@ -975,7 +975,7 @@ impl super::Validator {
|
||||
|
||||
#[cfg(feature = "validate")]
|
||||
for (var_handle, var) in fun.local_variables.iter() {
|
||||
self.validate_local_var(var, module.to_ctx(), mod_info)
|
||||
self.validate_local_var(var, module.to_ctx(), &info)
|
||||
.map_err(|source| {
|
||||
FunctionError::LocalVariable {
|
||||
handle: var_handle,
|
||||
|
@ -131,8 +131,8 @@ impl super::Validator {
|
||||
for (_handle, local_variable) in local_variables.iter() {
|
||||
let &crate::LocalVariable { name: _, ty, init } = local_variable;
|
||||
validate_type(ty)?;
|
||||
if let Some(init_constant) = init {
|
||||
validate_const_expr(init_constant)?;
|
||||
if let Some(init) = init {
|
||||
Self::validate_expression_handle(init, expressions)?;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,7 +66,7 @@
|
||||
non_uniform_result: Some(2),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 15,
|
||||
ref_count: 14,
|
||||
assignable_global: None,
|
||||
ty: Value(Pointer(
|
||||
base: 3,
|
||||
@ -637,7 +637,7 @@
|
||||
non_uniform_result: Some(50),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 8,
|
||||
ref_count: 7,
|
||||
assignable_global: None,
|
||||
ty: Value(Pointer(
|
||||
base: 16,
|
||||
@ -1164,7 +1164,7 @@
|
||||
non_uniform_result: Some(2),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 15,
|
||||
ref_count: 14,
|
||||
assignable_global: None,
|
||||
ty: Value(Pointer(
|
||||
base: 3,
|
||||
@ -1777,7 +1777,7 @@
|
||||
non_uniform_result: Some(54),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 9,
|
||||
ref_count: 8,
|
||||
assignable_global: None,
|
||||
ty: Value(Pointer(
|
||||
base: 20,
|
||||
@ -2667,7 +2667,7 @@
|
||||
non_uniform_result: Some(3),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 4,
|
||||
ref_count: 3,
|
||||
assignable_global: None,
|
||||
ty: Value(Pointer(
|
||||
base: 21,
|
||||
@ -3803,7 +3803,7 @@
|
||||
non_uniform_result: Some(6),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 2,
|
||||
ref_count: 1,
|
||||
assignable_global: None,
|
||||
ty: Value(Pointer(
|
||||
base: 28,
|
||||
|
@ -57,7 +57,7 @@
|
||||
non_uniform_result: Some(4),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 4,
|
||||
ref_count: 3,
|
||||
assignable_global: None,
|
||||
ty: Value(Pointer(
|
||||
base: 1,
|
||||
|
@ -625,7 +625,16 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(20),
|
||||
non_uniform_result: None,
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
assignable_global: None,
|
||||
ty: Handle(2),
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 3,
|
||||
@ -637,7 +646,16 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: None,
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
assignable_global: None,
|
||||
ty: Handle(3),
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 11,
|
||||
@ -649,7 +667,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -708,7 +726,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -720,7 +738,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(20),
|
||||
non_uniform_result: Some(21),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -729,7 +747,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -752,7 +770,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -761,7 +779,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -775,7 +793,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -789,7 +807,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -807,7 +825,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -861,7 +879,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -870,7 +888,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -884,7 +902,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -898,7 +916,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -914,7 +932,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -940,7 +958,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -949,7 +967,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -963,7 +981,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -977,7 +995,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -993,7 +1011,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1019,7 +1037,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1028,7 +1046,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1042,7 +1060,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1056,7 +1074,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1072,7 +1090,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1084,7 +1102,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1180,7 +1198,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1189,7 +1207,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1242,7 +1260,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1251,7 +1269,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1265,7 +1283,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1279,7 +1297,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1295,7 +1313,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1321,7 +1339,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1330,7 +1348,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1344,7 +1362,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1358,7 +1376,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1374,7 +1392,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1400,7 +1418,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1409,7 +1427,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1423,7 +1441,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1437,7 +1455,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1453,7 +1471,7 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1465,7 +1483,16 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
assignable_global: None,
|
||||
ty: Handle(2),
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1483,16 +1510,16 @@
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(20),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
assignable_global: None,
|
||||
ty: Handle(2),
|
||||
ty: Handle(3),
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(21),
|
||||
non_uniform_result: Some(23),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1506,20 +1533,11 @@
|
||||
),
|
||||
ref_count: 1,
|
||||
assignable_global: None,
|
||||
ty: Handle(3),
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(20),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
assignable_global: None,
|
||||
ty: Handle(2),
|
||||
),
|
||||
(
|
||||
uniformity: (
|
||||
non_uniform_result: Some(20),
|
||||
non_uniform_result: Some(21),
|
||||
requirements: (""),
|
||||
),
|
||||
ref_count: 1,
|
||||
@ -1701,7 +1719,5 @@
|
||||
kind: Sint,
|
||||
width: 4,
|
||||
)),
|
||||
Handle(2),
|
||||
Handle(3),
|
||||
],
|
||||
)
|
@ -47,8 +47,7 @@ void main() {
|
||||
}
|
||||
memoryBarrierShared();
|
||||
barrier();
|
||||
vec4 arr[2] = vec4[2](vec4(0.0), vec4(0.0));
|
||||
arr = vec4[2](vec4(6.0), vec4(7.0));
|
||||
vec4 arr[2] = vec4[2](vec4(6.0), vec4(7.0));
|
||||
assign_through_ptr_fn(val);
|
||||
assign_array_through_ptr_fn(arr);
|
||||
return;
|
||||
|
@ -34,9 +34,8 @@ uniform MatCx2InArray_block_3Vertex { MatCx2InArray _group_0_binding_3_vs; };
|
||||
|
||||
|
||||
void test_matrix_within_struct_accesses() {
|
||||
int idx = 0;
|
||||
Baz t = Baz(mat3x2(0.0));
|
||||
idx = 1;
|
||||
int idx = 1;
|
||||
Baz t = Baz(mat3x2(vec2(1.0), vec2(2.0), vec2(3.0)));
|
||||
int _e3 = idx;
|
||||
idx = (_e3 - 1);
|
||||
mat3x2 l0_ = _group_0_binding_1_vs.m;
|
||||
@ -51,7 +50,6 @@ void test_matrix_within_struct_accesses() {
|
||||
int _e36 = idx;
|
||||
int _e38 = idx;
|
||||
float l6_ = _group_0_binding_1_vs.m[_e36][_e38];
|
||||
t = Baz(mat3x2(vec2(1.0), vec2(2.0), vec2(3.0)));
|
||||
int _e51 = idx;
|
||||
idx = (_e51 + 1);
|
||||
t.m = mat3x2(vec2(6.0), vec2(5.0), vec2(4.0));
|
||||
@ -70,9 +68,8 @@ void test_matrix_within_struct_accesses() {
|
||||
}
|
||||
|
||||
void test_matrix_within_array_within_struct_accesses() {
|
||||
int idx_1 = 0;
|
||||
int idx_1 = 1;
|
||||
MatCx2InArray t_1 = MatCx2InArray(mat4x2[2](mat4x2(0.0), mat4x2(0.0)));
|
||||
idx_1 = 1;
|
||||
int _e3 = idx_1;
|
||||
idx_1 = (_e3 - 1);
|
||||
mat4x2 l0_1[2] = _group_0_binding_3_vs.am;
|
||||
@ -88,7 +85,6 @@ void test_matrix_within_array_within_struct_accesses() {
|
||||
int _e46 = idx_1;
|
||||
int _e48 = idx_1;
|
||||
float l7_ = _group_0_binding_3_vs.am[0][_e46][_e48];
|
||||
t_1 = MatCx2InArray(mat4x2[2](mat4x2(0.0), mat4x2(0.0)));
|
||||
int _e55 = idx_1;
|
||||
idx_1 = (_e55 + 1);
|
||||
t_1.am = mat4x2[2](mat4x2(0.0), mat4x2(0.0));
|
||||
@ -130,7 +126,6 @@ void main() {
|
||||
uint vi = uint(gl_VertexID);
|
||||
float foo = 0.0;
|
||||
int c2_[5] = int[5](0, 0, 0, 0, 0);
|
||||
foo = 0.0;
|
||||
float baz_1 = foo;
|
||||
foo = 1.0;
|
||||
test_matrix_within_struct_accesses();
|
||||
|
@ -16,15 +16,6 @@ void main() {
|
||||
vec2 f2_ = vec2(0.0);
|
||||
vec3 f3_ = vec3(0.0);
|
||||
vec4 f4_ = vec4(0.0);
|
||||
i2_ = ivec2(0);
|
||||
i3_ = ivec3(0);
|
||||
i4_ = ivec4(0);
|
||||
u2_ = uvec2(0u);
|
||||
u3_ = uvec3(0u);
|
||||
u4_ = uvec4(0u);
|
||||
f2_ = vec2(0.0);
|
||||
f3_ = vec3(0.0);
|
||||
f4_ = vec4(0.0);
|
||||
ivec2 _e27 = i2_;
|
||||
u2_ = uvec2(_e27);
|
||||
ivec3 _e29 = i3_;
|
||||
|
@ -17,16 +17,6 @@ void main() {
|
||||
uvec4 u4_ = uvec4(0u);
|
||||
vec2 f2_ = vec2(0.0);
|
||||
vec4 f4_ = vec4(0.0);
|
||||
i = 0;
|
||||
i2_ = ivec2(0);
|
||||
i3_ = ivec3(0);
|
||||
i4_ = ivec4(0);
|
||||
u = 0u;
|
||||
u2_ = uvec2(0u);
|
||||
u3_ = uvec3(0u);
|
||||
u4_ = uvec4(0u);
|
||||
f2_ = vec2(0.0);
|
||||
f4_ = vec4(0.0);
|
||||
vec4 _e28 = f4_;
|
||||
u = packSnorm4x8(_e28);
|
||||
vec4 _e30 = f4_;
|
||||
|
@ -35,9 +35,9 @@ void main() {
|
||||
uvec3 global_invocation_id = gl_GlobalInvocationID;
|
||||
vec2 vPos = vec2(0.0);
|
||||
vec2 vVel = vec2(0.0);
|
||||
vec2 cMass = vec2(0.0);
|
||||
vec2 cVel = vec2(0.0);
|
||||
vec2 colVel = vec2(0.0);
|
||||
vec2 cMass = vec2(0.0, 0.0);
|
||||
vec2 cVel = vec2(0.0, 0.0);
|
||||
vec2 colVel = vec2(0.0, 0.0);
|
||||
int cMassCount = 0;
|
||||
int cVelCount = 0;
|
||||
vec2 pos = vec2(0.0);
|
||||
@ -51,12 +51,6 @@ void main() {
|
||||
vPos = _e8;
|
||||
vec2 _e14 = _group_0_binding_1_cs.particles[index].vel;
|
||||
vVel = _e14;
|
||||
cMass = vec2(0.0, 0.0);
|
||||
cVel = vec2(0.0, 0.0);
|
||||
colVel = vec2(0.0, 0.0);
|
||||
cMassCount = 0;
|
||||
cVelCount = 0;
|
||||
i = 0u;
|
||||
bool loop_init = true;
|
||||
while(true) {
|
||||
if (!loop_init) {
|
||||
|
@ -13,10 +13,8 @@ layout(location = 0, index = 1) out vec4 _fs2p_location1;
|
||||
|
||||
void main() {
|
||||
vec4 position = gl_FragCoord;
|
||||
vec4 color = vec4(0.0);
|
||||
vec4 mask = vec4(0.0);
|
||||
color = vec4(0.4, 0.3, 0.2, 0.1);
|
||||
mask = vec4(0.9, 0.8, 0.7, 0.6);
|
||||
vec4 color = vec4(0.4, 0.3, 0.2, 0.1);
|
||||
vec4 mask = vec4(0.9, 0.8, 0.7, 0.6);
|
||||
vec4 _e13 = color;
|
||||
vec4 _e14 = mask;
|
||||
FragmentOutput _tmp_return = FragmentOutput(_e13, _e14);
|
||||
|
@ -35,9 +35,8 @@ void test_msl_packed_vec3_as_arg(vec3 arg) {
|
||||
}
|
||||
|
||||
void test_msl_packed_vec3_() {
|
||||
int idx = 0;
|
||||
int idx = 1;
|
||||
_group_0_binding_1_cs.v3_ = vec3(1.0);
|
||||
idx = 1;
|
||||
_group_0_binding_1_cs.v3_.x = 1.0;
|
||||
_group_0_binding_1_cs.v3_.x = 2.0;
|
||||
int _e16 = idx;
|
||||
@ -59,8 +58,8 @@ void main() {
|
||||
}
|
||||
memoryBarrierShared();
|
||||
barrier();
|
||||
float Foo = 0.0;
|
||||
bool at = false;
|
||||
float Foo = 1.0;
|
||||
bool at = true;
|
||||
test_msl_packed_vec3_();
|
||||
mat4x2 _e5 = _group_0_binding_7_cs[0][0];
|
||||
vec4 _e10 = _group_0_binding_6_cs[0][0][0];
|
||||
@ -79,8 +78,6 @@ void main() {
|
||||
_group_0_binding_1_cs.v1_ = 4.0;
|
||||
wg[1] = float(uint(_group_0_binding_2_cs.length()));
|
||||
at_1 = 2u;
|
||||
Foo = 1.0;
|
||||
at = true;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -30,8 +30,7 @@ vec4 splat() {
|
||||
}
|
||||
|
||||
vec2 splat_assignment() {
|
||||
vec2 a = vec2(0.0);
|
||||
a = vec2(2.0);
|
||||
vec2 a = vec2(2.0);
|
||||
vec2 _e4 = a;
|
||||
a = (_e4 + vec2(1.0));
|
||||
vec2 _e8 = a;
|
||||
@ -151,9 +150,8 @@ void comparison() {
|
||||
}
|
||||
|
||||
void assignment() {
|
||||
int a_1 = 0;
|
||||
int a_1 = 1;
|
||||
ivec3 vec0_ = ivec3(0);
|
||||
a_1 = 1;
|
||||
int _e3 = a_1;
|
||||
a_1 = (_e3 + 1);
|
||||
int _e6 = a_1;
|
||||
@ -180,7 +178,6 @@ void assignment() {
|
||||
a_1 = (_e33 + 1);
|
||||
int _e36 = a_1;
|
||||
a_1 = (_e36 - 1);
|
||||
vec0_ = ivec3(0);
|
||||
int _e42 = vec0_.y;
|
||||
vec0_.y = (_e42 + 1);
|
||||
int _e46 = vec0_.y;
|
||||
|
@ -49,11 +49,9 @@ float fetch_shadow(uint light_id, vec4 homogeneous_coords) {
|
||||
|
||||
void main() {
|
||||
VertexOutput in_ = VertexOutput(gl_FragCoord, _vs2fs_location0, _vs2fs_location1);
|
||||
vec3 color = vec3(0.0);
|
||||
vec3 color = c_ambient;
|
||||
uint i = 0u;
|
||||
vec3 normal_1 = normalize(in_.world_normal);
|
||||
color = c_ambient;
|
||||
i = 0u;
|
||||
bool loop_init = true;
|
||||
while(true) {
|
||||
if (!loop_init) {
|
||||
|
@ -49,11 +49,9 @@ float fetch_shadow(uint light_id, vec4 homogeneous_coords) {
|
||||
|
||||
void main() {
|
||||
VertexOutput in_1 = VertexOutput(gl_FragCoord, _vs2fs_location0, _vs2fs_location1);
|
||||
vec3 color_1 = vec3(0.0);
|
||||
vec3 color_1 = c_ambient;
|
||||
uint i_1 = 0u;
|
||||
vec3 normal_1 = normalize(in_1.world_normal);
|
||||
color_1 = c_ambient;
|
||||
i_1 = 0u;
|
||||
bool loop_init = true;
|
||||
while(true) {
|
||||
if (!loop_init) {
|
||||
|
@ -119,10 +119,9 @@ void SetMatScalarmOnBaz(Baz obj, float scalar, uint mat_idx, uint vec_idx) {
|
||||
|
||||
void test_matrix_within_struct_accesses()
|
||||
{
|
||||
int idx = (int)0;
|
||||
Baz t = (Baz)0;
|
||||
int idx = 1;
|
||||
Baz t = ConstructBaz(float3x2((1.0).xx, (2.0).xx, (3.0).xx));
|
||||
|
||||
idx = 1;
|
||||
int _expr3 = idx;
|
||||
idx = (_expr3 - 1);
|
||||
float3x2 l0_ = GetMatmOnBaz(baz);
|
||||
@ -137,7 +136,6 @@ void test_matrix_within_struct_accesses()
|
||||
int _expr36 = idx;
|
||||
int _expr38 = idx;
|
||||
float l6_ = GetMatmOnBaz(baz)[_expr36][_expr38];
|
||||
t = ConstructBaz(float3x2((1.0).xx, (2.0).xx, (3.0).xx));
|
||||
int _expr51 = idx;
|
||||
idx = (_expr51 + 1);
|
||||
SetMatmOnBaz(t, float3x2((6.0).xx, (5.0).xx, (4.0).xx));
|
||||
@ -163,10 +161,9 @@ MatCx2InArray ConstructMatCx2InArray(float4x2 arg0[2]) {
|
||||
|
||||
void test_matrix_within_array_within_struct_accesses()
|
||||
{
|
||||
int idx_1 = (int)0;
|
||||
MatCx2InArray t_1 = (MatCx2InArray)0;
|
||||
int idx_1 = 1;
|
||||
MatCx2InArray t_1 = ConstructMatCx2InArray((float4x2[2])0);
|
||||
|
||||
idx_1 = 1;
|
||||
int _expr3 = idx_1;
|
||||
idx_1 = (_expr3 - 1);
|
||||
float4x2 l0_1[2] = ((float4x2[2])nested_mat_cx2_.am);
|
||||
@ -182,7 +179,6 @@ void test_matrix_within_array_within_struct_accesses()
|
||||
int _expr46 = idx_1;
|
||||
int _expr48 = idx_1;
|
||||
float l7_ = __get_col_of_mat4x2(nested_mat_cx2_.am[0], _expr46)[_expr48];
|
||||
t_1 = ConstructMatCx2InArray((float4x2[2])0);
|
||||
int _expr55 = idx_1;
|
||||
idx_1 = (_expr55 + 1);
|
||||
t_1.am = (__mat4x2[2])(float4x2[2])0;
|
||||
@ -251,10 +247,9 @@ uint NagaBufferLengthRW(RWByteAddressBuffer buffer)
|
||||
|
||||
float4 foo_vert(uint vi : SV_VertexID) : SV_Position
|
||||
{
|
||||
float foo = (float)0;
|
||||
float foo = 0.0;
|
||||
int c2_[5] = (int[5])0;
|
||||
|
||||
foo = 0.0;
|
||||
float baz_1 = foo;
|
||||
foo = 1.0;
|
||||
test_matrix_within_struct_accesses();
|
||||
@ -299,9 +294,8 @@ void assign_through_ptr(uint3 __local_invocation_id : SV_GroupThreadID)
|
||||
val = (uint)0;
|
||||
}
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
float4 arr[2] = (float4[2])0;
|
||||
float4 arr[2] = Constructarray2_float4_((6.0).xxxx, (7.0).xxxx);
|
||||
|
||||
arr = Constructarray2_float4_((6.0).xxxx, (7.0).xxxx);
|
||||
assign_through_ptr_fn(val);
|
||||
assign_array_through_ptr_fn(arr);
|
||||
return;
|
||||
|
@ -51,17 +51,13 @@ uint NagaMSNumSamples2D(Texture2DMS<float4> tex)
|
||||
float4 main(FragmentInput_main fragmentinput_main) : SV_Target0
|
||||
{
|
||||
FragmentIn fragment_in = { fragmentinput_main.index };
|
||||
uint u1_ = (uint)0;
|
||||
uint2 u2_ = (uint2)0;
|
||||
float v1_ = (float)0;
|
||||
float4 v4_ = (float4)0;
|
||||
uint u1_ = 0u;
|
||||
uint2 u2_ = (0u).xx;
|
||||
float v1_ = 0.0;
|
||||
float4 v4_ = (0.0).xxxx;
|
||||
|
||||
uint uniform_index = uni.index;
|
||||
uint non_uniform_index = fragment_in.index;
|
||||
u1_ = 0u;
|
||||
u2_ = (0u).xx;
|
||||
v1_ = 0.0;
|
||||
v4_ = (0.0).xxxx;
|
||||
float2 uv = (0.0).xx;
|
||||
int2 pix = (0).xx;
|
||||
uint2 _expr22 = u2_;
|
||||
|
@ -1,25 +1,16 @@
|
||||
[numthreads(1, 1, 1)]
|
||||
void main()
|
||||
{
|
||||
int2 i2_ = (int2)0;
|
||||
int3 i3_ = (int3)0;
|
||||
int4 i4_ = (int4)0;
|
||||
uint2 u2_ = (uint2)0;
|
||||
uint3 u3_ = (uint3)0;
|
||||
uint4 u4_ = (uint4)0;
|
||||
float2 f2_ = (float2)0;
|
||||
float3 f3_ = (float3)0;
|
||||
float4 f4_ = (float4)0;
|
||||
int2 i2_ = (0).xx;
|
||||
int3 i3_ = (0).xxx;
|
||||
int4 i4_ = (0).xxxx;
|
||||
uint2 u2_ = (0u).xx;
|
||||
uint3 u3_ = (0u).xxx;
|
||||
uint4 u4_ = (0u).xxxx;
|
||||
float2 f2_ = (0.0).xx;
|
||||
float3 f3_ = (0.0).xxx;
|
||||
float4 f4_ = (0.0).xxxx;
|
||||
|
||||
i2_ = (0).xx;
|
||||
i3_ = (0).xxx;
|
||||
i4_ = (0).xxxx;
|
||||
u2_ = (0u).xx;
|
||||
u3_ = (0u).xxx;
|
||||
u4_ = (0u).xxxx;
|
||||
f2_ = (0.0).xx;
|
||||
f3_ = (0.0).xxx;
|
||||
f4_ = (0.0).xxxx;
|
||||
int2 _expr27 = i2_;
|
||||
u2_ = asuint(_expr27);
|
||||
int3 _expr29 = i3_;
|
||||
|
@ -1,27 +1,17 @@
|
||||
[numthreads(1, 1, 1)]
|
||||
void main()
|
||||
{
|
||||
int i = (int)0;
|
||||
int2 i2_ = (int2)0;
|
||||
int3 i3_ = (int3)0;
|
||||
int4 i4_ = (int4)0;
|
||||
uint u = (uint)0;
|
||||
uint2 u2_ = (uint2)0;
|
||||
uint3 u3_ = (uint3)0;
|
||||
uint4 u4_ = (uint4)0;
|
||||
float2 f2_ = (float2)0;
|
||||
float4 f4_ = (float4)0;
|
||||
int i = 0;
|
||||
int2 i2_ = (0).xx;
|
||||
int3 i3_ = (0).xxx;
|
||||
int4 i4_ = (0).xxxx;
|
||||
uint u = 0u;
|
||||
uint2 u2_ = (0u).xx;
|
||||
uint3 u3_ = (0u).xxx;
|
||||
uint4 u4_ = (0u).xxxx;
|
||||
float2 f2_ = (0.0).xx;
|
||||
float4 f4_ = (0.0).xxxx;
|
||||
|
||||
i = 0;
|
||||
i2_ = (0).xx;
|
||||
i3_ = (0).xxx;
|
||||
i4_ = (0).xxxx;
|
||||
u = 0u;
|
||||
u2_ = (0u).xx;
|
||||
u3_ = (0u).xxx;
|
||||
u4_ = (0u).xxxx;
|
||||
f2_ = (0.0).xx;
|
||||
f4_ = (0.0).xxxx;
|
||||
float4 _expr28 = f4_;
|
||||
u = uint((int(round(clamp(_expr28[0], -1.0, 1.0) * 127.0)) & 0xFF) | ((int(round(clamp(_expr28[1], -1.0, 1.0) * 127.0)) & 0xFF) << 8) | ((int(round(clamp(_expr28[2], -1.0, 1.0) * 127.0)) & 0xFF) << 16) | ((int(round(clamp(_expr28[3], -1.0, 1.0) * 127.0)) & 0xFF) << 24));
|
||||
float4 _expr30 = f4_;
|
||||
|
@ -24,14 +24,14 @@ void main(uint3 global_invocation_id : SV_DispatchThreadID)
|
||||
{
|
||||
float2 vPos = (float2)0;
|
||||
float2 vVel = (float2)0;
|
||||
float2 cMass = (float2)0;
|
||||
float2 cVel = (float2)0;
|
||||
float2 colVel = (float2)0;
|
||||
int cMassCount = (int)0;
|
||||
int cVelCount = (int)0;
|
||||
float2 cMass = float2(0.0, 0.0);
|
||||
float2 cVel = float2(0.0, 0.0);
|
||||
float2 colVel = float2(0.0, 0.0);
|
||||
int cMassCount = 0;
|
||||
int cVelCount = 0;
|
||||
float2 pos = (float2)0;
|
||||
float2 vel = (float2)0;
|
||||
uint i = (uint)0;
|
||||
uint i = 0u;
|
||||
|
||||
uint index = global_invocation_id.x;
|
||||
if ((index >= NUM_PARTICLES)) {
|
||||
@ -41,12 +41,6 @@ void main(uint3 global_invocation_id : SV_DispatchThreadID)
|
||||
vPos = _expr8;
|
||||
float2 _expr14 = asfloat(particlesSrc.Load2(8+index*16+0));
|
||||
vVel = _expr14;
|
||||
cMass = float2(0.0, 0.0);
|
||||
cVel = float2(0.0, 0.0);
|
||||
colVel = float2(0.0, 0.0);
|
||||
cMassCount = 0;
|
||||
cVelCount = 0;
|
||||
i = 0u;
|
||||
bool loop_init = true;
|
||||
while(true) {
|
||||
if (!loop_init) {
|
||||
|
@ -3,10 +3,9 @@ RWByteAddressBuffer v_indices : register(u0);
|
||||
uint collatz_iterations(uint n_base)
|
||||
{
|
||||
uint n = (uint)0;
|
||||
uint i = (uint)0;
|
||||
uint i = 0u;
|
||||
|
||||
n = n_base;
|
||||
i = 0u;
|
||||
while(true) {
|
||||
uint _expr4 = n;
|
||||
if ((_expr4 > 1u)) {
|
||||
|
@ -17,11 +17,9 @@ FragmentOutput ConstructFragmentOutput(float4 arg0, float4 arg1) {
|
||||
FragmentOutput main(FragmentInput_main fragmentinput_main)
|
||||
{
|
||||
float4 position = fragmentinput_main.position_1;
|
||||
float4 color = (float4)0;
|
||||
float4 mask = (float4)0;
|
||||
float4 color = float4(0.4, 0.3, 0.2, 0.1);
|
||||
float4 mask = float4(0.9, 0.8, 0.7, 0.6);
|
||||
|
||||
color = float4(0.4, 0.3, 0.2, 0.1);
|
||||
mask = float4(0.9, 0.8, 0.7, 0.6);
|
||||
float4 _expr13 = color;
|
||||
float4 _expr14 = mask;
|
||||
const FragmentOutput fragmentoutput = ConstructFragmentOutput(_expr13, _expr14);
|
||||
|
@ -80,10 +80,9 @@ FooStruct ConstructFooStruct(float3 arg0, float arg1) {
|
||||
|
||||
void test_msl_packed_vec3_()
|
||||
{
|
||||
int idx = (int)0;
|
||||
int idx = 1;
|
||||
|
||||
alignment.Store3(0, asuint((1.0).xxx));
|
||||
idx = 1;
|
||||
alignment.Store(0+0, asuint(1.0));
|
||||
alignment.Store(0+0, asuint(2.0));
|
||||
int _expr16 = idx;
|
||||
@ -113,8 +112,8 @@ void main(uint3 __local_invocation_id : SV_GroupThreadID)
|
||||
at_1 = (uint)0;
|
||||
}
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
float Foo = (float)0;
|
||||
bool at = (bool)0;
|
||||
float Foo = 1.0;
|
||||
bool at = true;
|
||||
|
||||
test_msl_packed_vec3_();
|
||||
float4x2 _expr5 = ((float4x2)global_nested_arrays_of_matrices_4x2_[0][0]);
|
||||
@ -134,7 +133,5 @@ void main(uint3 __local_invocation_id : SV_GroupThreadID)
|
||||
alignment.Store(12, asuint(4.0));
|
||||
wg[1] = float(((NagaBufferLength(dummy) - 0) / 8));
|
||||
at_1 = 2u;
|
||||
Foo = 1.0;
|
||||
at = true;
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,7 @@
|
||||
float4 fs_main() : SV_Target0
|
||||
{
|
||||
float4 Pass_ = (float4)0;
|
||||
float4 Pass_ = float4(1.0, 1.0, 1.0, 1.0);
|
||||
|
||||
Pass_ = float4(1.0, 1.0, 1.0, 1.0);
|
||||
float4 _expr6 = Pass_;
|
||||
return _expr6;
|
||||
}
|
||||
|
@ -87,9 +87,8 @@ void compute(uint3 global_id : SV_DispatchThreadID, uint3 local_id : SV_GroupThr
|
||||
|
||||
precise float4 vertex_two_structs(Input1_ in1_, Input2_ in2_) : SV_Position
|
||||
{
|
||||
uint index = (uint)0;
|
||||
uint index = 2u;
|
||||
|
||||
index = 2u;
|
||||
uint _expr8 = index;
|
||||
return float4(float((_NagaConstants.base_vertex + in1_.index)), float((_NagaConstants.base_instance + in2_.index)), float(_expr8), 0.0);
|
||||
}
|
||||
|
@ -25,9 +25,8 @@ float4 splat()
|
||||
|
||||
float2 splat_assignment()
|
||||
{
|
||||
float2 a = (float2)0;
|
||||
float2 a = (2.0).xx;
|
||||
|
||||
a = (2.0).xx;
|
||||
float2 _expr4 = a;
|
||||
a = (_expr4 + (1.0).xx);
|
||||
float2 _expr8 = a;
|
||||
@ -153,10 +152,9 @@ void comparison()
|
||||
|
||||
void assignment()
|
||||
{
|
||||
int a_1 = (int)0;
|
||||
int a_1 = 1;
|
||||
int3 vec0_ = (int3)0;
|
||||
|
||||
a_1 = 1;
|
||||
int _expr3 = a_1;
|
||||
a_1 = (_expr3 + 1);
|
||||
int _expr6 = a_1;
|
||||
@ -183,7 +181,6 @@ void assignment()
|
||||
a_1 = (_expr33 + 1);
|
||||
int _expr36 = a_1;
|
||||
a_1 = (_expr36 - 1);
|
||||
vec0_ = (int3)0;
|
||||
int _expr42 = vec0_.y;
|
||||
vec0_.y = (_expr42 + 1);
|
||||
int _expr46 = vec0_.y;
|
||||
|
@ -88,12 +88,10 @@ Light ConstructLight(float4x4 arg0, float4 arg1, float4 arg2) {
|
||||
float4 fs_main(FragmentInput_fs_main fragmentinput_fs_main) : SV_Target0
|
||||
{
|
||||
VertexOutput in_ = { fragmentinput_fs_main.proj_position_1, fragmentinput_fs_main.world_normal_1, fragmentinput_fs_main.world_position_1 };
|
||||
float3 color = (float3)0;
|
||||
uint i = (uint)0;
|
||||
float3 color = c_ambient;
|
||||
uint i = 0u;
|
||||
|
||||
float3 normal_1 = normalize(in_.world_normal);
|
||||
color = c_ambient;
|
||||
i = 0u;
|
||||
bool loop_init = true;
|
||||
while(true) {
|
||||
if (!loop_init) {
|
||||
@ -126,12 +124,10 @@ float4 fs_main(FragmentInput_fs_main fragmentinput_fs_main) : SV_Target0
|
||||
float4 fs_main_without_storage(FragmentInput_fs_main_without_storage fragmentinput_fs_main_without_storage) : SV_Target0
|
||||
{
|
||||
VertexOutput in_1 = { fragmentinput_fs_main_without_storage.proj_position_2, fragmentinput_fs_main_without_storage.world_normal_2, fragmentinput_fs_main_without_storage.world_position_2 };
|
||||
float3 color_1 = (float3)0;
|
||||
uint i_1 = (uint)0;
|
||||
float3 color_1 = c_ambient;
|
||||
uint i_1 = 0u;
|
||||
|
||||
float3 normal_2 = normalize(in_1.world_normal);
|
||||
color_1 = c_ambient;
|
||||
i_1 = 0u;
|
||||
bool loop_init_1 = true;
|
||||
while(true) {
|
||||
if (!loop_init_1) {
|
||||
|
@ -396,12 +396,12 @@
|
||||
(
|
||||
name: Some("idx"),
|
||||
ty: 3,
|
||||
init: None,
|
||||
init: Some(1),
|
||||
),
|
||||
(
|
||||
name: Some("t"),
|
||||
ty: 16,
|
||||
init: None,
|
||||
init: Some(49),
|
||||
),
|
||||
],
|
||||
expressions: [
|
||||
@ -697,10 +697,6 @@
|
||||
41: "l6",
|
||||
},
|
||||
body: [
|
||||
Store(
|
||||
pointer: 2,
|
||||
value: 1,
|
||||
),
|
||||
Emit((
|
||||
start: 3,
|
||||
end: 5,
|
||||
@ -769,10 +765,6 @@
|
||||
start: 46,
|
||||
end: 49,
|
||||
)),
|
||||
Store(
|
||||
pointer: 50,
|
||||
value: 49,
|
||||
),
|
||||
Emit((
|
||||
start: 51,
|
||||
end: 53,
|
||||
@ -890,12 +882,12 @@
|
||||
(
|
||||
name: Some("idx"),
|
||||
ty: 3,
|
||||
init: None,
|
||||
init: Some(1),
|
||||
),
|
||||
(
|
||||
name: Some("t"),
|
||||
ty: 20,
|
||||
init: None,
|
||||
init: Some(53),
|
||||
),
|
||||
],
|
||||
expressions: [
|
||||
@ -1245,10 +1237,6 @@
|
||||
51: "l7",
|
||||
},
|
||||
body: [
|
||||
Store(
|
||||
pointer: 2,
|
||||
value: 1,
|
||||
),
|
||||
Emit((
|
||||
start: 3,
|
||||
end: 5,
|
||||
@ -1341,10 +1329,6 @@
|
||||
start: 52,
|
||||
end: 53,
|
||||
)),
|
||||
Store(
|
||||
pointer: 54,
|
||||
value: 53,
|
||||
),
|
||||
Emit((
|
||||
start: 55,
|
||||
end: 57,
|
||||
@ -1675,7 +1659,7 @@
|
||||
(
|
||||
name: Some("foo"),
|
||||
ty: 21,
|
||||
init: None,
|
||||
init: Some(2),
|
||||
),
|
||||
(
|
||||
name: Some("c2"),
|
||||
@ -1846,10 +1830,6 @@
|
||||
46: "value",
|
||||
},
|
||||
body: [
|
||||
Store(
|
||||
pointer: 3,
|
||||
value: 2,
|
||||
),
|
||||
Emit((
|
||||
start: 3,
|
||||
end: 4,
|
||||
@ -2160,7 +2140,7 @@
|
||||
(
|
||||
name: Some("arr"),
|
||||
ty: 28,
|
||||
init: None,
|
||||
init: Some(5),
|
||||
),
|
||||
],
|
||||
expressions: [
|
||||
@ -2194,10 +2174,6 @@
|
||||
start: 3,
|
||||
end: 5,
|
||||
)),
|
||||
Store(
|
||||
pointer: 6,
|
||||
value: 5,
|
||||
),
|
||||
Call(
|
||||
function: 5,
|
||||
arguments: [
|
||||
|
@ -455,12 +455,12 @@
|
||||
(
|
||||
name: Some("idx"),
|
||||
ty: 3,
|
||||
init: None,
|
||||
init: Some(1),
|
||||
),
|
||||
(
|
||||
name: Some("t"),
|
||||
ty: 16,
|
||||
init: None,
|
||||
init: Some(54),
|
||||
),
|
||||
],
|
||||
expressions: [
|
||||
@ -766,10 +766,6 @@
|
||||
46: "l6",
|
||||
},
|
||||
body: [
|
||||
Store(
|
||||
pointer: 2,
|
||||
value: 1,
|
||||
),
|
||||
Emit((
|
||||
start: 3,
|
||||
end: 5,
|
||||
@ -838,10 +834,6 @@
|
||||
start: 51,
|
||||
end: 54,
|
||||
)),
|
||||
Store(
|
||||
pointer: 55,
|
||||
value: 54,
|
||||
),
|
||||
Emit((
|
||||
start: 56,
|
||||
end: 58,
|
||||
@ -959,12 +951,12 @@
|
||||
(
|
||||
name: Some("idx"),
|
||||
ty: 3,
|
||||
init: None,
|
||||
init: Some(1),
|
||||
),
|
||||
(
|
||||
name: Some("t"),
|
||||
ty: 21,
|
||||
init: None,
|
||||
init: Some(65),
|
||||
),
|
||||
],
|
||||
expressions: [
|
||||
@ -1338,10 +1330,6 @@
|
||||
63: "l7",
|
||||
},
|
||||
body: [
|
||||
Store(
|
||||
pointer: 2,
|
||||
value: 1,
|
||||
),
|
||||
Emit((
|
||||
start: 3,
|
||||
end: 5,
|
||||
@ -1434,10 +1422,6 @@
|
||||
start: 64,
|
||||
end: 65,
|
||||
)),
|
||||
Store(
|
||||
pointer: 66,
|
||||
value: 65,
|
||||
),
|
||||
Emit((
|
||||
start: 67,
|
||||
end: 69,
|
||||
@ -1770,7 +1754,7 @@
|
||||
(
|
||||
name: Some("foo"),
|
||||
ty: 22,
|
||||
init: None,
|
||||
init: Some(2),
|
||||
),
|
||||
(
|
||||
name: Some("c2"),
|
||||
@ -1942,10 +1926,6 @@
|
||||
47: "value",
|
||||
},
|
||||
body: [
|
||||
Store(
|
||||
pointer: 3,
|
||||
value: 2,
|
||||
),
|
||||
Emit((
|
||||
start: 3,
|
||||
end: 4,
|
||||
@ -2258,7 +2238,7 @@
|
||||
(
|
||||
name: Some("arr"),
|
||||
ty: 32,
|
||||
init: None,
|
||||
init: Some(5),
|
||||
),
|
||||
],
|
||||
expressions: [
|
||||
@ -2292,10 +2272,6 @@
|
||||
start: 3,
|
||||
end: 5,
|
||||
)),
|
||||
Store(
|
||||
pointer: 6,
|
||||
value: 5,
|
||||
),
|
||||
Call(
|
||||
function: 5,
|
||||
arguments: [
|
||||
|
@ -82,7 +82,7 @@
|
||||
(
|
||||
name: Some("i"),
|
||||
ty: 1,
|
||||
init: None,
|
||||
init: Some(3),
|
||||
),
|
||||
],
|
||||
expressions: [
|
||||
@ -159,10 +159,6 @@
|
||||
pointer: 2,
|
||||
value: 1,
|
||||
),
|
||||
Store(
|
||||
pointer: 4,
|
||||
value: 3,
|
||||
),
|
||||
Loop(
|
||||
body: [
|
||||
Emit((
|
||||
|
@ -86,7 +86,7 @@
|
||||
(
|
||||
name: Some("i"),
|
||||
ty: 1,
|
||||
init: None,
|
||||
init: Some(3),
|
||||
),
|
||||
],
|
||||
expressions: [
|
||||
@ -163,10 +163,6 @@
|
||||
pointer: 2,
|
||||
value: 1,
|
||||
),
|
||||
Store(
|
||||
pointer: 4,
|
||||
value: 3,
|
||||
),
|
||||
Loop(
|
||||
body: [
|
||||
Emit((
|
||||
|
@ -356,8 +356,6 @@
|
||||
Literal(I32(0)),
|
||||
Literal(I32(1)),
|
||||
Literal(I32(2)),
|
||||
Constant(6),
|
||||
Constant(8),
|
||||
],
|
||||
functions: [
|
||||
(
|
||||
@ -558,12 +556,12 @@
|
||||
(
|
||||
name: Some("color"),
|
||||
ty: 2,
|
||||
init: Some(23),
|
||||
init: Some(20),
|
||||
),
|
||||
(
|
||||
name: Some("i"),
|
||||
ty: 3,
|
||||
init: Some(24),
|
||||
init: Some(22),
|
||||
),
|
||||
],
|
||||
expressions: [
|
||||
@ -586,65 +584,67 @@
|
||||
Constant(10),
|
||||
Constant(12),
|
||||
Constant(1),
|
||||
Constant(6),
|
||||
LocalVariable(1),
|
||||
Constant(8),
|
||||
LocalVariable(2),
|
||||
Load(
|
||||
pointer: 21,
|
||||
pointer: 23,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 1,
|
||||
index: 0,
|
||||
),
|
||||
Access(
|
||||
base: 23,
|
||||
base: 25,
|
||||
index: 17,
|
||||
),
|
||||
Load(
|
||||
pointer: 24,
|
||||
pointer: 26,
|
||||
),
|
||||
Math(
|
||||
fun: Min,
|
||||
arg: 25,
|
||||
arg: 27,
|
||||
arg1: Some(13),
|
||||
arg2: None,
|
||||
arg3: None,
|
||||
),
|
||||
Binary(
|
||||
op: GreaterEqual,
|
||||
left: 22,
|
||||
right: 26,
|
||||
),
|
||||
Load(
|
||||
pointer: 20,
|
||||
left: 24,
|
||||
right: 28,
|
||||
),
|
||||
Load(
|
||||
pointer: 21,
|
||||
),
|
||||
Load(
|
||||
pointer: 23,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 4,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 21,
|
||||
pointer: 23,
|
||||
),
|
||||
Access(
|
||||
base: 30,
|
||||
index: 31,
|
||||
base: 32,
|
||||
index: 33,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 32,
|
||||
base: 34,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 33,
|
||||
pointer: 35,
|
||||
),
|
||||
Load(
|
||||
pointer: 3,
|
||||
),
|
||||
Binary(
|
||||
op: Multiply,
|
||||
left: 34,
|
||||
right: 35,
|
||||
left: 36,
|
||||
right: 37,
|
||||
),
|
||||
CallResult(1),
|
||||
Load(
|
||||
@ -652,7 +652,7 @@
|
||||
),
|
||||
Math(
|
||||
fun: Normalize,
|
||||
arg: 38,
|
||||
arg: 40,
|
||||
arg1: None,
|
||||
arg2: None,
|
||||
arg3: None,
|
||||
@ -662,73 +662,73 @@
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 21,
|
||||
pointer: 23,
|
||||
),
|
||||
Access(
|
||||
base: 40,
|
||||
index: 41,
|
||||
base: 42,
|
||||
index: 43,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 42,
|
||||
base: 44,
|
||||
index: 1,
|
||||
),
|
||||
Access(
|
||||
base: 43,
|
||||
base: 45,
|
||||
index: 15,
|
||||
),
|
||||
Load(
|
||||
pointer: 44,
|
||||
pointer: 46,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 4,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 21,
|
||||
pointer: 23,
|
||||
),
|
||||
Access(
|
||||
base: 46,
|
||||
index: 47,
|
||||
base: 48,
|
||||
index: 49,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 48,
|
||||
base: 50,
|
||||
index: 1,
|
||||
),
|
||||
Access(
|
||||
base: 49,
|
||||
base: 51,
|
||||
index: 18,
|
||||
),
|
||||
Load(
|
||||
pointer: 50,
|
||||
pointer: 52,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 4,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 21,
|
||||
pointer: 23,
|
||||
),
|
||||
Access(
|
||||
base: 52,
|
||||
index: 53,
|
||||
base: 54,
|
||||
index: 55,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 54,
|
||||
base: 56,
|
||||
index: 1,
|
||||
),
|
||||
Access(
|
||||
base: 55,
|
||||
base: 57,
|
||||
index: 8,
|
||||
),
|
||||
Load(
|
||||
pointer: 56,
|
||||
pointer: 58,
|
||||
),
|
||||
Compose(
|
||||
ty: 2,
|
||||
components: [
|
||||
45,
|
||||
51,
|
||||
57,
|
||||
47,
|
||||
53,
|
||||
59,
|
||||
],
|
||||
),
|
||||
Access(
|
||||
@ -736,160 +736,160 @@
|
||||
index: 16,
|
||||
),
|
||||
Load(
|
||||
pointer: 59,
|
||||
pointer: 61,
|
||||
),
|
||||
Access(
|
||||
base: 3,
|
||||
index: 7,
|
||||
),
|
||||
Load(
|
||||
pointer: 61,
|
||||
pointer: 63,
|
||||
),
|
||||
Access(
|
||||
base: 3,
|
||||
index: 10,
|
||||
),
|
||||
Load(
|
||||
pointer: 63,
|
||||
pointer: 65,
|
||||
),
|
||||
Compose(
|
||||
ty: 2,
|
||||
components: [
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
],
|
||||
),
|
||||
Binary(
|
||||
op: Subtract,
|
||||
left: 58,
|
||||
right: 65,
|
||||
left: 60,
|
||||
right: 67,
|
||||
),
|
||||
Math(
|
||||
fun: Normalize,
|
||||
arg: 66,
|
||||
arg: 68,
|
||||
arg1: None,
|
||||
arg2: None,
|
||||
arg3: None,
|
||||
),
|
||||
Math(
|
||||
fun: Dot,
|
||||
arg: 39,
|
||||
arg1: Some(67),
|
||||
arg: 41,
|
||||
arg1: Some(69),
|
||||
arg2: None,
|
||||
arg3: None,
|
||||
),
|
||||
Math(
|
||||
fun: Max,
|
||||
arg: 19,
|
||||
arg1: Some(68),
|
||||
arg1: Some(70),
|
||||
arg2: None,
|
||||
arg3: None,
|
||||
),
|
||||
Binary(
|
||||
op: Multiply,
|
||||
left: 37,
|
||||
right: 69,
|
||||
left: 39,
|
||||
right: 71,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 4,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 21,
|
||||
pointer: 23,
|
||||
),
|
||||
Access(
|
||||
base: 71,
|
||||
index: 72,
|
||||
base: 73,
|
||||
index: 74,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 73,
|
||||
base: 75,
|
||||
index: 2,
|
||||
),
|
||||
Access(
|
||||
base: 74,
|
||||
base: 76,
|
||||
index: 6,
|
||||
),
|
||||
Load(
|
||||
pointer: 75,
|
||||
pointer: 77,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 4,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 21,
|
||||
pointer: 23,
|
||||
),
|
||||
Access(
|
||||
base: 77,
|
||||
index: 78,
|
||||
base: 79,
|
||||
index: 80,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 79,
|
||||
base: 81,
|
||||
index: 2,
|
||||
),
|
||||
Access(
|
||||
base: 80,
|
||||
base: 82,
|
||||
index: 9,
|
||||
),
|
||||
Load(
|
||||
pointer: 81,
|
||||
pointer: 83,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 4,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 21,
|
||||
pointer: 23,
|
||||
),
|
||||
Access(
|
||||
base: 83,
|
||||
index: 84,
|
||||
base: 85,
|
||||
index: 86,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 85,
|
||||
base: 87,
|
||||
index: 2,
|
||||
),
|
||||
Access(
|
||||
base: 86,
|
||||
base: 88,
|
||||
index: 11,
|
||||
),
|
||||
Load(
|
||||
pointer: 87,
|
||||
pointer: 89,
|
||||
),
|
||||
Compose(
|
||||
ty: 2,
|
||||
components: [
|
||||
76,
|
||||
82,
|
||||
88,
|
||||
78,
|
||||
84,
|
||||
90,
|
||||
],
|
||||
),
|
||||
Binary(
|
||||
op: Multiply,
|
||||
left: 89,
|
||||
right: 70,
|
||||
left: 91,
|
||||
right: 72,
|
||||
),
|
||||
Binary(
|
||||
op: Add,
|
||||
left: 28,
|
||||
right: 90,
|
||||
left: 30,
|
||||
right: 92,
|
||||
),
|
||||
Load(
|
||||
pointer: 23,
|
||||
),
|
||||
Binary(
|
||||
op: Add,
|
||||
left: 94,
|
||||
right: 12,
|
||||
),
|
||||
Load(
|
||||
pointer: 21,
|
||||
),
|
||||
Binary(
|
||||
op: Add,
|
||||
left: 92,
|
||||
right: 12,
|
||||
),
|
||||
Load(
|
||||
pointer: 20,
|
||||
),
|
||||
Compose(
|
||||
ty: 4,
|
||||
components: [
|
||||
94,
|
||||
96,
|
||||
14,
|
||||
],
|
||||
),
|
||||
@ -899,57 +899,57 @@
|
||||
Loop(
|
||||
body: [
|
||||
Emit((
|
||||
start: 21,
|
||||
end: 27,
|
||||
start: 23,
|
||||
end: 29,
|
||||
)),
|
||||
If(
|
||||
condition: 27,
|
||||
condition: 29,
|
||||
accept: [
|
||||
Break,
|
||||
],
|
||||
reject: [],
|
||||
),
|
||||
Emit((
|
||||
start: 27,
|
||||
end: 36,
|
||||
start: 29,
|
||||
end: 38,
|
||||
)),
|
||||
Call(
|
||||
function: 1,
|
||||
arguments: [
|
||||
29,
|
||||
36,
|
||||
31,
|
||||
38,
|
||||
],
|
||||
result: Some(37),
|
||||
result: Some(39),
|
||||
),
|
||||
Emit((
|
||||
start: 37,
|
||||
end: 91,
|
||||
)),
|
||||
Store(
|
||||
pointer: 20,
|
||||
value: 91,
|
||||
),
|
||||
Continue,
|
||||
],
|
||||
continuing: [
|
||||
Emit((
|
||||
start: 91,
|
||||
start: 39,
|
||||
end: 93,
|
||||
)),
|
||||
Store(
|
||||
pointer: 21,
|
||||
value: 93,
|
||||
),
|
||||
Continue,
|
||||
],
|
||||
continuing: [
|
||||
Emit((
|
||||
start: 93,
|
||||
end: 95,
|
||||
)),
|
||||
Store(
|
||||
pointer: 23,
|
||||
value: 95,
|
||||
),
|
||||
],
|
||||
break_if: None,
|
||||
),
|
||||
Emit((
|
||||
start: 93,
|
||||
end: 95,
|
||||
start: 95,
|
||||
end: 97,
|
||||
)),
|
||||
Store(
|
||||
pointer: 5,
|
||||
value: 95,
|
||||
value: 97,
|
||||
),
|
||||
Return(
|
||||
value: None,
|
||||
|
@ -591,8 +591,6 @@
|
||||
Literal(I32(0)),
|
||||
Literal(I32(2)),
|
||||
Literal(I32(2)),
|
||||
Constant(6),
|
||||
Constant(8),
|
||||
],
|
||||
functions: [
|
||||
(
|
||||
@ -829,12 +827,12 @@
|
||||
(
|
||||
name: Some("color"),
|
||||
ty: 2,
|
||||
init: Some(39),
|
||||
init: Some(43),
|
||||
),
|
||||
(
|
||||
name: Some("i"),
|
||||
ty: 3,
|
||||
init: Some(40),
|
||||
init: Some(45),
|
||||
),
|
||||
],
|
||||
expressions: [
|
||||
@ -880,65 +878,67 @@
|
||||
Constant(18),
|
||||
Constant(6),
|
||||
Constant(1),
|
||||
Constant(6),
|
||||
LocalVariable(1),
|
||||
Constant(8),
|
||||
LocalVariable(2),
|
||||
Load(
|
||||
pointer: 44,
|
||||
pointer: 46,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 1,
|
||||
index: 0,
|
||||
),
|
||||
Access(
|
||||
base: 46,
|
||||
base: 48,
|
||||
index: 37,
|
||||
),
|
||||
Load(
|
||||
pointer: 47,
|
||||
pointer: 49,
|
||||
),
|
||||
Math(
|
||||
fun: Min,
|
||||
arg: 48,
|
||||
arg: 50,
|
||||
arg1: Some(28),
|
||||
arg2: None,
|
||||
arg3: None,
|
||||
),
|
||||
Binary(
|
||||
op: GreaterEqual,
|
||||
left: 45,
|
||||
right: 49,
|
||||
),
|
||||
Load(
|
||||
pointer: 43,
|
||||
left: 47,
|
||||
right: 51,
|
||||
),
|
||||
Load(
|
||||
pointer: 44,
|
||||
),
|
||||
Load(
|
||||
pointer: 46,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 6,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 44,
|
||||
pointer: 46,
|
||||
),
|
||||
Access(
|
||||
base: 53,
|
||||
index: 54,
|
||||
base: 55,
|
||||
index: 56,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 55,
|
||||
base: 57,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 56,
|
||||
pointer: 58,
|
||||
),
|
||||
Load(
|
||||
pointer: 3,
|
||||
),
|
||||
Binary(
|
||||
op: Multiply,
|
||||
left: 57,
|
||||
right: 58,
|
||||
left: 59,
|
||||
right: 60,
|
||||
),
|
||||
CallResult(1),
|
||||
Load(
|
||||
@ -946,7 +946,7 @@
|
||||
),
|
||||
Math(
|
||||
fun: Normalize,
|
||||
arg: 61,
|
||||
arg: 63,
|
||||
arg1: None,
|
||||
arg2: None,
|
||||
arg3: None,
|
||||
@ -956,73 +956,73 @@
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 44,
|
||||
pointer: 46,
|
||||
),
|
||||
Access(
|
||||
base: 63,
|
||||
index: 64,
|
||||
base: 65,
|
||||
index: 66,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 65,
|
||||
base: 67,
|
||||
index: 1,
|
||||
),
|
||||
Access(
|
||||
base: 66,
|
||||
base: 68,
|
||||
index: 31,
|
||||
),
|
||||
Load(
|
||||
pointer: 67,
|
||||
pointer: 69,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 6,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 44,
|
||||
pointer: 46,
|
||||
),
|
||||
Access(
|
||||
base: 69,
|
||||
index: 70,
|
||||
base: 71,
|
||||
index: 72,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 71,
|
||||
base: 73,
|
||||
index: 1,
|
||||
),
|
||||
Access(
|
||||
base: 72,
|
||||
base: 74,
|
||||
index: 38,
|
||||
),
|
||||
Load(
|
||||
pointer: 73,
|
||||
pointer: 75,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 6,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 44,
|
||||
pointer: 46,
|
||||
),
|
||||
Access(
|
||||
base: 75,
|
||||
index: 76,
|
||||
base: 77,
|
||||
index: 78,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 77,
|
||||
base: 79,
|
||||
index: 1,
|
||||
),
|
||||
Access(
|
||||
base: 78,
|
||||
base: 80,
|
||||
index: 13,
|
||||
),
|
||||
Load(
|
||||
pointer: 79,
|
||||
pointer: 81,
|
||||
),
|
||||
Compose(
|
||||
ty: 2,
|
||||
components: [
|
||||
68,
|
||||
74,
|
||||
80,
|
||||
70,
|
||||
76,
|
||||
82,
|
||||
],
|
||||
),
|
||||
Access(
|
||||
@ -1030,160 +1030,160 @@
|
||||
index: 36,
|
||||
),
|
||||
Load(
|
||||
pointer: 82,
|
||||
pointer: 84,
|
||||
),
|
||||
Access(
|
||||
base: 3,
|
||||
index: 12,
|
||||
),
|
||||
Load(
|
||||
pointer: 84,
|
||||
pointer: 86,
|
||||
),
|
||||
Access(
|
||||
base: 3,
|
||||
index: 23,
|
||||
),
|
||||
Load(
|
||||
pointer: 86,
|
||||
pointer: 88,
|
||||
),
|
||||
Compose(
|
||||
ty: 2,
|
||||
components: [
|
||||
83,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
],
|
||||
),
|
||||
Binary(
|
||||
op: Subtract,
|
||||
left: 81,
|
||||
right: 88,
|
||||
left: 83,
|
||||
right: 90,
|
||||
),
|
||||
Math(
|
||||
fun: Normalize,
|
||||
arg: 89,
|
||||
arg: 91,
|
||||
arg1: None,
|
||||
arg2: None,
|
||||
arg3: None,
|
||||
),
|
||||
Math(
|
||||
fun: Dot,
|
||||
arg: 62,
|
||||
arg1: Some(90),
|
||||
arg: 64,
|
||||
arg1: Some(92),
|
||||
arg2: None,
|
||||
arg3: None,
|
||||
),
|
||||
Math(
|
||||
fun: Max,
|
||||
arg: 42,
|
||||
arg1: Some(91),
|
||||
arg1: Some(93),
|
||||
arg2: None,
|
||||
arg3: None,
|
||||
),
|
||||
Binary(
|
||||
op: Multiply,
|
||||
left: 60,
|
||||
right: 92,
|
||||
left: 62,
|
||||
right: 94,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 6,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 44,
|
||||
pointer: 46,
|
||||
),
|
||||
Access(
|
||||
base: 94,
|
||||
index: 95,
|
||||
base: 96,
|
||||
index: 97,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 96,
|
||||
base: 98,
|
||||
index: 2,
|
||||
),
|
||||
Access(
|
||||
base: 97,
|
||||
base: 99,
|
||||
index: 10,
|
||||
),
|
||||
Load(
|
||||
pointer: 98,
|
||||
pointer: 100,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 6,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 44,
|
||||
pointer: 46,
|
||||
),
|
||||
Access(
|
||||
base: 100,
|
||||
index: 101,
|
||||
base: 102,
|
||||
index: 103,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 102,
|
||||
base: 104,
|
||||
index: 2,
|
||||
),
|
||||
Access(
|
||||
base: 103,
|
||||
base: 105,
|
||||
index: 19,
|
||||
),
|
||||
Load(
|
||||
pointer: 104,
|
||||
pointer: 106,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 6,
|
||||
index: 0,
|
||||
),
|
||||
Load(
|
||||
pointer: 44,
|
||||
pointer: 46,
|
||||
),
|
||||
Access(
|
||||
base: 106,
|
||||
index: 107,
|
||||
base: 108,
|
||||
index: 109,
|
||||
),
|
||||
AccessIndex(
|
||||
base: 108,
|
||||
base: 110,
|
||||
index: 2,
|
||||
),
|
||||
Access(
|
||||
base: 109,
|
||||
base: 111,
|
||||
index: 26,
|
||||
),
|
||||
Load(
|
||||
pointer: 110,
|
||||
pointer: 112,
|
||||
),
|
||||
Compose(
|
||||
ty: 2,
|
||||
components: [
|
||||
99,
|
||||
105,
|
||||
111,
|
||||
101,
|
||||
107,
|
||||
113,
|
||||
],
|
||||
),
|
||||
Binary(
|
||||
op: Multiply,
|
||||
left: 112,
|
||||
right: 93,
|
||||
left: 114,
|
||||
right: 95,
|
||||
),
|
||||
Binary(
|
||||
op: Add,
|
||||
left: 51,
|
||||
right: 113,
|
||||
left: 53,
|
||||
right: 115,
|
||||
),
|
||||
Load(
|
||||
pointer: 46,
|
||||
),
|
||||
Binary(
|
||||
op: Add,
|
||||
left: 117,
|
||||
right: 27,
|
||||
),
|
||||
Load(
|
||||
pointer: 44,
|
||||
),
|
||||
Binary(
|
||||
op: Add,
|
||||
left: 115,
|
||||
right: 27,
|
||||
),
|
||||
Load(
|
||||
pointer: 43,
|
||||
),
|
||||
Compose(
|
||||
ty: 4,
|
||||
components: [
|
||||
117,
|
||||
119,
|
||||
30,
|
||||
],
|
||||
),
|
||||
@ -1193,57 +1193,57 @@
|
||||
Loop(
|
||||
body: [
|
||||
Emit((
|
||||
start: 44,
|
||||
end: 50,
|
||||
start: 46,
|
||||
end: 52,
|
||||
)),
|
||||
If(
|
||||
condition: 50,
|
||||
condition: 52,
|
||||
accept: [
|
||||
Break,
|
||||
],
|
||||
reject: [],
|
||||
),
|
||||
Emit((
|
||||
start: 50,
|
||||
end: 59,
|
||||
start: 52,
|
||||
end: 61,
|
||||
)),
|
||||
Call(
|
||||
function: 1,
|
||||
arguments: [
|
||||
52,
|
||||
59,
|
||||
54,
|
||||
61,
|
||||
],
|
||||
result: Some(60),
|
||||
result: Some(62),
|
||||
),
|
||||
Emit((
|
||||
start: 60,
|
||||
end: 114,
|
||||
)),
|
||||
Store(
|
||||
pointer: 43,
|
||||
value: 114,
|
||||
),
|
||||
Continue,
|
||||
],
|
||||
continuing: [
|
||||
Emit((
|
||||
start: 114,
|
||||
start: 62,
|
||||
end: 116,
|
||||
)),
|
||||
Store(
|
||||
pointer: 44,
|
||||
value: 116,
|
||||
),
|
||||
Continue,
|
||||
],
|
||||
continuing: [
|
||||
Emit((
|
||||
start: 116,
|
||||
end: 118,
|
||||
)),
|
||||
Store(
|
||||
pointer: 46,
|
||||
value: 118,
|
||||
),
|
||||
],
|
||||
break_if: None,
|
||||
),
|
||||
Emit((
|
||||
start: 116,
|
||||
end: 118,
|
||||
start: 118,
|
||||
end: 120,
|
||||
)),
|
||||
Store(
|
||||
pointer: 7,
|
||||
value: 118,
|
||||
value: 120,
|
||||
),
|
||||
Return(
|
||||
value: None,
|
||||
|
@ -61,9 +61,8 @@ struct type_22 {
|
||||
void test_matrix_within_struct_accesses(
|
||||
constant Baz& baz
|
||||
) {
|
||||
int idx = {};
|
||||
Baz t = {};
|
||||
idx = 1;
|
||||
int idx = 1;
|
||||
Baz t = Baz {metal::float3x2(metal::float2(1.0), metal::float2(2.0), metal::float2(3.0))};
|
||||
int _e3 = idx;
|
||||
idx = _e3 - 1;
|
||||
metal::float3x2 l0_ = baz.m;
|
||||
@ -78,7 +77,6 @@ void test_matrix_within_struct_accesses(
|
||||
int _e36 = idx;
|
||||
int _e38 = idx;
|
||||
float l6_ = baz.m[_e36][_e38];
|
||||
t = Baz {metal::float3x2(metal::float2(1.0), metal::float2(2.0), metal::float2(3.0))};
|
||||
int _e51 = idx;
|
||||
idx = _e51 + 1;
|
||||
t.m = metal::float3x2(metal::float2(6.0), metal::float2(5.0), metal::float2(4.0));
|
||||
@ -99,9 +97,8 @@ void test_matrix_within_struct_accesses(
|
||||
void test_matrix_within_array_within_struct_accesses(
|
||||
constant MatCx2InArray& nested_mat_cx2_
|
||||
) {
|
||||
int idx_1 = {};
|
||||
MatCx2InArray t_1 = {};
|
||||
idx_1 = 1;
|
||||
int idx_1 = 1;
|
||||
MatCx2InArray t_1 = MatCx2InArray {type_14 {}};
|
||||
int _e3 = idx_1;
|
||||
idx_1 = _e3 - 1;
|
||||
type_14 l0_1 = nested_mat_cx2_.am;
|
||||
@ -117,7 +114,6 @@ void test_matrix_within_array_within_struct_accesses(
|
||||
int _e46 = idx_1;
|
||||
int _e48 = idx_1;
|
||||
float l7_ = nested_mat_cx2_.am.inner[0][_e46][_e48];
|
||||
t_1 = MatCx2InArray {type_14 {}};
|
||||
int _e55 = idx_1;
|
||||
idx_1 = _e55 + 1;
|
||||
t_1.am = type_14 {};
|
||||
@ -176,9 +172,8 @@ vertex foo_vertOutput foo_vert(
|
||||
, constant MatCx2InArray& nested_mat_cx2_ [[buffer(3)]]
|
||||
, constant _mslBufferSizes& _buffer_sizes [[buffer(24)]]
|
||||
) {
|
||||
float foo = {};
|
||||
float foo = 0.0;
|
||||
type_20 c2_ = {};
|
||||
foo = 0.0;
|
||||
float baz_1 = foo;
|
||||
foo = 1.0;
|
||||
test_matrix_within_struct_accesses(baz);
|
||||
@ -222,8 +217,7 @@ kernel void assign_through_ptr(
|
||||
val = {};
|
||||
}
|
||||
metal::threadgroup_barrier(metal::mem_flags::mem_threadgroup);
|
||||
type_22 arr = {};
|
||||
arr = type_22 {metal::float4(6.0), metal::float4(7.0)};
|
||||
type_22 arr = type_22 {metal::float4(6.0), metal::float4(7.0)};
|
||||
assign_through_ptr_fn(val);
|
||||
assign_array_through_ptr_fn(arr);
|
||||
return;
|
||||
|
@ -36,16 +36,12 @@ fragment main_Output main_(
|
||||
, constant UniformIndex& uni [[user(fake0)]]
|
||||
) {
|
||||
const FragmentIn fragment_in = { varyings.index };
|
||||
uint u1_ = {};
|
||||
metal::uint2 u2_ = {};
|
||||
float v1_ = {};
|
||||
metal::float4 v4_ = {};
|
||||
uint u1_ = 0u;
|
||||
metal::uint2 u2_ = metal::uint2(0u);
|
||||
float v1_ = 0.0;
|
||||
metal::float4 v4_ = metal::float4(0.0);
|
||||
uint uniform_index = uni.index;
|
||||
uint non_uniform_index = fragment_in.index;
|
||||
u1_ = 0u;
|
||||
u2_ = metal::uint2(0u);
|
||||
v1_ = 0.0;
|
||||
v4_ = metal::float4(0.0);
|
||||
metal::float2 uv = metal::float2(0.0);
|
||||
metal::int2 pix = metal::int2(0);
|
||||
metal::uint2 _e22 = u2_;
|
||||
|
@ -7,24 +7,15 @@ using metal::uint;
|
||||
|
||||
kernel void main_(
|
||||
) {
|
||||
metal::int2 i2_ = {};
|
||||
metal::int3 i3_ = {};
|
||||
metal::int4 i4_ = {};
|
||||
metal::uint2 u2_ = {};
|
||||
metal::uint3 u3_ = {};
|
||||
metal::uint4 u4_ = {};
|
||||
metal::float2 f2_ = {};
|
||||
metal::float3 f3_ = {};
|
||||
metal::float4 f4_ = {};
|
||||
i2_ = metal::int2(0);
|
||||
i3_ = metal::int3(0);
|
||||
i4_ = metal::int4(0);
|
||||
u2_ = metal::uint2(0u);
|
||||
u3_ = metal::uint3(0u);
|
||||
u4_ = metal::uint4(0u);
|
||||
f2_ = metal::float2(0.0);
|
||||
f3_ = metal::float3(0.0);
|
||||
f4_ = metal::float4(0.0);
|
||||
metal::int2 i2_ = metal::int2(0);
|
||||
metal::int3 i3_ = metal::int3(0);
|
||||
metal::int4 i4_ = metal::int4(0);
|
||||
metal::uint2 u2_ = metal::uint2(0u);
|
||||
metal::uint3 u3_ = metal::uint3(0u);
|
||||
metal::uint4 u4_ = metal::uint4(0u);
|
||||
metal::float2 f2_ = metal::float2(0.0);
|
||||
metal::float3 f3_ = metal::float3(0.0);
|
||||
metal::float4 f4_ = metal::float4(0.0);
|
||||
metal::int2 _e27 = i2_;
|
||||
u2_ = as_type<metal::uint2>(_e27);
|
||||
metal::int3 _e29 = i3_;
|
||||
|
@ -7,26 +7,16 @@ using metal::uint;
|
||||
|
||||
kernel void main_(
|
||||
) {
|
||||
int i = {};
|
||||
metal::int2 i2_ = {};
|
||||
metal::int3 i3_ = {};
|
||||
metal::int4 i4_ = {};
|
||||
uint u = {};
|
||||
metal::uint2 u2_ = {};
|
||||
metal::uint3 u3_ = {};
|
||||
metal::uint4 u4_ = {};
|
||||
metal::float2 f2_ = {};
|
||||
metal::float4 f4_ = {};
|
||||
i = 0;
|
||||
i2_ = metal::int2(0);
|
||||
i3_ = metal::int3(0);
|
||||
i4_ = metal::int4(0);
|
||||
u = 0u;
|
||||
u2_ = metal::uint2(0u);
|
||||
u3_ = metal::uint3(0u);
|
||||
u4_ = metal::uint4(0u);
|
||||
f2_ = metal::float2(0.0);
|
||||
f4_ = metal::float4(0.0);
|
||||
int i = 0;
|
||||
metal::int2 i2_ = metal::int2(0);
|
||||
metal::int3 i3_ = metal::int3(0);
|
||||
metal::int4 i4_ = metal::int4(0);
|
||||
uint u = 0u;
|
||||
metal::uint2 u2_ = metal::uint2(0u);
|
||||
metal::uint3 u3_ = metal::uint3(0u);
|
||||
metal::uint4 u4_ = metal::uint4(0u);
|
||||
metal::float2 f2_ = metal::float2(0.0);
|
||||
metal::float4 f4_ = metal::float4(0.0);
|
||||
metal::float4 _e28 = f4_;
|
||||
u = metal::pack_float_to_snorm4x8(_e28);
|
||||
metal::float4 _e30 = f4_;
|
||||
|
@ -39,14 +39,14 @@ kernel void main_(
|
||||
) {
|
||||
metal::float2 vPos = {};
|
||||
metal::float2 vVel = {};
|
||||
metal::float2 cMass = {};
|
||||
metal::float2 cVel = {};
|
||||
metal::float2 colVel = {};
|
||||
int cMassCount = {};
|
||||
int cVelCount = {};
|
||||
metal::float2 cMass = metal::float2(0.0, 0.0);
|
||||
metal::float2 cVel = metal::float2(0.0, 0.0);
|
||||
metal::float2 colVel = metal::float2(0.0, 0.0);
|
||||
int cMassCount = 0;
|
||||
int cVelCount = 0;
|
||||
metal::float2 pos = {};
|
||||
metal::float2 vel = {};
|
||||
uint i = {};
|
||||
uint i = 0u;
|
||||
uint index = global_invocation_id.x;
|
||||
if (index >= NUM_PARTICLES) {
|
||||
return;
|
||||
@ -55,12 +55,6 @@ kernel void main_(
|
||||
vPos = _e8;
|
||||
metal::float2 _e14 = particlesSrc.particles[index].vel;
|
||||
vVel = _e14;
|
||||
cMass = metal::float2(0.0, 0.0);
|
||||
cVel = metal::float2(0.0, 0.0);
|
||||
colVel = metal::float2(0.0, 0.0);
|
||||
cMassCount = 0;
|
||||
cVelCount = 0;
|
||||
i = 0u;
|
||||
bool loop_init = true;
|
||||
while(true) {
|
||||
if (!loop_init) {
|
||||
|
@ -17,9 +17,8 @@ uint collatz_iterations(
|
||||
uint n_base
|
||||
) {
|
||||
uint n = {};
|
||||
uint i = {};
|
||||
uint i = 0u;
|
||||
n = n_base;
|
||||
i = 0u;
|
||||
while(true) {
|
||||
uint _e4 = n;
|
||||
if (_e4 > 1u) {
|
||||
|
@ -18,10 +18,8 @@ struct main_Output {
|
||||
fragment main_Output main_(
|
||||
metal::float4 position [[position]]
|
||||
) {
|
||||
metal::float4 color = {};
|
||||
metal::float4 mask = {};
|
||||
color = metal::float4(0.4, 0.3, 0.2, 0.1);
|
||||
mask = metal::float4(0.9, 0.8, 0.7, 0.6);
|
||||
metal::float4 color = metal::float4(0.4, 0.3, 0.2, 0.1);
|
||||
metal::float4 mask = metal::float4(0.9, 0.8, 0.7, 0.6);
|
||||
metal::float4 _e13 = color;
|
||||
metal::float4 _e14 = mask;
|
||||
const auto _tmp = FragmentOutput {_e13, _e14};
|
||||
|
@ -42,9 +42,8 @@ void test_msl_packed_vec3_as_arg(
|
||||
void test_msl_packed_vec3_(
|
||||
device FooStruct& alignment
|
||||
) {
|
||||
int idx = {};
|
||||
int idx = 1;
|
||||
alignment.v3_ = metal::float3(1.0);
|
||||
idx = 1;
|
||||
alignment.v3_[0] = 1.0;
|
||||
alignment.v3_[0] = 2.0;
|
||||
int _e16 = idx;
|
||||
@ -77,8 +76,8 @@ kernel void main_(
|
||||
metal::atomic_store_explicit(&at_1, 0, metal::memory_order_relaxed);
|
||||
}
|
||||
metal::threadgroup_barrier(metal::mem_flags::mem_threadgroup);
|
||||
float Foo = {};
|
||||
bool at = {};
|
||||
float Foo = 1.0;
|
||||
bool at = true;
|
||||
test_msl_packed_vec3_(alignment);
|
||||
metal::float4x2 _e5 = global_nested_arrays_of_matrices_4x2_.inner[0].inner[0];
|
||||
metal::float4 _e10 = global_nested_arrays_of_matrices_2x4_.inner[0].inner[0][0];
|
||||
@ -97,7 +96,5 @@ kernel void main_(
|
||||
alignment.v1_ = 4.0;
|
||||
wg.inner[1] = static_cast<float>(1 + (_buffer_sizes.size3 - 0 - 8) / 8);
|
||||
metal::atomic_store_explicit(&at_1, 2u, metal::memory_order_relaxed);
|
||||
Foo = 1.0;
|
||||
at = true;
|
||||
return;
|
||||
}
|
||||
|
@ -97,8 +97,7 @@ vertex vertex_two_structsOutput vertex_two_structs(
|
||||
) {
|
||||
const Input1_ in1_ = { index_1 };
|
||||
const Input2_ in2_ = { index_2 };
|
||||
uint index = {};
|
||||
index = 2u;
|
||||
uint index = 2u;
|
||||
uint _e8 = index;
|
||||
return vertex_two_structsOutput { metal::float4(static_cast<float>(in1_.index), static_cast<float>(in2_.index), static_cast<float>(_e8), 0.0), 1.0 };
|
||||
}
|
||||
|
@ -31,8 +31,7 @@ metal::float4 splat(
|
||||
|
||||
metal::float2 splat_assignment(
|
||||
) {
|
||||
metal::float2 a = {};
|
||||
a = metal::float2(2.0);
|
||||
metal::float2 a = metal::float2(2.0);
|
||||
metal::float2 _e4 = a;
|
||||
a = _e4 + metal::float2(1.0);
|
||||
metal::float2 _e8 = a;
|
||||
@ -159,9 +158,8 @@ void comparison(
|
||||
|
||||
void assignment(
|
||||
) {
|
||||
int a_1 = {};
|
||||
metal::int3 vec0_ = {};
|
||||
a_1 = 1;
|
||||
int a_1 = 1;
|
||||
metal::int3 vec0_ = metal::int3 {};
|
||||
int _e3 = a_1;
|
||||
a_1 = _e3 + 1;
|
||||
int _e6 = a_1;
|
||||
@ -188,7 +186,6 @@ void assignment(
|
||||
a_1 = _e33 + 1;
|
||||
int _e36 = a_1;
|
||||
a_1 = _e36 - 1;
|
||||
vec0_ = metal::int3 {};
|
||||
int _e42 = vec0_.y;
|
||||
vec0_.y = _e42 + 1;
|
||||
int _e46 = vec0_.y;
|
||||
|
@ -42,8 +42,7 @@ metal::float4 mock_function(
|
||||
threadgroup type_5& in_workgroup,
|
||||
thread type_6& in_private
|
||||
) {
|
||||
type_9 in_function = {};
|
||||
in_function = type_9 {metal::float4(0.707, 0.0, 0.0, 1.0), metal::float4(0.0, 0.707, 0.0, 1.0)};
|
||||
type_9 in_function = type_9 {metal::float4(0.707, 0.0, 0.0, 1.0), metal::float4(0.0, 0.707, 0.0, 1.0)};
|
||||
metal::float4 _e18 = in_storage.a.inner[i];
|
||||
metal::float4 _e22 = in_uniform.a.inner[i];
|
||||
metal::float4 _e25 = (uint(l) < image_2d_array.get_num_mip_levels() && uint(i) < image_2d_array.get_array_size() && metal::all(metal::uint2(c) < metal::uint2(image_2d_array.get_width(l), image_2d_array.get_height(l))) ? image_2d_array.read(metal::uint2(c), i, l): DefaultConstructible());
|
||||
|
@ -97,11 +97,9 @@ fragment fs_mainOutput fs_main(
|
||||
, constant _mslBufferSizes& _buffer_sizes [[user(fake0)]]
|
||||
) {
|
||||
const VertexOutput in = { proj_position, varyings_1.world_normal, varyings_1.world_position };
|
||||
metal::float3 color = {};
|
||||
uint i = {};
|
||||
metal::float3 color = c_ambient;
|
||||
uint i = 0u;
|
||||
metal::float3 normal_1 = metal::normalize(in.world_normal);
|
||||
color = c_ambient;
|
||||
i = 0u;
|
||||
bool loop_init = true;
|
||||
while(true) {
|
||||
if (!loop_init) {
|
||||
@ -149,11 +147,9 @@ fragment fs_main_without_storageOutput fs_main_without_storage(
|
||||
, metal::sampler sampler_shadow [[user(fake0)]]
|
||||
) {
|
||||
const VertexOutput in_1 = { proj_position_1, varyings_2.world_normal, varyings_2.world_position };
|
||||
metal::float3 color_1 = {};
|
||||
uint i_1 = {};
|
||||
metal::float3 color_1 = c_ambient;
|
||||
uint i_1 = 0u;
|
||||
metal::float3 normal_2 = metal::normalize(in_1.world_normal);
|
||||
color_1 = c_ambient;
|
||||
i_1 = 0u;
|
||||
bool loop_init_1 = true;
|
||||
while(true) {
|
||||
if (!loop_init_1) {
|
||||
|
@ -1,16 +1,16 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 322
|
||||
; Bound: 313
|
||||
OpCapability Shader
|
||||
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %232 "foo_vert" %227 %230
|
||||
OpEntryPoint Fragment %282 "foo_frag" %281
|
||||
OpEntryPoint GLCompute %302 "assign_through_ptr" %305
|
||||
OpExecutionMode %282 OriginUpperLeft
|
||||
OpExecutionMode %302 LocalSize 1 1 1
|
||||
OpEntryPoint Vertex %220 "foo_vert" %215 %218
|
||||
OpEntryPoint Fragment %274 "foo_frag" %273
|
||||
OpEntryPoint GLCompute %292 "assign_through_ptr" %299
|
||||
OpExecutionMode %274 OriginUpperLeft
|
||||
OpExecutionMode %292 LocalSize 1 1 1
|
||||
OpMemberName %6 0 "a"
|
||||
OpMemberName %6 1 "b"
|
||||
OpMemberName %6 2 "c"
|
||||
@ -34,27 +34,27 @@ OpName %44 "baz"
|
||||
OpName %47 "qux"
|
||||
OpName %50 "nested_mat_cx2"
|
||||
OpName %53 "val"
|
||||
OpName %54 "idx"
|
||||
OpName %57 "t"
|
||||
OpName %61 "test_matrix_within_struct_accesses"
|
||||
OpName %132 "idx"
|
||||
OpName %133 "t"
|
||||
OpName %137 "test_matrix_within_array_within_struct_accesses"
|
||||
OpName %195 "foo"
|
||||
OpName %196 "read_from_private"
|
||||
OpName %201 "a"
|
||||
OpName %202 "test_arr_as_arg"
|
||||
OpName %208 "p"
|
||||
OpName %209 "assign_through_ptr_fn"
|
||||
OpName %214 "foo"
|
||||
OpName %215 "assign_array_through_ptr_fn"
|
||||
OpName %221 "foo"
|
||||
OpName %223 "c2"
|
||||
OpName %227 "vi"
|
||||
OpName %232 "foo_vert"
|
||||
OpName %282 "foo_frag"
|
||||
OpName %299 "arr"
|
||||
OpName %302 "assign_through_ptr"
|
||||
OpName %55 "test_matrix_within_struct_accesses"
|
||||
OpName %83 "idx"
|
||||
OpName %85 "t"
|
||||
OpName %131 "test_matrix_within_array_within_struct_accesses"
|
||||
OpName %141 "idx"
|
||||
OpName %142 "t"
|
||||
OpName %188 "foo"
|
||||
OpName %189 "read_from_private"
|
||||
OpName %194 "a"
|
||||
OpName %195 "test_arr_as_arg"
|
||||
OpName %201 "p"
|
||||
OpName %202 "assign_through_ptr_fn"
|
||||
OpName %207 "foo"
|
||||
OpName %208 "assign_array_through_ptr_fn"
|
||||
OpName %215 "vi"
|
||||
OpName %220 "foo_vert"
|
||||
OpName %232 "foo"
|
||||
OpName %233 "c2"
|
||||
OpName %274 "foo_frag"
|
||||
OpName %292 "assign_through_ptr"
|
||||
OpName %296 "arr"
|
||||
OpMemberDecorate %6 0 Offset 0
|
||||
OpMemberDecorate %6 1 Offset 16
|
||||
OpMemberDecorate %6 2 Offset 28
|
||||
@ -99,10 +99,10 @@ OpDecorate %50 DescriptorSet 0
|
||||
OpDecorate %50 Binding 3
|
||||
OpDecorate %51 Block
|
||||
OpMemberDecorate %51 0 Offset 0
|
||||
OpDecorate %227 BuiltIn VertexIndex
|
||||
OpDecorate %230 BuiltIn Position
|
||||
OpDecorate %281 Location 0
|
||||
OpDecorate %305 BuiltIn LocalInvocationId
|
||||
OpDecorate %215 BuiltIn VertexIndex
|
||||
OpDecorate %218 BuiltIn Position
|
||||
OpDecorate %273 Location 0
|
||||
OpDecorate %299 BuiltIn LocalInvocationId
|
||||
%2 = OpTypeVoid
|
||||
%3 = OpTypeInt 32 0
|
||||
%4 = OpTypeVector %3 3
|
||||
@ -155,341 +155,326 @@ OpDecorate %305 BuiltIn LocalInvocationId
|
||||
%52 = OpTypePointer Uniform %51
|
||||
%50 = OpVariable %52 Uniform
|
||||
%53 = OpVariable %33 Workgroup
|
||||
%55 = OpTypePointer Function %5
|
||||
%56 = OpConstantNull %5
|
||||
%58 = OpTypePointer Function %22
|
||||
%59 = OpConstantNull %22
|
||||
%62 = OpTypeFunction %2
|
||||
%63 = OpTypePointer Uniform %22
|
||||
%65 = OpConstant %5 1
|
||||
%66 = OpConstant %10 1.0
|
||||
%67 = OpConstant %10 2.0
|
||||
%68 = OpConstant %10 3.0
|
||||
%69 = OpConstant %10 6.0
|
||||
%56 = OpTypeFunction %2
|
||||
%57 = OpTypePointer Uniform %22
|
||||
%59 = OpConstant %5 1
|
||||
%60 = OpConstant %10 1.0
|
||||
%61 = OpConstantComposite %12 %60 %60
|
||||
%62 = OpConstant %10 2.0
|
||||
%63 = OpConstantComposite %12 %62 %62
|
||||
%64 = OpConstant %10 3.0
|
||||
%65 = OpConstantComposite %12 %64 %64
|
||||
%66 = OpConstantComposite %21 %61 %63 %65
|
||||
%67 = OpConstantComposite %22 %66
|
||||
%68 = OpConstant %10 6.0
|
||||
%69 = OpConstantComposite %12 %68 %68
|
||||
%70 = OpConstant %10 5.0
|
||||
%71 = OpConstant %10 4.0
|
||||
%72 = OpConstant %10 9.0
|
||||
%73 = OpConstant %10 90.0
|
||||
%74 = OpConstant %10 10.0
|
||||
%75 = OpConstant %10 20.0
|
||||
%76 = OpConstant %10 30.0
|
||||
%77 = OpConstant %10 40.0
|
||||
%81 = OpTypePointer Uniform %21
|
||||
%84 = OpTypePointer Uniform %12
|
||||
%90 = OpTypePointer Uniform %10
|
||||
%91 = OpConstant %3 1
|
||||
%111 = OpTypePointer Function %21
|
||||
%71 = OpConstantComposite %12 %70 %70
|
||||
%72 = OpConstant %10 4.0
|
||||
%73 = OpConstantComposite %12 %72 %72
|
||||
%74 = OpConstantComposite %21 %69 %71 %73
|
||||
%75 = OpConstant %10 9.0
|
||||
%76 = OpConstantComposite %12 %75 %75
|
||||
%77 = OpConstant %10 90.0
|
||||
%78 = OpConstantComposite %12 %77 %77
|
||||
%79 = OpConstant %10 10.0
|
||||
%80 = OpConstant %10 20.0
|
||||
%81 = OpConstant %10 30.0
|
||||
%82 = OpConstant %10 40.0
|
||||
%84 = OpTypePointer Function %5
|
||||
%86 = OpTypePointer Function %22
|
||||
%90 = OpTypePointer Uniform %21
|
||||
%93 = OpTypePointer Uniform %12
|
||||
%99 = OpTypePointer Uniform %10
|
||||
%100 = OpConstant %3 1
|
||||
%115 = OpTypePointer Function %21
|
||||
%117 = OpTypePointer Function %12
|
||||
%123 = OpTypePointer Function %10
|
||||
%134 = OpTypePointer Function %26
|
||||
%135 = OpConstantNull %26
|
||||
%138 = OpTypePointer Uniform %26
|
||||
%140 = OpConstantNull %25
|
||||
%141 = OpConstant %10 8.0
|
||||
%142 = OpConstant %10 7.0
|
||||
%146 = OpTypePointer Uniform %25
|
||||
%149 = OpTypePointer Uniform %24
|
||||
%121 = OpTypePointer Function %10
|
||||
%132 = OpTypePointer Uniform %26
|
||||
%134 = OpConstantNull %25
|
||||
%135 = OpConstantComposite %26 %134
|
||||
%136 = OpConstant %10 8.0
|
||||
%137 = OpConstantComposite %12 %136 %136
|
||||
%138 = OpConstant %10 7.0
|
||||
%139 = OpConstantComposite %12 %138 %138
|
||||
%140 = OpConstantComposite %24 %137 %139 %69 %71
|
||||
%143 = OpTypePointer Function %26
|
||||
%147 = OpTypePointer Uniform %25
|
||||
%150 = OpTypePointer Uniform %24
|
||||
%172 = OpTypePointer Function %25
|
||||
%174 = OpTypePointer Function %24
|
||||
%197 = OpTypeFunction %10 %27
|
||||
%203 = OpTypeFunction %10 %29
|
||||
%210 = OpTypeFunction %2 %33
|
||||
%211 = OpConstant %3 42
|
||||
%216 = OpTypeFunction %2 %35
|
||||
%222 = OpConstantNull %10
|
||||
%224 = OpTypePointer Function %32
|
||||
%225 = OpConstantNull %32
|
||||
%228 = OpTypePointer Input %3
|
||||
%227 = OpVariable %228 Input
|
||||
%231 = OpTypePointer Output %31
|
||||
%230 = OpVariable %231 Output
|
||||
%234 = OpTypePointer StorageBuffer %23
|
||||
%237 = OpConstant %10 0.0
|
||||
%238 = OpConstant %3 3
|
||||
%239 = OpConstant %5 3
|
||||
%240 = OpConstant %5 4
|
||||
%241 = OpConstant %5 5
|
||||
%242 = OpConstant %5 42
|
||||
%243 = OpConstantNull %29
|
||||
%248 = OpTypePointer StorageBuffer %8
|
||||
%251 = OpTypePointer StorageBuffer %18
|
||||
%252 = OpConstant %3 4
|
||||
%255 = OpTypePointer StorageBuffer %9
|
||||
%256 = OpTypePointer StorageBuffer %10
|
||||
%259 = OpTypePointer StorageBuffer %19
|
||||
%262 = OpTypePointer StorageBuffer %7
|
||||
%263 = OpTypePointer StorageBuffer %5
|
||||
%275 = OpTypeVector %5 4
|
||||
%281 = OpVariable %231 Output
|
||||
%190 = OpTypeFunction %10 %27
|
||||
%196 = OpTypeFunction %10 %29
|
||||
%203 = OpTypeFunction %2 %33
|
||||
%204 = OpConstant %3 42
|
||||
%209 = OpTypeFunction %2 %35
|
||||
%210 = OpConstantComposite %31 %60 %60 %60 %60
|
||||
%211 = OpConstantComposite %31 %62 %62 %62 %62
|
||||
%212 = OpConstantComposite %34 %210 %211
|
||||
%216 = OpTypePointer Input %3
|
||||
%215 = OpVariable %216 Input
|
||||
%219 = OpTypePointer Output %31
|
||||
%218 = OpVariable %219 Output
|
||||
%222 = OpTypePointer StorageBuffer %23
|
||||
%225 = OpConstant %10 0.0
|
||||
%226 = OpConstant %3 3
|
||||
%227 = OpConstant %5 3
|
||||
%228 = OpConstant %5 4
|
||||
%229 = OpConstant %5 5
|
||||
%230 = OpConstant %5 42
|
||||
%231 = OpConstantNull %29
|
||||
%234 = OpTypePointer Function %32
|
||||
%235 = OpConstantNull %32
|
||||
%240 = OpTypePointer StorageBuffer %8
|
||||
%243 = OpTypePointer StorageBuffer %18
|
||||
%244 = OpConstant %3 4
|
||||
%247 = OpTypePointer StorageBuffer %9
|
||||
%248 = OpTypePointer StorageBuffer %10
|
||||
%251 = OpTypePointer StorageBuffer %19
|
||||
%254 = OpTypePointer StorageBuffer %7
|
||||
%255 = OpTypePointer StorageBuffer %5
|
||||
%267 = OpTypeVector %5 4
|
||||
%273 = OpVariable %219 Output
|
||||
%276 = OpConstantComposite %9 %225 %225 %225
|
||||
%277 = OpConstantComposite %9 %60 %60 %60
|
||||
%278 = OpConstantComposite %9 %62 %62 %62
|
||||
%279 = OpConstantComposite %9 %64 %64 %64
|
||||
%280 = OpConstantComposite %8 %276 %277 %278 %279
|
||||
%281 = OpConstantComposite %17 %36 %36
|
||||
%282 = OpConstantComposite %17 %100 %100
|
||||
%283 = OpConstantComposite %18 %281 %282
|
||||
%284 = OpConstantNull %23
|
||||
%300 = OpConstantNull %34
|
||||
%304 = OpConstantNull %3
|
||||
%306 = OpTypePointer Input %4
|
||||
%305 = OpVariable %306 Input
|
||||
%308 = OpConstantNull %4
|
||||
%310 = OpTypeBool
|
||||
%309 = OpTypeVector %310 3
|
||||
%315 = OpConstant %3 264
|
||||
%61 = OpFunction %2 None %62
|
||||
%60 = OpLabel
|
||||
%54 = OpVariable %55 Function %56
|
||||
%57 = OpVariable %58 Function %59
|
||||
%64 = OpAccessChain %63 %44 %36
|
||||
OpBranch %78
|
||||
%78 = OpLabel
|
||||
OpStore %54 %65
|
||||
%79 = OpLoad %5 %54
|
||||
%80 = OpISub %5 %79 %65
|
||||
OpStore %54 %80
|
||||
%82 = OpAccessChain %81 %64 %36
|
||||
%83 = OpLoad %21 %82
|
||||
%85 = OpAccessChain %84 %64 %36 %36
|
||||
%86 = OpLoad %12 %85
|
||||
%87 = OpLoad %5 %54
|
||||
%88 = OpAccessChain %84 %64 %36 %87
|
||||
%89 = OpLoad %12 %88
|
||||
%92 = OpAccessChain %90 %64 %36 %36 %91
|
||||
%93 = OpLoad %10 %92
|
||||
%94 = OpLoad %5 %54
|
||||
%95 = OpAccessChain %90 %64 %36 %36 %94
|
||||
%96 = OpLoad %10 %95
|
||||
%97 = OpLoad %5 %54
|
||||
%98 = OpAccessChain %90 %64 %36 %97 %91
|
||||
%99 = OpLoad %10 %98
|
||||
%100 = OpLoad %5 %54
|
||||
%101 = OpLoad %5 %54
|
||||
%102 = OpAccessChain %90 %64 %36 %100 %101
|
||||
%103 = OpLoad %10 %102
|
||||
%104 = OpCompositeConstruct %12 %66 %66
|
||||
%105 = OpCompositeConstruct %12 %67 %67
|
||||
%106 = OpCompositeConstruct %12 %68 %68
|
||||
%107 = OpCompositeConstruct %21 %104 %105 %106
|
||||
%108 = OpCompositeConstruct %22 %107
|
||||
OpStore %57 %108
|
||||
%109 = OpLoad %5 %54
|
||||
%110 = OpIAdd %5 %109 %65
|
||||
OpStore %54 %110
|
||||
%112 = OpCompositeConstruct %12 %69 %69
|
||||
%113 = OpCompositeConstruct %12 %70 %70
|
||||
%114 = OpCompositeConstruct %12 %71 %71
|
||||
%115 = OpCompositeConstruct %21 %112 %113 %114
|
||||
%116 = OpAccessChain %111 %57 %36
|
||||
OpStore %116 %115
|
||||
%118 = OpCompositeConstruct %12 %72 %72
|
||||
%119 = OpAccessChain %117 %57 %36 %36
|
||||
OpStore %119 %118
|
||||
%120 = OpLoad %5 %54
|
||||
%121 = OpCompositeConstruct %12 %73 %73
|
||||
%122 = OpAccessChain %117 %57 %36 %120
|
||||
OpStore %122 %121
|
||||
%124 = OpAccessChain %123 %57 %36 %36 %91
|
||||
OpStore %124 %74
|
||||
%125 = OpLoad %5 %54
|
||||
%126 = OpAccessChain %123 %57 %36 %36 %125
|
||||
OpStore %126 %75
|
||||
%127 = OpLoad %5 %54
|
||||
%128 = OpAccessChain %123 %57 %36 %127 %91
|
||||
OpStore %128 %76
|
||||
%129 = OpLoad %5 %54
|
||||
%130 = OpLoad %5 %54
|
||||
%131 = OpAccessChain %123 %57 %36 %129 %130
|
||||
OpStore %131 %77
|
||||
%285 = OpConstantComposite %31 %225 %225 %225 %225
|
||||
%293 = OpConstantComposite %31 %68 %68 %68 %68
|
||||
%294 = OpConstantComposite %31 %138 %138 %138 %138
|
||||
%295 = OpConstantComposite %34 %293 %294
|
||||
%298 = OpConstantNull %3
|
||||
%300 = OpTypePointer Input %4
|
||||
%299 = OpVariable %300 Input
|
||||
%302 = OpConstantNull %4
|
||||
%304 = OpTypeBool
|
||||
%303 = OpTypeVector %304 3
|
||||
%309 = OpConstant %3 264
|
||||
%55 = OpFunction %2 None %56
|
||||
%54 = OpLabel
|
||||
%83 = OpVariable %84 Function %59
|
||||
%85 = OpVariable %86 Function %67
|
||||
%58 = OpAccessChain %57 %44 %36
|
||||
OpBranch %87
|
||||
%87 = OpLabel
|
||||
%88 = OpLoad %5 %83
|
||||
%89 = OpISub %5 %88 %59
|
||||
OpStore %83 %89
|
||||
%91 = OpAccessChain %90 %58 %36
|
||||
%92 = OpLoad %21 %91
|
||||
%94 = OpAccessChain %93 %58 %36 %36
|
||||
%95 = OpLoad %12 %94
|
||||
%96 = OpLoad %5 %83
|
||||
%97 = OpAccessChain %93 %58 %36 %96
|
||||
%98 = OpLoad %12 %97
|
||||
%101 = OpAccessChain %99 %58 %36 %36 %100
|
||||
%102 = OpLoad %10 %101
|
||||
%103 = OpLoad %5 %83
|
||||
%104 = OpAccessChain %99 %58 %36 %36 %103
|
||||
%105 = OpLoad %10 %104
|
||||
%106 = OpLoad %5 %83
|
||||
%107 = OpAccessChain %99 %58 %36 %106 %100
|
||||
%108 = OpLoad %10 %107
|
||||
%109 = OpLoad %5 %83
|
||||
%110 = OpLoad %5 %83
|
||||
%111 = OpAccessChain %99 %58 %36 %109 %110
|
||||
%112 = OpLoad %10 %111
|
||||
%113 = OpLoad %5 %83
|
||||
%114 = OpIAdd %5 %113 %59
|
||||
OpStore %83 %114
|
||||
%116 = OpAccessChain %115 %85 %36
|
||||
OpStore %116 %74
|
||||
%118 = OpAccessChain %117 %85 %36 %36
|
||||
OpStore %118 %76
|
||||
%119 = OpLoad %5 %83
|
||||
%120 = OpAccessChain %117 %85 %36 %119
|
||||
OpStore %120 %78
|
||||
%122 = OpAccessChain %121 %85 %36 %36 %100
|
||||
OpStore %122 %79
|
||||
%123 = OpLoad %5 %83
|
||||
%124 = OpAccessChain %121 %85 %36 %36 %123
|
||||
OpStore %124 %80
|
||||
%125 = OpLoad %5 %83
|
||||
%126 = OpAccessChain %121 %85 %36 %125 %100
|
||||
OpStore %126 %81
|
||||
%127 = OpLoad %5 %83
|
||||
%128 = OpLoad %5 %83
|
||||
%129 = OpAccessChain %121 %85 %36 %127 %128
|
||||
OpStore %129 %82
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%137 = OpFunction %2 None %62
|
||||
%136 = OpLabel
|
||||
%132 = OpVariable %55 Function %56
|
||||
%133 = OpVariable %134 Function %135
|
||||
%139 = OpAccessChain %138 %50 %36
|
||||
OpBranch %143
|
||||
%143 = OpLabel
|
||||
OpStore %132 %65
|
||||
%144 = OpLoad %5 %132
|
||||
%145 = OpISub %5 %144 %65
|
||||
OpStore %132 %145
|
||||
%147 = OpAccessChain %146 %139 %36
|
||||
%148 = OpLoad %25 %147
|
||||
%150 = OpAccessChain %149 %139 %36 %36
|
||||
%151 = OpLoad %24 %150
|
||||
%152 = OpAccessChain %84 %139 %36 %36 %36
|
||||
%153 = OpLoad %12 %152
|
||||
%154 = OpLoad %5 %132
|
||||
%155 = OpAccessChain %84 %139 %36 %36 %154
|
||||
%156 = OpLoad %12 %155
|
||||
%157 = OpAccessChain %90 %139 %36 %36 %36 %91
|
||||
%158 = OpLoad %10 %157
|
||||
%159 = OpLoad %5 %132
|
||||
%160 = OpAccessChain %90 %139 %36 %36 %36 %159
|
||||
%161 = OpLoad %10 %160
|
||||
%162 = OpLoad %5 %132
|
||||
%163 = OpAccessChain %90 %139 %36 %36 %162 %91
|
||||
%164 = OpLoad %10 %163
|
||||
%165 = OpLoad %5 %132
|
||||
%166 = OpLoad %5 %132
|
||||
%167 = OpAccessChain %90 %139 %36 %36 %165 %166
|
||||
%168 = OpLoad %10 %167
|
||||
%169 = OpCompositeConstruct %26 %140
|
||||
OpStore %133 %169
|
||||
%170 = OpLoad %5 %132
|
||||
%171 = OpIAdd %5 %170 %65
|
||||
OpStore %132 %171
|
||||
%173 = OpAccessChain %172 %133 %36
|
||||
OpStore %173 %140
|
||||
%175 = OpCompositeConstruct %12 %141 %141
|
||||
%176 = OpCompositeConstruct %12 %142 %142
|
||||
%177 = OpCompositeConstruct %12 %69 %69
|
||||
%178 = OpCompositeConstruct %12 %70 %70
|
||||
%179 = OpCompositeConstruct %24 %175 %176 %177 %178
|
||||
%180 = OpAccessChain %174 %133 %36 %36
|
||||
OpStore %180 %179
|
||||
%181 = OpCompositeConstruct %12 %72 %72
|
||||
%182 = OpAccessChain %117 %133 %36 %36 %36
|
||||
OpStore %182 %181
|
||||
%183 = OpLoad %5 %132
|
||||
%184 = OpCompositeConstruct %12 %73 %73
|
||||
%185 = OpAccessChain %117 %133 %36 %36 %183
|
||||
OpStore %185 %184
|
||||
%186 = OpAccessChain %123 %133 %36 %36 %36 %91
|
||||
OpStore %186 %74
|
||||
%187 = OpLoad %5 %132
|
||||
%188 = OpAccessChain %123 %133 %36 %36 %36 %187
|
||||
OpStore %188 %75
|
||||
%189 = OpLoad %5 %132
|
||||
%190 = OpAccessChain %123 %133 %36 %36 %189 %91
|
||||
OpStore %190 %76
|
||||
%191 = OpLoad %5 %132
|
||||
%192 = OpLoad %5 %132
|
||||
%193 = OpAccessChain %123 %133 %36 %36 %191 %192
|
||||
OpStore %193 %77
|
||||
%131 = OpFunction %2 None %56
|
||||
%130 = OpLabel
|
||||
%141 = OpVariable %84 Function %59
|
||||
%142 = OpVariable %143 Function %135
|
||||
%133 = OpAccessChain %132 %50 %36
|
||||
OpBranch %144
|
||||
%144 = OpLabel
|
||||
%145 = OpLoad %5 %141
|
||||
%146 = OpISub %5 %145 %59
|
||||
OpStore %141 %146
|
||||
%148 = OpAccessChain %147 %133 %36
|
||||
%149 = OpLoad %25 %148
|
||||
%151 = OpAccessChain %150 %133 %36 %36
|
||||
%152 = OpLoad %24 %151
|
||||
%153 = OpAccessChain %93 %133 %36 %36 %36
|
||||
%154 = OpLoad %12 %153
|
||||
%155 = OpLoad %5 %141
|
||||
%156 = OpAccessChain %93 %133 %36 %36 %155
|
||||
%157 = OpLoad %12 %156
|
||||
%158 = OpAccessChain %99 %133 %36 %36 %36 %100
|
||||
%159 = OpLoad %10 %158
|
||||
%160 = OpLoad %5 %141
|
||||
%161 = OpAccessChain %99 %133 %36 %36 %36 %160
|
||||
%162 = OpLoad %10 %161
|
||||
%163 = OpLoad %5 %141
|
||||
%164 = OpAccessChain %99 %133 %36 %36 %163 %100
|
||||
%165 = OpLoad %10 %164
|
||||
%166 = OpLoad %5 %141
|
||||
%167 = OpLoad %5 %141
|
||||
%168 = OpAccessChain %99 %133 %36 %36 %166 %167
|
||||
%169 = OpLoad %10 %168
|
||||
%170 = OpLoad %5 %141
|
||||
%171 = OpIAdd %5 %170 %59
|
||||
OpStore %141 %171
|
||||
%173 = OpAccessChain %172 %142 %36
|
||||
OpStore %173 %134
|
||||
%175 = OpAccessChain %174 %142 %36 %36
|
||||
OpStore %175 %140
|
||||
%176 = OpAccessChain %117 %142 %36 %36 %36
|
||||
OpStore %176 %76
|
||||
%177 = OpLoad %5 %141
|
||||
%178 = OpAccessChain %117 %142 %36 %36 %177
|
||||
OpStore %178 %78
|
||||
%179 = OpAccessChain %121 %142 %36 %36 %36 %100
|
||||
OpStore %179 %79
|
||||
%180 = OpLoad %5 %141
|
||||
%181 = OpAccessChain %121 %142 %36 %36 %36 %180
|
||||
OpStore %181 %80
|
||||
%182 = OpLoad %5 %141
|
||||
%183 = OpAccessChain %121 %142 %36 %36 %182 %100
|
||||
OpStore %183 %81
|
||||
%184 = OpLoad %5 %141
|
||||
%185 = OpLoad %5 %141
|
||||
%186 = OpAccessChain %121 %142 %36 %36 %184 %185
|
||||
OpStore %186 %82
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%196 = OpFunction %10 None %197
|
||||
%195 = OpFunctionParameter %27
|
||||
%194 = OpLabel
|
||||
OpBranch %198
|
||||
%198 = OpLabel
|
||||
%199 = OpLoad %10 %195
|
||||
%189 = OpFunction %10 None %190
|
||||
%188 = OpFunctionParameter %27
|
||||
%187 = OpLabel
|
||||
OpBranch %191
|
||||
%191 = OpLabel
|
||||
%192 = OpLoad %10 %188
|
||||
OpReturnValue %192
|
||||
OpFunctionEnd
|
||||
%195 = OpFunction %10 None %196
|
||||
%194 = OpFunctionParameter %29
|
||||
%193 = OpLabel
|
||||
OpBranch %197
|
||||
%197 = OpLabel
|
||||
%198 = OpCompositeExtract %28 %194 4
|
||||
%199 = OpCompositeExtract %10 %198 9
|
||||
OpReturnValue %199
|
||||
OpFunctionEnd
|
||||
%202 = OpFunction %10 None %203
|
||||
%201 = OpFunctionParameter %29
|
||||
%202 = OpFunction %2 None %203
|
||||
%201 = OpFunctionParameter %33
|
||||
%200 = OpLabel
|
||||
OpBranch %204
|
||||
%204 = OpLabel
|
||||
%205 = OpCompositeExtract %28 %201 4
|
||||
%206 = OpCompositeExtract %10 %205 9
|
||||
OpReturnValue %206
|
||||
OpFunctionEnd
|
||||
%209 = OpFunction %2 None %210
|
||||
%208 = OpFunctionParameter %33
|
||||
%207 = OpLabel
|
||||
OpBranch %212
|
||||
%212 = OpLabel
|
||||
OpStore %208 %211
|
||||
OpBranch %205
|
||||
%205 = OpLabel
|
||||
OpStore %201 %204
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%215 = OpFunction %2 None %216
|
||||
%214 = OpFunctionParameter %35
|
||||
%208 = OpFunction %2 None %209
|
||||
%207 = OpFunctionParameter %35
|
||||
%206 = OpLabel
|
||||
OpBranch %213
|
||||
%213 = OpLabel
|
||||
OpBranch %217
|
||||
%217 = OpLabel
|
||||
%218 = OpCompositeConstruct %31 %66 %66 %66 %66
|
||||
%219 = OpCompositeConstruct %31 %67 %67 %67 %67
|
||||
%220 = OpCompositeConstruct %34 %218 %219
|
||||
OpStore %214 %220
|
||||
OpStore %207 %212
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%232 = OpFunction %2 None %62
|
||||
%226 = OpLabel
|
||||
%221 = OpVariable %27 Function %222
|
||||
%223 = OpVariable %224 Function %225
|
||||
%229 = OpLoad %3 %227
|
||||
%233 = OpAccessChain %63 %44 %36
|
||||
%235 = OpAccessChain %234 %47 %36
|
||||
%236 = OpAccessChain %138 %50 %36
|
||||
OpBranch %244
|
||||
%244 = OpLabel
|
||||
OpStore %221 %237
|
||||
%245 = OpLoad %10 %221
|
||||
OpStore %221 %66
|
||||
%246 = OpFunctionCall %2 %61
|
||||
%247 = OpFunctionCall %2 %137
|
||||
%249 = OpAccessChain %248 %42 %36
|
||||
%250 = OpLoad %8 %249
|
||||
%253 = OpAccessChain %251 %42 %252
|
||||
%254 = OpLoad %18 %253
|
||||
%257 = OpAccessChain %256 %42 %36 %238 %36
|
||||
%258 = OpLoad %10 %257
|
||||
%260 = OpArrayLength %3 %42 5
|
||||
%261 = OpISub %3 %260 %14
|
||||
%264 = OpAccessChain %263 %42 %30 %261 %36
|
||||
%220 = OpFunction %2 None %56
|
||||
%214 = OpLabel
|
||||
%232 = OpVariable %27 Function %225
|
||||
%233 = OpVariable %234 Function %235
|
||||
%217 = OpLoad %3 %215
|
||||
%221 = OpAccessChain %57 %44 %36
|
||||
%223 = OpAccessChain %222 %47 %36
|
||||
%224 = OpAccessChain %132 %50 %36
|
||||
OpBranch %236
|
||||
%236 = OpLabel
|
||||
%237 = OpLoad %10 %232
|
||||
OpStore %232 %60
|
||||
%238 = OpFunctionCall %2 %55
|
||||
%239 = OpFunctionCall %2 %131
|
||||
%241 = OpAccessChain %240 %42 %36
|
||||
%242 = OpLoad %8 %241
|
||||
%245 = OpAccessChain %243 %42 %244
|
||||
%246 = OpLoad %18 %245
|
||||
%249 = OpAccessChain %248 %42 %36 %226 %36
|
||||
%250 = OpLoad %10 %249
|
||||
%252 = OpArrayLength %3 %42 5
|
||||
%253 = OpISub %3 %252 %14
|
||||
%256 = OpAccessChain %255 %42 %30 %253 %36
|
||||
%257 = OpLoad %5 %256
|
||||
%258 = OpLoad %23 %223
|
||||
%259 = OpFunctionCall %10 %189 %232
|
||||
%260 = OpConvertFToS %5 %250
|
||||
%261 = OpCompositeConstruct %32 %257 %260 %227 %228 %229
|
||||
OpStore %233 %261
|
||||
%262 = OpIAdd %3 %217 %100
|
||||
%263 = OpAccessChain %84 %233 %262
|
||||
OpStore %263 %230
|
||||
%264 = OpAccessChain %84 %233 %217
|
||||
%265 = OpLoad %5 %264
|
||||
%266 = OpLoad %23 %235
|
||||
%267 = OpFunctionCall %10 %196 %221
|
||||
%268 = OpConvertFToS %5 %258
|
||||
%269 = OpCompositeConstruct %32 %265 %268 %239 %240 %241
|
||||
OpStore %223 %269
|
||||
%270 = OpIAdd %3 %229 %91
|
||||
%271 = OpAccessChain %55 %223 %270
|
||||
OpStore %271 %242
|
||||
%272 = OpAccessChain %55 %223 %229
|
||||
%273 = OpLoad %5 %272
|
||||
%274 = OpFunctionCall %10 %202 %243
|
||||
%276 = OpCompositeConstruct %275 %273 %273 %273 %273
|
||||
%277 = OpConvertSToF %31 %276
|
||||
%278 = OpMatrixTimesVector %9 %250 %277
|
||||
%279 = OpCompositeConstruct %31 %278 %67
|
||||
OpStore %230 %279
|
||||
%266 = OpFunctionCall %10 %195 %231
|
||||
%268 = OpCompositeConstruct %267 %265 %265 %265 %265
|
||||
%269 = OpConvertSToF %31 %268
|
||||
%270 = OpMatrixTimesVector %9 %242 %269
|
||||
%271 = OpCompositeConstruct %31 %270 %62
|
||||
OpStore %218 %271
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%282 = OpFunction %2 None %62
|
||||
%280 = OpLabel
|
||||
%283 = OpAccessChain %234 %47 %36
|
||||
OpBranch %285
|
||||
%285 = OpLabel
|
||||
%286 = OpAccessChain %256 %42 %36 %91 %14
|
||||
OpStore %286 %66
|
||||
%287 = OpCompositeConstruct %9 %237 %237 %237
|
||||
%288 = OpCompositeConstruct %9 %66 %66 %66
|
||||
%289 = OpCompositeConstruct %9 %67 %67 %67
|
||||
%290 = OpCompositeConstruct %9 %68 %68 %68
|
||||
%291 = OpCompositeConstruct %8 %287 %288 %289 %290
|
||||
%292 = OpAccessChain %248 %42 %36
|
||||
OpStore %292 %291
|
||||
%293 = OpCompositeConstruct %17 %36 %36
|
||||
%294 = OpCompositeConstruct %17 %91 %91
|
||||
%295 = OpCompositeConstruct %18 %293 %294
|
||||
%296 = OpAccessChain %251 %42 %252
|
||||
OpStore %296 %295
|
||||
%297 = OpAccessChain %263 %42 %30 %91 %36
|
||||
OpStore %297 %65
|
||||
OpStore %283 %284
|
||||
%298 = OpCompositeConstruct %31 %237 %237 %237 %237
|
||||
OpStore %281 %298
|
||||
%274 = OpFunction %2 None %56
|
||||
%272 = OpLabel
|
||||
%275 = OpAccessChain %222 %47 %36
|
||||
OpBranch %286
|
||||
%286 = OpLabel
|
||||
%287 = OpAccessChain %248 %42 %36 %100 %14
|
||||
OpStore %287 %60
|
||||
%288 = OpAccessChain %240 %42 %36
|
||||
OpStore %288 %280
|
||||
%289 = OpAccessChain %243 %42 %244
|
||||
OpStore %289 %283
|
||||
%290 = OpAccessChain %255 %42 %30 %100 %36
|
||||
OpStore %290 %59
|
||||
OpStore %275 %284
|
||||
OpStore %273 %285
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%302 = OpFunction %2 None %62
|
||||
%301 = OpLabel
|
||||
%299 = OpVariable %35 Function %300
|
||||
OpBranch %303
|
||||
%303 = OpLabel
|
||||
%307 = OpLoad %4 %305
|
||||
%311 = OpIEqual %309 %307 %308
|
||||
%312 = OpAll %310 %311
|
||||
OpSelectionMerge %313 None
|
||||
OpBranchConditional %312 %314 %313
|
||||
%314 = OpLabel
|
||||
OpStore %53 %304
|
||||
OpBranch %313
|
||||
%313 = OpLabel
|
||||
OpControlBarrier %14 %14 %315
|
||||
OpBranch %316
|
||||
%316 = OpLabel
|
||||
%317 = OpCompositeConstruct %31 %69 %69 %69 %69
|
||||
%318 = OpCompositeConstruct %31 %142 %142 %142 %142
|
||||
%319 = OpCompositeConstruct %34 %317 %318
|
||||
OpStore %299 %319
|
||||
%320 = OpFunctionCall %2 %209 %53
|
||||
%321 = OpFunctionCall %2 %215 %299
|
||||
%292 = OpFunction %2 None %56
|
||||
%291 = OpLabel
|
||||
%296 = OpVariable %35 Function %295
|
||||
OpBranch %297
|
||||
%297 = OpLabel
|
||||
%301 = OpLoad %4 %299
|
||||
%305 = OpIEqual %303 %301 %302
|
||||
%306 = OpAll %304 %305
|
||||
OpSelectionMerge %307 None
|
||||
OpBranchConditional %306 %308 %307
|
||||
%308 = OpLabel
|
||||
OpStore %53 %298
|
||||
OpBranch %307
|
||||
%307 = OpLabel
|
||||
OpControlBarrier %14 %14 %309
|
||||
OpBranch %310
|
||||
%310 = OpLabel
|
||||
%311 = OpFunctionCall %2 %202 %53
|
||||
%312 = OpFunctionCall %2 %208 %296
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -18,16 +18,16 @@ OpDecorate %16 Location 0
|
||||
%10 = OpTypeFunction %4
|
||||
%11 = OpConstant %3 1.0
|
||||
%12 = OpConstant %3 2.0
|
||||
%13 = OpConstantComposite %4 %11 %12
|
||||
%17 = OpTypePointer Output %7
|
||||
%16 = OpVariable %17 Output
|
||||
%19 = OpTypeFunction %2
|
||||
%20 = OpConstant %3 0.0
|
||||
%9 = OpFunction %4 None %10
|
||||
%8 = OpLabel
|
||||
OpBranch %13
|
||||
%13 = OpLabel
|
||||
%14 = OpCompositeConstruct %4 %11 %12
|
||||
OpReturnValue %14
|
||||
OpBranch %14
|
||||
%14 = OpLabel
|
||||
OpReturnValue %13
|
||||
OpFunctionEnd
|
||||
%18 = OpFunction %2 None %19
|
||||
%15 = OpLabel
|
||||
|
@ -1,15 +1,15 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 123
|
||||
; Bound: 122
|
||||
OpCapability Shader
|
||||
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %27 "test_atomic_compare_exchange_i32"
|
||||
OpEntryPoint GLCompute %81 "test_atomic_compare_exchange_u32"
|
||||
OpExecutionMode %27 LocalSize 1 1 1
|
||||
OpExecutionMode %81 LocalSize 1 1 1
|
||||
OpEntryPoint GLCompute %18 "test_atomic_compare_exchange_i32"
|
||||
OpEntryPoint GLCompute %76 "test_atomic_compare_exchange_u32"
|
||||
OpExecutionMode %18 LocalSize 1 1 1
|
||||
OpExecutionMode %76 LocalSize 1 1 1
|
||||
OpDecorate %5 ArrayStride 4
|
||||
OpDecorate %7 ArrayStride 4
|
||||
OpMemberDecorate %9 0 Offset 0
|
||||
@ -39,167 +39,164 @@ OpMemberDecorate %15 0 Offset 0
|
||||
%15 = OpTypeStruct %7
|
||||
%16 = OpTypePointer StorageBuffer %15
|
||||
%14 = OpVariable %16 StorageBuffer
|
||||
%18 = OpTypePointer Function %3
|
||||
%19 = OpConstantNull %3
|
||||
%21 = OpTypePointer Function %4
|
||||
%22 = OpConstantNull %4
|
||||
%24 = OpTypePointer Function %8
|
||||
%25 = OpConstantNull %8
|
||||
%28 = OpTypeFunction %2
|
||||
%29 = OpTypePointer StorageBuffer %5
|
||||
%30 = OpConstant %3 0
|
||||
%32 = OpConstantFalse %8
|
||||
%33 = OpTypeFloat 32
|
||||
%34 = OpConstant %33 1.0
|
||||
%35 = OpConstant %3 1
|
||||
%48 = OpTypePointer StorageBuffer %4
|
||||
%51 = OpConstant %4 1
|
||||
%52 = OpConstant %3 64
|
||||
%82 = OpTypePointer StorageBuffer %7
|
||||
%96 = OpTypePointer StorageBuffer %3
|
||||
%27 = OpFunction %2 None %28
|
||||
%26 = OpLabel
|
||||
%17 = OpVariable %18 Function %19
|
||||
%20 = OpVariable %21 Function %22
|
||||
%23 = OpVariable %24 Function %25
|
||||
%31 = OpAccessChain %29 %11 %30
|
||||
OpBranch %36
|
||||
%36 = OpLabel
|
||||
OpStore %17 %30
|
||||
%19 = OpTypeFunction %2
|
||||
%20 = OpTypePointer StorageBuffer %5
|
||||
%21 = OpConstant %3 0
|
||||
%23 = OpConstantFalse %8
|
||||
%24 = OpTypeFloat 32
|
||||
%25 = OpConstant %24 1.0
|
||||
%26 = OpConstant %3 1
|
||||
%28 = OpTypePointer Function %3
|
||||
%30 = OpTypePointer Function %4
|
||||
%31 = OpConstantNull %4
|
||||
%33 = OpTypePointer Function %8
|
||||
%46 = OpTypePointer StorageBuffer %4
|
||||
%49 = OpConstant %4 1
|
||||
%50 = OpConstant %3 64
|
||||
%77 = OpTypePointer StorageBuffer %7
|
||||
%81 = OpConstantNull %3
|
||||
%95 = OpTypePointer StorageBuffer %3
|
||||
%18 = OpFunction %2 None %19
|
||||
%17 = OpLabel
|
||||
%27 = OpVariable %28 Function %21
|
||||
%29 = OpVariable %30 Function %31
|
||||
%32 = OpVariable %33 Function %23
|
||||
%22 = OpAccessChain %20 %11 %21
|
||||
OpBranch %34
|
||||
%34 = OpLabel
|
||||
OpBranch %35
|
||||
%35 = OpLabel
|
||||
OpLoopMerge %36 %38 None
|
||||
OpBranch %37
|
||||
%37 = OpLabel
|
||||
OpLoopMerge %38 %40 None
|
||||
OpBranch %39
|
||||
%39 = OpLabel
|
||||
%41 = OpLoad %3 %17
|
||||
%42 = OpULessThan %8 %41 %6
|
||||
OpSelectionMerge %43 None
|
||||
OpBranchConditional %42 %43 %44
|
||||
%44 = OpLabel
|
||||
OpBranch %38
|
||||
%39 = OpLoad %3 %27
|
||||
%40 = OpULessThan %8 %39 %6
|
||||
OpSelectionMerge %41 None
|
||||
OpBranchConditional %40 %41 %42
|
||||
%42 = OpLabel
|
||||
OpBranch %36
|
||||
%41 = OpLabel
|
||||
OpBranch %43
|
||||
%43 = OpLabel
|
||||
OpBranch %45
|
||||
%45 = OpLabel
|
||||
%47 = OpLoad %3 %17
|
||||
%49 = OpAccessChain %48 %31 %47
|
||||
%50 = OpAtomicLoad %4 %49 %51 %52
|
||||
OpStore %20 %50
|
||||
OpStore %23 %32
|
||||
%45 = OpLoad %3 %27
|
||||
%47 = OpAccessChain %46 %22 %45
|
||||
%48 = OpAtomicLoad %4 %47 %49 %50
|
||||
OpStore %29 %48
|
||||
OpStore %32 %23
|
||||
OpBranch %51
|
||||
%51 = OpLabel
|
||||
OpLoopMerge %52 %54 None
|
||||
OpBranch %53
|
||||
%53 = OpLabel
|
||||
OpLoopMerge %54 %56 None
|
||||
OpBranch %55
|
||||
%55 = OpLabel
|
||||
%57 = OpLoad %8 %23
|
||||
%58 = OpLogicalNot %8 %57
|
||||
OpSelectionMerge %59 None
|
||||
OpBranchConditional %58 %59 %60
|
||||
%55 = OpLoad %8 %32
|
||||
%56 = OpLogicalNot %8 %55
|
||||
OpSelectionMerge %57 None
|
||||
OpBranchConditional %56 %57 %58
|
||||
%58 = OpLabel
|
||||
OpBranch %52
|
||||
%57 = OpLabel
|
||||
OpBranch %59
|
||||
%59 = OpLabel
|
||||
%61 = OpLoad %4 %29
|
||||
%62 = OpBitcast %24 %61
|
||||
%63 = OpFAdd %24 %62 %25
|
||||
%64 = OpBitcast %4 %63
|
||||
%65 = OpLoad %3 %27
|
||||
%66 = OpLoad %4 %29
|
||||
%68 = OpAccessChain %46 %22 %65
|
||||
%69 = OpAtomicCompareExchange %4 %68 %49 %50 %50 %64 %66
|
||||
%70 = OpIEqual %8 %69 %66
|
||||
%67 = OpCompositeConstruct %9 %69 %70
|
||||
%71 = OpCompositeExtract %4 %67 0
|
||||
OpStore %29 %71
|
||||
%72 = OpCompositeExtract %8 %67 1
|
||||
OpStore %32 %72
|
||||
OpBranch %60
|
||||
%60 = OpLabel
|
||||
OpBranch %54
|
||||
%59 = OpLabel
|
||||
OpBranch %61
|
||||
%61 = OpLabel
|
||||
%63 = OpLoad %4 %20
|
||||
%64 = OpBitcast %33 %63
|
||||
%65 = OpFAdd %33 %64 %34
|
||||
%66 = OpBitcast %4 %65
|
||||
%67 = OpLoad %3 %17
|
||||
%68 = OpLoad %4 %20
|
||||
%70 = OpAccessChain %48 %31 %67
|
||||
%71 = OpAtomicCompareExchange %4 %70 %51 %52 %52 %66 %68
|
||||
%72 = OpIEqual %8 %71 %68
|
||||
%69 = OpCompositeConstruct %9 %71 %72
|
||||
%73 = OpCompositeExtract %4 %69 0
|
||||
OpStore %20 %73
|
||||
%74 = OpCompositeExtract %8 %69 1
|
||||
OpStore %23 %74
|
||||
OpBranch %62
|
||||
%62 = OpLabel
|
||||
OpBranch %56
|
||||
%56 = OpLabel
|
||||
OpBranch %53
|
||||
%54 = OpLabel
|
||||
OpBranch %46
|
||||
%46 = OpLabel
|
||||
OpBranch %40
|
||||
%40 = OpLabel
|
||||
%75 = OpLoad %3 %17
|
||||
%76 = OpIAdd %3 %75 %35
|
||||
OpStore %17 %76
|
||||
OpBranch %37
|
||||
OpBranch %51
|
||||
%52 = OpLabel
|
||||
OpBranch %44
|
||||
%44 = OpLabel
|
||||
OpBranch %38
|
||||
%38 = OpLabel
|
||||
%73 = OpLoad %3 %27
|
||||
%74 = OpIAdd %3 %73 %26
|
||||
OpStore %27 %74
|
||||
OpBranch %35
|
||||
%36 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%81 = OpFunction %2 None %28
|
||||
%80 = OpLabel
|
||||
%77 = OpVariable %18 Function %19
|
||||
%78 = OpVariable %18 Function %19
|
||||
%79 = OpVariable %24 Function %25
|
||||
%83 = OpAccessChain %82 %14 %30
|
||||
%76 = OpFunction %2 None %19
|
||||
%75 = OpLabel
|
||||
%79 = OpVariable %28 Function %21
|
||||
%80 = OpVariable %28 Function %81
|
||||
%82 = OpVariable %33 Function %23
|
||||
%78 = OpAccessChain %77 %14 %21
|
||||
OpBranch %83
|
||||
%83 = OpLabel
|
||||
OpBranch %84
|
||||
%84 = OpLabel
|
||||
OpStore %77 %30
|
||||
OpBranch %85
|
||||
%85 = OpLabel
|
||||
OpLoopMerge %86 %88 None
|
||||
OpBranch %87
|
||||
%87 = OpLabel
|
||||
%89 = OpLoad %3 %77
|
||||
%90 = OpULessThan %8 %89 %6
|
||||
OpSelectionMerge %91 None
|
||||
OpBranchConditional %90 %91 %92
|
||||
%92 = OpLabel
|
||||
OpLoopMerge %85 %87 None
|
||||
OpBranch %86
|
||||
%86 = OpLabel
|
||||
%88 = OpLoad %3 %79
|
||||
%89 = OpULessThan %8 %88 %6
|
||||
OpSelectionMerge %90 None
|
||||
OpBranchConditional %89 %90 %91
|
||||
%91 = OpLabel
|
||||
OpBranch %93
|
||||
%93 = OpLabel
|
||||
%95 = OpLoad %3 %77
|
||||
%97 = OpAccessChain %96 %83 %95
|
||||
%98 = OpAtomicLoad %3 %97 %51 %52
|
||||
OpStore %78 %98
|
||||
OpStore %79 %32
|
||||
OpBranch %99
|
||||
%99 = OpLabel
|
||||
OpLoopMerge %100 %102 None
|
||||
OpBranch %101
|
||||
%101 = OpLabel
|
||||
%103 = OpLoad %8 %79
|
||||
%104 = OpLogicalNot %8 %103
|
||||
OpSelectionMerge %105 None
|
||||
OpBranchConditional %104 %105 %106
|
||||
%106 = OpLabel
|
||||
OpBranch %85
|
||||
%90 = OpLabel
|
||||
OpBranch %92
|
||||
%92 = OpLabel
|
||||
%94 = OpLoad %3 %79
|
||||
%96 = OpAccessChain %95 %78 %94
|
||||
%97 = OpAtomicLoad %3 %96 %49 %50
|
||||
OpStore %80 %97
|
||||
OpStore %82 %23
|
||||
OpBranch %98
|
||||
%98 = OpLabel
|
||||
OpLoopMerge %99 %101 None
|
||||
OpBranch %100
|
||||
%100 = OpLabel
|
||||
%102 = OpLoad %8 %82
|
||||
%103 = OpLogicalNot %8 %102
|
||||
OpSelectionMerge %104 None
|
||||
OpBranchConditional %103 %104 %105
|
||||
%105 = OpLabel
|
||||
OpBranch %99
|
||||
%104 = OpLabel
|
||||
OpBranch %106
|
||||
%106 = OpLabel
|
||||
%108 = OpLoad %3 %80
|
||||
%109 = OpBitcast %24 %108
|
||||
%110 = OpFAdd %24 %109 %25
|
||||
%111 = OpBitcast %3 %110
|
||||
%112 = OpLoad %3 %79
|
||||
%113 = OpLoad %3 %80
|
||||
%115 = OpAccessChain %95 %78 %112
|
||||
%116 = OpAtomicCompareExchange %3 %115 %49 %50 %50 %111 %113
|
||||
%117 = OpIEqual %8 %116 %113
|
||||
%114 = OpCompositeConstruct %10 %116 %117
|
||||
%118 = OpCompositeExtract %3 %114 0
|
||||
OpStore %80 %118
|
||||
%119 = OpCompositeExtract %8 %114 1
|
||||
OpStore %82 %119
|
||||
OpBranch %107
|
||||
%107 = OpLabel
|
||||
%109 = OpLoad %3 %78
|
||||
%110 = OpBitcast %33 %109
|
||||
%111 = OpFAdd %33 %110 %34
|
||||
%112 = OpBitcast %3 %111
|
||||
%113 = OpLoad %3 %77
|
||||
%114 = OpLoad %3 %78
|
||||
%116 = OpAccessChain %96 %83 %113
|
||||
%117 = OpAtomicCompareExchange %3 %116 %51 %52 %52 %112 %114
|
||||
%118 = OpIEqual %8 %117 %114
|
||||
%115 = OpCompositeConstruct %10 %117 %118
|
||||
%119 = OpCompositeExtract %3 %115 0
|
||||
OpStore %78 %119
|
||||
%120 = OpCompositeExtract %8 %115 1
|
||||
OpStore %79 %120
|
||||
OpBranch %108
|
||||
%108 = OpLabel
|
||||
OpBranch %102
|
||||
%102 = OpLabel
|
||||
OpBranch %99
|
||||
%100 = OpLabel
|
||||
OpBranch %94
|
||||
%94 = OpLabel
|
||||
OpBranch %88
|
||||
%88 = OpLabel
|
||||
%121 = OpLoad %3 %77
|
||||
%122 = OpIAdd %3 %121 %35
|
||||
OpStore %77 %122
|
||||
OpBranch %85
|
||||
%86 = OpLabel
|
||||
OpBranch %101
|
||||
%101 = OpLabel
|
||||
OpBranch %98
|
||||
%99 = OpLabel
|
||||
OpBranch %93
|
||||
%93 = OpLabel
|
||||
OpBranch %87
|
||||
%87 = OpLabel
|
||||
%120 = OpLoad %3 %79
|
||||
%121 = OpIAdd %3 %120 %26
|
||||
OpStore %79 %121
|
||||
OpBranch %84
|
||||
%85 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,15 +1,15 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 431
|
||||
; Bound: 428
|
||||
OpCapability Shader
|
||||
OpCapability ImageQuery
|
||||
OpCapability ShaderNonUniform
|
||||
OpExtension "SPV_EXT_descriptor_indexing"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %64 "main" %59 %62
|
||||
OpExecutionMode %64 OriginUpperLeft
|
||||
OpEntryPoint Fragment %52 "main" %47 %50
|
||||
OpExecutionMode %52 OriginUpperLeft
|
||||
OpMemberDecorate %4 0 Offset 0
|
||||
OpMemberDecorate %21 0 Offset 0
|
||||
OpDecorate %24 DescriptorSet 0
|
||||
@ -32,31 +32,31 @@ OpDecorate %42 DescriptorSet 0
|
||||
OpDecorate %42 Binding 8
|
||||
OpDecorate %43 Block
|
||||
OpMemberDecorate %43 0 Offset 0
|
||||
OpDecorate %59 Location 0
|
||||
OpDecorate %59 Flat
|
||||
OpDecorate %62 Location 0
|
||||
OpDecorate %95 NonUniform
|
||||
OpDecorate %118 NonUniform
|
||||
OpDecorate %120 NonUniform
|
||||
OpDecorate %145 NonUniform
|
||||
OpDecorate %147 NonUniform
|
||||
OpDecorate %183 NonUniform
|
||||
OpDecorate %211 NonUniform
|
||||
OpDecorate %227 NonUniform
|
||||
OpDecorate %243 NonUniform
|
||||
OpDecorate %264 NonUniform
|
||||
OpDecorate %266 NonUniform
|
||||
OpDecorate %288 NonUniform
|
||||
OpDecorate %290 NonUniform
|
||||
OpDecorate %312 NonUniform
|
||||
OpDecorate %314 NonUniform
|
||||
OpDecorate %336 NonUniform
|
||||
OpDecorate %338 NonUniform
|
||||
OpDecorate %360 NonUniform
|
||||
OpDecorate %362 NonUniform
|
||||
OpDecorate %384 NonUniform
|
||||
OpDecorate %386 NonUniform
|
||||
OpDecorate %409 NonUniform
|
||||
OpDecorate %47 Location 0
|
||||
OpDecorate %47 Flat
|
||||
OpDecorate %50 Location 0
|
||||
OpDecorate %91 NonUniform
|
||||
OpDecorate %114 NonUniform
|
||||
OpDecorate %116 NonUniform
|
||||
OpDecorate %141 NonUniform
|
||||
OpDecorate %143 NonUniform
|
||||
OpDecorate %180 NonUniform
|
||||
OpDecorate %208 NonUniform
|
||||
OpDecorate %224 NonUniform
|
||||
OpDecorate %240 NonUniform
|
||||
OpDecorate %261 NonUniform
|
||||
OpDecorate %263 NonUniform
|
||||
OpDecorate %285 NonUniform
|
||||
OpDecorate %287 NonUniform
|
||||
OpDecorate %309 NonUniform
|
||||
OpDecorate %311 NonUniform
|
||||
OpDecorate %333 NonUniform
|
||||
OpDecorate %335 NonUniform
|
||||
OpDecorate %357 NonUniform
|
||||
OpDecorate %359 NonUniform
|
||||
OpDecorate %381 NonUniform
|
||||
OpDecorate %383 NonUniform
|
||||
OpDecorate %406 NonUniform
|
||||
%2 = OpTypeVoid
|
||||
%3 = OpTypeInt 32 0
|
||||
%4 = OpTypeStruct %3
|
||||
@ -100,460 +100,453 @@ OpDecorate %409 NonUniform
|
||||
%43 = OpTypeStruct %4
|
||||
%44 = OpTypePointer Uniform %43
|
||||
%42 = OpVariable %44 Uniform
|
||||
%46 = OpTypePointer Function %3
|
||||
%47 = OpConstantNull %3
|
||||
%49 = OpTypePointer Function %23
|
||||
%50 = OpConstantNull %23
|
||||
%52 = OpTypePointer Function %6
|
||||
%53 = OpConstantNull %6
|
||||
%55 = OpTypePointer Function %22
|
||||
%56 = OpConstantNull %22
|
||||
%60 = OpTypePointer Input %3
|
||||
%59 = OpVariable %60 Input
|
||||
%63 = OpTypePointer Output %22
|
||||
%62 = OpVariable %63 Output
|
||||
%65 = OpTypeFunction %2
|
||||
%66 = OpTypePointer Uniform %4
|
||||
%67 = OpConstant %3 0
|
||||
%69 = OpConstant %6 0.0
|
||||
%70 = OpTypeInt 32 1
|
||||
%71 = OpConstant %70 0
|
||||
%73 = OpTypePointer Uniform %3
|
||||
%79 = OpTypeVector %6 2
|
||||
%81 = OpTypeVector %70 2
|
||||
%83 = OpTypePointer UniformConstant %5
|
||||
%101 = OpTypePointer UniformConstant %18
|
||||
%104 = OpTypeSampledImage %5
|
||||
%125 = OpTypePointer UniformConstant %14
|
||||
%128 = OpTypePointer UniformConstant %18
|
||||
%131 = OpTypeSampledImage %14
|
||||
%154 = OpTypeBool
|
||||
%160 = OpTypeVector %154 2
|
||||
%196 = OpTypePointer UniformConstant %10
|
||||
%199 = OpTypeVector %3 3
|
||||
%231 = OpTypePointer UniformConstant %12
|
||||
%391 = OpTypePointer UniformConstant %16
|
||||
%64 = OpFunction %2 None %65
|
||||
%57 = OpLabel
|
||||
%48 = OpVariable %49 Function %50
|
||||
%54 = OpVariable %55 Function %56
|
||||
%45 = OpVariable %46 Function %47
|
||||
%51 = OpVariable %52 Function %53
|
||||
%61 = OpLoad %3 %59
|
||||
%58 = OpCompositeConstruct %21 %61
|
||||
%68 = OpAccessChain %66 %42 %67
|
||||
OpBranch %72
|
||||
%72 = OpLabel
|
||||
%74 = OpAccessChain %73 %68 %67
|
||||
%75 = OpLoad %3 %74
|
||||
%76 = OpCompositeExtract %3 %58 0
|
||||
OpStore %45 %67
|
||||
%77 = OpCompositeConstruct %23 %67 %67
|
||||
OpStore %48 %77
|
||||
OpStore %51 %69
|
||||
%78 = OpCompositeConstruct %22 %69 %69 %69 %69
|
||||
OpStore %54 %78
|
||||
%80 = OpCompositeConstruct %79 %69 %69
|
||||
%82 = OpCompositeConstruct %81 %71 %71
|
||||
%84 = OpAccessChain %83 %24 %67
|
||||
%85 = OpLoad %5 %84
|
||||
%86 = OpImageQuerySizeLod %23 %85 %67
|
||||
%87 = OpLoad %23 %48
|
||||
%88 = OpIAdd %23 %87 %86
|
||||
OpStore %48 %88
|
||||
%89 = OpAccessChain %83 %24 %75
|
||||
%90 = OpLoad %5 %89
|
||||
%91 = OpImageQuerySizeLod %23 %90 %67
|
||||
%92 = OpLoad %23 %48
|
||||
%93 = OpIAdd %23 %92 %91
|
||||
OpStore %48 %93
|
||||
%94 = OpAccessChain %83 %24 %76
|
||||
%95 = OpLoad %5 %94
|
||||
%96 = OpImageQuerySizeLod %23 %95 %67
|
||||
%97 = OpLoad %23 %48
|
||||
%98 = OpIAdd %23 %97 %96
|
||||
OpStore %48 %98
|
||||
%99 = OpAccessChain %83 %28 %67
|
||||
%100 = OpLoad %5 %99
|
||||
%102 = OpAccessChain %101 %38 %67
|
||||
%103 = OpLoad %18 %102
|
||||
%105 = OpSampledImage %104 %100 %103
|
||||
%106 = OpImageGather %22 %105 %80 %67
|
||||
%107 = OpLoad %22 %54
|
||||
%108 = OpFAdd %22 %107 %106
|
||||
OpStore %54 %108
|
||||
%109 = OpAccessChain %83 %28 %75
|
||||
%110 = OpLoad %5 %109
|
||||
%111 = OpAccessChain %101 %38 %75
|
||||
%112 = OpLoad %18 %111
|
||||
%113 = OpSampledImage %104 %110 %112
|
||||
%114 = OpImageGather %22 %113 %80 %67
|
||||
%115 = OpLoad %22 %54
|
||||
%116 = OpFAdd %22 %115 %114
|
||||
OpStore %54 %116
|
||||
%117 = OpAccessChain %83 %28 %76
|
||||
%118 = OpLoad %5 %117
|
||||
%119 = OpAccessChain %101 %38 %76
|
||||
%120 = OpLoad %18 %119
|
||||
%121 = OpSampledImage %104 %118 %120
|
||||
%122 = OpImageGather %22 %121 %80 %67
|
||||
%123 = OpLoad %22 %54
|
||||
%124 = OpFAdd %22 %123 %122
|
||||
OpStore %54 %124
|
||||
%126 = OpAccessChain %125 %34 %67
|
||||
%127 = OpLoad %14 %126
|
||||
%129 = OpAccessChain %128 %40 %67
|
||||
%130 = OpLoad %18 %129
|
||||
%132 = OpSampledImage %131 %127 %130
|
||||
%133 = OpImageDrefGather %22 %132 %80 %69
|
||||
%134 = OpLoad %22 %54
|
||||
%135 = OpFAdd %22 %134 %133
|
||||
OpStore %54 %135
|
||||
%136 = OpAccessChain %125 %34 %75
|
||||
%137 = OpLoad %14 %136
|
||||
%138 = OpAccessChain %128 %40 %75
|
||||
%139 = OpLoad %18 %138
|
||||
%140 = OpSampledImage %131 %137 %139
|
||||
%141 = OpImageDrefGather %22 %140 %80 %69
|
||||
%142 = OpLoad %22 %54
|
||||
%143 = OpFAdd %22 %142 %141
|
||||
OpStore %54 %143
|
||||
%144 = OpAccessChain %125 %34 %76
|
||||
%145 = OpLoad %14 %144
|
||||
%146 = OpAccessChain %128 %40 %76
|
||||
%147 = OpLoad %18 %146
|
||||
%148 = OpSampledImage %131 %145 %147
|
||||
%149 = OpImageDrefGather %22 %148 %80 %69
|
||||
%150 = OpLoad %22 %54
|
||||
%151 = OpFAdd %22 %150 %149
|
||||
OpStore %54 %151
|
||||
%152 = OpAccessChain %83 %24 %67
|
||||
%153 = OpLoad %5 %152
|
||||
%155 = OpImageQueryLevels %70 %153
|
||||
%156 = OpULessThan %154 %71 %155
|
||||
OpSelectionMerge %157 None
|
||||
OpBranchConditional %156 %158 %157
|
||||
%158 = OpLabel
|
||||
%159 = OpImageQuerySizeLod %81 %153 %71
|
||||
%161 = OpULessThan %160 %82 %159
|
||||
%162 = OpAll %154 %161
|
||||
OpBranchConditional %162 %163 %157
|
||||
%163 = OpLabel
|
||||
%164 = OpImageFetch %22 %153 %82 Lod %71
|
||||
OpBranch %157
|
||||
%157 = OpLabel
|
||||
%165 = OpPhi %22 %56 %72 %56 %158 %164 %163
|
||||
%166 = OpLoad %22 %54
|
||||
%167 = OpFAdd %22 %166 %165
|
||||
OpStore %54 %167
|
||||
%168 = OpAccessChain %83 %24 %75
|
||||
%169 = OpLoad %5 %168
|
||||
%170 = OpImageQueryLevels %70 %169
|
||||
%171 = OpULessThan %154 %71 %170
|
||||
OpSelectionMerge %172 None
|
||||
OpBranchConditional %171 %173 %172
|
||||
%173 = OpLabel
|
||||
%174 = OpImageQuerySizeLod %81 %169 %71
|
||||
%175 = OpULessThan %160 %82 %174
|
||||
%176 = OpAll %154 %175
|
||||
OpBranchConditional %176 %177 %172
|
||||
%177 = OpLabel
|
||||
%178 = OpImageFetch %22 %169 %82 Lod %71
|
||||
OpBranch %172
|
||||
%172 = OpLabel
|
||||
%179 = OpPhi %22 %56 %157 %56 %173 %178 %177
|
||||
%180 = OpLoad %22 %54
|
||||
%181 = OpFAdd %22 %180 %179
|
||||
OpStore %54 %181
|
||||
%182 = OpAccessChain %83 %24 %76
|
||||
%183 = OpLoad %5 %182
|
||||
%184 = OpImageQueryLevels %70 %183
|
||||
%185 = OpULessThan %154 %71 %184
|
||||
OpSelectionMerge %186 None
|
||||
OpBranchConditional %185 %187 %186
|
||||
%187 = OpLabel
|
||||
%188 = OpImageQuerySizeLod %81 %183 %71
|
||||
%189 = OpULessThan %160 %82 %188
|
||||
%190 = OpAll %154 %189
|
||||
OpBranchConditional %190 %191 %186
|
||||
%191 = OpLabel
|
||||
%192 = OpImageFetch %22 %183 %82 Lod %71
|
||||
OpBranch %186
|
||||
%186 = OpLabel
|
||||
%193 = OpPhi %22 %56 %172 %56 %187 %192 %191
|
||||
%194 = OpLoad %22 %54
|
||||
%195 = OpFAdd %22 %194 %193
|
||||
OpStore %54 %195
|
||||
%197 = OpAccessChain %196 %30 %67
|
||||
%198 = OpLoad %10 %197
|
||||
%200 = OpImageQuerySizeLod %199 %198 %67
|
||||
%201 = OpCompositeExtract %3 %200 2
|
||||
%202 = OpLoad %3 %45
|
||||
%203 = OpIAdd %3 %202 %201
|
||||
OpStore %45 %203
|
||||
%204 = OpAccessChain %196 %30 %75
|
||||
%205 = OpLoad %10 %204
|
||||
%206 = OpImageQuerySizeLod %199 %205 %67
|
||||
%207 = OpCompositeExtract %3 %206 2
|
||||
%208 = OpLoad %3 %45
|
||||
%209 = OpIAdd %3 %208 %207
|
||||
OpStore %45 %209
|
||||
%210 = OpAccessChain %196 %30 %76
|
||||
%211 = OpLoad %10 %210
|
||||
%212 = OpImageQuerySizeLod %199 %211 %67
|
||||
%213 = OpCompositeExtract %3 %212 2
|
||||
%214 = OpLoad %3 %45
|
||||
%215 = OpIAdd %3 %214 %213
|
||||
OpStore %45 %215
|
||||
%216 = OpAccessChain %83 %28 %67
|
||||
%217 = OpLoad %5 %216
|
||||
%218 = OpImageQueryLevels %3 %217
|
||||
%219 = OpLoad %3 %45
|
||||
%220 = OpIAdd %3 %219 %218
|
||||
OpStore %45 %220
|
||||
%221 = OpAccessChain %83 %28 %75
|
||||
%222 = OpLoad %5 %221
|
||||
%223 = OpImageQueryLevels %3 %222
|
||||
%224 = OpLoad %3 %45
|
||||
%225 = OpIAdd %3 %224 %223
|
||||
OpStore %45 %225
|
||||
%226 = OpAccessChain %83 %28 %76
|
||||
%227 = OpLoad %5 %226
|
||||
%228 = OpImageQueryLevels %3 %227
|
||||
%229 = OpLoad %3 %45
|
||||
%230 = OpIAdd %3 %229 %228
|
||||
OpStore %45 %230
|
||||
%232 = OpAccessChain %231 %32 %67
|
||||
%233 = OpLoad %12 %232
|
||||
%234 = OpImageQuerySamples %3 %233
|
||||
%235 = OpLoad %3 %45
|
||||
%236 = OpIAdd %3 %235 %234
|
||||
OpStore %45 %236
|
||||
%237 = OpAccessChain %231 %32 %75
|
||||
%238 = OpLoad %12 %237
|
||||
%239 = OpImageQuerySamples %3 %238
|
||||
%240 = OpLoad %3 %45
|
||||
%241 = OpIAdd %3 %240 %239
|
||||
OpStore %45 %241
|
||||
%242 = OpAccessChain %231 %32 %76
|
||||
%243 = OpLoad %12 %242
|
||||
%244 = OpImageQuerySamples %3 %243
|
||||
%245 = OpLoad %3 %45
|
||||
%246 = OpIAdd %3 %245 %244
|
||||
OpStore %45 %246
|
||||
%247 = OpAccessChain %83 %28 %67
|
||||
%248 = OpLoad %5 %247
|
||||
%249 = OpAccessChain %101 %38 %67
|
||||
%250 = OpLoad %18 %249
|
||||
%251 = OpSampledImage %104 %248 %250
|
||||
%252 = OpImageSampleImplicitLod %22 %251 %80
|
||||
%253 = OpLoad %22 %54
|
||||
%254 = OpFAdd %22 %253 %252
|
||||
OpStore %54 %254
|
||||
%255 = OpAccessChain %83 %28 %75
|
||||
%256 = OpLoad %5 %255
|
||||
%257 = OpAccessChain %101 %38 %75
|
||||
%258 = OpLoad %18 %257
|
||||
%259 = OpSampledImage %104 %256 %258
|
||||
%260 = OpImageSampleImplicitLod %22 %259 %80
|
||||
%261 = OpLoad %22 %54
|
||||
%262 = OpFAdd %22 %261 %260
|
||||
OpStore %54 %262
|
||||
%263 = OpAccessChain %83 %28 %76
|
||||
%264 = OpLoad %5 %263
|
||||
%265 = OpAccessChain %101 %38 %76
|
||||
%266 = OpLoad %18 %265
|
||||
%267 = OpSampledImage %104 %264 %266
|
||||
%268 = OpImageSampleImplicitLod %22 %267 %80
|
||||
%269 = OpLoad %22 %54
|
||||
%270 = OpFAdd %22 %269 %268
|
||||
OpStore %54 %270
|
||||
%271 = OpAccessChain %83 %28 %67
|
||||
%272 = OpLoad %5 %271
|
||||
%273 = OpAccessChain %101 %38 %67
|
||||
%274 = OpLoad %18 %273
|
||||
%275 = OpSampledImage %104 %272 %274
|
||||
%276 = OpImageSampleImplicitLod %22 %275 %80 Bias %69
|
||||
%277 = OpLoad %22 %54
|
||||
%278 = OpFAdd %22 %277 %276
|
||||
OpStore %54 %278
|
||||
%279 = OpAccessChain %83 %28 %75
|
||||
%280 = OpLoad %5 %279
|
||||
%281 = OpAccessChain %101 %38 %75
|
||||
%282 = OpLoad %18 %281
|
||||
%283 = OpSampledImage %104 %280 %282
|
||||
%284 = OpImageSampleImplicitLod %22 %283 %80 Bias %69
|
||||
%285 = OpLoad %22 %54
|
||||
%286 = OpFAdd %22 %285 %284
|
||||
OpStore %54 %286
|
||||
%287 = OpAccessChain %83 %28 %76
|
||||
%288 = OpLoad %5 %287
|
||||
%289 = OpAccessChain %101 %38 %76
|
||||
%290 = OpLoad %18 %289
|
||||
%291 = OpSampledImage %104 %288 %290
|
||||
%292 = OpImageSampleImplicitLod %22 %291 %80 Bias %69
|
||||
%293 = OpLoad %22 %54
|
||||
%294 = OpFAdd %22 %293 %292
|
||||
OpStore %54 %294
|
||||
%295 = OpAccessChain %125 %34 %67
|
||||
%296 = OpLoad %14 %295
|
||||
%297 = OpAccessChain %128 %40 %67
|
||||
%298 = OpLoad %18 %297
|
||||
%299 = OpSampledImage %131 %296 %298
|
||||
%300 = OpImageSampleDrefImplicitLod %6 %299 %80 %69
|
||||
%301 = OpLoad %6 %51
|
||||
%302 = OpFAdd %6 %301 %300
|
||||
OpStore %51 %302
|
||||
%303 = OpAccessChain %125 %34 %75
|
||||
%304 = OpLoad %14 %303
|
||||
%305 = OpAccessChain %128 %40 %75
|
||||
%306 = OpLoad %18 %305
|
||||
%307 = OpSampledImage %131 %304 %306
|
||||
%308 = OpImageSampleDrefImplicitLod %6 %307 %80 %69
|
||||
%309 = OpLoad %6 %51
|
||||
%310 = OpFAdd %6 %309 %308
|
||||
OpStore %51 %310
|
||||
%311 = OpAccessChain %125 %34 %76
|
||||
%312 = OpLoad %14 %311
|
||||
%313 = OpAccessChain %128 %40 %76
|
||||
%314 = OpLoad %18 %313
|
||||
%315 = OpSampledImage %131 %312 %314
|
||||
%316 = OpImageSampleDrefImplicitLod %6 %315 %80 %69
|
||||
%317 = OpLoad %6 %51
|
||||
%318 = OpFAdd %6 %317 %316
|
||||
OpStore %51 %318
|
||||
%319 = OpAccessChain %125 %34 %67
|
||||
%320 = OpLoad %14 %319
|
||||
%321 = OpAccessChain %128 %40 %67
|
||||
%322 = OpLoad %18 %321
|
||||
%323 = OpSampledImage %131 %320 %322
|
||||
%324 = OpImageSampleDrefExplicitLod %6 %323 %80 %69 Lod %69
|
||||
%325 = OpLoad %6 %51
|
||||
%326 = OpFAdd %6 %325 %324
|
||||
OpStore %51 %326
|
||||
%327 = OpAccessChain %125 %34 %75
|
||||
%328 = OpLoad %14 %327
|
||||
%329 = OpAccessChain %128 %40 %75
|
||||
%330 = OpLoad %18 %329
|
||||
%331 = OpSampledImage %131 %328 %330
|
||||
%332 = OpImageSampleDrefExplicitLod %6 %331 %80 %69 Lod %69
|
||||
%333 = OpLoad %6 %51
|
||||
%334 = OpFAdd %6 %333 %332
|
||||
OpStore %51 %334
|
||||
%335 = OpAccessChain %125 %34 %76
|
||||
%336 = OpLoad %14 %335
|
||||
%337 = OpAccessChain %128 %40 %76
|
||||
%338 = OpLoad %18 %337
|
||||
%339 = OpSampledImage %131 %336 %338
|
||||
%340 = OpImageSampleDrefExplicitLod %6 %339 %80 %69 Lod %69
|
||||
%341 = OpLoad %6 %51
|
||||
%342 = OpFAdd %6 %341 %340
|
||||
OpStore %51 %342
|
||||
%343 = OpAccessChain %83 %28 %67
|
||||
%344 = OpLoad %5 %343
|
||||
%345 = OpAccessChain %101 %38 %67
|
||||
%346 = OpLoad %18 %345
|
||||
%347 = OpSampledImage %104 %344 %346
|
||||
%348 = OpImageSampleExplicitLod %22 %347 %80 Grad %80 %80
|
||||
%349 = OpLoad %22 %54
|
||||
%350 = OpFAdd %22 %349 %348
|
||||
OpStore %54 %350
|
||||
%351 = OpAccessChain %83 %28 %75
|
||||
%352 = OpLoad %5 %351
|
||||
%353 = OpAccessChain %101 %38 %75
|
||||
%354 = OpLoad %18 %353
|
||||
%355 = OpSampledImage %104 %352 %354
|
||||
%356 = OpImageSampleExplicitLod %22 %355 %80 Grad %80 %80
|
||||
%357 = OpLoad %22 %54
|
||||
%358 = OpFAdd %22 %357 %356
|
||||
OpStore %54 %358
|
||||
%359 = OpAccessChain %83 %28 %76
|
||||
%360 = OpLoad %5 %359
|
||||
%361 = OpAccessChain %101 %38 %76
|
||||
%362 = OpLoad %18 %361
|
||||
%363 = OpSampledImage %104 %360 %362
|
||||
%364 = OpImageSampleExplicitLod %22 %363 %80 Grad %80 %80
|
||||
%365 = OpLoad %22 %54
|
||||
%366 = OpFAdd %22 %365 %364
|
||||
OpStore %54 %366
|
||||
%367 = OpAccessChain %83 %28 %67
|
||||
%368 = OpLoad %5 %367
|
||||
%369 = OpAccessChain %101 %38 %67
|
||||
%370 = OpLoad %18 %369
|
||||
%371 = OpSampledImage %104 %368 %370
|
||||
%372 = OpImageSampleExplicitLod %22 %371 %80 Lod %69
|
||||
%373 = OpLoad %22 %54
|
||||
%374 = OpFAdd %22 %373 %372
|
||||
OpStore %54 %374
|
||||
%375 = OpAccessChain %83 %28 %75
|
||||
%376 = OpLoad %5 %375
|
||||
%377 = OpAccessChain %101 %38 %75
|
||||
%378 = OpLoad %18 %377
|
||||
%379 = OpSampledImage %104 %376 %378
|
||||
%380 = OpImageSampleExplicitLod %22 %379 %80 Lod %69
|
||||
%381 = OpLoad %22 %54
|
||||
%382 = OpFAdd %22 %381 %380
|
||||
OpStore %54 %382
|
||||
%383 = OpAccessChain %83 %28 %76
|
||||
%384 = OpLoad %5 %383
|
||||
%385 = OpAccessChain %101 %38 %76
|
||||
%386 = OpLoad %18 %385
|
||||
%387 = OpSampledImage %104 %384 %386
|
||||
%388 = OpImageSampleExplicitLod %22 %387 %80 Lod %69
|
||||
%389 = OpLoad %22 %54
|
||||
%390 = OpFAdd %22 %389 %388
|
||||
OpStore %54 %390
|
||||
%392 = OpAccessChain %391 %36 %67
|
||||
%393 = OpLoad %16 %392
|
||||
%394 = OpLoad %22 %54
|
||||
%395 = OpImageQuerySize %81 %393
|
||||
%396 = OpULessThan %160 %82 %395
|
||||
%397 = OpAll %154 %396
|
||||
OpSelectionMerge %398 None
|
||||
OpBranchConditional %397 %399 %398
|
||||
%399 = OpLabel
|
||||
OpImageWrite %393 %82 %394
|
||||
OpBranch %398
|
||||
%398 = OpLabel
|
||||
%400 = OpAccessChain %391 %36 %75
|
||||
%401 = OpLoad %16 %400
|
||||
%402 = OpLoad %22 %54
|
||||
%403 = OpImageQuerySize %81 %401
|
||||
%404 = OpULessThan %160 %82 %403
|
||||
%405 = OpAll %154 %404
|
||||
OpSelectionMerge %406 None
|
||||
OpBranchConditional %405 %407 %406
|
||||
%407 = OpLabel
|
||||
OpImageWrite %401 %82 %402
|
||||
OpBranch %406
|
||||
%406 = OpLabel
|
||||
%408 = OpAccessChain %391 %36 %76
|
||||
%409 = OpLoad %16 %408
|
||||
%410 = OpLoad %22 %54
|
||||
%411 = OpImageQuerySize %81 %409
|
||||
%412 = OpULessThan %160 %82 %411
|
||||
%413 = OpAll %154 %412
|
||||
OpSelectionMerge %414 None
|
||||
OpBranchConditional %413 %415 %414
|
||||
%415 = OpLabel
|
||||
OpImageWrite %409 %82 %410
|
||||
OpBranch %414
|
||||
%414 = OpLabel
|
||||
%416 = OpLoad %23 %48
|
||||
%417 = OpLoad %3 %45
|
||||
%418 = OpCompositeConstruct %23 %417 %417
|
||||
%419 = OpIAdd %23 %416 %418
|
||||
%420 = OpConvertUToF %79 %419
|
||||
%421 = OpLoad %22 %54
|
||||
%422 = OpCompositeExtract %6 %420 0
|
||||
%423 = OpCompositeExtract %6 %420 1
|
||||
%424 = OpCompositeExtract %6 %420 0
|
||||
%425 = OpCompositeExtract %6 %420 1
|
||||
%426 = OpCompositeConstruct %22 %422 %423 %424 %425
|
||||
%427 = OpFAdd %22 %421 %426
|
||||
%428 = OpLoad %6 %51
|
||||
%429 = OpCompositeConstruct %22 %428 %428 %428 %428
|
||||
%430 = OpFAdd %22 %427 %429
|
||||
OpStore %62 %430
|
||||
%48 = OpTypePointer Input %3
|
||||
%47 = OpVariable %48 Input
|
||||
%51 = OpTypePointer Output %22
|
||||
%50 = OpVariable %51 Output
|
||||
%53 = OpTypeFunction %2
|
||||
%54 = OpTypePointer Uniform %4
|
||||
%55 = OpConstant %3 0
|
||||
%57 = OpConstantComposite %23 %55 %55
|
||||
%58 = OpConstant %6 0.0
|
||||
%59 = OpConstantComposite %22 %58 %58 %58 %58
|
||||
%60 = OpTypeVector %6 2
|
||||
%61 = OpConstantComposite %60 %58 %58
|
||||
%62 = OpTypeInt 32 1
|
||||
%63 = OpConstant %62 0
|
||||
%64 = OpTypeVector %62 2
|
||||
%65 = OpConstantComposite %64 %63 %63
|
||||
%67 = OpTypePointer Function %3
|
||||
%69 = OpTypePointer Function %23
|
||||
%71 = OpTypePointer Function %6
|
||||
%73 = OpTypePointer Function %22
|
||||
%75 = OpTypePointer Uniform %3
|
||||
%79 = OpTypePointer UniformConstant %5
|
||||
%97 = OpTypePointer UniformConstant %18
|
||||
%100 = OpTypeSampledImage %5
|
||||
%121 = OpTypePointer UniformConstant %14
|
||||
%124 = OpTypePointer UniformConstant %18
|
||||
%127 = OpTypeSampledImage %14
|
||||
%150 = OpTypeBool
|
||||
%151 = OpConstantNull %22
|
||||
%157 = OpTypeVector %150 2
|
||||
%193 = OpTypePointer UniformConstant %10
|
||||
%196 = OpTypeVector %3 3
|
||||
%228 = OpTypePointer UniformConstant %12
|
||||
%388 = OpTypePointer UniformConstant %16
|
||||
%52 = OpFunction %2 None %53
|
||||
%45 = OpLabel
|
||||
%68 = OpVariable %69 Function %57
|
||||
%72 = OpVariable %73 Function %59
|
||||
%66 = OpVariable %67 Function %55
|
||||
%70 = OpVariable %71 Function %58
|
||||
%49 = OpLoad %3 %47
|
||||
%46 = OpCompositeConstruct %21 %49
|
||||
%56 = OpAccessChain %54 %42 %55
|
||||
OpBranch %74
|
||||
%74 = OpLabel
|
||||
%76 = OpAccessChain %75 %56 %55
|
||||
%77 = OpLoad %3 %76
|
||||
%78 = OpCompositeExtract %3 %46 0
|
||||
%80 = OpAccessChain %79 %24 %55
|
||||
%81 = OpLoad %5 %80
|
||||
%82 = OpImageQuerySizeLod %23 %81 %55
|
||||
%83 = OpLoad %23 %68
|
||||
%84 = OpIAdd %23 %83 %82
|
||||
OpStore %68 %84
|
||||
%85 = OpAccessChain %79 %24 %77
|
||||
%86 = OpLoad %5 %85
|
||||
%87 = OpImageQuerySizeLod %23 %86 %55
|
||||
%88 = OpLoad %23 %68
|
||||
%89 = OpIAdd %23 %88 %87
|
||||
OpStore %68 %89
|
||||
%90 = OpAccessChain %79 %24 %78
|
||||
%91 = OpLoad %5 %90
|
||||
%92 = OpImageQuerySizeLod %23 %91 %55
|
||||
%93 = OpLoad %23 %68
|
||||
%94 = OpIAdd %23 %93 %92
|
||||
OpStore %68 %94
|
||||
%95 = OpAccessChain %79 %28 %55
|
||||
%96 = OpLoad %5 %95
|
||||
%98 = OpAccessChain %97 %38 %55
|
||||
%99 = OpLoad %18 %98
|
||||
%101 = OpSampledImage %100 %96 %99
|
||||
%102 = OpImageGather %22 %101 %61 %55
|
||||
%103 = OpLoad %22 %72
|
||||
%104 = OpFAdd %22 %103 %102
|
||||
OpStore %72 %104
|
||||
%105 = OpAccessChain %79 %28 %77
|
||||
%106 = OpLoad %5 %105
|
||||
%107 = OpAccessChain %97 %38 %77
|
||||
%108 = OpLoad %18 %107
|
||||
%109 = OpSampledImage %100 %106 %108
|
||||
%110 = OpImageGather %22 %109 %61 %55
|
||||
%111 = OpLoad %22 %72
|
||||
%112 = OpFAdd %22 %111 %110
|
||||
OpStore %72 %112
|
||||
%113 = OpAccessChain %79 %28 %78
|
||||
%114 = OpLoad %5 %113
|
||||
%115 = OpAccessChain %97 %38 %78
|
||||
%116 = OpLoad %18 %115
|
||||
%117 = OpSampledImage %100 %114 %116
|
||||
%118 = OpImageGather %22 %117 %61 %55
|
||||
%119 = OpLoad %22 %72
|
||||
%120 = OpFAdd %22 %119 %118
|
||||
OpStore %72 %120
|
||||
%122 = OpAccessChain %121 %34 %55
|
||||
%123 = OpLoad %14 %122
|
||||
%125 = OpAccessChain %124 %40 %55
|
||||
%126 = OpLoad %18 %125
|
||||
%128 = OpSampledImage %127 %123 %126
|
||||
%129 = OpImageDrefGather %22 %128 %61 %58
|
||||
%130 = OpLoad %22 %72
|
||||
%131 = OpFAdd %22 %130 %129
|
||||
OpStore %72 %131
|
||||
%132 = OpAccessChain %121 %34 %77
|
||||
%133 = OpLoad %14 %132
|
||||
%134 = OpAccessChain %124 %40 %77
|
||||
%135 = OpLoad %18 %134
|
||||
%136 = OpSampledImage %127 %133 %135
|
||||
%137 = OpImageDrefGather %22 %136 %61 %58
|
||||
%138 = OpLoad %22 %72
|
||||
%139 = OpFAdd %22 %138 %137
|
||||
OpStore %72 %139
|
||||
%140 = OpAccessChain %121 %34 %78
|
||||
%141 = OpLoad %14 %140
|
||||
%142 = OpAccessChain %124 %40 %78
|
||||
%143 = OpLoad %18 %142
|
||||
%144 = OpSampledImage %127 %141 %143
|
||||
%145 = OpImageDrefGather %22 %144 %61 %58
|
||||
%146 = OpLoad %22 %72
|
||||
%147 = OpFAdd %22 %146 %145
|
||||
OpStore %72 %147
|
||||
%148 = OpAccessChain %79 %24 %55
|
||||
%149 = OpLoad %5 %148
|
||||
%152 = OpImageQueryLevels %62 %149
|
||||
%153 = OpULessThan %150 %63 %152
|
||||
OpSelectionMerge %154 None
|
||||
OpBranchConditional %153 %155 %154
|
||||
%155 = OpLabel
|
||||
%156 = OpImageQuerySizeLod %64 %149 %63
|
||||
%158 = OpULessThan %157 %65 %156
|
||||
%159 = OpAll %150 %158
|
||||
OpBranchConditional %159 %160 %154
|
||||
%160 = OpLabel
|
||||
%161 = OpImageFetch %22 %149 %65 Lod %63
|
||||
OpBranch %154
|
||||
%154 = OpLabel
|
||||
%162 = OpPhi %22 %151 %74 %151 %155 %161 %160
|
||||
%163 = OpLoad %22 %72
|
||||
%164 = OpFAdd %22 %163 %162
|
||||
OpStore %72 %164
|
||||
%165 = OpAccessChain %79 %24 %77
|
||||
%166 = OpLoad %5 %165
|
||||
%167 = OpImageQueryLevels %62 %166
|
||||
%168 = OpULessThan %150 %63 %167
|
||||
OpSelectionMerge %169 None
|
||||
OpBranchConditional %168 %170 %169
|
||||
%170 = OpLabel
|
||||
%171 = OpImageQuerySizeLod %64 %166 %63
|
||||
%172 = OpULessThan %157 %65 %171
|
||||
%173 = OpAll %150 %172
|
||||
OpBranchConditional %173 %174 %169
|
||||
%174 = OpLabel
|
||||
%175 = OpImageFetch %22 %166 %65 Lod %63
|
||||
OpBranch %169
|
||||
%169 = OpLabel
|
||||
%176 = OpPhi %22 %151 %154 %151 %170 %175 %174
|
||||
%177 = OpLoad %22 %72
|
||||
%178 = OpFAdd %22 %177 %176
|
||||
OpStore %72 %178
|
||||
%179 = OpAccessChain %79 %24 %78
|
||||
%180 = OpLoad %5 %179
|
||||
%181 = OpImageQueryLevels %62 %180
|
||||
%182 = OpULessThan %150 %63 %181
|
||||
OpSelectionMerge %183 None
|
||||
OpBranchConditional %182 %184 %183
|
||||
%184 = OpLabel
|
||||
%185 = OpImageQuerySizeLod %64 %180 %63
|
||||
%186 = OpULessThan %157 %65 %185
|
||||
%187 = OpAll %150 %186
|
||||
OpBranchConditional %187 %188 %183
|
||||
%188 = OpLabel
|
||||
%189 = OpImageFetch %22 %180 %65 Lod %63
|
||||
OpBranch %183
|
||||
%183 = OpLabel
|
||||
%190 = OpPhi %22 %151 %169 %151 %184 %189 %188
|
||||
%191 = OpLoad %22 %72
|
||||
%192 = OpFAdd %22 %191 %190
|
||||
OpStore %72 %192
|
||||
%194 = OpAccessChain %193 %30 %55
|
||||
%195 = OpLoad %10 %194
|
||||
%197 = OpImageQuerySizeLod %196 %195 %55
|
||||
%198 = OpCompositeExtract %3 %197 2
|
||||
%199 = OpLoad %3 %66
|
||||
%200 = OpIAdd %3 %199 %198
|
||||
OpStore %66 %200
|
||||
%201 = OpAccessChain %193 %30 %77
|
||||
%202 = OpLoad %10 %201
|
||||
%203 = OpImageQuerySizeLod %196 %202 %55
|
||||
%204 = OpCompositeExtract %3 %203 2
|
||||
%205 = OpLoad %3 %66
|
||||
%206 = OpIAdd %3 %205 %204
|
||||
OpStore %66 %206
|
||||
%207 = OpAccessChain %193 %30 %78
|
||||
%208 = OpLoad %10 %207
|
||||
%209 = OpImageQuerySizeLod %196 %208 %55
|
||||
%210 = OpCompositeExtract %3 %209 2
|
||||
%211 = OpLoad %3 %66
|
||||
%212 = OpIAdd %3 %211 %210
|
||||
OpStore %66 %212
|
||||
%213 = OpAccessChain %79 %28 %55
|
||||
%214 = OpLoad %5 %213
|
||||
%215 = OpImageQueryLevels %3 %214
|
||||
%216 = OpLoad %3 %66
|
||||
%217 = OpIAdd %3 %216 %215
|
||||
OpStore %66 %217
|
||||
%218 = OpAccessChain %79 %28 %77
|
||||
%219 = OpLoad %5 %218
|
||||
%220 = OpImageQueryLevels %3 %219
|
||||
%221 = OpLoad %3 %66
|
||||
%222 = OpIAdd %3 %221 %220
|
||||
OpStore %66 %222
|
||||
%223 = OpAccessChain %79 %28 %78
|
||||
%224 = OpLoad %5 %223
|
||||
%225 = OpImageQueryLevels %3 %224
|
||||
%226 = OpLoad %3 %66
|
||||
%227 = OpIAdd %3 %226 %225
|
||||
OpStore %66 %227
|
||||
%229 = OpAccessChain %228 %32 %55
|
||||
%230 = OpLoad %12 %229
|
||||
%231 = OpImageQuerySamples %3 %230
|
||||
%232 = OpLoad %3 %66
|
||||
%233 = OpIAdd %3 %232 %231
|
||||
OpStore %66 %233
|
||||
%234 = OpAccessChain %228 %32 %77
|
||||
%235 = OpLoad %12 %234
|
||||
%236 = OpImageQuerySamples %3 %235
|
||||
%237 = OpLoad %3 %66
|
||||
%238 = OpIAdd %3 %237 %236
|
||||
OpStore %66 %238
|
||||
%239 = OpAccessChain %228 %32 %78
|
||||
%240 = OpLoad %12 %239
|
||||
%241 = OpImageQuerySamples %3 %240
|
||||
%242 = OpLoad %3 %66
|
||||
%243 = OpIAdd %3 %242 %241
|
||||
OpStore %66 %243
|
||||
%244 = OpAccessChain %79 %28 %55
|
||||
%245 = OpLoad %5 %244
|
||||
%246 = OpAccessChain %97 %38 %55
|
||||
%247 = OpLoad %18 %246
|
||||
%248 = OpSampledImage %100 %245 %247
|
||||
%249 = OpImageSampleImplicitLod %22 %248 %61
|
||||
%250 = OpLoad %22 %72
|
||||
%251 = OpFAdd %22 %250 %249
|
||||
OpStore %72 %251
|
||||
%252 = OpAccessChain %79 %28 %77
|
||||
%253 = OpLoad %5 %252
|
||||
%254 = OpAccessChain %97 %38 %77
|
||||
%255 = OpLoad %18 %254
|
||||
%256 = OpSampledImage %100 %253 %255
|
||||
%257 = OpImageSampleImplicitLod %22 %256 %61
|
||||
%258 = OpLoad %22 %72
|
||||
%259 = OpFAdd %22 %258 %257
|
||||
OpStore %72 %259
|
||||
%260 = OpAccessChain %79 %28 %78
|
||||
%261 = OpLoad %5 %260
|
||||
%262 = OpAccessChain %97 %38 %78
|
||||
%263 = OpLoad %18 %262
|
||||
%264 = OpSampledImage %100 %261 %263
|
||||
%265 = OpImageSampleImplicitLod %22 %264 %61
|
||||
%266 = OpLoad %22 %72
|
||||
%267 = OpFAdd %22 %266 %265
|
||||
OpStore %72 %267
|
||||
%268 = OpAccessChain %79 %28 %55
|
||||
%269 = OpLoad %5 %268
|
||||
%270 = OpAccessChain %97 %38 %55
|
||||
%271 = OpLoad %18 %270
|
||||
%272 = OpSampledImage %100 %269 %271
|
||||
%273 = OpImageSampleImplicitLod %22 %272 %61 Bias %58
|
||||
%274 = OpLoad %22 %72
|
||||
%275 = OpFAdd %22 %274 %273
|
||||
OpStore %72 %275
|
||||
%276 = OpAccessChain %79 %28 %77
|
||||
%277 = OpLoad %5 %276
|
||||
%278 = OpAccessChain %97 %38 %77
|
||||
%279 = OpLoad %18 %278
|
||||
%280 = OpSampledImage %100 %277 %279
|
||||
%281 = OpImageSampleImplicitLod %22 %280 %61 Bias %58
|
||||
%282 = OpLoad %22 %72
|
||||
%283 = OpFAdd %22 %282 %281
|
||||
OpStore %72 %283
|
||||
%284 = OpAccessChain %79 %28 %78
|
||||
%285 = OpLoad %5 %284
|
||||
%286 = OpAccessChain %97 %38 %78
|
||||
%287 = OpLoad %18 %286
|
||||
%288 = OpSampledImage %100 %285 %287
|
||||
%289 = OpImageSampleImplicitLod %22 %288 %61 Bias %58
|
||||
%290 = OpLoad %22 %72
|
||||
%291 = OpFAdd %22 %290 %289
|
||||
OpStore %72 %291
|
||||
%292 = OpAccessChain %121 %34 %55
|
||||
%293 = OpLoad %14 %292
|
||||
%294 = OpAccessChain %124 %40 %55
|
||||
%295 = OpLoad %18 %294
|
||||
%296 = OpSampledImage %127 %293 %295
|
||||
%297 = OpImageSampleDrefImplicitLod %6 %296 %61 %58
|
||||
%298 = OpLoad %6 %70
|
||||
%299 = OpFAdd %6 %298 %297
|
||||
OpStore %70 %299
|
||||
%300 = OpAccessChain %121 %34 %77
|
||||
%301 = OpLoad %14 %300
|
||||
%302 = OpAccessChain %124 %40 %77
|
||||
%303 = OpLoad %18 %302
|
||||
%304 = OpSampledImage %127 %301 %303
|
||||
%305 = OpImageSampleDrefImplicitLod %6 %304 %61 %58
|
||||
%306 = OpLoad %6 %70
|
||||
%307 = OpFAdd %6 %306 %305
|
||||
OpStore %70 %307
|
||||
%308 = OpAccessChain %121 %34 %78
|
||||
%309 = OpLoad %14 %308
|
||||
%310 = OpAccessChain %124 %40 %78
|
||||
%311 = OpLoad %18 %310
|
||||
%312 = OpSampledImage %127 %309 %311
|
||||
%313 = OpImageSampleDrefImplicitLod %6 %312 %61 %58
|
||||
%314 = OpLoad %6 %70
|
||||
%315 = OpFAdd %6 %314 %313
|
||||
OpStore %70 %315
|
||||
%316 = OpAccessChain %121 %34 %55
|
||||
%317 = OpLoad %14 %316
|
||||
%318 = OpAccessChain %124 %40 %55
|
||||
%319 = OpLoad %18 %318
|
||||
%320 = OpSampledImage %127 %317 %319
|
||||
%321 = OpImageSampleDrefExplicitLod %6 %320 %61 %58 Lod %58
|
||||
%322 = OpLoad %6 %70
|
||||
%323 = OpFAdd %6 %322 %321
|
||||
OpStore %70 %323
|
||||
%324 = OpAccessChain %121 %34 %77
|
||||
%325 = OpLoad %14 %324
|
||||
%326 = OpAccessChain %124 %40 %77
|
||||
%327 = OpLoad %18 %326
|
||||
%328 = OpSampledImage %127 %325 %327
|
||||
%329 = OpImageSampleDrefExplicitLod %6 %328 %61 %58 Lod %58
|
||||
%330 = OpLoad %6 %70
|
||||
%331 = OpFAdd %6 %330 %329
|
||||
OpStore %70 %331
|
||||
%332 = OpAccessChain %121 %34 %78
|
||||
%333 = OpLoad %14 %332
|
||||
%334 = OpAccessChain %124 %40 %78
|
||||
%335 = OpLoad %18 %334
|
||||
%336 = OpSampledImage %127 %333 %335
|
||||
%337 = OpImageSampleDrefExplicitLod %6 %336 %61 %58 Lod %58
|
||||
%338 = OpLoad %6 %70
|
||||
%339 = OpFAdd %6 %338 %337
|
||||
OpStore %70 %339
|
||||
%340 = OpAccessChain %79 %28 %55
|
||||
%341 = OpLoad %5 %340
|
||||
%342 = OpAccessChain %97 %38 %55
|
||||
%343 = OpLoad %18 %342
|
||||
%344 = OpSampledImage %100 %341 %343
|
||||
%345 = OpImageSampleExplicitLod %22 %344 %61 Grad %61 %61
|
||||
%346 = OpLoad %22 %72
|
||||
%347 = OpFAdd %22 %346 %345
|
||||
OpStore %72 %347
|
||||
%348 = OpAccessChain %79 %28 %77
|
||||
%349 = OpLoad %5 %348
|
||||
%350 = OpAccessChain %97 %38 %77
|
||||
%351 = OpLoad %18 %350
|
||||
%352 = OpSampledImage %100 %349 %351
|
||||
%353 = OpImageSampleExplicitLod %22 %352 %61 Grad %61 %61
|
||||
%354 = OpLoad %22 %72
|
||||
%355 = OpFAdd %22 %354 %353
|
||||
OpStore %72 %355
|
||||
%356 = OpAccessChain %79 %28 %78
|
||||
%357 = OpLoad %5 %356
|
||||
%358 = OpAccessChain %97 %38 %78
|
||||
%359 = OpLoad %18 %358
|
||||
%360 = OpSampledImage %100 %357 %359
|
||||
%361 = OpImageSampleExplicitLod %22 %360 %61 Grad %61 %61
|
||||
%362 = OpLoad %22 %72
|
||||
%363 = OpFAdd %22 %362 %361
|
||||
OpStore %72 %363
|
||||
%364 = OpAccessChain %79 %28 %55
|
||||
%365 = OpLoad %5 %364
|
||||
%366 = OpAccessChain %97 %38 %55
|
||||
%367 = OpLoad %18 %366
|
||||
%368 = OpSampledImage %100 %365 %367
|
||||
%369 = OpImageSampleExplicitLod %22 %368 %61 Lod %58
|
||||
%370 = OpLoad %22 %72
|
||||
%371 = OpFAdd %22 %370 %369
|
||||
OpStore %72 %371
|
||||
%372 = OpAccessChain %79 %28 %77
|
||||
%373 = OpLoad %5 %372
|
||||
%374 = OpAccessChain %97 %38 %77
|
||||
%375 = OpLoad %18 %374
|
||||
%376 = OpSampledImage %100 %373 %375
|
||||
%377 = OpImageSampleExplicitLod %22 %376 %61 Lod %58
|
||||
%378 = OpLoad %22 %72
|
||||
%379 = OpFAdd %22 %378 %377
|
||||
OpStore %72 %379
|
||||
%380 = OpAccessChain %79 %28 %78
|
||||
%381 = OpLoad %5 %380
|
||||
%382 = OpAccessChain %97 %38 %78
|
||||
%383 = OpLoad %18 %382
|
||||
%384 = OpSampledImage %100 %381 %383
|
||||
%385 = OpImageSampleExplicitLod %22 %384 %61 Lod %58
|
||||
%386 = OpLoad %22 %72
|
||||
%387 = OpFAdd %22 %386 %385
|
||||
OpStore %72 %387
|
||||
%389 = OpAccessChain %388 %36 %55
|
||||
%390 = OpLoad %16 %389
|
||||
%391 = OpLoad %22 %72
|
||||
%392 = OpImageQuerySize %64 %390
|
||||
%393 = OpULessThan %157 %65 %392
|
||||
%394 = OpAll %150 %393
|
||||
OpSelectionMerge %395 None
|
||||
OpBranchConditional %394 %396 %395
|
||||
%396 = OpLabel
|
||||
OpImageWrite %390 %65 %391
|
||||
OpBranch %395
|
||||
%395 = OpLabel
|
||||
%397 = OpAccessChain %388 %36 %77
|
||||
%398 = OpLoad %16 %397
|
||||
%399 = OpLoad %22 %72
|
||||
%400 = OpImageQuerySize %64 %398
|
||||
%401 = OpULessThan %157 %65 %400
|
||||
%402 = OpAll %150 %401
|
||||
OpSelectionMerge %403 None
|
||||
OpBranchConditional %402 %404 %403
|
||||
%404 = OpLabel
|
||||
OpImageWrite %398 %65 %399
|
||||
OpBranch %403
|
||||
%403 = OpLabel
|
||||
%405 = OpAccessChain %388 %36 %78
|
||||
%406 = OpLoad %16 %405
|
||||
%407 = OpLoad %22 %72
|
||||
%408 = OpImageQuerySize %64 %406
|
||||
%409 = OpULessThan %157 %65 %408
|
||||
%410 = OpAll %150 %409
|
||||
OpSelectionMerge %411 None
|
||||
OpBranchConditional %410 %412 %411
|
||||
%412 = OpLabel
|
||||
OpImageWrite %406 %65 %407
|
||||
OpBranch %411
|
||||
%411 = OpLabel
|
||||
%413 = OpLoad %23 %68
|
||||
%414 = OpLoad %3 %66
|
||||
%415 = OpCompositeConstruct %23 %414 %414
|
||||
%416 = OpIAdd %23 %413 %415
|
||||
%417 = OpConvertUToF %60 %416
|
||||
%418 = OpLoad %22 %72
|
||||
%419 = OpCompositeExtract %6 %417 0
|
||||
%420 = OpCompositeExtract %6 %417 1
|
||||
%421 = OpCompositeExtract %6 %417 0
|
||||
%422 = OpCompositeExtract %6 %417 1
|
||||
%423 = OpCompositeConstruct %22 %419 %420 %421 %422
|
||||
%424 = OpFAdd %22 %418 %423
|
||||
%425 = OpLoad %6 %70
|
||||
%426 = OpCompositeConstruct %22 %425 %425 %425 %425
|
||||
%427 = OpFAdd %22 %424 %426
|
||||
OpStore %50 %427
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -8,8 +8,8 @@ OpExtension "SPV_KHR_storage_buffer_storage_class"
|
||||
OpExtension "SPV_EXT_descriptor_indexing"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %26 "main" %21 %24
|
||||
OpExecutionMode %26 OriginUpperLeft
|
||||
OpEntryPoint Fragment %23 "main" %18 %21
|
||||
OpExecutionMode %23 OriginUpperLeft
|
||||
OpMemberDecorate %4 0 Offset 0
|
||||
OpMemberDecorate %5 0 Offset 0
|
||||
OpMemberDecorate %8 0 Offset 0
|
||||
@ -21,9 +21,9 @@ OpDecorate %13 DescriptorSet 0
|
||||
OpDecorate %13 Binding 10
|
||||
OpDecorate %14 Block
|
||||
OpMemberDecorate %14 0 Offset 0
|
||||
OpDecorate %18 Location 0
|
||||
OpDecorate %18 Flat
|
||||
OpDecorate %21 Location 0
|
||||
OpDecorate %21 Flat
|
||||
OpDecorate %24 Location 0
|
||||
OpDecorate %53 NonUniform
|
||||
%2 = OpTypeVoid
|
||||
%3 = OpTypeInt 32 0
|
||||
@ -39,62 +39,61 @@ OpDecorate %53 NonUniform
|
||||
%14 = OpTypeStruct %4
|
||||
%15 = OpTypePointer Uniform %14
|
||||
%13 = OpVariable %15 Uniform
|
||||
%17 = OpTypePointer Function %3
|
||||
%18 = OpConstantNull %3
|
||||
%22 = OpTypePointer Input %3
|
||||
%21 = OpVariable %22 Input
|
||||
%25 = OpTypePointer Output %3
|
||||
%24 = OpVariable %25 Output
|
||||
%27 = OpTypeFunction %2
|
||||
%28 = OpTypePointer Uniform %4
|
||||
%29 = OpConstant %3 0
|
||||
%31 = OpTypePointer StorageBuffer %6
|
||||
%33 = OpTypePointer Uniform %3
|
||||
%37 = OpTypePointer StorageBuffer %5
|
||||
%38 = OpTypePointer StorageBuffer %3
|
||||
%44 = OpTypeBool
|
||||
%26 = OpFunction %2 None %27
|
||||
%19 = OpLabel
|
||||
%16 = OpVariable %17 Function %18
|
||||
%23 = OpLoad %3 %21
|
||||
%20 = OpCompositeConstruct %8 %23
|
||||
%30 = OpAccessChain %28 %13 %29
|
||||
OpBranch %32
|
||||
%32 = OpLabel
|
||||
%34 = OpAccessChain %33 %30 %29
|
||||
%35 = OpLoad %3 %34
|
||||
%36 = OpCompositeExtract %3 %20 0
|
||||
OpStore %16 %29
|
||||
%39 = OpAccessChain %38 %9 %29 %29
|
||||
%40 = OpLoad %3 %39
|
||||
%41 = OpLoad %3 %16
|
||||
%42 = OpIAdd %3 %41 %40
|
||||
OpStore %16 %42
|
||||
%43 = OpULessThan %44 %35 %7
|
||||
%19 = OpTypePointer Input %3
|
||||
%18 = OpVariable %19 Input
|
||||
%22 = OpTypePointer Output %3
|
||||
%21 = OpVariable %22 Output
|
||||
%24 = OpTypeFunction %2
|
||||
%25 = OpTypePointer Uniform %4
|
||||
%26 = OpConstant %3 0
|
||||
%28 = OpTypePointer StorageBuffer %6
|
||||
%30 = OpTypePointer Function %3
|
||||
%32 = OpTypePointer Uniform %3
|
||||
%36 = OpTypePointer StorageBuffer %5
|
||||
%37 = OpTypePointer StorageBuffer %3
|
||||
%43 = OpTypeBool
|
||||
%45 = OpConstantNull %3
|
||||
%23 = OpFunction %2 None %24
|
||||
%16 = OpLabel
|
||||
%29 = OpVariable %30 Function %26
|
||||
%20 = OpLoad %3 %18
|
||||
%17 = OpCompositeConstruct %8 %20
|
||||
%27 = OpAccessChain %25 %13 %26
|
||||
OpBranch %31
|
||||
%31 = OpLabel
|
||||
%33 = OpAccessChain %32 %27 %26
|
||||
%34 = OpLoad %3 %33
|
||||
%35 = OpCompositeExtract %3 %17 0
|
||||
%38 = OpAccessChain %37 %9 %26 %26
|
||||
%39 = OpLoad %3 %38
|
||||
%40 = OpLoad %3 %29
|
||||
%41 = OpIAdd %3 %40 %39
|
||||
OpStore %29 %41
|
||||
%42 = OpULessThan %43 %34 %7
|
||||
OpSelectionMerge %46 None
|
||||
OpBranchConditional %43 %47 %46
|
||||
OpBranchConditional %42 %47 %46
|
||||
%47 = OpLabel
|
||||
%45 = OpAccessChain %38 %9 %35 %29
|
||||
%48 = OpLoad %3 %45
|
||||
%44 = OpAccessChain %37 %9 %34 %26
|
||||
%48 = OpLoad %3 %44
|
||||
OpBranch %46
|
||||
%46 = OpLabel
|
||||
%49 = OpPhi %3 %18 %32 %48 %47
|
||||
%50 = OpLoad %3 %16
|
||||
%49 = OpPhi %3 %45 %31 %48 %47
|
||||
%50 = OpLoad %3 %29
|
||||
%51 = OpIAdd %3 %50 %49
|
||||
OpStore %16 %51
|
||||
%52 = OpULessThan %44 %36 %7
|
||||
OpStore %29 %51
|
||||
%52 = OpULessThan %43 %35 %7
|
||||
OpSelectionMerge %54 None
|
||||
OpBranchConditional %52 %55 %54
|
||||
%55 = OpLabel
|
||||
%53 = OpAccessChain %38 %9 %36 %29
|
||||
%53 = OpAccessChain %37 %9 %35 %26
|
||||
%56 = OpLoad %3 %53
|
||||
OpBranch %54
|
||||
%54 = OpLabel
|
||||
%57 = OpPhi %3 %18 %46 %56 %55
|
||||
%58 = OpLoad %3 %16
|
||||
%57 = OpPhi %3 %45 %46 %56 %55
|
||||
%58 = OpLoad %3 %29
|
||||
%59 = OpIAdd %3 %58 %57
|
||||
OpStore %16 %59
|
||||
%60 = OpLoad %3 %16
|
||||
OpStore %24 %60
|
||||
OpStore %29 %59
|
||||
%60 = OpLoad %3 %29
|
||||
OpStore %21 %60
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,12 +1,12 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 76
|
||||
; Bound: 67
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %43 "main"
|
||||
OpExecutionMode %43 LocalSize 1 1 1
|
||||
OpEntryPoint GLCompute %16 "main"
|
||||
OpExecutionMode %16 LocalSize 1 1 1
|
||||
%2 = OpTypeVoid
|
||||
%4 = OpTypeInt 32 1
|
||||
%3 = OpTypeVector %4 2
|
||||
@ -20,85 +20,67 @@ OpExecutionMode %43 LocalSize 1 1 1
|
||||
%11 = OpTypeVector %12 2
|
||||
%13 = OpTypeVector %12 3
|
||||
%14 = OpTypeVector %12 4
|
||||
%16 = OpTypePointer Function %3
|
||||
%17 = OpConstantNull %3
|
||||
%19 = OpTypePointer Function %5
|
||||
%20 = OpConstantNull %5
|
||||
%22 = OpTypePointer Function %6
|
||||
%23 = OpConstantNull %6
|
||||
%25 = OpTypePointer Function %7
|
||||
%26 = OpConstantNull %7
|
||||
%28 = OpTypePointer Function %9
|
||||
%29 = OpConstantNull %9
|
||||
%31 = OpTypePointer Function %10
|
||||
%32 = OpConstantNull %10
|
||||
%34 = OpTypePointer Function %11
|
||||
%35 = OpConstantNull %11
|
||||
%37 = OpTypePointer Function %13
|
||||
%38 = OpConstantNull %13
|
||||
%40 = OpTypePointer Function %14
|
||||
%41 = OpConstantNull %14
|
||||
%44 = OpTypeFunction %2
|
||||
%45 = OpConstant %4 0
|
||||
%46 = OpConstant %8 0
|
||||
%47 = OpConstant %12 0.0
|
||||
%43 = OpFunction %2 None %44
|
||||
%42 = OpLabel
|
||||
%33 = OpVariable %34 Function %35
|
||||
%24 = OpVariable %25 Function %26
|
||||
%15 = OpVariable %16 Function %17
|
||||
%36 = OpVariable %37 Function %38
|
||||
%27 = OpVariable %28 Function %29
|
||||
%18 = OpVariable %19 Function %20
|
||||
%39 = OpVariable %40 Function %41
|
||||
%30 = OpVariable %31 Function %32
|
||||
%21 = OpVariable %22 Function %23
|
||||
%17 = OpTypeFunction %2
|
||||
%18 = OpConstant %4 0
|
||||
%19 = OpConstantComposite %3 %18 %18
|
||||
%20 = OpConstantComposite %5 %18 %18 %18
|
||||
%21 = OpConstantComposite %6 %18 %18 %18 %18
|
||||
%22 = OpConstant %8 0
|
||||
%23 = OpConstantComposite %7 %22 %22
|
||||
%24 = OpConstantComposite %9 %22 %22 %22
|
||||
%25 = OpConstantComposite %10 %22 %22 %22 %22
|
||||
%26 = OpConstant %12 0.0
|
||||
%27 = OpConstantComposite %11 %26 %26
|
||||
%28 = OpConstantComposite %13 %26 %26 %26
|
||||
%29 = OpConstantComposite %14 %26 %26 %26 %26
|
||||
%31 = OpTypePointer Function %3
|
||||
%33 = OpTypePointer Function %5
|
||||
%35 = OpTypePointer Function %6
|
||||
%37 = OpTypePointer Function %7
|
||||
%39 = OpTypePointer Function %9
|
||||
%41 = OpTypePointer Function %10
|
||||
%43 = OpTypePointer Function %11
|
||||
%45 = OpTypePointer Function %13
|
||||
%47 = OpTypePointer Function %14
|
||||
%16 = OpFunction %2 None %17
|
||||
%15 = OpLabel
|
||||
%42 = OpVariable %43 Function %27
|
||||
%36 = OpVariable %37 Function %23
|
||||
%30 = OpVariable %31 Function %19
|
||||
%44 = OpVariable %45 Function %28
|
||||
%38 = OpVariable %39 Function %24
|
||||
%32 = OpVariable %33 Function %20
|
||||
%46 = OpVariable %47 Function %29
|
||||
%40 = OpVariable %41 Function %25
|
||||
%34 = OpVariable %35 Function %21
|
||||
OpBranch %48
|
||||
%48 = OpLabel
|
||||
%49 = OpCompositeConstruct %3 %45 %45
|
||||
OpStore %15 %49
|
||||
%50 = OpCompositeConstruct %5 %45 %45 %45
|
||||
OpStore %18 %50
|
||||
%51 = OpCompositeConstruct %6 %45 %45 %45 %45
|
||||
OpStore %21 %51
|
||||
%52 = OpCompositeConstruct %7 %46 %46
|
||||
OpStore %24 %52
|
||||
%53 = OpCompositeConstruct %9 %46 %46 %46
|
||||
OpStore %27 %53
|
||||
%54 = OpCompositeConstruct %10 %46 %46 %46 %46
|
||||
OpStore %30 %54
|
||||
%55 = OpCompositeConstruct %11 %47 %47
|
||||
OpStore %33 %55
|
||||
%56 = OpCompositeConstruct %13 %47 %47 %47
|
||||
OpStore %36 %56
|
||||
%57 = OpCompositeConstruct %14 %47 %47 %47 %47
|
||||
OpStore %39 %57
|
||||
%58 = OpLoad %3 %15
|
||||
%59 = OpBitcast %7 %58
|
||||
OpStore %24 %59
|
||||
%60 = OpLoad %5 %18
|
||||
%61 = OpBitcast %9 %60
|
||||
OpStore %27 %61
|
||||
%62 = OpLoad %6 %21
|
||||
%63 = OpBitcast %10 %62
|
||||
OpStore %30 %63
|
||||
%64 = OpLoad %7 %24
|
||||
%65 = OpBitcast %3 %64
|
||||
OpStore %15 %65
|
||||
%66 = OpLoad %9 %27
|
||||
%67 = OpBitcast %5 %66
|
||||
OpStore %18 %67
|
||||
%68 = OpLoad %10 %30
|
||||
%69 = OpBitcast %6 %68
|
||||
OpStore %21 %69
|
||||
%70 = OpLoad %3 %15
|
||||
%71 = OpBitcast %11 %70
|
||||
OpStore %33 %71
|
||||
%72 = OpLoad %5 %18
|
||||
%73 = OpBitcast %13 %72
|
||||
OpStore %36 %73
|
||||
%74 = OpLoad %6 %21
|
||||
%75 = OpBitcast %14 %74
|
||||
OpStore %39 %75
|
||||
%49 = OpLoad %3 %30
|
||||
%50 = OpBitcast %7 %49
|
||||
OpStore %36 %50
|
||||
%51 = OpLoad %5 %32
|
||||
%52 = OpBitcast %9 %51
|
||||
OpStore %38 %52
|
||||
%53 = OpLoad %6 %34
|
||||
%54 = OpBitcast %10 %53
|
||||
OpStore %40 %54
|
||||
%55 = OpLoad %7 %36
|
||||
%56 = OpBitcast %3 %55
|
||||
OpStore %30 %56
|
||||
%57 = OpLoad %9 %38
|
||||
%58 = OpBitcast %5 %57
|
||||
OpStore %32 %58
|
||||
%59 = OpLoad %10 %40
|
||||
%60 = OpBitcast %6 %59
|
||||
OpStore %34 %60
|
||||
%61 = OpLoad %3 %30
|
||||
%62 = OpBitcast %11 %61
|
||||
OpStore %42 %62
|
||||
%63 = OpLoad %5 %32
|
||||
%64 = OpBitcast %13 %63
|
||||
OpStore %44 %64
|
||||
%65 = OpLoad %6 %34
|
||||
%66 = OpBitcast %14 %65
|
||||
OpStore %46 %66
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,12 +1,12 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 165
|
||||
; Bound: 155
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %45 "main"
|
||||
OpExecutionMode %45 LocalSize 1 1 1
|
||||
OpEntryPoint GLCompute %15 "main"
|
||||
OpExecutionMode %15 LocalSize 1 1 1
|
||||
%2 = OpTypeVoid
|
||||
%3 = OpTypeInt 32 1
|
||||
%4 = OpTypeVector %3 2
|
||||
@ -19,215 +19,195 @@ OpExecutionMode %45 LocalSize 1 1 1
|
||||
%12 = OpTypeFloat 32
|
||||
%11 = OpTypeVector %12 2
|
||||
%13 = OpTypeVector %12 4
|
||||
%15 = OpTypePointer Function %3
|
||||
%16 = OpConstantNull %3
|
||||
%18 = OpTypePointer Function %4
|
||||
%19 = OpConstantNull %4
|
||||
%21 = OpTypePointer Function %5
|
||||
%22 = OpConstantNull %5
|
||||
%24 = OpTypePointer Function %6
|
||||
%25 = OpConstantNull %6
|
||||
%27 = OpTypePointer Function %7
|
||||
%28 = OpConstantNull %7
|
||||
%30 = OpTypePointer Function %8
|
||||
%31 = OpConstantNull %8
|
||||
%33 = OpTypePointer Function %9
|
||||
%34 = OpConstantNull %9
|
||||
%36 = OpTypePointer Function %10
|
||||
%37 = OpConstantNull %10
|
||||
%39 = OpTypePointer Function %11
|
||||
%40 = OpConstantNull %11
|
||||
%42 = OpTypePointer Function %13
|
||||
%43 = OpConstantNull %13
|
||||
%46 = OpTypeFunction %2
|
||||
%47 = OpConstant %3 0
|
||||
%48 = OpConstant %7 0
|
||||
%49 = OpConstant %12 0.0
|
||||
%50 = OpConstant %7 5
|
||||
%51 = OpConstant %7 10
|
||||
%45 = OpFunction %2 None %46
|
||||
%44 = OpLabel
|
||||
%41 = OpVariable %42 Function %43
|
||||
%32 = OpVariable %33 Function %34
|
||||
%23 = OpVariable %24 Function %25
|
||||
%14 = OpVariable %15 Function %16
|
||||
%35 = OpVariable %36 Function %37
|
||||
%26 = OpVariable %27 Function %28
|
||||
%17 = OpVariable %18 Function %19
|
||||
%38 = OpVariable %39 Function %40
|
||||
%29 = OpVariable %30 Function %31
|
||||
%20 = OpVariable %21 Function %22
|
||||
OpBranch %52
|
||||
%52 = OpLabel
|
||||
OpStore %14 %47
|
||||
%53 = OpCompositeConstruct %4 %47 %47
|
||||
OpStore %17 %53
|
||||
%54 = OpCompositeConstruct %5 %47 %47 %47
|
||||
OpStore %20 %54
|
||||
%55 = OpCompositeConstruct %6 %47 %47 %47 %47
|
||||
OpStore %23 %55
|
||||
OpStore %26 %48
|
||||
%56 = OpCompositeConstruct %8 %48 %48
|
||||
OpStore %29 %56
|
||||
%57 = OpCompositeConstruct %9 %48 %48 %48
|
||||
OpStore %32 %57
|
||||
%58 = OpCompositeConstruct %10 %48 %48 %48 %48
|
||||
OpStore %35 %58
|
||||
%59 = OpCompositeConstruct %11 %49 %49
|
||||
OpStore %38 %59
|
||||
%60 = OpCompositeConstruct %13 %49 %49 %49 %49
|
||||
OpStore %41 %60
|
||||
%61 = OpLoad %13 %41
|
||||
%62 = OpExtInst %7 %1 PackSnorm4x8 %61
|
||||
OpStore %26 %62
|
||||
%63 = OpLoad %13 %41
|
||||
%64 = OpExtInst %7 %1 PackUnorm4x8 %63
|
||||
OpStore %26 %64
|
||||
%65 = OpLoad %11 %38
|
||||
%66 = OpExtInst %7 %1 PackSnorm2x16 %65
|
||||
OpStore %26 %66
|
||||
%67 = OpLoad %11 %38
|
||||
%68 = OpExtInst %7 %1 PackUnorm2x16 %67
|
||||
OpStore %26 %68
|
||||
%69 = OpLoad %11 %38
|
||||
%70 = OpExtInst %7 %1 PackHalf2x16 %69
|
||||
OpStore %26 %70
|
||||
%71 = OpLoad %7 %26
|
||||
%72 = OpExtInst %13 %1 UnpackSnorm4x8 %71
|
||||
OpStore %41 %72
|
||||
%73 = OpLoad %7 %26
|
||||
%74 = OpExtInst %13 %1 UnpackUnorm4x8 %73
|
||||
OpStore %41 %74
|
||||
%75 = OpLoad %7 %26
|
||||
%76 = OpExtInst %11 %1 UnpackSnorm2x16 %75
|
||||
OpStore %38 %76
|
||||
%77 = OpLoad %7 %26
|
||||
%78 = OpExtInst %11 %1 UnpackUnorm2x16 %77
|
||||
OpStore %38 %78
|
||||
%79 = OpLoad %7 %26
|
||||
%80 = OpExtInst %11 %1 UnpackHalf2x16 %79
|
||||
OpStore %38 %80
|
||||
%81 = OpLoad %3 %14
|
||||
%82 = OpLoad %3 %14
|
||||
%83 = OpBitFieldInsert %3 %81 %82 %50 %51
|
||||
OpStore %14 %83
|
||||
%84 = OpLoad %4 %17
|
||||
%85 = OpLoad %4 %17
|
||||
%86 = OpBitFieldInsert %4 %84 %85 %50 %51
|
||||
OpStore %17 %86
|
||||
%87 = OpLoad %5 %20
|
||||
%88 = OpLoad %5 %20
|
||||
%89 = OpBitFieldInsert %5 %87 %88 %50 %51
|
||||
OpStore %20 %89
|
||||
%90 = OpLoad %6 %23
|
||||
%91 = OpLoad %6 %23
|
||||
%92 = OpBitFieldInsert %6 %90 %91 %50 %51
|
||||
OpStore %23 %92
|
||||
%93 = OpLoad %7 %26
|
||||
%94 = OpLoad %7 %26
|
||||
%95 = OpBitFieldInsert %7 %93 %94 %50 %51
|
||||
OpStore %26 %95
|
||||
%96 = OpLoad %8 %29
|
||||
%97 = OpLoad %8 %29
|
||||
%98 = OpBitFieldInsert %8 %96 %97 %50 %51
|
||||
OpStore %29 %98
|
||||
%99 = OpLoad %9 %32
|
||||
%100 = OpLoad %9 %32
|
||||
%101 = OpBitFieldInsert %9 %99 %100 %50 %51
|
||||
OpStore %32 %101
|
||||
%102 = OpLoad %10 %35
|
||||
%103 = OpLoad %10 %35
|
||||
%104 = OpBitFieldInsert %10 %102 %103 %50 %51
|
||||
OpStore %35 %104
|
||||
%105 = OpLoad %3 %14
|
||||
%106 = OpBitFieldSExtract %3 %105 %50 %51
|
||||
OpStore %14 %106
|
||||
%107 = OpLoad %4 %17
|
||||
%108 = OpBitFieldSExtract %4 %107 %50 %51
|
||||
OpStore %17 %108
|
||||
%109 = OpLoad %5 %20
|
||||
%110 = OpBitFieldSExtract %5 %109 %50 %51
|
||||
OpStore %20 %110
|
||||
%111 = OpLoad %6 %23
|
||||
%112 = OpBitFieldSExtract %6 %111 %50 %51
|
||||
OpStore %23 %112
|
||||
%113 = OpLoad %7 %26
|
||||
%114 = OpBitFieldUExtract %7 %113 %50 %51
|
||||
OpStore %26 %114
|
||||
%115 = OpLoad %8 %29
|
||||
%116 = OpBitFieldUExtract %8 %115 %50 %51
|
||||
OpStore %29 %116
|
||||
%117 = OpLoad %9 %32
|
||||
%118 = OpBitFieldUExtract %9 %117 %50 %51
|
||||
OpStore %32 %118
|
||||
%119 = OpLoad %10 %35
|
||||
%120 = OpBitFieldUExtract %10 %119 %50 %51
|
||||
OpStore %35 %120
|
||||
%121 = OpLoad %3 %14
|
||||
%122 = OpExtInst %3 %1 FindILsb %121
|
||||
OpStore %14 %122
|
||||
%123 = OpLoad %8 %29
|
||||
%124 = OpExtInst %8 %1 FindILsb %123
|
||||
OpStore %29 %124
|
||||
%125 = OpLoad %5 %20
|
||||
%126 = OpExtInst %5 %1 FindSMsb %125
|
||||
OpStore %20 %126
|
||||
%127 = OpLoad %9 %32
|
||||
%128 = OpExtInst %9 %1 FindUMsb %127
|
||||
OpStore %32 %128
|
||||
%129 = OpLoad %3 %14
|
||||
%130 = OpExtInst %3 %1 FindSMsb %129
|
||||
OpStore %14 %130
|
||||
%131 = OpLoad %7 %26
|
||||
%132 = OpExtInst %7 %1 FindUMsb %131
|
||||
OpStore %26 %132
|
||||
%133 = OpLoad %3 %14
|
||||
%134 = OpBitCount %3 %133
|
||||
OpStore %14 %134
|
||||
%135 = OpLoad %4 %17
|
||||
%136 = OpBitCount %4 %135
|
||||
OpStore %17 %136
|
||||
%137 = OpLoad %5 %20
|
||||
%138 = OpBitCount %5 %137
|
||||
OpStore %20 %138
|
||||
%139 = OpLoad %6 %23
|
||||
%140 = OpBitCount %6 %139
|
||||
OpStore %23 %140
|
||||
%141 = OpLoad %7 %26
|
||||
%142 = OpBitCount %7 %141
|
||||
OpStore %26 %142
|
||||
%143 = OpLoad %8 %29
|
||||
%144 = OpBitCount %8 %143
|
||||
OpStore %29 %144
|
||||
%145 = OpLoad %9 %32
|
||||
%146 = OpBitCount %9 %145
|
||||
OpStore %32 %146
|
||||
%147 = OpLoad %10 %35
|
||||
%148 = OpBitCount %10 %147
|
||||
OpStore %35 %148
|
||||
%149 = OpLoad %3 %14
|
||||
%150 = OpBitReverse %3 %149
|
||||
OpStore %14 %150
|
||||
%151 = OpLoad %4 %17
|
||||
%152 = OpBitReverse %4 %151
|
||||
OpStore %17 %152
|
||||
%153 = OpLoad %5 %20
|
||||
%154 = OpBitReverse %5 %153
|
||||
OpStore %20 %154
|
||||
%155 = OpLoad %6 %23
|
||||
%156 = OpBitReverse %6 %155
|
||||
OpStore %23 %156
|
||||
%157 = OpLoad %7 %26
|
||||
%158 = OpBitReverse %7 %157
|
||||
OpStore %26 %158
|
||||
%159 = OpLoad %8 %29
|
||||
%160 = OpBitReverse %8 %159
|
||||
OpStore %29 %160
|
||||
%161 = OpLoad %9 %32
|
||||
%162 = OpBitReverse %9 %161
|
||||
OpStore %32 %162
|
||||
%163 = OpLoad %10 %35
|
||||
%164 = OpBitReverse %10 %163
|
||||
OpStore %35 %164
|
||||
%16 = OpTypeFunction %2
|
||||
%17 = OpConstant %3 0
|
||||
%18 = OpConstantComposite %4 %17 %17
|
||||
%19 = OpConstantComposite %5 %17 %17 %17
|
||||
%20 = OpConstantComposite %6 %17 %17 %17 %17
|
||||
%21 = OpConstant %7 0
|
||||
%22 = OpConstantComposite %8 %21 %21
|
||||
%23 = OpConstantComposite %9 %21 %21 %21
|
||||
%24 = OpConstantComposite %10 %21 %21 %21 %21
|
||||
%25 = OpConstant %12 0.0
|
||||
%26 = OpConstantComposite %11 %25 %25
|
||||
%27 = OpConstantComposite %13 %25 %25 %25 %25
|
||||
%28 = OpConstant %7 5
|
||||
%29 = OpConstant %7 10
|
||||
%31 = OpTypePointer Function %3
|
||||
%33 = OpTypePointer Function %4
|
||||
%35 = OpTypePointer Function %5
|
||||
%37 = OpTypePointer Function %6
|
||||
%39 = OpTypePointer Function %7
|
||||
%41 = OpTypePointer Function %8
|
||||
%43 = OpTypePointer Function %9
|
||||
%45 = OpTypePointer Function %10
|
||||
%47 = OpTypePointer Function %11
|
||||
%49 = OpTypePointer Function %13
|
||||
%15 = OpFunction %2 None %16
|
||||
%14 = OpLabel
|
||||
%48 = OpVariable %49 Function %27
|
||||
%42 = OpVariable %43 Function %23
|
||||
%36 = OpVariable %37 Function %20
|
||||
%30 = OpVariable %31 Function %17
|
||||
%44 = OpVariable %45 Function %24
|
||||
%38 = OpVariable %39 Function %21
|
||||
%32 = OpVariable %33 Function %18
|
||||
%46 = OpVariable %47 Function %26
|
||||
%40 = OpVariable %41 Function %22
|
||||
%34 = OpVariable %35 Function %19
|
||||
OpBranch %50
|
||||
%50 = OpLabel
|
||||
%51 = OpLoad %13 %48
|
||||
%52 = OpExtInst %7 %1 PackSnorm4x8 %51
|
||||
OpStore %38 %52
|
||||
%53 = OpLoad %13 %48
|
||||
%54 = OpExtInst %7 %1 PackUnorm4x8 %53
|
||||
OpStore %38 %54
|
||||
%55 = OpLoad %11 %46
|
||||
%56 = OpExtInst %7 %1 PackSnorm2x16 %55
|
||||
OpStore %38 %56
|
||||
%57 = OpLoad %11 %46
|
||||
%58 = OpExtInst %7 %1 PackUnorm2x16 %57
|
||||
OpStore %38 %58
|
||||
%59 = OpLoad %11 %46
|
||||
%60 = OpExtInst %7 %1 PackHalf2x16 %59
|
||||
OpStore %38 %60
|
||||
%61 = OpLoad %7 %38
|
||||
%62 = OpExtInst %13 %1 UnpackSnorm4x8 %61
|
||||
OpStore %48 %62
|
||||
%63 = OpLoad %7 %38
|
||||
%64 = OpExtInst %13 %1 UnpackUnorm4x8 %63
|
||||
OpStore %48 %64
|
||||
%65 = OpLoad %7 %38
|
||||
%66 = OpExtInst %11 %1 UnpackSnorm2x16 %65
|
||||
OpStore %46 %66
|
||||
%67 = OpLoad %7 %38
|
||||
%68 = OpExtInst %11 %1 UnpackUnorm2x16 %67
|
||||
OpStore %46 %68
|
||||
%69 = OpLoad %7 %38
|
||||
%70 = OpExtInst %11 %1 UnpackHalf2x16 %69
|
||||
OpStore %46 %70
|
||||
%71 = OpLoad %3 %30
|
||||
%72 = OpLoad %3 %30
|
||||
%73 = OpBitFieldInsert %3 %71 %72 %28 %29
|
||||
OpStore %30 %73
|
||||
%74 = OpLoad %4 %32
|
||||
%75 = OpLoad %4 %32
|
||||
%76 = OpBitFieldInsert %4 %74 %75 %28 %29
|
||||
OpStore %32 %76
|
||||
%77 = OpLoad %5 %34
|
||||
%78 = OpLoad %5 %34
|
||||
%79 = OpBitFieldInsert %5 %77 %78 %28 %29
|
||||
OpStore %34 %79
|
||||
%80 = OpLoad %6 %36
|
||||
%81 = OpLoad %6 %36
|
||||
%82 = OpBitFieldInsert %6 %80 %81 %28 %29
|
||||
OpStore %36 %82
|
||||
%83 = OpLoad %7 %38
|
||||
%84 = OpLoad %7 %38
|
||||
%85 = OpBitFieldInsert %7 %83 %84 %28 %29
|
||||
OpStore %38 %85
|
||||
%86 = OpLoad %8 %40
|
||||
%87 = OpLoad %8 %40
|
||||
%88 = OpBitFieldInsert %8 %86 %87 %28 %29
|
||||
OpStore %40 %88
|
||||
%89 = OpLoad %9 %42
|
||||
%90 = OpLoad %9 %42
|
||||
%91 = OpBitFieldInsert %9 %89 %90 %28 %29
|
||||
OpStore %42 %91
|
||||
%92 = OpLoad %10 %44
|
||||
%93 = OpLoad %10 %44
|
||||
%94 = OpBitFieldInsert %10 %92 %93 %28 %29
|
||||
OpStore %44 %94
|
||||
%95 = OpLoad %3 %30
|
||||
%96 = OpBitFieldSExtract %3 %95 %28 %29
|
||||
OpStore %30 %96
|
||||
%97 = OpLoad %4 %32
|
||||
%98 = OpBitFieldSExtract %4 %97 %28 %29
|
||||
OpStore %32 %98
|
||||
%99 = OpLoad %5 %34
|
||||
%100 = OpBitFieldSExtract %5 %99 %28 %29
|
||||
OpStore %34 %100
|
||||
%101 = OpLoad %6 %36
|
||||
%102 = OpBitFieldSExtract %6 %101 %28 %29
|
||||
OpStore %36 %102
|
||||
%103 = OpLoad %7 %38
|
||||
%104 = OpBitFieldUExtract %7 %103 %28 %29
|
||||
OpStore %38 %104
|
||||
%105 = OpLoad %8 %40
|
||||
%106 = OpBitFieldUExtract %8 %105 %28 %29
|
||||
OpStore %40 %106
|
||||
%107 = OpLoad %9 %42
|
||||
%108 = OpBitFieldUExtract %9 %107 %28 %29
|
||||
OpStore %42 %108
|
||||
%109 = OpLoad %10 %44
|
||||
%110 = OpBitFieldUExtract %10 %109 %28 %29
|
||||
OpStore %44 %110
|
||||
%111 = OpLoad %3 %30
|
||||
%112 = OpExtInst %3 %1 FindILsb %111
|
||||
OpStore %30 %112
|
||||
%113 = OpLoad %8 %40
|
||||
%114 = OpExtInst %8 %1 FindILsb %113
|
||||
OpStore %40 %114
|
||||
%115 = OpLoad %5 %34
|
||||
%116 = OpExtInst %5 %1 FindSMsb %115
|
||||
OpStore %34 %116
|
||||
%117 = OpLoad %9 %42
|
||||
%118 = OpExtInst %9 %1 FindUMsb %117
|
||||
OpStore %42 %118
|
||||
%119 = OpLoad %3 %30
|
||||
%120 = OpExtInst %3 %1 FindSMsb %119
|
||||
OpStore %30 %120
|
||||
%121 = OpLoad %7 %38
|
||||
%122 = OpExtInst %7 %1 FindUMsb %121
|
||||
OpStore %38 %122
|
||||
%123 = OpLoad %3 %30
|
||||
%124 = OpBitCount %3 %123
|
||||
OpStore %30 %124
|
||||
%125 = OpLoad %4 %32
|
||||
%126 = OpBitCount %4 %125
|
||||
OpStore %32 %126
|
||||
%127 = OpLoad %5 %34
|
||||
%128 = OpBitCount %5 %127
|
||||
OpStore %34 %128
|
||||
%129 = OpLoad %6 %36
|
||||
%130 = OpBitCount %6 %129
|
||||
OpStore %36 %130
|
||||
%131 = OpLoad %7 %38
|
||||
%132 = OpBitCount %7 %131
|
||||
OpStore %38 %132
|
||||
%133 = OpLoad %8 %40
|
||||
%134 = OpBitCount %8 %133
|
||||
OpStore %40 %134
|
||||
%135 = OpLoad %9 %42
|
||||
%136 = OpBitCount %9 %135
|
||||
OpStore %42 %136
|
||||
%137 = OpLoad %10 %44
|
||||
%138 = OpBitCount %10 %137
|
||||
OpStore %44 %138
|
||||
%139 = OpLoad %3 %30
|
||||
%140 = OpBitReverse %3 %139
|
||||
OpStore %30 %140
|
||||
%141 = OpLoad %4 %32
|
||||
%142 = OpBitReverse %4 %141
|
||||
OpStore %32 %142
|
||||
%143 = OpLoad %5 %34
|
||||
%144 = OpBitReverse %5 %143
|
||||
OpStore %34 %144
|
||||
%145 = OpLoad %6 %36
|
||||
%146 = OpBitReverse %6 %145
|
||||
OpStore %36 %146
|
||||
%147 = OpLoad %7 %38
|
||||
%148 = OpBitReverse %7 %147
|
||||
OpStore %38 %148
|
||||
%149 = OpLoad %8 %40
|
||||
%150 = OpBitReverse %8 %149
|
||||
OpStore %40 %150
|
||||
%151 = OpLoad %9 %42
|
||||
%152 = OpBitReverse %9 %151
|
||||
OpStore %42 %152
|
||||
%153 = OpLoad %10 %44
|
||||
%154 = OpBitReverse %10 %153
|
||||
OpStore %44 %154
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,13 +1,13 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: rspirv
|
||||
; Bound: 209
|
||||
; Bound: 208
|
||||
OpCapability Shader
|
||||
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %39 "main" %36
|
||||
OpExecutionMode %39 LocalSize 64 1 1
|
||||
OpEntryPoint GLCompute %23 "main" %20
|
||||
OpExecutionMode %23 LocalSize 64 1 1
|
||||
OpMemberName %6 0 "pos"
|
||||
OpMemberName %6 1 "vel"
|
||||
OpName %6 "Particle"
|
||||
@ -25,18 +25,18 @@ OpName %12 "NUM_PARTICLES"
|
||||
OpName %13 "params"
|
||||
OpName %16 "particlesSrc"
|
||||
OpName %18 "particlesDst"
|
||||
OpName %19 "vPos"
|
||||
OpName %22 "vVel"
|
||||
OpName %23 "cMass"
|
||||
OpName %24 "cVel"
|
||||
OpName %25 "colVel"
|
||||
OpName %26 "cMassCount"
|
||||
OpName %29 "cVelCount"
|
||||
OpName %30 "pos"
|
||||
OpName %31 "vel"
|
||||
OpName %32 "i"
|
||||
OpName %36 "global_invocation_id"
|
||||
OpName %39 "main"
|
||||
OpName %20 "global_invocation_id"
|
||||
OpName %23 "main"
|
||||
OpName %36 "vPos"
|
||||
OpName %39 "vVel"
|
||||
OpName %41 "cMass"
|
||||
OpName %42 "cVel"
|
||||
OpName %43 "colVel"
|
||||
OpName %44 "cMassCount"
|
||||
OpName %46 "cVelCount"
|
||||
OpName %47 "pos"
|
||||
OpName %49 "vel"
|
||||
OpName %51 "i"
|
||||
OpMemberDecorate %6 0 Offset 0
|
||||
OpMemberDecorate %6 1 Offset 8
|
||||
OpMemberDecorate %7 0 Offset 0
|
||||
@ -58,7 +58,7 @@ OpDecorate %16 DescriptorSet 0
|
||||
OpDecorate %16 Binding 1
|
||||
OpDecorate %18 DescriptorSet 0
|
||||
OpDecorate %18 Binding 2
|
||||
OpDecorate %36 BuiltIn GlobalInvocationId
|
||||
OpDecorate %20 BuiltIn GlobalInvocationId
|
||||
%2 = OpTypeVoid
|
||||
%3 = OpTypeInt 32 0
|
||||
%5 = OpTypeFloat 32
|
||||
@ -76,264 +76,257 @@ OpDecorate %36 BuiltIn GlobalInvocationId
|
||||
%17 = OpTypePointer StorageBuffer %9
|
||||
%16 = OpVariable %17 StorageBuffer
|
||||
%18 = OpVariable %17 StorageBuffer
|
||||
%20 = OpTypePointer Function %4
|
||||
%21 = OpConstantNull %4
|
||||
%27 = OpTypePointer Function %11
|
||||
%28 = OpConstantNull %11
|
||||
%33 = OpTypePointer Function %3
|
||||
%34 = OpConstantNull %3
|
||||
%37 = OpTypePointer Input %10
|
||||
%36 = OpVariable %37 Input
|
||||
%40 = OpTypeFunction %2
|
||||
%41 = OpTypePointer Uniform %7
|
||||
%42 = OpConstant %3 0
|
||||
%44 = OpConstant %5 0.0
|
||||
%45 = OpConstant %11 0
|
||||
%46 = OpConstant %11 1
|
||||
%47 = OpConstant %3 1
|
||||
%48 = OpConstant %5 0.1
|
||||
%49 = OpConstant %5 -1.0
|
||||
%50 = OpConstant %5 1.0
|
||||
%53 = OpTypeBool
|
||||
%57 = OpTypePointer StorageBuffer %8
|
||||
%58 = OpTypePointer StorageBuffer %6
|
||||
%59 = OpTypePointer StorageBuffer %4
|
||||
%88 = OpTypePointer Uniform %5
|
||||
%102 = OpConstant %3 2
|
||||
%116 = OpConstant %3 3
|
||||
%151 = OpConstant %3 4
|
||||
%157 = OpConstant %3 5
|
||||
%163 = OpConstant %3 6
|
||||
%180 = OpTypePointer Function %5
|
||||
%39 = OpFunction %2 None %40
|
||||
%35 = OpLabel
|
||||
%32 = OpVariable %33 Function %34
|
||||
%29 = OpVariable %27 Function %28
|
||||
%24 = OpVariable %20 Function %21
|
||||
%19 = OpVariable %20 Function %21
|
||||
%30 = OpVariable %20 Function %21
|
||||
%25 = OpVariable %20 Function %21
|
||||
%22 = OpVariable %20 Function %21
|
||||
%31 = OpVariable %20 Function %21
|
||||
%26 = OpVariable %27 Function %28
|
||||
%23 = OpVariable %20 Function %21
|
||||
%38 = OpLoad %10 %36
|
||||
%43 = OpAccessChain %41 %13 %42
|
||||
OpBranch %51
|
||||
%51 = OpLabel
|
||||
%52 = OpCompositeExtract %3 %38 0
|
||||
%54 = OpUGreaterThanEqual %53 %52 %12
|
||||
OpSelectionMerge %55 None
|
||||
OpBranchConditional %54 %56 %55
|
||||
%56 = OpLabel
|
||||
%21 = OpTypePointer Input %10
|
||||
%20 = OpVariable %21 Input
|
||||
%24 = OpTypeFunction %2
|
||||
%25 = OpTypePointer Uniform %7
|
||||
%26 = OpConstant %3 0
|
||||
%28 = OpConstant %5 0.0
|
||||
%29 = OpConstantComposite %4 %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
|
||||
%45 = OpTypePointer Function %11
|
||||
%48 = OpConstantNull %4
|
||||
%50 = OpConstantNull %4
|
||||
%52 = OpTypePointer Function %3
|
||||
%55 = OpTypeBool
|
||||
%59 = OpTypePointer StorageBuffer %8
|
||||
%60 = OpTypePointer StorageBuffer %6
|
||||
%61 = OpTypePointer StorageBuffer %4
|
||||
%87 = OpTypePointer Uniform %5
|
||||
%101 = OpConstant %3 2
|
||||
%115 = OpConstant %3 3
|
||||
%150 = OpConstant %3 4
|
||||
%156 = OpConstant %3 5
|
||||
%162 = OpConstant %3 6
|
||||
%179 = OpTypePointer Function %5
|
||||
%23 = OpFunction %2 None %24
|
||||
%19 = OpLabel
|
||||
%51 = OpVariable %52 Function %26
|
||||
%46 = OpVariable %45 Function %30
|
||||
%42 = OpVariable %37 Function %29
|
||||
%36 = OpVariable %37 Function %38
|
||||
%47 = OpVariable %37 Function %48
|
||||
%43 = OpVariable %37 Function %29
|
||||
%39 = OpVariable %37 Function %40
|
||||
%49 = OpVariable %37 Function %50
|
||||
%44 = OpVariable %45 Function %30
|
||||
%41 = OpVariable %37 Function %29
|
||||
%22 = OpLoad %10 %20
|
||||
%27 = OpAccessChain %25 %13 %26
|
||||
OpBranch %53
|
||||
%53 = OpLabel
|
||||
%54 = OpCompositeExtract %3 %22 0
|
||||
%56 = OpUGreaterThanEqual %55 %54 %12
|
||||
OpSelectionMerge %57 None
|
||||
OpBranchConditional %56 %58 %57
|
||||
%58 = OpLabel
|
||||
OpReturn
|
||||
%55 = OpLabel
|
||||
%60 = OpAccessChain %59 %16 %42 %52 %42
|
||||
%61 = OpLoad %4 %60
|
||||
OpStore %19 %61
|
||||
%62 = OpAccessChain %59 %16 %42 %52 %47
|
||||
%57 = OpLabel
|
||||
%62 = OpAccessChain %61 %16 %26 %54 %26
|
||||
%63 = OpLoad %4 %62
|
||||
OpStore %22 %63
|
||||
%64 = OpCompositeConstruct %4 %44 %44
|
||||
OpStore %23 %64
|
||||
%65 = OpCompositeConstruct %4 %44 %44
|
||||
OpStore %24 %65
|
||||
%66 = OpCompositeConstruct %4 %44 %44
|
||||
OpStore %25 %66
|
||||
OpStore %26 %45
|
||||
OpStore %29 %45
|
||||
OpStore %32 %42
|
||||
OpStore %36 %63
|
||||
%64 = OpAccessChain %61 %16 %26 %54 %32
|
||||
%65 = OpLoad %4 %64
|
||||
OpStore %39 %65
|
||||
OpBranch %66
|
||||
%66 = OpLabel
|
||||
OpLoopMerge %67 %69 None
|
||||
OpBranch %68
|
||||
%68 = OpLabel
|
||||
%70 = OpLoad %3 %51
|
||||
%71 = OpUGreaterThanEqual %55 %70 %12
|
||||
OpSelectionMerge %72 None
|
||||
OpBranchConditional %71 %73 %72
|
||||
%73 = OpLabel
|
||||
OpBranch %67
|
||||
%67 = OpLabel
|
||||
OpLoopMerge %68 %70 None
|
||||
%72 = OpLabel
|
||||
%74 = OpLoad %3 %51
|
||||
%75 = OpIEqual %55 %74 %54
|
||||
OpSelectionMerge %76 None
|
||||
OpBranchConditional %75 %77 %76
|
||||
%77 = OpLabel
|
||||
OpBranch %69
|
||||
%76 = OpLabel
|
||||
%78 = OpLoad %3 %51
|
||||
%79 = OpAccessChain %61 %16 %26 %78 %26
|
||||
%80 = OpLoad %4 %79
|
||||
OpStore %47 %80
|
||||
%81 = OpLoad %3 %51
|
||||
%82 = OpAccessChain %61 %16 %26 %81 %32
|
||||
%83 = OpLoad %4 %82
|
||||
OpStore %49 %83
|
||||
%84 = OpLoad %4 %47
|
||||
%85 = OpLoad %4 %36
|
||||
%86 = OpExtInst %5 %1 Distance %84 %85
|
||||
%88 = OpAccessChain %87 %27 %32
|
||||
%89 = OpLoad %5 %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
|
||||
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
|
||||
%102 = OpAccessChain %87 %27 %101
|
||||
%103 = OpLoad %5 %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
|
||||
OpStore %43 %111
|
||||
OpBranch %105
|
||||
%105 = OpLabel
|
||||
%112 = OpLoad %4 %47
|
||||
%113 = OpLoad %4 %36
|
||||
%114 = OpExtInst %5 %1 Distance %112 %113
|
||||
%116 = OpAccessChain %87 %27 %115
|
||||
%117 = OpLoad %5 %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
|
||||
OpStore %42 %123
|
||||
%124 = OpLoad %11 %46
|
||||
%125 = OpIAdd %11 %124 %31
|
||||
OpStore %46 %125
|
||||
OpBranch %119
|
||||
%119 = OpLabel
|
||||
OpBranch %69
|
||||
%69 = OpLabel
|
||||
%71 = OpLoad %3 %32
|
||||
%72 = OpUGreaterThanEqual %53 %71 %12
|
||||
OpSelectionMerge %73 None
|
||||
OpBranchConditional %72 %74 %73
|
||||
%74 = OpLabel
|
||||
OpBranch %68
|
||||
%73 = OpLabel
|
||||
%75 = OpLoad %3 %32
|
||||
%76 = OpIEqual %53 %75 %52
|
||||
OpSelectionMerge %77 None
|
||||
OpBranchConditional %76 %78 %77
|
||||
%78 = OpLabel
|
||||
OpBranch %70
|
||||
%77 = OpLabel
|
||||
%79 = OpLoad %3 %32
|
||||
%80 = OpAccessChain %59 %16 %42 %79 %42
|
||||
%81 = OpLoad %4 %80
|
||||
OpStore %30 %81
|
||||
%82 = OpLoad %3 %32
|
||||
%83 = OpAccessChain %59 %16 %42 %82 %47
|
||||
%84 = OpLoad %4 %83
|
||||
OpStore %31 %84
|
||||
%85 = OpLoad %4 %30
|
||||
%86 = OpLoad %4 %19
|
||||
%87 = OpExtInst %5 %1 Distance %85 %86
|
||||
%89 = OpAccessChain %88 %43 %47
|
||||
%90 = OpLoad %5 %89
|
||||
%91 = OpFOrdLessThan %53 %87 %90
|
||||
OpSelectionMerge %92 None
|
||||
OpBranchConditional %91 %93 %92
|
||||
%93 = OpLabel
|
||||
%94 = OpLoad %4 %23
|
||||
%95 = OpLoad %4 %30
|
||||
%96 = OpFAdd %4 %94 %95
|
||||
OpStore %23 %96
|
||||
%97 = OpLoad %11 %26
|
||||
%98 = OpIAdd %11 %97 %46
|
||||
OpStore %26 %98
|
||||
OpBranch %92
|
||||
%92 = OpLabel
|
||||
%99 = OpLoad %4 %30
|
||||
%100 = OpLoad %4 %19
|
||||
%101 = OpExtInst %5 %1 Distance %99 %100
|
||||
%103 = OpAccessChain %88 %43 %102
|
||||
%104 = OpLoad %5 %103
|
||||
%105 = OpFOrdLessThan %53 %101 %104
|
||||
OpSelectionMerge %106 None
|
||||
OpBranchConditional %105 %107 %106
|
||||
%107 = OpLabel
|
||||
%108 = OpLoad %4 %25
|
||||
%109 = OpLoad %4 %30
|
||||
%110 = OpLoad %4 %19
|
||||
%111 = OpFSub %4 %109 %110
|
||||
%112 = OpFSub %4 %108 %111
|
||||
OpStore %25 %112
|
||||
OpBranch %106
|
||||
%106 = OpLabel
|
||||
%113 = OpLoad %4 %30
|
||||
%114 = OpLoad %4 %19
|
||||
%115 = OpExtInst %5 %1 Distance %113 %114
|
||||
%117 = OpAccessChain %88 %43 %116
|
||||
%118 = OpLoad %5 %117
|
||||
%119 = OpFOrdLessThan %53 %115 %118
|
||||
OpSelectionMerge %120 None
|
||||
OpBranchConditional %119 %121 %120
|
||||
%121 = OpLabel
|
||||
%122 = OpLoad %4 %24
|
||||
%123 = OpLoad %4 %31
|
||||
%124 = OpFAdd %4 %122 %123
|
||||
OpStore %24 %124
|
||||
%125 = OpLoad %11 %29
|
||||
%126 = OpIAdd %11 %125 %46
|
||||
OpStore %29 %126
|
||||
OpBranch %120
|
||||
%120 = OpLabel
|
||||
OpBranch %70
|
||||
%70 = OpLabel
|
||||
%127 = OpLoad %3 %32
|
||||
%128 = OpIAdd %3 %127 %47
|
||||
OpStore %32 %128
|
||||
OpBranch %67
|
||||
%68 = OpLabel
|
||||
%129 = OpLoad %11 %26
|
||||
%130 = OpSGreaterThan %53 %129 %45
|
||||
OpSelectionMerge %131 None
|
||||
OpBranchConditional %130 %132 %131
|
||||
%132 = OpLabel
|
||||
%133 = OpLoad %4 %23
|
||||
%134 = OpLoad %11 %26
|
||||
%135 = OpConvertSToF %5 %134
|
||||
%136 = OpCompositeConstruct %4 %135 %135
|
||||
%137 = OpFDiv %4 %133 %136
|
||||
%138 = OpLoad %4 %19
|
||||
%139 = OpFSub %4 %137 %138
|
||||
OpStore %23 %139
|
||||
OpBranch %131
|
||||
%126 = OpLoad %3 %51
|
||||
%127 = OpIAdd %3 %126 %32
|
||||
OpStore %51 %127
|
||||
OpBranch %66
|
||||
%67 = OpLabel
|
||||
%128 = OpLoad %11 %44
|
||||
%129 = OpSGreaterThan %55 %128 %30
|
||||
OpSelectionMerge %130 None
|
||||
OpBranchConditional %129 %131 %130
|
||||
%131 = OpLabel
|
||||
%140 = OpLoad %11 %29
|
||||
%141 = OpSGreaterThan %53 %140 %45
|
||||
OpSelectionMerge %142 None
|
||||
OpBranchConditional %141 %143 %142
|
||||
%143 = OpLabel
|
||||
%144 = OpLoad %4 %24
|
||||
%145 = OpLoad %11 %29
|
||||
%146 = OpConvertSToF %5 %145
|
||||
%147 = OpCompositeConstruct %4 %146 %146
|
||||
%148 = OpFDiv %4 %144 %147
|
||||
OpStore %24 %148
|
||||
OpBranch %142
|
||||
%132 = OpLoad %4 %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
|
||||
OpStore %41 %138
|
||||
OpBranch %130
|
||||
%130 = OpLabel
|
||||
%139 = OpLoad %11 %46
|
||||
%140 = OpSGreaterThan %55 %139 %30
|
||||
OpSelectionMerge %141 None
|
||||
OpBranchConditional %140 %142 %141
|
||||
%142 = OpLabel
|
||||
%149 = OpLoad %4 %22
|
||||
%150 = OpLoad %4 %23
|
||||
%152 = OpAccessChain %88 %43 %151
|
||||
%153 = OpLoad %5 %152
|
||||
%154 = OpVectorTimesScalar %4 %150 %153
|
||||
%155 = OpFAdd %4 %149 %154
|
||||
%156 = OpLoad %4 %25
|
||||
%158 = OpAccessChain %88 %43 %157
|
||||
%159 = OpLoad %5 %158
|
||||
%160 = OpVectorTimesScalar %4 %156 %159
|
||||
%161 = OpFAdd %4 %155 %160
|
||||
%162 = OpLoad %4 %24
|
||||
%164 = OpAccessChain %88 %43 %163
|
||||
%165 = OpLoad %5 %164
|
||||
%166 = OpVectorTimesScalar %4 %162 %165
|
||||
%167 = OpFAdd %4 %161 %166
|
||||
OpStore %22 %167
|
||||
%168 = OpLoad %4 %22
|
||||
%169 = OpExtInst %4 %1 Normalize %168
|
||||
%170 = OpLoad %4 %22
|
||||
%171 = OpExtInst %5 %1 Length %170
|
||||
%172 = OpExtInst %5 %1 FClamp %171 %44 %48
|
||||
%173 = OpVectorTimesScalar %4 %169 %172
|
||||
OpStore %22 %173
|
||||
%174 = OpLoad %4 %19
|
||||
%175 = OpLoad %4 %22
|
||||
%176 = OpAccessChain %88 %43 %42
|
||||
%177 = OpLoad %5 %176
|
||||
%178 = OpVectorTimesScalar %4 %175 %177
|
||||
%179 = OpFAdd %4 %174 %178
|
||||
OpStore %19 %179
|
||||
%181 = OpAccessChain %180 %19 %42
|
||||
%182 = OpLoad %5 %181
|
||||
%183 = OpFOrdLessThan %53 %182 %49
|
||||
OpSelectionMerge %184 None
|
||||
OpBranchConditional %183 %185 %184
|
||||
%185 = OpLabel
|
||||
%186 = OpAccessChain %180 %19 %42
|
||||
OpStore %186 %50
|
||||
OpBranch %184
|
||||
%143 = OpLoad %4 %42
|
||||
%144 = OpLoad %11 %46
|
||||
%145 = OpConvertSToF %5 %144
|
||||
%146 = OpCompositeConstruct %4 %145 %145
|
||||
%147 = OpFDiv %4 %143 %146
|
||||
OpStore %42 %147
|
||||
OpBranch %141
|
||||
%141 = OpLabel
|
||||
%148 = OpLoad %4 %39
|
||||
%149 = OpLoad %4 %41
|
||||
%151 = OpAccessChain %87 %27 %150
|
||||
%152 = OpLoad %5 %151
|
||||
%153 = OpVectorTimesScalar %4 %149 %152
|
||||
%154 = OpFAdd %4 %148 %153
|
||||
%155 = OpLoad %4 %43
|
||||
%157 = OpAccessChain %87 %27 %156
|
||||
%158 = OpLoad %5 %157
|
||||
%159 = OpVectorTimesScalar %4 %155 %158
|
||||
%160 = OpFAdd %4 %154 %159
|
||||
%161 = OpLoad %4 %42
|
||||
%163 = OpAccessChain %87 %27 %162
|
||||
%164 = OpLoad %5 %163
|
||||
%165 = OpVectorTimesScalar %4 %161 %164
|
||||
%166 = OpFAdd %4 %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
|
||||
OpStore %39 %172
|
||||
%173 = OpLoad %4 %36
|
||||
%174 = OpLoad %4 %39
|
||||
%175 = OpAccessChain %87 %27 %26
|
||||
%176 = OpLoad %5 %175
|
||||
%177 = OpVectorTimesScalar %4 %174 %176
|
||||
%178 = OpFAdd %4 %173 %177
|
||||
OpStore %36 %178
|
||||
%180 = OpAccessChain %179 %36 %26
|
||||
%181 = OpLoad %5 %180
|
||||
%182 = OpFOrdLessThan %55 %181 %34
|
||||
OpSelectionMerge %183 None
|
||||
OpBranchConditional %182 %184 %183
|
||||
%184 = OpLabel
|
||||
%187 = OpAccessChain %180 %19 %42
|
||||
%188 = OpLoad %5 %187
|
||||
%189 = OpFOrdGreaterThan %53 %188 %50
|
||||
OpSelectionMerge %190 None
|
||||
OpBranchConditional %189 %191 %190
|
||||
%191 = OpLabel
|
||||
%192 = OpAccessChain %180 %19 %42
|
||||
OpStore %192 %49
|
||||
OpBranch %190
|
||||
%185 = OpAccessChain %179 %36 %26
|
||||
OpStore %185 %35
|
||||
OpBranch %183
|
||||
%183 = OpLabel
|
||||
%186 = OpAccessChain %179 %36 %26
|
||||
%187 = OpLoad %5 %186
|
||||
%188 = OpFOrdGreaterThan %55 %187 %35
|
||||
OpSelectionMerge %189 None
|
||||
OpBranchConditional %188 %190 %189
|
||||
%190 = OpLabel
|
||||
%193 = OpAccessChain %180 %19 %47
|
||||
%194 = OpLoad %5 %193
|
||||
%195 = OpFOrdLessThan %53 %194 %49
|
||||
OpSelectionMerge %196 None
|
||||
OpBranchConditional %195 %197 %196
|
||||
%197 = OpLabel
|
||||
%198 = OpAccessChain %180 %19 %47
|
||||
OpStore %198 %50
|
||||
OpBranch %196
|
||||
%191 = OpAccessChain %179 %36 %26
|
||||
OpStore %191 %34
|
||||
OpBranch %189
|
||||
%189 = OpLabel
|
||||
%192 = OpAccessChain %179 %36 %32
|
||||
%193 = OpLoad %5 %192
|
||||
%194 = OpFOrdLessThan %55 %193 %34
|
||||
OpSelectionMerge %195 None
|
||||
OpBranchConditional %194 %196 %195
|
||||
%196 = OpLabel
|
||||
%199 = OpAccessChain %180 %19 %47
|
||||
%200 = OpLoad %5 %199
|
||||
%201 = OpFOrdGreaterThan %53 %200 %50
|
||||
OpSelectionMerge %202 None
|
||||
OpBranchConditional %201 %203 %202
|
||||
%203 = OpLabel
|
||||
%204 = OpAccessChain %180 %19 %47
|
||||
OpStore %204 %49
|
||||
OpBranch %202
|
||||
%197 = OpAccessChain %179 %36 %32
|
||||
OpStore %197 %35
|
||||
OpBranch %195
|
||||
%195 = OpLabel
|
||||
%198 = OpAccessChain %179 %36 %32
|
||||
%199 = OpLoad %5 %198
|
||||
%200 = OpFOrdGreaterThan %55 %199 %35
|
||||
OpSelectionMerge %201 None
|
||||
OpBranchConditional %200 %202 %201
|
||||
%202 = OpLabel
|
||||
%205 = OpLoad %4 %19
|
||||
%206 = OpAccessChain %59 %18 %42 %52 %42
|
||||
OpStore %206 %205
|
||||
%207 = OpLoad %4 %22
|
||||
%208 = OpAccessChain %59 %18 %42 %52 %47
|
||||
OpStore %208 %207
|
||||
%203 = OpAccessChain %179 %36 %32
|
||||
OpStore %203 %34
|
||||
OpBranch %201
|
||||
%201 = OpLabel
|
||||
%204 = OpLoad %4 %36
|
||||
%205 = OpAccessChain %61 %18 %26 %54 %26
|
||||
OpStore %205 %204
|
||||
%206 = OpLoad %4 %39
|
||||
%207 = OpAccessChain %61 %18 %26 %54 %32
|
||||
OpStore %207 %206
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -182,6 +182,7 @@ OpDecorate %267 Location 0
|
||||
%283 = OpConstantNull %12
|
||||
%284 = OpConstantNull %6
|
||||
%285 = OpConstant %4 0.0
|
||||
%286 = OpConstantComposite %6 %285 %285 %285 %285
|
||||
%48 = OpFunction %6 None %49
|
||||
%46 = OpFunctionParameter %5
|
||||
%47 = OpFunctionParameter %5
|
||||
@ -437,20 +438,19 @@ OpFunctionEnd
|
||||
%277 = OpLoad %18 %39
|
||||
%278 = OpLoad %19 %41
|
||||
%279 = OpLoad %20 %43
|
||||
OpBranch %286
|
||||
%286 = OpLabel
|
||||
%287 = OpFunctionCall %6 %48 %280 %280
|
||||
%288 = OpFunctionCall %6 %63 %281 %280
|
||||
%289 = OpFunctionCall %6 %79 %281 %282 %280
|
||||
%290 = OpFunctionCall %6 %97 %281 %280 %280
|
||||
%291 = OpFunctionCall %6 %113 %283 %280
|
||||
%292 = OpFunctionCall %6 %128 %281 %280
|
||||
%293 = OpFunctionCall %2 %210 %280 %284
|
||||
%294 = OpFunctionCall %2 %220 %281 %284
|
||||
%295 = OpFunctionCall %2 %232 %281 %282 %284
|
||||
%296 = OpFunctionCall %2 %246 %281 %280 %284
|
||||
%297 = OpFunctionCall %2 %258 %283 %284
|
||||
%298 = OpCompositeConstruct %6 %285 %285 %285 %285
|
||||
OpStore %267 %298
|
||||
OpBranch %287
|
||||
%287 = OpLabel
|
||||
%288 = OpFunctionCall %6 %48 %280 %280
|
||||
%289 = OpFunctionCall %6 %63 %281 %280
|
||||
%290 = OpFunctionCall %6 %79 %281 %282 %280
|
||||
%291 = OpFunctionCall %6 %97 %281 %280 %280
|
||||
%292 = OpFunctionCall %6 %113 %283 %280
|
||||
%293 = OpFunctionCall %6 %128 %281 %280
|
||||
%294 = OpFunctionCall %2 %210 %280 %284
|
||||
%295 = OpFunctionCall %2 %220 %281 %284
|
||||
%296 = OpFunctionCall %2 %232 %281 %282 %284
|
||||
%297 = OpFunctionCall %2 %246 %281 %280 %284
|
||||
%298 = OpFunctionCall %2 %258 %283 %284
|
||||
OpStore %267 %286
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -171,6 +171,7 @@ OpDecorate %295 Location 0
|
||||
%310 = OpConstant %10 0
|
||||
%311 = OpConstantNull %12
|
||||
%312 = OpConstant %4 0.0
|
||||
%313 = OpConstantComposite %6 %312 %312 %312 %312
|
||||
%48 = OpFunction %6 None %49
|
||||
%46 = OpFunctionParameter %5
|
||||
%47 = OpFunctionParameter %5
|
||||
@ -519,20 +520,19 @@ OpFunctionEnd
|
||||
%305 = OpLoad %18 %39
|
||||
%306 = OpLoad %19 %41
|
||||
%307 = OpLoad %20 %43
|
||||
OpBranch %313
|
||||
%313 = OpLabel
|
||||
%314 = OpFunctionCall %6 %48 %308 %308
|
||||
%315 = OpFunctionCall %6 %66 %309 %308
|
||||
%316 = OpFunctionCall %6 %85 %309 %310 %308
|
||||
%317 = OpFunctionCall %6 %106 %309 %308 %308
|
||||
%318 = OpFunctionCall %6 %124 %311 %308
|
||||
%319 = OpFunctionCall %6 %141 %309 %308
|
||||
%320 = OpFunctionCall %2 %233 %308 %53
|
||||
%321 = OpFunctionCall %2 %244 %309 %53
|
||||
%322 = OpFunctionCall %2 %257 %309 %310 %53
|
||||
%323 = OpFunctionCall %2 %272 %309 %308 %53
|
||||
%324 = OpFunctionCall %2 %285 %311 %53
|
||||
%325 = OpCompositeConstruct %6 %312 %312 %312 %312
|
||||
OpStore %295 %325
|
||||
OpBranch %314
|
||||
%314 = OpLabel
|
||||
%315 = OpFunctionCall %6 %48 %308 %308
|
||||
%316 = OpFunctionCall %6 %66 %309 %308
|
||||
%317 = OpFunctionCall %6 %85 %309 %310 %308
|
||||
%318 = OpFunctionCall %6 %106 %309 %308 %308
|
||||
%319 = OpFunctionCall %6 %124 %311 %308
|
||||
%320 = OpFunctionCall %6 %141 %309 %308
|
||||
%321 = OpFunctionCall %2 %233 %308 %53
|
||||
%322 = OpFunctionCall %2 %244 %309 %53
|
||||
%323 = OpFunctionCall %2 %257 %309 %310 %53
|
||||
%324 = OpFunctionCall %2 %272 %309 %308 %53
|
||||
%325 = OpFunctionCall %2 %285 %311 %53
|
||||
OpStore %295 %313
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,19 +1,22 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 47
|
||||
; Bound: 50
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %45 "main"
|
||||
OpExecutionMode %45 LocalSize 1 1 1
|
||||
OpEntryPoint GLCompute %48 "main"
|
||||
OpExecutionMode %48 LocalSize 1 1 1
|
||||
%2 = OpTypeVoid
|
||||
%3 = OpTypeBool
|
||||
%6 = OpTypeFunction %2
|
||||
%7 = OpConstantTrue %3
|
||||
%14 = OpTypePointer Function %3
|
||||
%15 = OpConstantNull %3
|
||||
%20 = OpTypeFunction %2 %3
|
||||
%16 = OpTypeFunction %2 %3
|
||||
%18 = OpTypePointer Function %3
|
||||
%19 = OpConstantNull %3
|
||||
%21 = OpConstantNull %3
|
||||
%35 = OpConstantNull %3
|
||||
%37 = OpConstantNull %3
|
||||
%5 = OpFunction %2 None %6
|
||||
%4 = OpLabel
|
||||
OpBranch %8
|
||||
@ -29,57 +32,57 @@ OpBranchConditional %7 %10 %9
|
||||
%10 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%19 = OpFunction %2 None %20
|
||||
%18 = OpFunctionParameter %3
|
||||
%17 = OpLabel
|
||||
%13 = OpVariable %14 Function %15
|
||||
%16 = OpVariable %14 Function %15
|
||||
OpBranch %21
|
||||
%21 = OpLabel
|
||||
%15 = OpFunction %2 None %16
|
||||
%14 = OpFunctionParameter %3
|
||||
%13 = OpLabel
|
||||
%17 = OpVariable %18 Function %19
|
||||
%20 = OpVariable %18 Function %21
|
||||
OpBranch %22
|
||||
%22 = OpLabel
|
||||
OpLoopMerge %23 %25 None
|
||||
OpBranch %24
|
||||
%24 = OpLabel
|
||||
OpBranch %23
|
||||
%23 = OpLabel
|
||||
OpLoopMerge %24 %26 None
|
||||
OpBranch %25
|
||||
%25 = OpLabel
|
||||
OpStore %13 %18
|
||||
%26 = OpLoad %3 %13
|
||||
%27 = OpLogicalNotEqual %3 %18 %26
|
||||
OpStore %16 %27
|
||||
%28 = OpLoad %3 %16
|
||||
%29 = OpLogicalEqual %3 %18 %28
|
||||
OpBranchConditional %29 %23 %22
|
||||
%23 = OpLabel
|
||||
OpBranch %26
|
||||
%26 = OpLabel
|
||||
OpStore %17 %14
|
||||
%27 = OpLoad %3 %17
|
||||
%28 = OpLogicalNotEqual %3 %14 %27
|
||||
OpStore %20 %28
|
||||
%29 = OpLoad %3 %20
|
||||
%30 = OpLogicalEqual %3 %14 %29
|
||||
OpBranchConditional %30 %24 %23
|
||||
%24 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%34 = OpFunction %2 None %20
|
||||
%33 = OpFunctionParameter %3
|
||||
%32 = OpLabel
|
||||
%30 = OpVariable %14 Function %15
|
||||
%31 = OpVariable %14 Function %15
|
||||
OpBranch %35
|
||||
%35 = OpLabel
|
||||
OpBranch %36
|
||||
%36 = OpLabel
|
||||
OpLoopMerge %37 %39 None
|
||||
%33 = OpFunction %2 None %16
|
||||
%32 = OpFunctionParameter %3
|
||||
%31 = OpLabel
|
||||
%34 = OpVariable %18 Function %35
|
||||
%36 = OpVariable %18 Function %37
|
||||
OpBranch %38
|
||||
%38 = OpLabel
|
||||
OpStore %30 %33
|
||||
%40 = OpLoad %3 %30
|
||||
%41 = OpLogicalNotEqual %3 %33 %40
|
||||
OpStore %31 %41
|
||||
OpBranch %39
|
||||
%39 = OpLabel
|
||||
%42 = OpLoad %3 %31
|
||||
%43 = OpLogicalEqual %3 %33 %42
|
||||
OpBranchConditional %43 %37 %36
|
||||
%37 = OpLabel
|
||||
OpLoopMerge %40 %42 None
|
||||
OpBranch %41
|
||||
%41 = OpLabel
|
||||
OpStore %34 %32
|
||||
%43 = OpLoad %3 %34
|
||||
%44 = OpLogicalNotEqual %3 %32 %43
|
||||
OpStore %36 %44
|
||||
OpBranch %42
|
||||
%42 = OpLabel
|
||||
%45 = OpLoad %3 %36
|
||||
%46 = OpLogicalEqual %3 %32 %45
|
||||
OpBranchConditional %46 %40 %39
|
||||
%40 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%45 = OpFunction %2 None %6
|
||||
%44 = OpLabel
|
||||
OpBranch %46
|
||||
%46 = OpLabel
|
||||
%48 = OpFunction %2 None %6
|
||||
%47 = OpLabel
|
||||
OpBranch %49
|
||||
%49 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -11,10 +11,10 @@ OpExecutionMode %51 LocalSize 1 1 1
|
||||
OpMemberName %5 0 "data"
|
||||
OpName %5 "PrimeIndices"
|
||||
OpName %7 "v_indices"
|
||||
OpName %9 "n"
|
||||
OpName %12 "i"
|
||||
OpName %14 "n_base"
|
||||
OpName %15 "collatz_iterations"
|
||||
OpName %10 "n_base"
|
||||
OpName %11 "collatz_iterations"
|
||||
OpName %17 "n"
|
||||
OpName %20 "i"
|
||||
OpName %48 "global_id"
|
||||
OpName %51 "main"
|
||||
OpDecorate %4 ArrayStride 4
|
||||
@ -30,35 +30,34 @@ OpDecorate %48 BuiltIn GlobalInvocationId
|
||||
%6 = OpTypeVector %3 3
|
||||
%8 = OpTypePointer StorageBuffer %5
|
||||
%7 = OpVariable %8 StorageBuffer
|
||||
%10 = OpTypePointer Function %3
|
||||
%11 = OpConstantNull %3
|
||||
%16 = OpTypeFunction %3 %3
|
||||
%17 = OpConstant %3 0
|
||||
%18 = OpConstant %3 1
|
||||
%19 = OpConstant %3 2
|
||||
%20 = OpConstant %3 3
|
||||
%12 = OpTypeFunction %3 %3
|
||||
%13 = OpConstant %3 0
|
||||
%14 = OpConstant %3 1
|
||||
%15 = OpConstant %3 2
|
||||
%16 = OpConstant %3 3
|
||||
%18 = OpTypePointer Function %3
|
||||
%19 = OpConstantNull %3
|
||||
%27 = OpTypeBool
|
||||
%49 = OpTypePointer Input %6
|
||||
%48 = OpVariable %49 Input
|
||||
%52 = OpTypeFunction %2
|
||||
%54 = OpTypePointer StorageBuffer %4
|
||||
%56 = OpTypePointer StorageBuffer %3
|
||||
%15 = OpFunction %3 None %16
|
||||
%14 = OpFunctionParameter %3
|
||||
%13 = OpLabel
|
||||
%9 = OpVariable %10 Function %11
|
||||
%12 = OpVariable %10 Function %11
|
||||
%11 = OpFunction %3 None %12
|
||||
%10 = OpFunctionParameter %3
|
||||
%9 = OpLabel
|
||||
%17 = OpVariable %18 Function %19
|
||||
%20 = OpVariable %18 Function %13
|
||||
OpBranch %21
|
||||
%21 = OpLabel
|
||||
OpStore %9 %14
|
||||
OpStore %12 %17
|
||||
OpStore %17 %10
|
||||
OpBranch %22
|
||||
%22 = OpLabel
|
||||
OpLoopMerge %23 %25 None
|
||||
OpBranch %24
|
||||
%24 = OpLabel
|
||||
%26 = OpLoad %3 %9
|
||||
%28 = OpUGreaterThan %27 %26 %18
|
||||
%26 = OpLoad %3 %17
|
||||
%28 = OpUGreaterThan %27 %26 %14
|
||||
OpSelectionMerge %29 None
|
||||
OpBranchConditional %28 %29 %30
|
||||
%30 = OpLabel
|
||||
@ -66,33 +65,33 @@ OpBranch %23
|
||||
%29 = OpLabel
|
||||
OpBranch %31
|
||||
%31 = OpLabel
|
||||
%33 = OpLoad %3 %9
|
||||
%34 = OpUMod %3 %33 %19
|
||||
%35 = OpIEqual %27 %34 %17
|
||||
%33 = OpLoad %3 %17
|
||||
%34 = OpUMod %3 %33 %15
|
||||
%35 = OpIEqual %27 %34 %13
|
||||
OpSelectionMerge %36 None
|
||||
OpBranchConditional %35 %37 %38
|
||||
%37 = OpLabel
|
||||
%39 = OpLoad %3 %9
|
||||
%40 = OpUDiv %3 %39 %19
|
||||
OpStore %9 %40
|
||||
%39 = OpLoad %3 %17
|
||||
%40 = OpUDiv %3 %39 %15
|
||||
OpStore %17 %40
|
||||
OpBranch %36
|
||||
%38 = OpLabel
|
||||
%41 = OpLoad %3 %9
|
||||
%42 = OpIMul %3 %20 %41
|
||||
%43 = OpIAdd %3 %42 %18
|
||||
OpStore %9 %43
|
||||
%41 = OpLoad %3 %17
|
||||
%42 = OpIMul %3 %16 %41
|
||||
%43 = OpIAdd %3 %42 %14
|
||||
OpStore %17 %43
|
||||
OpBranch %36
|
||||
%36 = OpLabel
|
||||
%44 = OpLoad %3 %12
|
||||
%45 = OpIAdd %3 %44 %18
|
||||
OpStore %12 %45
|
||||
%44 = OpLoad %3 %20
|
||||
%45 = OpIAdd %3 %44 %14
|
||||
OpStore %20 %45
|
||||
OpBranch %32
|
||||
%32 = OpLabel
|
||||
OpBranch %25
|
||||
%25 = OpLabel
|
||||
OpBranch %22
|
||||
%23 = OpLabel
|
||||
%46 = OpLoad %3 %12
|
||||
%46 = OpLoad %3 %20
|
||||
OpReturnValue %46
|
||||
OpFunctionEnd
|
||||
%51 = OpFunction %2 None %52
|
||||
@ -102,10 +101,10 @@ OpBranch %53
|
||||
%53 = OpLabel
|
||||
%55 = OpCompositeExtract %3 %50 0
|
||||
%57 = OpCompositeExtract %3 %50 0
|
||||
%58 = OpAccessChain %56 %7 %17 %57
|
||||
%58 = OpAccessChain %56 %7 %13 %57
|
||||
%59 = OpLoad %3 %58
|
||||
%60 = OpFunctionCall %3 %15 %59
|
||||
%61 = OpAccessChain %56 %7 %17 %55
|
||||
%60 = OpFunctionCall %3 %11 %59
|
||||
%61 = OpAccessChain %56 %7 %13 %55
|
||||
OpStore %61 %60
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,12 +1,12 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 73
|
||||
; Bound: 70
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %46 "main"
|
||||
OpExecutionMode %46 LocalSize 1 1 1
|
||||
OpEntryPoint GLCompute %44 "main"
|
||||
OpExecutionMode %44 LocalSize 1 1 1
|
||||
OpMemberDecorate %6 0 Offset 0
|
||||
OpMemberDecorate %6 1 Offset 16
|
||||
OpDecorate %10 ArrayStride 16
|
||||
@ -53,35 +53,32 @@ OpDecorate %17 ArrayStride 4
|
||||
%40 = OpConstant %5 2
|
||||
%41 = OpConstant %5 3
|
||||
%42 = OpConstantComposite %17 %38 %39 %40 %41
|
||||
%44 = OpTypePointer Function %6
|
||||
%47 = OpTypeFunction %2
|
||||
%48 = OpConstant %12 0
|
||||
%49 = OpConstantNull %20
|
||||
%46 = OpFunction %2 None %47
|
||||
%45 = OpLabel
|
||||
%43 = OpVariable %44 Function %37
|
||||
OpBranch %50
|
||||
%50 = OpLabel
|
||||
%51 = OpCompositeConstruct %3 %22 %22 %22 %22
|
||||
%52 = OpCompositeConstruct %6 %51 %39
|
||||
OpStore %43 %52
|
||||
%53 = OpCompositeConstruct %9 %22 %21
|
||||
%54 = OpCompositeConstruct %9 %21 %22
|
||||
%55 = OpCompositeConstruct %8 %53 %54
|
||||
%56 = OpCompositeConstruct %3 %22 %21 %21 %21
|
||||
%57 = OpCompositeConstruct %3 %21 %22 %21 %21
|
||||
%58 = OpCompositeConstruct %3 %21 %21 %22 %21
|
||||
%59 = OpCompositeConstruct %3 %21 %21 %21 %22
|
||||
%60 = OpCompositeConstruct %19 %56 %57 %58 %59
|
||||
%61 = OpCompositeConstruct %14 %48 %48
|
||||
%62 = OpCompositeConstruct %9 %21 %21
|
||||
%63 = OpCompositeConstruct %9 %21 %21
|
||||
%64 = OpCompositeConstruct %8 %62 %63
|
||||
%65 = OpCompositeConstruct %17 %38 %39 %40 %41
|
||||
%67 = OpCompositeConstruct %14 %48 %48
|
||||
%68 = OpCompositeConstruct %7 %21 %21 %21
|
||||
%69 = OpCompositeConstruct %7 %21 %21 %21
|
||||
%70 = OpCompositeConstruct %20 %68 %69
|
||||
%72 = OpCopyObject %20 %49
|
||||
%45 = OpTypeFunction %2
|
||||
%46 = OpConstantComposite %3 %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
|
||||
%54 = OpConstantComposite %19 %50 %51 %52 %53
|
||||
%55 = OpConstant %12 0
|
||||
%56 = OpConstantComposite %14 %55 %55
|
||||
%57 = OpConstantComposite %9 %21 %21
|
||||
%58 = OpConstantComposite %8 %57 %57
|
||||
%59 = OpConstantComposite %14 %55 %55
|
||||
%60 = OpConstantComposite %7 %21 %21 %21
|
||||
%61 = OpConstantComposite %20 %60 %60
|
||||
%62 = OpConstantNull %20
|
||||
%64 = OpTypePointer Function %6
|
||||
%65 = OpConstantNull %6
|
||||
%44 = OpFunction %2 None %45
|
||||
%43 = OpLabel
|
||||
%63 = OpVariable %64 Function %65
|
||||
OpBranch %66
|
||||
%66 = OpLabel
|
||||
OpStore %63 %47
|
||||
%69 = OpCopyObject %20 %62
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -5,9 +5,9 @@
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %39 "main" %36
|
||||
OpExecutionMode %39 LocalSize 1 1 1
|
||||
OpDecorate %36 BuiltIn GlobalInvocationId
|
||||
OpEntryPoint GLCompute %36 "main" %33
|
||||
OpExecutionMode %36 LocalSize 1 1 1
|
||||
OpDecorate %33 BuiltIn GlobalInvocationId
|
||||
%2 = OpTypeVoid
|
||||
%4 = OpTypeInt 32 0
|
||||
%3 = OpTypeVector %4 3
|
||||
@ -15,15 +15,15 @@ OpDecorate %36 BuiltIn GlobalInvocationId
|
||||
%9 = OpTypeFunction %2 %5
|
||||
%15 = OpTypeFunction %2
|
||||
%16 = OpConstant %5 0
|
||||
%33 = OpTypePointer Function %5
|
||||
%34 = OpConstantNull %5
|
||||
%37 = OpTypePointer Input %3
|
||||
%36 = OpVariable %37 Input
|
||||
%40 = OpConstant %5 1
|
||||
%41 = OpConstant %5 2
|
||||
%42 = OpConstant %5 3
|
||||
%43 = OpConstant %5 4
|
||||
%44 = OpConstant %4 0
|
||||
%34 = OpTypePointer Input %3
|
||||
%33 = OpVariable %34 Input
|
||||
%37 = OpConstant %5 1
|
||||
%38 = OpConstant %5 2
|
||||
%39 = OpConstant %5 3
|
||||
%40 = OpConstant %5 4
|
||||
%41 = OpConstant %4 0
|
||||
%43 = OpTypePointer Function %5
|
||||
%44 = OpConstantNull %5
|
||||
%46 = OpConstant %4 2
|
||||
%47 = OpConstant %4 1
|
||||
%48 = OpConstant %4 72
|
||||
@ -76,62 +76,62 @@ OpBranch %25
|
||||
%26 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%39 = OpFunction %2 None %15
|
||||
%35 = OpLabel
|
||||
%32 = OpVariable %33 Function %34
|
||||
%38 = OpLoad %3 %36
|
||||
%36 = OpFunction %2 None %15
|
||||
%32 = OpLabel
|
||||
%42 = OpVariable %43 Function %44
|
||||
%35 = OpLoad %3 %33
|
||||
OpBranch %45
|
||||
%45 = OpLabel
|
||||
OpControlBarrier %46 %47 %48
|
||||
OpControlBarrier %46 %46 %49
|
||||
OpSelectionMerge %50 None
|
||||
OpSwitch %40 %51
|
||||
OpSwitch %37 %51
|
||||
%51 = OpLabel
|
||||
OpStore %32 %40
|
||||
OpStore %42 %37
|
||||
OpBranch %50
|
||||
%50 = OpLabel
|
||||
%52 = OpLoad %5 %32
|
||||
%52 = OpLoad %5 %42
|
||||
OpSelectionMerge %53 None
|
||||
OpSwitch %52 %58 1 %54 2 %55 3 %56 4 %56 5 %57 6 %58
|
||||
%54 = OpLabel
|
||||
OpStore %32 %16
|
||||
OpStore %42 %16
|
||||
OpBranch %53
|
||||
%55 = OpLabel
|
||||
OpStore %32 %40
|
||||
OpStore %42 %37
|
||||
OpBranch %53
|
||||
%56 = OpLabel
|
||||
OpStore %32 %41
|
||||
OpStore %42 %38
|
||||
OpBranch %53
|
||||
%57 = OpLabel
|
||||
OpStore %32 %42
|
||||
OpStore %42 %39
|
||||
OpBranch %53
|
||||
%58 = OpLabel
|
||||
OpStore %32 %43
|
||||
OpStore %42 %40
|
||||
OpBranch %53
|
||||
%53 = OpLabel
|
||||
OpSelectionMerge %59 None
|
||||
OpSwitch %44 %61 0 %60
|
||||
OpSwitch %41 %61 0 %60
|
||||
%60 = OpLabel
|
||||
OpBranch %59
|
||||
%61 = OpLabel
|
||||
OpBranch %59
|
||||
%59 = OpLabel
|
||||
%62 = OpLoad %5 %32
|
||||
%62 = OpLoad %5 %42
|
||||
OpSelectionMerge %63 None
|
||||
OpSwitch %62 %68 1 %64 2 %65 3 %66 4 %67
|
||||
%64 = OpLabel
|
||||
OpStore %32 %16
|
||||
OpStore %42 %16
|
||||
OpBranch %63
|
||||
%65 = OpLabel
|
||||
OpStore %32 %40
|
||||
OpStore %42 %37
|
||||
OpReturn
|
||||
%66 = OpLabel
|
||||
OpStore %32 %41
|
||||
OpStore %42 %38
|
||||
OpReturn
|
||||
%67 = OpLabel
|
||||
OpReturn
|
||||
%68 = OpLabel
|
||||
OpStore %32 %42
|
||||
OpStore %42 %39
|
||||
OpReturn
|
||||
%63 = OpLabel
|
||||
OpReturn
|
||||
|
@ -1,13 +1,13 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 95
|
||||
; Bound: 94
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %24 "vs_main" %15 %18 %20 %22
|
||||
OpEntryPoint Fragment %57 "fs_main" %51 %54 %56
|
||||
OpExecutionMode %57 OriginUpperLeft
|
||||
OpEntryPoint Vertex %21 "vs_main" %12 %15 %17 %19
|
||||
OpEntryPoint Fragment %49 "fs_main" %43 %46 %48
|
||||
OpExecutionMode %49 OriginUpperLeft
|
||||
%3 = OpString "debug-symbol-simple.wgsl"
|
||||
OpSource Unknown 0 %3 "struct VertexInput {
|
||||
@location(0) position: vec3<f32>,
|
||||
@ -48,29 +48,29 @@ OpName %6 "VertexInput"
|
||||
OpMemberName %8 0 "clip_position"
|
||||
OpMemberName %8 1 "color"
|
||||
OpName %8 "VertexOutput"
|
||||
OpName %10 "out"
|
||||
OpName %15 "position"
|
||||
OpName %18 "color"
|
||||
OpName %20 "clip_position"
|
||||
OpName %22 "color"
|
||||
OpName %24 "vs_main"
|
||||
OpName %41 "color"
|
||||
OpName %43 "i"
|
||||
OpName %46 "ii"
|
||||
OpName %51 "clip_position"
|
||||
OpName %54 "color"
|
||||
OpName %57 "fs_main"
|
||||
OpName %12 "position"
|
||||
OpName %15 "color"
|
||||
OpName %17 "clip_position"
|
||||
OpName %19 "color"
|
||||
OpName %21 "vs_main"
|
||||
OpName %24 "out"
|
||||
OpName %43 "clip_position"
|
||||
OpName %46 "color"
|
||||
OpName %49 "fs_main"
|
||||
OpName %55 "color"
|
||||
OpName %57 "i"
|
||||
OpName %59 "ii"
|
||||
OpMemberDecorate %6 0 Offset 0
|
||||
OpMemberDecorate %6 1 Offset 16
|
||||
OpMemberDecorate %8 0 Offset 0
|
||||
OpMemberDecorate %8 1 Offset 16
|
||||
OpDecorate %15 Location 0
|
||||
OpDecorate %18 Location 1
|
||||
OpDecorate %20 BuiltIn Position
|
||||
OpDecorate %22 Location 0
|
||||
OpDecorate %51 BuiltIn FragCoord
|
||||
OpDecorate %54 Location 0
|
||||
OpDecorate %56 Location 0
|
||||
OpDecorate %12 Location 0
|
||||
OpDecorate %15 Location 1
|
||||
OpDecorate %17 BuiltIn Position
|
||||
OpDecorate %19 Location 0
|
||||
OpDecorate %43 BuiltIn FragCoord
|
||||
OpDecorate %46 Location 0
|
||||
OpDecorate %48 Location 0
|
||||
%2 = OpTypeVoid
|
||||
%5 = OpTypeFloat 32
|
||||
%4 = OpTypeVector %5 3
|
||||
@ -78,140 +78,137 @@ OpDecorate %56 Location 0
|
||||
%7 = OpTypeVector %5 4
|
||||
%8 = OpTypeStruct %7 %4
|
||||
%9 = OpTypeInt 32 1
|
||||
%11 = OpTypePointer Function %8
|
||||
%12 = OpConstantNull %8
|
||||
%16 = OpTypePointer Input %4
|
||||
%15 = OpVariable %16 Input
|
||||
%18 = OpVariable %16 Input
|
||||
%21 = OpTypePointer Output %7
|
||||
%20 = OpVariable %21 Output
|
||||
%23 = OpTypePointer Output %4
|
||||
%22 = OpVariable %23 Output
|
||||
%25 = OpTypeFunction %2
|
||||
%26 = OpConstant %5 1.0
|
||||
%13 = OpTypePointer Input %4
|
||||
%12 = OpVariable %13 Input
|
||||
%15 = OpVariable %13 Input
|
||||
%18 = OpTypePointer Output %7
|
||||
%17 = OpVariable %18 Output
|
||||
%20 = OpTypePointer Output %4
|
||||
%19 = OpVariable %20 Output
|
||||
%22 = OpTypeFunction %2
|
||||
%23 = OpConstant %5 1.0
|
||||
%25 = OpTypePointer Function %8
|
||||
%26 = OpConstantNull %8
|
||||
%28 = OpTypePointer Function %4
|
||||
%31 = OpTypeInt 32 0
|
||||
%30 = OpConstant %31 1
|
||||
%33 = OpTypePointer Function %7
|
||||
%36 = OpConstant %31 0
|
||||
%42 = OpConstantNull %4
|
||||
%44 = OpTypePointer Function %9
|
||||
%45 = OpConstantNull %9
|
||||
%47 = OpTypePointer Function %5
|
||||
%48 = OpConstantNull %5
|
||||
%52 = OpTypePointer Input %7
|
||||
%51 = OpVariable %52 Input
|
||||
%54 = OpVariable %16 Input
|
||||
%56 = OpVariable %21 Output
|
||||
%58 = OpConstant %9 0
|
||||
%59 = OpConstant %9 10
|
||||
%60 = OpConstant %5 0.001
|
||||
%61 = OpConstant %5 0.002
|
||||
%62 = OpConstant %9 1
|
||||
%70 = OpTypeBool
|
||||
%78 = OpTypePointer Function %5
|
||||
%24 = OpFunction %2 None %25
|
||||
%13 = OpLabel
|
||||
%10 = OpVariable %11 Function %12
|
||||
%17 = OpLoad %4 %15
|
||||
%19 = OpLoad %4 %18
|
||||
%14 = OpCompositeConstruct %6 %17 %19
|
||||
%44 = OpTypePointer Input %7
|
||||
%43 = OpVariable %44 Input
|
||||
%46 = OpVariable %13 Input
|
||||
%48 = OpVariable %18 Output
|
||||
%50 = OpConstant %9 0
|
||||
%51 = OpConstant %9 10
|
||||
%52 = OpConstant %5 0.001
|
||||
%53 = OpConstant %5 0.002
|
||||
%54 = OpConstant %9 1
|
||||
%56 = OpConstantNull %4
|
||||
%58 = OpTypePointer Function %9
|
||||
%60 = OpTypePointer Function %5
|
||||
%61 = OpConstantNull %5
|
||||
%69 = OpTypeBool
|
||||
%77 = OpTypePointer Function %5
|
||||
%21 = OpFunction %2 None %22
|
||||
%10 = OpLabel
|
||||
%24 = OpVariable %25 Function %26
|
||||
%14 = OpLoad %4 %12
|
||||
%16 = OpLoad %4 %15
|
||||
%11 = OpCompositeConstruct %6 %14 %16
|
||||
OpBranch %27
|
||||
%27 = OpLabel
|
||||
OpLine %3 16 5
|
||||
%29 = OpCompositeExtract %4 %14 1
|
||||
%29 = OpCompositeExtract %4 %11 1
|
||||
OpLine %3 16 5
|
||||
%32 = OpAccessChain %28 %10 %30
|
||||
%32 = OpAccessChain %28 %24 %30
|
||||
OpStore %32 %29
|
||||
OpLine %3 17 5
|
||||
%34 = OpCompositeExtract %4 %14 0
|
||||
%34 = OpCompositeExtract %4 %11 0
|
||||
OpLine %3 17 25
|
||||
%35 = OpCompositeConstruct %7 %34 %26
|
||||
%35 = OpCompositeConstruct %7 %34 %23
|
||||
OpLine %3 17 5
|
||||
%37 = OpAccessChain %33 %10 %36
|
||||
%37 = OpAccessChain %33 %24 %36
|
||||
OpStore %37 %35
|
||||
OpLine %3 1 1
|
||||
%38 = OpLoad %8 %10
|
||||
%38 = OpLoad %8 %24
|
||||
%39 = OpCompositeExtract %7 %38 0
|
||||
OpStore %20 %39
|
||||
OpStore %17 %39
|
||||
%40 = OpCompositeExtract %4 %38 1
|
||||
OpStore %22 %40
|
||||
OpStore %19 %40
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%57 = OpFunction %2 None %25
|
||||
%49 = OpLabel
|
||||
%41 = OpVariable %28 Function %42
|
||||
%43 = OpVariable %44 Function %45
|
||||
%46 = OpVariable %47 Function %48
|
||||
%53 = OpLoad %7 %51
|
||||
%55 = OpLoad %4 %54
|
||||
%50 = OpCompositeConstruct %8 %53 %55
|
||||
OpBranch %63
|
||||
%63 = OpLabel
|
||||
%49 = OpFunction %2 None %22
|
||||
%41 = OpLabel
|
||||
%55 = OpVariable %28 Function %56
|
||||
%57 = OpVariable %58 Function %50
|
||||
%59 = OpVariable %60 Function %61
|
||||
%45 = OpLoad %7 %43
|
||||
%47 = OpLoad %4 %46
|
||||
%42 = OpCompositeConstruct %8 %45 %47
|
||||
OpBranch %62
|
||||
%62 = OpLabel
|
||||
OpLine %3 25 17
|
||||
%64 = OpCompositeExtract %4 %50 1
|
||||
%63 = OpCompositeExtract %4 %42 1
|
||||
OpLine %3 25 5
|
||||
OpStore %41 %64
|
||||
OpLine %3 26 10
|
||||
OpStore %43 %58
|
||||
OpBranch %65
|
||||
%65 = OpLabel
|
||||
OpStore %55 %63
|
||||
OpBranch %64
|
||||
%64 = OpLabel
|
||||
OpLine %3 26 5
|
||||
OpLoopMerge %66 %68 None
|
||||
OpBranch %67
|
||||
%67 = OpLabel
|
||||
OpLine %3 1 1
|
||||
%69 = OpLoad %9 %43
|
||||
OpLine %3 26 21
|
||||
%71 = OpSLessThan %70 %69 %59
|
||||
OpLine %3 26 20
|
||||
OpSelectionMerge %72 None
|
||||
OpBranchConditional %71 %72 %73
|
||||
%73 = OpLabel
|
||||
OpLoopMerge %65 %67 None
|
||||
OpBranch %66
|
||||
%72 = OpLabel
|
||||
OpBranch %74
|
||||
%74 = OpLabel
|
||||
OpLine %3 27 18
|
||||
%76 = OpLoad %9 %43
|
||||
%77 = OpConvertSToF %5 %76
|
||||
OpLine %3 27 9
|
||||
OpStore %46 %77
|
||||
OpLine %3 28 9
|
||||
%79 = OpLoad %5 %46
|
||||
OpLine %3 28 9
|
||||
%80 = OpFMul %5 %79 %60
|
||||
%81 = OpAccessChain %78 %41 %36
|
||||
%82 = OpLoad %5 %81
|
||||
%83 = OpFAdd %5 %82 %80
|
||||
OpLine %3 28 9
|
||||
%84 = OpAccessChain %78 %41 %36
|
||||
OpStore %84 %83
|
||||
OpLine %3 29 9
|
||||
%85 = OpLoad %5 %46
|
||||
OpLine %3 29 9
|
||||
%86 = OpFMul %5 %85 %61
|
||||
%87 = OpAccessChain %78 %41 %30
|
||||
%88 = OpLoad %5 %87
|
||||
%89 = OpFAdd %5 %88 %86
|
||||
OpLine %3 29 9
|
||||
%90 = OpAccessChain %78 %41 %30
|
||||
OpStore %90 %89
|
||||
OpBranch %75
|
||||
%75 = OpLabel
|
||||
OpBranch %68
|
||||
%68 = OpLabel
|
||||
OpLine %3 26 29
|
||||
%91 = OpLoad %9 %43
|
||||
%92 = OpIAdd %9 %91 %62
|
||||
OpLine %3 26 29
|
||||
OpStore %43 %92
|
||||
OpBranch %65
|
||||
%66 = OpLabel
|
||||
OpLine %3 1 1
|
||||
%93 = OpLoad %4 %41
|
||||
%68 = OpLoad %9 %57
|
||||
OpLine %3 26 21
|
||||
%70 = OpSLessThan %69 %68 %51
|
||||
OpLine %3 26 20
|
||||
OpSelectionMerge %71 None
|
||||
OpBranchConditional %70 %71 %72
|
||||
%72 = OpLabel
|
||||
OpBranch %65
|
||||
%71 = OpLabel
|
||||
OpBranch %73
|
||||
%73 = OpLabel
|
||||
OpLine %3 27 18
|
||||
%75 = OpLoad %9 %57
|
||||
%76 = OpConvertSToF %5 %75
|
||||
OpLine %3 27 9
|
||||
OpStore %59 %76
|
||||
OpLine %3 28 9
|
||||
%78 = OpLoad %5 %59
|
||||
OpLine %3 28 9
|
||||
%79 = OpFMul %5 %78 %52
|
||||
%80 = OpAccessChain %77 %55 %36
|
||||
%81 = OpLoad %5 %80
|
||||
%82 = OpFAdd %5 %81 %79
|
||||
OpLine %3 28 9
|
||||
%83 = OpAccessChain %77 %55 %36
|
||||
OpStore %83 %82
|
||||
OpLine %3 29 9
|
||||
%84 = OpLoad %5 %59
|
||||
OpLine %3 29 9
|
||||
%85 = OpFMul %5 %84 %53
|
||||
%86 = OpAccessChain %77 %55 %30
|
||||
%87 = OpLoad %5 %86
|
||||
%88 = OpFAdd %5 %87 %85
|
||||
OpLine %3 29 9
|
||||
%89 = OpAccessChain %77 %55 %30
|
||||
OpStore %89 %88
|
||||
OpBranch %74
|
||||
%74 = OpLabel
|
||||
OpBranch %67
|
||||
%67 = OpLabel
|
||||
OpLine %3 26 29
|
||||
%90 = OpLoad %9 %57
|
||||
%91 = OpIAdd %9 %90 %54
|
||||
OpLine %3 26 29
|
||||
OpStore %57 %91
|
||||
OpBranch %64
|
||||
%65 = OpLabel
|
||||
OpLine %3 1 1
|
||||
%92 = OpLoad %4 %55
|
||||
OpLine %3 32 12
|
||||
%94 = OpCompositeConstruct %7 %93 %26
|
||||
OpStore %56 %94
|
||||
%93 = OpCompositeConstruct %7 %92 %23
|
||||
OpStore %48 %93
|
||||
OpReturn
|
||||
OpFunctionEnd
|
File diff suppressed because it is too large
Load Diff
@ -1,55 +1,52 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 35
|
||||
; Bound: 34
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %17 "main" %11 %14 %16
|
||||
OpExecutionMode %17 OriginUpperLeft
|
||||
OpEntryPoint Fragment %13 "main" %7 %10 %12
|
||||
OpExecutionMode %13 OriginUpperLeft
|
||||
OpMemberDecorate %5 0 Offset 0
|
||||
OpMemberDecorate %5 1 Offset 16
|
||||
OpDecorate %11 BuiltIn FragCoord
|
||||
OpDecorate %14 Location 0
|
||||
OpDecorate %16 Location 0
|
||||
OpDecorate %16 Index 1
|
||||
OpDecorate %7 BuiltIn FragCoord
|
||||
OpDecorate %10 Location 0
|
||||
OpDecorate %12 Location 0
|
||||
OpDecorate %12 Index 1
|
||||
%2 = OpTypeVoid
|
||||
%4 = OpTypeFloat 32
|
||||
%3 = OpTypeVector %4 4
|
||||
%5 = OpTypeStruct %3 %3
|
||||
%7 = OpTypePointer Function %3
|
||||
%8 = OpConstantNull %3
|
||||
%12 = OpTypePointer Input %3
|
||||
%11 = OpVariable %12 Input
|
||||
%15 = OpTypePointer Output %3
|
||||
%14 = OpVariable %15 Output
|
||||
%16 = OpVariable %15 Output
|
||||
%18 = OpTypeFunction %2
|
||||
%19 = OpConstant %4 0.4
|
||||
%20 = OpConstant %4 0.3
|
||||
%21 = OpConstant %4 0.2
|
||||
%22 = OpConstant %4 0.1
|
||||
%23 = OpConstant %4 0.9
|
||||
%24 = OpConstant %4 0.8
|
||||
%25 = OpConstant %4 0.7
|
||||
%26 = OpConstant %4 0.6
|
||||
%17 = OpFunction %2 None %18
|
||||
%10 = OpLabel
|
||||
%6 = OpVariable %7 Function %8
|
||||
%9 = OpVariable %7 Function %8
|
||||
%13 = OpLoad %3 %11
|
||||
OpBranch %27
|
||||
%27 = OpLabel
|
||||
%28 = OpCompositeConstruct %3 %19 %20 %21 %22
|
||||
OpStore %6 %28
|
||||
%29 = OpCompositeConstruct %3 %23 %24 %25 %26
|
||||
OpStore %9 %29
|
||||
%30 = OpLoad %3 %6
|
||||
%31 = OpLoad %3 %9
|
||||
%32 = OpCompositeConstruct %5 %30 %31
|
||||
%33 = OpCompositeExtract %3 %32 0
|
||||
OpStore %14 %33
|
||||
%34 = OpCompositeExtract %3 %32 1
|
||||
OpStore %16 %34
|
||||
%8 = OpTypePointer Input %3
|
||||
%7 = OpVariable %8 Input
|
||||
%11 = OpTypePointer Output %3
|
||||
%10 = OpVariable %11 Output
|
||||
%12 = OpVariable %11 Output
|
||||
%14 = OpTypeFunction %2
|
||||
%15 = OpConstant %4 0.4
|
||||
%16 = OpConstant %4 0.3
|
||||
%17 = OpConstant %4 0.2
|
||||
%18 = OpConstant %4 0.1
|
||||
%19 = OpConstantComposite %3 %15 %16 %17 %18
|
||||
%20 = OpConstant %4 0.9
|
||||
%21 = OpConstant %4 0.8
|
||||
%22 = OpConstant %4 0.7
|
||||
%23 = OpConstant %4 0.6
|
||||
%24 = OpConstantComposite %3 %20 %21 %22 %23
|
||||
%26 = OpTypePointer Function %3
|
||||
%13 = OpFunction %2 None %14
|
||||
%6 = OpLabel
|
||||
%25 = OpVariable %26 Function %19
|
||||
%27 = OpVariable %26 Function %24
|
||||
%9 = OpLoad %3 %7
|
||||
OpBranch %28
|
||||
%28 = OpLabel
|
||||
%29 = OpLoad %3 %25
|
||||
%30 = OpLoad %3 %27
|
||||
%31 = OpCompositeConstruct %5 %29 %30
|
||||
%32 = OpCompositeExtract %3 %31 0
|
||||
OpStore %10 %32
|
||||
%33 = OpCompositeExtract %3 %31 1
|
||||
OpStore %12 %33
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -40,37 +40,37 @@ OpDecorate %21 Location 0
|
||||
%25 = OpTypePointer PushConstant %6
|
||||
%26 = OpConstant %3 0
|
||||
%28 = OpConstant %8 1.0
|
||||
%31 = OpTypePointer PushConstant %3
|
||||
%34 = OpTypeBool
|
||||
%40 = OpTypeVector %8 3
|
||||
%29 = OpTypeVector %8 3
|
||||
%30 = OpConstantComposite %29 %28 %28 %28
|
||||
%33 = OpTypePointer PushConstant %3
|
||||
%36 = OpTypeBool
|
||||
%23 = OpFunction %2 None %24
|
||||
%13 = OpLabel
|
||||
%17 = OpLoad %7 %15
|
||||
%20 = OpLoad %3 %18
|
||||
%14 = OpCompositeConstruct %9 %17 %20
|
||||
%27 = OpAccessChain %25 %10 %26
|
||||
OpBranch %29
|
||||
%29 = OpLabel
|
||||
%30 = OpCompositeExtract %3 %14 1
|
||||
%32 = OpAccessChain %31 %27 %26
|
||||
%33 = OpLoad %3 %32
|
||||
%35 = OpIEqual %34 %30 %33
|
||||
OpSelectionMerge %36 None
|
||||
OpBranchConditional %35 %37 %38
|
||||
%37 = OpLabel
|
||||
%39 = OpCompositeExtract %7 %14 0
|
||||
OpStore %21 %39
|
||||
OpBranch %31
|
||||
%31 = OpLabel
|
||||
%32 = OpCompositeExtract %3 %14 1
|
||||
%34 = OpAccessChain %33 %27 %26
|
||||
%35 = OpLoad %3 %34
|
||||
%37 = OpIEqual %36 %32 %35
|
||||
OpSelectionMerge %38 None
|
||||
OpBranchConditional %37 %39 %40
|
||||
%39 = OpLabel
|
||||
%41 = OpCompositeExtract %7 %14 0
|
||||
OpStore %21 %41
|
||||
OpReturn
|
||||
%38 = OpLabel
|
||||
%41 = OpCompositeConstruct %40 %28 %28 %28
|
||||
%40 = OpLabel
|
||||
%42 = OpCompositeExtract %7 %14 0
|
||||
%43 = OpVectorShuffle %40 %42 %42 0 1 2
|
||||
%44 = OpFSub %40 %41 %43
|
||||
%43 = OpVectorShuffle %29 %42 %42 0 1 2
|
||||
%44 = OpFSub %29 %30 %43
|
||||
%45 = OpCompositeExtract %7 %14 0
|
||||
%46 = OpCompositeExtract %8 %45 3
|
||||
%47 = OpCompositeConstruct %7 %44 %46
|
||||
OpStore %21 %47
|
||||
OpReturn
|
||||
%36 = OpLabel
|
||||
%38 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -5,10 +5,10 @@
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %33 "main_vec4vec3" %21 %23 %25 %27 %29 %31
|
||||
OpEntryPoint Fragment %85 "main_vec2scalar" %73 %75 %77 %79 %81 %83
|
||||
OpExecutionMode %33 OriginUpperLeft
|
||||
OpExecutionMode %85 OriginUpperLeft
|
||||
OpEntryPoint Fragment %30 "main_vec4vec3" %18 %20 %22 %24 %26 %28
|
||||
OpEntryPoint Fragment %82 "main_vec2scalar" %70 %72 %74 %76 %78 %80
|
||||
OpExecutionMode %30 OriginUpperLeft
|
||||
OpExecutionMode %82 OriginUpperLeft
|
||||
OpMemberDecorate %12 0 Offset 0
|
||||
OpMemberDecorate %12 1 Offset 16
|
||||
OpMemberDecorate %12 2 Offset 32
|
||||
@ -21,18 +21,18 @@ OpMemberDecorate %16 2 Offset 16
|
||||
OpMemberDecorate %16 3 Offset 24
|
||||
OpMemberDecorate %16 4 Offset 28
|
||||
OpMemberDecorate %16 5 Offset 32
|
||||
OpDecorate %21 Location 0
|
||||
OpDecorate %23 Location 1
|
||||
OpDecorate %25 Location 2
|
||||
OpDecorate %27 Location 3
|
||||
OpDecorate %29 Location 4
|
||||
OpDecorate %31 Location 5
|
||||
OpDecorate %73 Location 0
|
||||
OpDecorate %75 Location 1
|
||||
OpDecorate %77 Location 2
|
||||
OpDecorate %79 Location 3
|
||||
OpDecorate %81 Location 4
|
||||
OpDecorate %83 Location 5
|
||||
OpDecorate %18 Location 0
|
||||
OpDecorate %20 Location 1
|
||||
OpDecorate %22 Location 2
|
||||
OpDecorate %24 Location 3
|
||||
OpDecorate %26 Location 4
|
||||
OpDecorate %28 Location 5
|
||||
OpDecorate %70 Location 0
|
||||
OpDecorate %72 Location 1
|
||||
OpDecorate %74 Location 2
|
||||
OpDecorate %76 Location 3
|
||||
OpDecorate %78 Location 4
|
||||
OpDecorate %80 Location 5
|
||||
%2 = OpTypeVoid
|
||||
%4 = OpTypeFloat 32
|
||||
%3 = OpTypeVector %4 4
|
||||
@ -48,125 +48,125 @@ OpDecorate %83 Location 5
|
||||
%14 = OpTypeVector %6 2
|
||||
%15 = OpTypeVector %8 2
|
||||
%16 = OpTypeStruct %13 %14 %15 %4 %6 %8
|
||||
%18 = OpTypePointer Function %12
|
||||
%19 = OpConstantNull %12
|
||||
%22 = OpTypePointer Output %3
|
||||
%21 = OpVariable %22 Output
|
||||
%24 = OpTypePointer Output %5
|
||||
%23 = OpVariable %24 Output
|
||||
%26 = OpTypePointer Output %7
|
||||
%25 = OpVariable %26 Output
|
||||
%28 = OpTypePointer Output %9
|
||||
%27 = OpVariable %28 Output
|
||||
%30 = OpTypePointer Output %10
|
||||
%29 = OpVariable %30 Output
|
||||
%32 = OpTypePointer Output %11
|
||||
%31 = OpVariable %32 Output
|
||||
%34 = OpTypeFunction %2
|
||||
%35 = OpConstant %4 0.0
|
||||
%36 = OpConstant %6 0
|
||||
%37 = OpConstant %8 0
|
||||
%39 = OpTypePointer Function %3
|
||||
%42 = OpTypePointer Function %5
|
||||
%44 = OpConstant %8 1
|
||||
%46 = OpTypePointer Function %7
|
||||
%48 = OpConstant %8 2
|
||||
%50 = OpTypePointer Function %9
|
||||
%52 = OpConstant %8 3
|
||||
%54 = OpTypePointer Function %10
|
||||
%56 = OpConstant %8 4
|
||||
%58 = OpTypePointer Function %11
|
||||
%19 = OpTypePointer Output %3
|
||||
%18 = OpVariable %19 Output
|
||||
%21 = OpTypePointer Output %5
|
||||
%20 = OpVariable %21 Output
|
||||
%23 = OpTypePointer Output %7
|
||||
%22 = OpVariable %23 Output
|
||||
%25 = OpTypePointer Output %9
|
||||
%24 = OpVariable %25 Output
|
||||
%27 = OpTypePointer Output %10
|
||||
%26 = OpVariable %27 Output
|
||||
%29 = OpTypePointer Output %11
|
||||
%28 = OpVariable %29 Output
|
||||
%31 = 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
|
||||
%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
|
||||
%53 = OpTypePointer Function %9
|
||||
%54 = OpConstant %8 3
|
||||
%56 = OpTypePointer Function %10
|
||||
%57 = OpConstant %8 4
|
||||
%59 = OpTypePointer Function %11
|
||||
%60 = OpConstant %8 5
|
||||
%70 = OpTypePointer Function %16
|
||||
%71 = OpConstantNull %16
|
||||
%74 = OpTypePointer Output %13
|
||||
%73 = OpVariable %74 Output
|
||||
%76 = OpTypePointer Output %14
|
||||
%75 = OpVariable %76 Output
|
||||
%78 = OpTypePointer Output %15
|
||||
%77 = OpVariable %78 Output
|
||||
%80 = OpTypePointer Output %4
|
||||
%79 = OpVariable %80 Output
|
||||
%82 = OpTypePointer Output %6
|
||||
%81 = OpVariable %82 Output
|
||||
%84 = OpTypePointer Output %8
|
||||
%83 = OpVariable %84 Output
|
||||
%87 = OpTypePointer Function %13
|
||||
%90 = OpTypePointer Function %14
|
||||
%93 = OpTypePointer Function %15
|
||||
%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
|
||||
%76 = OpVariable %77 Output
|
||||
%79 = OpTypePointer Output %6
|
||||
%78 = OpVariable %79 Output
|
||||
%81 = OpTypePointer Output %8
|
||||
%80 = OpVariable %81 Output
|
||||
%83 = OpConstantComposite %13 %32 %32
|
||||
%84 = OpConstantComposite %14 %34 %34
|
||||
%85 = OpConstantComposite %15 %36 %36
|
||||
%87 = OpTypePointer Function %16
|
||||
%88 = OpConstantNull %16
|
||||
%90 = OpTypePointer Function %13
|
||||
%92 = OpTypePointer Function %14
|
||||
%94 = OpTypePointer Function %15
|
||||
%96 = OpTypePointer Function %4
|
||||
%98 = OpTypePointer Function %6
|
||||
%100 = OpTypePointer Function %8
|
||||
%33 = OpFunction %2 None %34
|
||||
%20 = OpLabel
|
||||
%17 = OpVariable %18 Function %19
|
||||
OpBranch %38
|
||||
%38 = OpLabel
|
||||
%40 = OpCompositeConstruct %3 %35 %35 %35 %35
|
||||
%41 = OpAccessChain %39 %17 %37
|
||||
OpStore %41 %40
|
||||
%43 = OpCompositeConstruct %5 %36 %36 %36 %36
|
||||
%45 = OpAccessChain %42 %17 %44
|
||||
OpStore %45 %43
|
||||
%47 = OpCompositeConstruct %7 %37 %37 %37 %37
|
||||
%49 = OpAccessChain %46 %17 %48
|
||||
OpStore %49 %47
|
||||
%51 = OpCompositeConstruct %9 %35 %35 %35
|
||||
%53 = OpAccessChain %50 %17 %52
|
||||
OpStore %53 %51
|
||||
%55 = OpCompositeConstruct %10 %36 %36 %36
|
||||
%57 = OpAccessChain %54 %17 %56
|
||||
OpStore %57 %55
|
||||
%59 = OpCompositeConstruct %11 %37 %37 %37
|
||||
%61 = OpAccessChain %58 %17 %60
|
||||
OpStore %61 %59
|
||||
%62 = OpLoad %12 %17
|
||||
%30 = OpFunction %2 None %31
|
||||
%17 = OpLabel
|
||||
%41 = OpVariable %42 Function %43
|
||||
OpBranch %44
|
||||
%44 = OpLabel
|
||||
%46 = OpAccessChain %45 %41 %36
|
||||
OpStore %46 %33
|
||||
%49 = OpAccessChain %47 %41 %48
|
||||
OpStore %49 %35
|
||||
%52 = OpAccessChain %50 %41 %51
|
||||
OpStore %52 %37
|
||||
%55 = OpAccessChain %53 %41 %54
|
||||
OpStore %55 %38
|
||||
%58 = OpAccessChain %56 %41 %57
|
||||
OpStore %58 %39
|
||||
%61 = OpAccessChain %59 %41 %60
|
||||
OpStore %61 %40
|
||||
%62 = OpLoad %12 %41
|
||||
%63 = OpCompositeExtract %3 %62 0
|
||||
OpStore %21 %63
|
||||
OpStore %18 %63
|
||||
%64 = OpCompositeExtract %5 %62 1
|
||||
OpStore %23 %64
|
||||
OpStore %20 %64
|
||||
%65 = OpCompositeExtract %7 %62 2
|
||||
OpStore %25 %65
|
||||
OpStore %22 %65
|
||||
%66 = OpCompositeExtract %9 %62 3
|
||||
OpStore %27 %66
|
||||
OpStore %24 %66
|
||||
%67 = OpCompositeExtract %10 %62 4
|
||||
OpStore %29 %67
|
||||
OpStore %26 %67
|
||||
%68 = OpCompositeExtract %11 %62 5
|
||||
OpStore %31 %68
|
||||
OpStore %28 %68
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%85 = OpFunction %2 None %34
|
||||
%72 = OpLabel
|
||||
%69 = OpVariable %70 Function %71
|
||||
OpBranch %86
|
||||
%86 = OpLabel
|
||||
%88 = OpCompositeConstruct %13 %35 %35
|
||||
%89 = OpAccessChain %87 %69 %37
|
||||
OpStore %89 %88
|
||||
%91 = OpCompositeConstruct %14 %36 %36
|
||||
%92 = OpAccessChain %90 %69 %44
|
||||
OpStore %92 %91
|
||||
%94 = OpCompositeConstruct %15 %37 %37
|
||||
%95 = OpAccessChain %93 %69 %48
|
||||
OpStore %95 %94
|
||||
%97 = OpAccessChain %96 %69 %52
|
||||
OpStore %97 %35
|
||||
%99 = OpAccessChain %98 %69 %56
|
||||
OpStore %99 %36
|
||||
%101 = OpAccessChain %100 %69 %60
|
||||
OpStore %101 %37
|
||||
%102 = OpLoad %16 %69
|
||||
%82 = OpFunction %2 None %31
|
||||
%69 = OpLabel
|
||||
%86 = OpVariable %87 Function %88
|
||||
OpBranch %89
|
||||
%89 = OpLabel
|
||||
%91 = OpAccessChain %90 %86 %36
|
||||
OpStore %91 %83
|
||||
%93 = OpAccessChain %92 %86 %48
|
||||
OpStore %93 %84
|
||||
%95 = OpAccessChain %94 %86 %51
|
||||
OpStore %95 %85
|
||||
%97 = OpAccessChain %96 %86 %54
|
||||
OpStore %97 %32
|
||||
%99 = OpAccessChain %98 %86 %57
|
||||
OpStore %99 %34
|
||||
%101 = OpAccessChain %100 %86 %60
|
||||
OpStore %101 %36
|
||||
%102 = OpLoad %16 %86
|
||||
%103 = OpCompositeExtract %13 %102 0
|
||||
OpStore %73 %103
|
||||
OpStore %70 %103
|
||||
%104 = OpCompositeExtract %14 %102 1
|
||||
OpStore %75 %104
|
||||
OpStore %72 %104
|
||||
%105 = OpCompositeExtract %15 %102 2
|
||||
OpStore %77 %105
|
||||
OpStore %74 %105
|
||||
%106 = OpCompositeExtract %4 %102 3
|
||||
OpStore %79 %106
|
||||
OpStore %76 %106
|
||||
%107 = OpCompositeExtract %6 %102 4
|
||||
OpStore %81 %107
|
||||
OpStore %78 %107
|
||||
%108 = OpCompositeExtract %8 %102 5
|
||||
OpStore %83 %108
|
||||
OpStore %80 %108
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,94 +1,91 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 78
|
||||
; Bound: 75
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %73 "main"
|
||||
OpExecutionMode %73 LocalSize 1 1 1
|
||||
OpEntryPoint GLCompute %70 "main"
|
||||
OpExecutionMode %70 LocalSize 1 1 1
|
||||
%2 = OpTypeVoid
|
||||
%4 = OpTypeFloat 32
|
||||
%3 = OpTypeVector %4 2
|
||||
%5 = OpTypeInt 32 1
|
||||
%8 = OpTypeFunction %3
|
||||
%9 = OpConstant %4 2.0
|
||||
%10 = OpConstant %4 0.5
|
||||
%18 = OpTypeFunction %5
|
||||
%19 = OpConstant %5 1
|
||||
%20 = OpTypeInt 32 0
|
||||
%21 = OpConstant %20 1
|
||||
%22 = OpConstant %5 4
|
||||
%23 = OpConstant %5 2
|
||||
%25 = OpTypeVector %5 2
|
||||
%29 = OpConstantNull %5
|
||||
%37 = OpTypeVector %20 3
|
||||
%41 = OpConstantNull %20
|
||||
%53 = OpTypeVector %5 4
|
||||
%74 = OpTypeFunction %2
|
||||
%10 = OpConstantComposite %3 %9 %9
|
||||
%11 = OpConstant %4 0.5
|
||||
%12 = OpConstantComposite %3 %11 %11
|
||||
%17 = OpTypeFunction %5
|
||||
%18 = OpConstant %5 1
|
||||
%19 = OpTypeVector %5 2
|
||||
%20 = OpConstantComposite %19 %18 %18
|
||||
%21 = OpTypeInt 32 0
|
||||
%22 = OpConstant %21 1
|
||||
%23 = OpTypeVector %21 3
|
||||
%24 = OpConstantComposite %23 %22 %22 %22
|
||||
%25 = OpConstant %5 4
|
||||
%26 = OpTypeVector %5 4
|
||||
%27 = OpConstantComposite %26 %25 %25 %25 %25
|
||||
%28 = OpConstant %5 2
|
||||
%29 = OpConstantComposite %26 %28 %28 %28 %28
|
||||
%32 = OpConstantNull %5
|
||||
%41 = OpConstantNull %21
|
||||
%71 = OpTypeFunction %2
|
||||
%7 = OpFunction %3 None %8
|
||||
%6 = OpLabel
|
||||
OpBranch %11
|
||||
%11 = OpLabel
|
||||
%12 = OpCompositeConstruct %3 %9 %9
|
||||
%13 = OpCompositeConstruct %3 %10 %10
|
||||
%14 = OpCompositeConstruct %3 %10 %10
|
||||
%15 = OpExtInst %3 %1 Fma %12 %13 %14
|
||||
OpReturnValue %15
|
||||
OpBranch %13
|
||||
%13 = OpLabel
|
||||
%14 = OpExtInst %3 %1 Fma %10 %12 %12
|
||||
OpReturnValue %14
|
||||
OpFunctionEnd
|
||||
%17 = OpFunction %5 None %18
|
||||
%16 = OpLabel
|
||||
OpBranch %24
|
||||
%24 = OpLabel
|
||||
%26 = OpCompositeConstruct %25 %19 %19
|
||||
%27 = OpCompositeConstruct %25 %19 %19
|
||||
%30 = OpCompositeExtract %5 %26 0
|
||||
%31 = OpCompositeExtract %5 %27 0
|
||||
%32 = OpIMul %5 %30 %31
|
||||
%33 = OpIAdd %5 %29 %32
|
||||
%34 = OpCompositeExtract %5 %26 1
|
||||
%35 = OpCompositeExtract %5 %27 1
|
||||
%36 = OpIMul %5 %34 %35
|
||||
%28 = OpIAdd %5 %33 %36
|
||||
%38 = OpCompositeConstruct %37 %21 %21 %21
|
||||
%39 = OpCompositeConstruct %37 %21 %21 %21
|
||||
%42 = OpCompositeExtract %20 %38 0
|
||||
%43 = OpCompositeExtract %20 %39 0
|
||||
%44 = OpIMul %20 %42 %43
|
||||
%45 = OpIAdd %20 %41 %44
|
||||
%46 = OpCompositeExtract %20 %38 1
|
||||
%47 = OpCompositeExtract %20 %39 1
|
||||
%48 = OpIMul %20 %46 %47
|
||||
%49 = OpIAdd %20 %45 %48
|
||||
%50 = OpCompositeExtract %20 %38 2
|
||||
%51 = OpCompositeExtract %20 %39 2
|
||||
%52 = OpIMul %20 %50 %51
|
||||
%40 = OpIAdd %20 %49 %52
|
||||
%54 = OpCompositeConstruct %53 %22 %22 %22 %22
|
||||
%55 = OpCompositeConstruct %53 %23 %23 %23 %23
|
||||
%57 = OpCompositeExtract %5 %54 0
|
||||
%58 = OpCompositeExtract %5 %55 0
|
||||
%59 = OpIMul %5 %57 %58
|
||||
%60 = OpIAdd %5 %29 %59
|
||||
%61 = OpCompositeExtract %5 %54 1
|
||||
%62 = OpCompositeExtract %5 %55 1
|
||||
%63 = OpIMul %5 %61 %62
|
||||
%64 = OpIAdd %5 %60 %63
|
||||
%65 = OpCompositeExtract %5 %54 2
|
||||
%66 = OpCompositeExtract %5 %55 2
|
||||
%67 = OpIMul %5 %65 %66
|
||||
%68 = OpIAdd %5 %64 %67
|
||||
%69 = OpCompositeExtract %5 %54 3
|
||||
%70 = OpCompositeExtract %5 %55 3
|
||||
%71 = OpIMul %5 %69 %70
|
||||
%56 = OpIAdd %5 %68 %71
|
||||
OpReturnValue %56
|
||||
%16 = OpFunction %5 None %17
|
||||
%15 = OpLabel
|
||||
OpBranch %30
|
||||
%30 = OpLabel
|
||||
%33 = OpCompositeExtract %5 %20 0
|
||||
%34 = OpCompositeExtract %5 %20 0
|
||||
%35 = OpIMul %5 %33 %34
|
||||
%36 = OpIAdd %5 %32 %35
|
||||
%37 = OpCompositeExtract %5 %20 1
|
||||
%38 = OpCompositeExtract %5 %20 1
|
||||
%39 = OpIMul %5 %37 %38
|
||||
%31 = OpIAdd %5 %36 %39
|
||||
%42 = OpCompositeExtract %21 %24 0
|
||||
%43 = OpCompositeExtract %21 %24 0
|
||||
%44 = OpIMul %21 %42 %43
|
||||
%45 = OpIAdd %21 %41 %44
|
||||
%46 = OpCompositeExtract %21 %24 1
|
||||
%47 = OpCompositeExtract %21 %24 1
|
||||
%48 = OpIMul %21 %46 %47
|
||||
%49 = OpIAdd %21 %45 %48
|
||||
%50 = OpCompositeExtract %21 %24 2
|
||||
%51 = OpCompositeExtract %21 %24 2
|
||||
%52 = OpIMul %21 %50 %51
|
||||
%40 = OpIAdd %21 %49 %52
|
||||
%54 = OpCompositeExtract %5 %27 0
|
||||
%55 = OpCompositeExtract %5 %29 0
|
||||
%56 = OpIMul %5 %54 %55
|
||||
%57 = OpIAdd %5 %32 %56
|
||||
%58 = OpCompositeExtract %5 %27 1
|
||||
%59 = OpCompositeExtract %5 %29 1
|
||||
%60 = OpIMul %5 %58 %59
|
||||
%61 = OpIAdd %5 %57 %60
|
||||
%62 = OpCompositeExtract %5 %27 2
|
||||
%63 = OpCompositeExtract %5 %29 2
|
||||
%64 = OpIMul %5 %62 %63
|
||||
%65 = OpIAdd %5 %61 %64
|
||||
%66 = OpCompositeExtract %5 %27 3
|
||||
%67 = OpCompositeExtract %5 %29 3
|
||||
%68 = OpIMul %5 %66 %67
|
||||
%53 = OpIAdd %5 %65 %68
|
||||
OpReturnValue %53
|
||||
OpFunctionEnd
|
||||
%73 = OpFunction %2 None %74
|
||||
%70 = OpFunction %2 None %71
|
||||
%69 = OpLabel
|
||||
OpBranch %72
|
||||
%72 = OpLabel
|
||||
OpBranch %75
|
||||
%75 = OpLabel
|
||||
%76 = OpFunctionCall %3 %7
|
||||
%77 = OpFunctionCall %5 %17
|
||||
%73 = OpFunctionCall %3 %7
|
||||
%74 = OpFunctionCall %5 %16
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,13 +1,13 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 177
|
||||
; Bound: 174
|
||||
OpCapability Shader
|
||||
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %100 "main" %119
|
||||
OpExecutionMode %100 LocalSize 1 1 1
|
||||
OpEntryPoint GLCompute %93 "main" %116
|
||||
OpExecutionMode %93 LocalSize 1 1 1
|
||||
OpDecorate %5 ArrayStride 4
|
||||
OpMemberDecorate %9 0 Offset 0
|
||||
OpMemberDecorate %9 1 Offset 12
|
||||
@ -48,7 +48,7 @@ OpDecorate %48 DescriptorSet 0
|
||||
OpDecorate %48 Binding 7
|
||||
OpDecorate %49 Block
|
||||
OpMemberDecorate %49 0 Offset 0
|
||||
OpDecorate %119 BuiltIn LocalInvocationId
|
||||
OpDecorate %116 BuiltIn LocalInvocationId
|
||||
%2 = OpTypeVoid
|
||||
%3 = OpTypeBool
|
||||
%4 = OpTypeFloat 32
|
||||
@ -99,55 +99,53 @@ OpDecorate %119 BuiltIn LocalInvocationId
|
||||
%50 = OpTypePointer Uniform %49
|
||||
%48 = OpVariable %50 Uniform
|
||||
%54 = OpTypeFunction %2 %8
|
||||
%57 = OpTypePointer Function %23
|
||||
%58 = OpConstantNull %23
|
||||
%61 = OpTypeFunction %2
|
||||
%62 = OpTypePointer StorageBuffer %9
|
||||
%63 = OpConstant %7 0
|
||||
%65 = OpConstant %4 1.0
|
||||
%66 = OpConstant %23 1
|
||||
%67 = OpConstant %4 2.0
|
||||
%68 = OpConstant %4 3.0
|
||||
%69 = OpConstantNull %24
|
||||
%58 = OpTypeFunction %2
|
||||
%59 = OpTypePointer StorageBuffer %9
|
||||
%60 = OpConstant %7 0
|
||||
%62 = OpConstant %4 1.0
|
||||
%63 = OpConstantComposite %8 %62 %62 %62
|
||||
%64 = OpConstant %23 1
|
||||
%65 = OpConstant %4 2.0
|
||||
%66 = OpConstant %4 3.0
|
||||
%67 = OpConstantNull %24
|
||||
%69 = OpTypePointer Function %23
|
||||
%71 = OpTypePointer StorageBuffer %8
|
||||
%74 = OpTypePointer StorageBuffer %4
|
||||
%94 = OpTypePointer Function %4
|
||||
%95 = OpConstantNull %4
|
||||
%97 = OpTypePointer Function %3
|
||||
%98 = OpConstantNull %3
|
||||
%102 = OpTypePointer StorageBuffer %11
|
||||
%104 = OpTypePointer Uniform %13
|
||||
%106 = OpTypePointer Uniform %8
|
||||
%108 = OpTypePointer Uniform %15
|
||||
%110 = OpTypePointer Uniform %19
|
||||
%112 = OpTypePointer Uniform %22
|
||||
%114 = OpConstant %4 4.0
|
||||
%116 = OpConstantNull %5
|
||||
%117 = OpConstantNull %7
|
||||
%118 = OpTypeVector %7 3
|
||||
%120 = OpTypePointer Input %118
|
||||
%119 = OpVariable %120 Input
|
||||
%122 = OpConstantNull %118
|
||||
%123 = OpTypeVector %3 3
|
||||
%128 = OpConstant %7 264
|
||||
%131 = OpTypePointer Workgroup %4
|
||||
%132 = OpTypePointer Uniform %21
|
||||
%133 = OpTypePointer Uniform %20
|
||||
%136 = OpTypePointer Uniform %17
|
||||
%137 = OpTypePointer Uniform %16
|
||||
%138 = OpTypePointer Uniform %12
|
||||
%143 = OpConstant %7 7
|
||||
%149 = OpConstant %7 6
|
||||
%151 = OpTypePointer StorageBuffer %10
|
||||
%152 = OpConstant %7 1
|
||||
%155 = OpConstant %7 5
|
||||
%157 = OpTypePointer Uniform %12
|
||||
%158 = OpTypePointer Uniform %4
|
||||
%159 = OpConstant %7 3
|
||||
%162 = OpConstant %7 4
|
||||
%164 = OpTypePointer StorageBuffer %4
|
||||
%175 = OpConstant %23 2
|
||||
%176 = OpConstant %7 256
|
||||
%73 = OpTypePointer StorageBuffer %4
|
||||
%95 = OpTypePointer StorageBuffer %11
|
||||
%97 = OpTypePointer Uniform %13
|
||||
%99 = OpTypePointer Uniform %8
|
||||
%101 = OpTypePointer Uniform %15
|
||||
%103 = OpTypePointer Uniform %19
|
||||
%105 = OpTypePointer Uniform %22
|
||||
%107 = OpConstant %4 4.0
|
||||
%109 = OpTypePointer Function %4
|
||||
%111 = OpTypePointer Function %3
|
||||
%113 = OpConstantNull %5
|
||||
%114 = OpConstantNull %7
|
||||
%115 = OpTypeVector %7 3
|
||||
%117 = OpTypePointer Input %115
|
||||
%116 = OpVariable %117 Input
|
||||
%119 = OpConstantNull %115
|
||||
%120 = OpTypeVector %3 3
|
||||
%125 = OpConstant %7 264
|
||||
%128 = OpTypePointer Workgroup %4
|
||||
%129 = OpTypePointer Uniform %21
|
||||
%130 = OpTypePointer Uniform %20
|
||||
%133 = OpTypePointer Uniform %17
|
||||
%134 = OpTypePointer Uniform %16
|
||||
%135 = OpTypePointer Uniform %12
|
||||
%140 = OpConstant %7 7
|
||||
%146 = OpConstant %7 6
|
||||
%148 = OpTypePointer StorageBuffer %10
|
||||
%149 = OpConstant %7 1
|
||||
%152 = OpConstant %7 5
|
||||
%154 = OpTypePointer Uniform %12
|
||||
%155 = OpTypePointer Uniform %4
|
||||
%156 = OpConstant %7 3
|
||||
%159 = OpConstant %7 4
|
||||
%161 = OpTypePointer StorageBuffer %4
|
||||
%172 = OpConstant %23 2
|
||||
%173 = OpConstant %7 256
|
||||
%53 = OpFunction %2 None %54
|
||||
%52 = OpFunctionParameter %8
|
||||
%51 = OpLabel
|
||||
@ -155,104 +153,100 @@ OpBranch %55
|
||||
%55 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%60 = OpFunction %2 None %61
|
||||
%59 = OpLabel
|
||||
%56 = OpVariable %57 Function %58
|
||||
%64 = OpAccessChain %62 %30 %63
|
||||
%57 = OpFunction %2 None %58
|
||||
%56 = OpLabel
|
||||
%68 = OpVariable %69 Function %64
|
||||
%61 = OpAccessChain %59 %30 %60
|
||||
OpBranch %70
|
||||
%70 = OpLabel
|
||||
%72 = OpCompositeConstruct %8 %65 %65 %65
|
||||
%73 = OpAccessChain %71 %64 %63
|
||||
OpStore %73 %72
|
||||
OpStore %56 %66
|
||||
%75 = OpAccessChain %74 %64 %63 %63
|
||||
%72 = OpAccessChain %71 %61 %60
|
||||
OpStore %72 %63
|
||||
%74 = OpAccessChain %73 %61 %60 %60
|
||||
OpStore %74 %62
|
||||
%75 = OpAccessChain %73 %61 %60 %60
|
||||
OpStore %75 %65
|
||||
%76 = OpAccessChain %74 %64 %63 %63
|
||||
OpStore %76 %67
|
||||
%77 = OpLoad %23 %56
|
||||
%78 = OpAccessChain %74 %64 %63 %77
|
||||
OpStore %78 %68
|
||||
%79 = OpLoad %9 %64
|
||||
%80 = OpCompositeExtract %8 %79 0
|
||||
%81 = OpCompositeExtract %8 %79 0
|
||||
%82 = OpVectorShuffle %10 %81 %81 2 0
|
||||
%83 = OpCompositeExtract %8 %79 0
|
||||
%84 = OpFunctionCall %2 %53 %83
|
||||
%85 = OpCompositeExtract %8 %79 0
|
||||
%86 = OpVectorTimesMatrix %8 %85 %69
|
||||
%87 = OpCompositeExtract %8 %79 0
|
||||
%88 = OpMatrixTimesVector %8 %69 %87
|
||||
%89 = OpCompositeExtract %8 %79 0
|
||||
%90 = OpVectorTimesScalar %8 %89 %67
|
||||
%91 = OpCompositeExtract %8 %79 0
|
||||
%92 = OpVectorTimesScalar %8 %91 %67
|
||||
%76 = OpLoad %23 %68
|
||||
%77 = OpAccessChain %73 %61 %60 %76
|
||||
OpStore %77 %66
|
||||
%78 = OpLoad %9 %61
|
||||
%79 = OpCompositeExtract %8 %78 0
|
||||
%80 = OpCompositeExtract %8 %78 0
|
||||
%81 = OpVectorShuffle %10 %80 %80 2 0
|
||||
%82 = OpCompositeExtract %8 %78 0
|
||||
%83 = OpFunctionCall %2 %53 %82
|
||||
%84 = OpCompositeExtract %8 %78 0
|
||||
%85 = OpVectorTimesMatrix %8 %84 %67
|
||||
%86 = OpCompositeExtract %8 %78 0
|
||||
%87 = OpMatrixTimesVector %8 %67 %86
|
||||
%88 = OpCompositeExtract %8 %78 0
|
||||
%89 = OpVectorTimesScalar %8 %88 %65
|
||||
%90 = OpCompositeExtract %8 %78 0
|
||||
%91 = OpVectorTimesScalar %8 %90 %65
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%100 = OpFunction %2 None %61
|
||||
%99 = OpLabel
|
||||
%93 = OpVariable %94 Function %95
|
||||
%96 = OpVariable %97 Function %98
|
||||
%101 = OpAccessChain %62 %30 %63
|
||||
%103 = OpAccessChain %102 %33 %63
|
||||
%105 = OpAccessChain %104 %36 %63
|
||||
%107 = OpAccessChain %106 %39 %63
|
||||
%109 = OpAccessChain %108 %42 %63
|
||||
%111 = OpAccessChain %110 %45 %63
|
||||
%113 = OpAccessChain %112 %48 %63
|
||||
OpBranch %115
|
||||
%115 = OpLabel
|
||||
%121 = OpLoad %118 %119
|
||||
%124 = OpIEqual %123 %121 %122
|
||||
%125 = OpAll %3 %124
|
||||
OpSelectionMerge %126 None
|
||||
OpBranchConditional %125 %127 %126
|
||||
%127 = OpLabel
|
||||
OpStore %26 %116
|
||||
OpStore %28 %117
|
||||
%93 = OpFunction %2 None %58
|
||||
%92 = OpLabel
|
||||
%108 = OpVariable %109 Function %62
|
||||
%110 = OpVariable %111 Function %25
|
||||
%94 = OpAccessChain %59 %30 %60
|
||||
%96 = OpAccessChain %95 %33 %60
|
||||
%98 = OpAccessChain %97 %36 %60
|
||||
%100 = OpAccessChain %99 %39 %60
|
||||
%102 = OpAccessChain %101 %42 %60
|
||||
%104 = OpAccessChain %103 %45 %60
|
||||
%106 = OpAccessChain %105 %48 %60
|
||||
OpBranch %112
|
||||
%112 = OpLabel
|
||||
%118 = OpLoad %115 %116
|
||||
%121 = OpIEqual %120 %118 %119
|
||||
%122 = OpAll %3 %121
|
||||
OpSelectionMerge %123 None
|
||||
OpBranchConditional %122 %124 %123
|
||||
%124 = OpLabel
|
||||
OpStore %26 %113
|
||||
OpStore %28 %114
|
||||
OpBranch %123
|
||||
%123 = OpLabel
|
||||
OpControlBarrier %18 %18 %125
|
||||
OpBranch %126
|
||||
%126 = OpLabel
|
||||
OpControlBarrier %18 %18 %128
|
||||
OpBranch %129
|
||||
%129 = OpLabel
|
||||
%130 = OpFunctionCall %2 %60
|
||||
%134 = OpAccessChain %133 %113 %63 %63
|
||||
%135 = OpLoad %20 %134
|
||||
%139 = OpAccessChain %138 %111 %63 %63 %63
|
||||
%140 = OpLoad %12 %139
|
||||
%141 = OpMatrixTimesVector %10 %135 %140
|
||||
%142 = OpCompositeExtract %4 %141 0
|
||||
%144 = OpAccessChain %131 %26 %143
|
||||
OpStore %144 %142
|
||||
%145 = OpLoad %15 %109
|
||||
%146 = OpLoad %8 %107
|
||||
%147 = OpMatrixTimesVector %10 %145 %146
|
||||
%148 = OpCompositeExtract %4 %147 0
|
||||
%150 = OpAccessChain %131 %26 %149
|
||||
OpStore %150 %148
|
||||
%153 = OpAccessChain %74 %103 %152 %152
|
||||
%154 = OpLoad %4 %153
|
||||
%156 = OpAccessChain %131 %26 %155
|
||||
OpStore %156 %154
|
||||
%160 = OpAccessChain %158 %105 %63 %159
|
||||
%161 = OpLoad %4 %160
|
||||
%163 = OpAccessChain %131 %26 %162
|
||||
OpStore %163 %161
|
||||
%165 = OpAccessChain %164 %101 %152
|
||||
%127 = OpFunctionCall %2 %57
|
||||
%131 = OpAccessChain %130 %106 %60 %60
|
||||
%132 = OpLoad %20 %131
|
||||
%136 = OpAccessChain %135 %104 %60 %60 %60
|
||||
%137 = OpLoad %12 %136
|
||||
%138 = OpMatrixTimesVector %10 %132 %137
|
||||
%139 = OpCompositeExtract %4 %138 0
|
||||
%141 = OpAccessChain %128 %26 %140
|
||||
OpStore %141 %139
|
||||
%142 = OpLoad %15 %102
|
||||
%143 = OpLoad %8 %100
|
||||
%144 = OpMatrixTimesVector %10 %142 %143
|
||||
%145 = OpCompositeExtract %4 %144 0
|
||||
%147 = OpAccessChain %128 %26 %146
|
||||
OpStore %147 %145
|
||||
%150 = OpAccessChain %73 %96 %149 %149
|
||||
%151 = OpLoad %4 %150
|
||||
%153 = OpAccessChain %128 %26 %152
|
||||
OpStore %153 %151
|
||||
%157 = OpAccessChain %155 %98 %60 %156
|
||||
%158 = OpLoad %4 %157
|
||||
%160 = OpAccessChain %128 %26 %159
|
||||
OpStore %160 %158
|
||||
%162 = OpAccessChain %161 %94 %149
|
||||
%163 = OpLoad %4 %162
|
||||
%164 = OpAccessChain %128 %26 %156
|
||||
OpStore %164 %163
|
||||
%165 = OpAccessChain %73 %94 %60 %60
|
||||
%166 = OpLoad %4 %165
|
||||
%167 = OpAccessChain %131 %26 %159
|
||||
%167 = OpAccessChain %128 %26 %18
|
||||
OpStore %167 %166
|
||||
%168 = OpAccessChain %74 %101 %63 %63
|
||||
%169 = OpLoad %4 %168
|
||||
%170 = OpAccessChain %131 %26 %18
|
||||
OpStore %170 %169
|
||||
%171 = OpAccessChain %164 %101 %152
|
||||
OpStore %171 %114
|
||||
%172 = OpArrayLength %7 %33 0
|
||||
%173 = OpConvertUToF %4 %172
|
||||
%174 = OpAccessChain %131 %26 %152
|
||||
OpStore %174 %173
|
||||
OpAtomicStore %28 %175 %176 %18
|
||||
OpStore %93 %65
|
||||
OpStore %96 %25
|
||||
%168 = OpAccessChain %161 %94 %149
|
||||
OpStore %168 %107
|
||||
%169 = OpArrayLength %7 %33 0
|
||||
%170 = OpConvertUToF %4 %169
|
||||
%171 = OpAccessChain %128 %26 %149
|
||||
OpStore %171 %170
|
||||
OpAtomicStore %28 %172 %173 %18
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,7 +1,7 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 522
|
||||
; Bound: 517
|
||||
OpCapability Shader
|
||||
OpCapability Image1D
|
||||
OpCapability Sampled1D
|
||||
@ -11,18 +11,18 @@ OpCapability ImageQuery
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %78 "main" %75
|
||||
OpEntryPoint GLCompute %169 "depth_load" %167
|
||||
OpEntryPoint Vertex %190 "queries" %188
|
||||
OpEntryPoint Vertex %242 "levels_queries" %241
|
||||
OpEntryPoint Fragment %274 "texture_sample" %273
|
||||
OpEntryPoint Fragment %420 "texture_sample_comparison" %418
|
||||
OpEntryPoint Fragment %475 "gather" %474
|
||||
OpEntryPoint Fragment %510 "depth_no_comparison" %509
|
||||
OpEntryPoint Vertex %189 "queries" %187
|
||||
OpEntryPoint Vertex %241 "levels_queries" %240
|
||||
OpEntryPoint Fragment %270 "texture_sample" %269
|
||||
OpEntryPoint Fragment %416 "texture_sample_comparison" %414
|
||||
OpEntryPoint Fragment %472 "gather" %471
|
||||
OpEntryPoint Fragment %506 "depth_no_comparison" %505
|
||||
OpExecutionMode %78 LocalSize 16 1 1
|
||||
OpExecutionMode %169 LocalSize 16 1 1
|
||||
OpExecutionMode %274 OriginUpperLeft
|
||||
OpExecutionMode %420 OriginUpperLeft
|
||||
OpExecutionMode %475 OriginUpperLeft
|
||||
OpExecutionMode %510 OriginUpperLeft
|
||||
OpExecutionMode %270 OriginUpperLeft
|
||||
OpExecutionMode %416 OriginUpperLeft
|
||||
OpExecutionMode %472 OriginUpperLeft
|
||||
OpExecutionMode %506 OriginUpperLeft
|
||||
OpName %31 "image_mipmapped_src"
|
||||
OpName %33 "image_multisampled_src"
|
||||
OpName %35 "image_depth_multisampled_src"
|
||||
@ -49,14 +49,14 @@ OpName %75 "local_id"
|
||||
OpName %78 "main"
|
||||
OpName %167 "local_id"
|
||||
OpName %169 "depth_load"
|
||||
OpName %190 "queries"
|
||||
OpName %242 "levels_queries"
|
||||
OpName %269 "a"
|
||||
OpName %274 "texture_sample"
|
||||
OpName %414 "a"
|
||||
OpName %420 "texture_sample_comparison"
|
||||
OpName %475 "gather"
|
||||
OpName %510 "depth_no_comparison"
|
||||
OpName %189 "queries"
|
||||
OpName %241 "levels_queries"
|
||||
OpName %270 "texture_sample"
|
||||
OpName %284 "a"
|
||||
OpName %416 "texture_sample_comparison"
|
||||
OpName %421 "a"
|
||||
OpName %472 "gather"
|
||||
OpName %506 "depth_no_comparison"
|
||||
OpDecorate %31 DescriptorSet 0
|
||||
OpDecorate %31 Binding 0
|
||||
OpDecorate %33 DescriptorSet 0
|
||||
@ -106,12 +106,12 @@ OpDecorate %72 DescriptorSet 1
|
||||
OpDecorate %72 Binding 4
|
||||
OpDecorate %75 BuiltIn LocalInvocationId
|
||||
OpDecorate %167 BuiltIn LocalInvocationId
|
||||
OpDecorate %188 BuiltIn Position
|
||||
OpDecorate %241 BuiltIn Position
|
||||
OpDecorate %273 Location 0
|
||||
OpDecorate %418 Location 0
|
||||
OpDecorate %474 Location 0
|
||||
OpDecorate %509 Location 0
|
||||
OpDecorate %187 BuiltIn Position
|
||||
OpDecorate %240 BuiltIn Position
|
||||
OpDecorate %269 Location 0
|
||||
OpDecorate %414 Location 0
|
||||
OpDecorate %471 Location 0
|
||||
OpDecorate %505 Location 0
|
||||
%2 = OpTypeVoid
|
||||
%4 = OpTypeInt 32 0
|
||||
%3 = OpTypeImage %4 2D 0 0 0 1 Unknown
|
||||
@ -189,42 +189,45 @@ OpDecorate %509 Location 0
|
||||
%79 = OpTypeFunction %2
|
||||
%86 = OpConstant %14 10
|
||||
%87 = OpConstant %14 20
|
||||
%89 = OpTypeVector %4 2
|
||||
%88 = OpConstantComposite %13 %86 %87
|
||||
%90 = OpTypeVector %4 2
|
||||
%98 = OpTypeVector %4 4
|
||||
%109 = OpTypeVector %14 3
|
||||
%167 = OpVariable %76 Input
|
||||
%189 = OpTypePointer Output %23
|
||||
%188 = OpVariable %189 Output
|
||||
%199 = OpConstant %4 0
|
||||
%241 = OpVariable %189 Output
|
||||
%270 = OpTypePointer Function %23
|
||||
%271 = OpConstantNull %23
|
||||
%273 = OpVariable %189 Output
|
||||
%280 = OpConstant %7 0.5
|
||||
%188 = OpTypePointer Output %23
|
||||
%187 = OpVariable %188 Output
|
||||
%198 = OpConstant %4 0
|
||||
%240 = OpVariable %188 Output
|
||||
%269 = OpVariable %188 Output
|
||||
%276 = OpConstant %7 0.5
|
||||
%277 = OpTypeVector %7 2
|
||||
%278 = OpConstantComposite %277 %276 %276
|
||||
%279 = OpTypeVector %7 3
|
||||
%280 = OpConstantComposite %279 %276 %276 %276
|
||||
%281 = OpConstant %7 2.3
|
||||
%282 = OpConstant %7 2.0
|
||||
%283 = OpConstant %14 0
|
||||
%285 = OpTypeVector %7 2
|
||||
%287 = OpTypeVector %7 3
|
||||
%289 = OpTypeSampledImage %15
|
||||
%294 = OpTypeSampledImage %16
|
||||
%315 = OpTypeSampledImage %18
|
||||
%376 = OpTypeSampledImage %20
|
||||
%415 = OpTypePointer Function %7
|
||||
%416 = OpConstantNull %7
|
||||
%419 = OpTypePointer Output %7
|
||||
%418 = OpVariable %419 Output
|
||||
%428 = OpTypeSampledImage %25
|
||||
%433 = OpTypeSampledImage %26
|
||||
%446 = OpTypeSampledImage %27
|
||||
%453 = OpConstant %7 0.0
|
||||
%474 = OpVariable %189 Output
|
||||
%486 = OpConstant %4 1
|
||||
%489 = OpConstant %4 3
|
||||
%494 = OpTypeSampledImage %3
|
||||
%497 = OpTypeVector %14 4
|
||||
%498 = OpTypeSampledImage %17
|
||||
%509 = OpVariable %189 Output
|
||||
%285 = OpTypePointer Function %23
|
||||
%286 = OpConstantNull %23
|
||||
%288 = OpTypeSampledImage %15
|
||||
%293 = OpTypeSampledImage %16
|
||||
%314 = OpTypeSampledImage %18
|
||||
%375 = OpTypeSampledImage %20
|
||||
%415 = OpTypePointer Output %7
|
||||
%414 = OpVariable %415 Output
|
||||
%422 = OpTypePointer Function %7
|
||||
%423 = OpConstantNull %7
|
||||
%425 = OpTypeSampledImage %25
|
||||
%430 = OpTypeSampledImage %26
|
||||
%443 = OpTypeSampledImage %27
|
||||
%450 = OpConstant %7 0.0
|
||||
%471 = OpVariable %188 Output
|
||||
%482 = OpConstant %4 1
|
||||
%485 = OpConstant %4 3
|
||||
%490 = OpTypeSampledImage %3
|
||||
%493 = OpTypeVector %14 4
|
||||
%494 = OpTypeSampledImage %17
|
||||
%505 = OpVariable %188 Output
|
||||
%78 = OpFunction %2 None %79
|
||||
%74 = OpLabel
|
||||
%77 = OpLoad %12 %75
|
||||
@ -234,14 +237,13 @@ OpDecorate %509 Location 0
|
||||
%83 = OpLoad %9 %39
|
||||
%84 = OpLoad %11 %43
|
||||
%85 = OpLoad %10 %45
|
||||
OpBranch %88
|
||||
%88 = OpLabel
|
||||
%90 = OpImageQuerySize %89 %82
|
||||
%91 = OpVectorShuffle %89 %77 %77 0 1
|
||||
%92 = OpIMul %89 %90 %91
|
||||
%93 = OpBitcast %13 %92
|
||||
%94 = OpCompositeConstruct %13 %86 %87
|
||||
%95 = OpSRem %13 %93 %94
|
||||
OpBranch %89
|
||||
%89 = OpLabel
|
||||
%91 = OpImageQuerySize %90 %82
|
||||
%92 = OpVectorShuffle %90 %77 %77 0 1
|
||||
%93 = OpIMul %90 %91 %92
|
||||
%94 = OpBitcast %13 %93
|
||||
%95 = OpSRem %13 %94 %88
|
||||
%96 = OpCompositeExtract %4 %77 2
|
||||
%97 = OpBitcast %14 %96
|
||||
%99 = OpImageFetch %98 %80 %95 Lod %97
|
||||
@ -268,24 +270,24 @@ OpBranch %88
|
||||
%121 = OpCompositeExtract %4 %77 2
|
||||
%122 = OpBitcast %14 %121
|
||||
%123 = OpImageFetch %98 %84 %120 Lod %122
|
||||
%124 = OpBitcast %89 %95
|
||||
%124 = OpBitcast %90 %95
|
||||
%125 = OpCompositeExtract %4 %77 2
|
||||
%126 = OpBitcast %14 %125
|
||||
%127 = OpImageFetch %98 %80 %124 Lod %126
|
||||
%128 = OpBitcast %89 %95
|
||||
%128 = OpBitcast %90 %95
|
||||
%129 = OpCompositeExtract %4 %77 2
|
||||
%130 = OpBitcast %14 %129
|
||||
%131 = OpImageFetch %98 %81 %128 Sample %130
|
||||
%132 = OpBitcast %89 %95
|
||||
%132 = OpBitcast %90 %95
|
||||
%133 = OpImageRead %98 %82 %132
|
||||
%134 = OpBitcast %89 %95
|
||||
%134 = OpBitcast %90 %95
|
||||
%135 = OpCompositeExtract %4 %77 2
|
||||
%136 = OpCompositeExtract %4 %77 2
|
||||
%137 = OpBitcast %14 %136
|
||||
%138 = OpIAdd %14 %137 %29
|
||||
%139 = OpCompositeConstruct %12 %134 %135
|
||||
%140 = OpImageFetch %98 %83 %139 Lod %138
|
||||
%141 = OpBitcast %89 %95
|
||||
%141 = OpBitcast %90 %95
|
||||
%142 = OpCompositeExtract %4 %77 2
|
||||
%143 = OpBitcast %14 %142
|
||||
%144 = OpCompositeExtract %4 %77 2
|
||||
@ -321,376 +323,369 @@ OpFunctionEnd
|
||||
%172 = OpLoad %10 %45
|
||||
OpBranch %173
|
||||
%173 = OpLabel
|
||||
%174 = OpImageQuerySize %89 %171
|
||||
%175 = OpVectorShuffle %89 %168 %168 0 1
|
||||
%176 = OpIMul %89 %174 %175
|
||||
%174 = OpImageQuerySize %90 %171
|
||||
%175 = OpVectorShuffle %90 %168 %168 0 1
|
||||
%176 = OpIMul %90 %174 %175
|
||||
%177 = OpBitcast %13 %176
|
||||
%178 = OpCompositeConstruct %13 %86 %87
|
||||
%179 = OpSRem %13 %177 %178
|
||||
%180 = OpCompositeExtract %4 %168 2
|
||||
%181 = OpBitcast %14 %180
|
||||
%182 = OpImageFetch %23 %170 %179 Sample %181
|
||||
%183 = OpCompositeExtract %7 %182 0
|
||||
%184 = OpCompositeExtract %14 %179 0
|
||||
%185 = OpConvertFToU %4 %183
|
||||
%186 = OpCompositeConstruct %98 %185 %185 %185 %185
|
||||
OpImageWrite %172 %184 %186
|
||||
%178 = OpSRem %13 %177 %88
|
||||
%179 = OpCompositeExtract %4 %168 2
|
||||
%180 = OpBitcast %14 %179
|
||||
%181 = OpImageFetch %23 %170 %178 Sample %180
|
||||
%182 = OpCompositeExtract %7 %181 0
|
||||
%183 = OpCompositeExtract %14 %178 0
|
||||
%184 = OpConvertFToU %4 %182
|
||||
%185 = OpCompositeConstruct %98 %184 %184 %184 %184
|
||||
OpImageWrite %172 %183 %185
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%190 = OpFunction %2 None %79
|
||||
%187 = OpLabel
|
||||
%191 = OpLoad %15 %47
|
||||
%192 = OpLoad %16 %49
|
||||
%193 = OpLoad %18 %54
|
||||
%194 = OpLoad %19 %56
|
||||
%195 = OpLoad %20 %58
|
||||
%196 = OpLoad %21 %60
|
||||
%197 = OpLoad %22 %62
|
||||
OpBranch %198
|
||||
%198 = OpLabel
|
||||
%200 = OpImageQuerySizeLod %4 %191 %199
|
||||
%201 = OpBitcast %14 %200
|
||||
%202 = OpImageQuerySizeLod %4 %191 %201
|
||||
%203 = OpImageQuerySizeLod %89 %192 %199
|
||||
%204 = OpImageQuerySizeLod %89 %192 %29
|
||||
%205 = OpImageQuerySizeLod %12 %193 %199
|
||||
%206 = OpVectorShuffle %89 %205 %205 0 1
|
||||
%207 = OpImageQuerySizeLod %12 %193 %29
|
||||
%208 = OpVectorShuffle %89 %207 %207 0 1
|
||||
%209 = OpImageQuerySizeLod %89 %194 %199
|
||||
%210 = OpImageQuerySizeLod %89 %194 %29
|
||||
%211 = OpImageQuerySizeLod %12 %195 %199
|
||||
%212 = OpVectorShuffle %89 %211 %211 0 0
|
||||
%213 = OpImageQuerySizeLod %12 %195 %29
|
||||
%214 = OpVectorShuffle %89 %213 %213 0 0
|
||||
%215 = OpImageQuerySizeLod %12 %196 %199
|
||||
%216 = OpImageQuerySizeLod %12 %196 %29
|
||||
%217 = OpImageQuerySize %89 %197
|
||||
%218 = OpCompositeExtract %4 %203 1
|
||||
%219 = OpIAdd %4 %200 %218
|
||||
%220 = OpCompositeExtract %4 %204 1
|
||||
%221 = OpIAdd %4 %219 %220
|
||||
%222 = OpCompositeExtract %4 %206 1
|
||||
%223 = OpIAdd %4 %221 %222
|
||||
%224 = OpCompositeExtract %4 %208 1
|
||||
%225 = OpIAdd %4 %223 %224
|
||||
%226 = OpCompositeExtract %4 %209 1
|
||||
%227 = OpIAdd %4 %225 %226
|
||||
%228 = OpCompositeExtract %4 %210 1
|
||||
%229 = OpIAdd %4 %227 %228
|
||||
%230 = OpCompositeExtract %4 %212 1
|
||||
%231 = OpIAdd %4 %229 %230
|
||||
%232 = OpCompositeExtract %4 %214 1
|
||||
%233 = OpIAdd %4 %231 %232
|
||||
%234 = OpCompositeExtract %4 %215 2
|
||||
%235 = OpIAdd %4 %233 %234
|
||||
%236 = OpCompositeExtract %4 %216 2
|
||||
%237 = OpIAdd %4 %235 %236
|
||||
%238 = OpConvertUToF %7 %237
|
||||
%239 = OpCompositeConstruct %23 %238 %238 %238 %238
|
||||
OpStore %188 %239
|
||||
%189 = OpFunction %2 None %79
|
||||
%186 = OpLabel
|
||||
%190 = OpLoad %15 %47
|
||||
%191 = OpLoad %16 %49
|
||||
%192 = OpLoad %18 %54
|
||||
%193 = OpLoad %19 %56
|
||||
%194 = OpLoad %20 %58
|
||||
%195 = OpLoad %21 %60
|
||||
%196 = OpLoad %22 %62
|
||||
OpBranch %197
|
||||
%197 = OpLabel
|
||||
%199 = OpImageQuerySizeLod %4 %190 %198
|
||||
%200 = OpBitcast %14 %199
|
||||
%201 = OpImageQuerySizeLod %4 %190 %200
|
||||
%202 = OpImageQuerySizeLod %90 %191 %198
|
||||
%203 = OpImageQuerySizeLod %90 %191 %29
|
||||
%204 = OpImageQuerySizeLod %12 %192 %198
|
||||
%205 = OpVectorShuffle %90 %204 %204 0 1
|
||||
%206 = OpImageQuerySizeLod %12 %192 %29
|
||||
%207 = OpVectorShuffle %90 %206 %206 0 1
|
||||
%208 = OpImageQuerySizeLod %90 %193 %198
|
||||
%209 = OpImageQuerySizeLod %90 %193 %29
|
||||
%210 = OpImageQuerySizeLod %12 %194 %198
|
||||
%211 = OpVectorShuffle %90 %210 %210 0 0
|
||||
%212 = OpImageQuerySizeLod %12 %194 %29
|
||||
%213 = OpVectorShuffle %90 %212 %212 0 0
|
||||
%214 = OpImageQuerySizeLod %12 %195 %198
|
||||
%215 = OpImageQuerySizeLod %12 %195 %29
|
||||
%216 = OpImageQuerySize %90 %196
|
||||
%217 = OpCompositeExtract %4 %202 1
|
||||
%218 = OpIAdd %4 %199 %217
|
||||
%219 = OpCompositeExtract %4 %203 1
|
||||
%220 = OpIAdd %4 %218 %219
|
||||
%221 = OpCompositeExtract %4 %205 1
|
||||
%222 = OpIAdd %4 %220 %221
|
||||
%223 = OpCompositeExtract %4 %207 1
|
||||
%224 = OpIAdd %4 %222 %223
|
||||
%225 = OpCompositeExtract %4 %208 1
|
||||
%226 = OpIAdd %4 %224 %225
|
||||
%227 = OpCompositeExtract %4 %209 1
|
||||
%228 = OpIAdd %4 %226 %227
|
||||
%229 = OpCompositeExtract %4 %211 1
|
||||
%230 = OpIAdd %4 %228 %229
|
||||
%231 = OpCompositeExtract %4 %213 1
|
||||
%232 = OpIAdd %4 %230 %231
|
||||
%233 = OpCompositeExtract %4 %214 2
|
||||
%234 = OpIAdd %4 %232 %233
|
||||
%235 = OpCompositeExtract %4 %215 2
|
||||
%236 = OpIAdd %4 %234 %235
|
||||
%237 = OpConvertUToF %7 %236
|
||||
%238 = OpCompositeConstruct %23 %237 %237 %237 %237
|
||||
OpStore %187 %238
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%242 = OpFunction %2 None %79
|
||||
%240 = OpLabel
|
||||
%243 = OpLoad %16 %49
|
||||
%244 = OpLoad %18 %54
|
||||
%245 = OpLoad %19 %56
|
||||
%246 = OpLoad %20 %58
|
||||
%247 = OpLoad %21 %60
|
||||
%248 = OpLoad %22 %62
|
||||
OpBranch %249
|
||||
%249 = OpLabel
|
||||
%241 = OpFunction %2 None %79
|
||||
%239 = OpLabel
|
||||
%242 = OpLoad %16 %49
|
||||
%243 = OpLoad %18 %54
|
||||
%244 = OpLoad %19 %56
|
||||
%245 = OpLoad %20 %58
|
||||
%246 = OpLoad %21 %60
|
||||
%247 = OpLoad %22 %62
|
||||
OpBranch %248
|
||||
%248 = OpLabel
|
||||
%249 = OpImageQueryLevels %4 %242
|
||||
%250 = OpImageQueryLevels %4 %243
|
||||
%251 = OpImageQueryLevels %4 %244
|
||||
%252 = OpImageQuerySizeLod %12 %244 %199
|
||||
%253 = OpCompositeExtract %4 %252 2
|
||||
%251 = OpImageQuerySizeLod %12 %243 %198
|
||||
%252 = OpCompositeExtract %4 %251 2
|
||||
%253 = OpImageQueryLevels %4 %244
|
||||
%254 = OpImageQueryLevels %4 %245
|
||||
%255 = OpImageQueryLevels %4 %246
|
||||
%256 = OpImageQuerySizeLod %12 %246 %199
|
||||
%257 = OpCompositeExtract %4 %256 2
|
||||
%258 = OpImageQueryLevels %4 %247
|
||||
%259 = OpImageQuerySamples %4 %248
|
||||
%260 = OpIAdd %4 %253 %257
|
||||
%261 = OpIAdd %4 %260 %259
|
||||
%255 = OpImageQuerySizeLod %12 %245 %198
|
||||
%256 = OpCompositeExtract %4 %255 2
|
||||
%257 = OpImageQueryLevels %4 %246
|
||||
%258 = OpImageQuerySamples %4 %247
|
||||
%259 = OpIAdd %4 %252 %256
|
||||
%260 = OpIAdd %4 %259 %258
|
||||
%261 = OpIAdd %4 %260 %249
|
||||
%262 = OpIAdd %4 %261 %250
|
||||
%263 = OpIAdd %4 %262 %251
|
||||
%264 = OpIAdd %4 %263 %258
|
||||
%263 = OpIAdd %4 %262 %257
|
||||
%264 = OpIAdd %4 %263 %253
|
||||
%265 = OpIAdd %4 %264 %254
|
||||
%266 = OpIAdd %4 %265 %255
|
||||
%267 = OpConvertUToF %7 %266
|
||||
%268 = OpCompositeConstruct %23 %267 %267 %267 %267
|
||||
OpStore %241 %268
|
||||
%266 = OpConvertUToF %7 %265
|
||||
%267 = OpCompositeConstruct %23 %266 %266 %266 %266
|
||||
OpStore %240 %267
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%274 = OpFunction %2 None %79
|
||||
%272 = OpLabel
|
||||
%269 = OpVariable %270 Function %271
|
||||
%275 = OpLoad %15 %47
|
||||
%276 = OpLoad %16 %49
|
||||
%277 = OpLoad %18 %54
|
||||
%278 = OpLoad %20 %58
|
||||
%279 = OpLoad %24 %64
|
||||
OpBranch %284
|
||||
%284 = OpLabel
|
||||
%286 = OpCompositeConstruct %285 %280 %280
|
||||
%288 = OpCompositeConstruct %287 %280 %280 %280
|
||||
%290 = OpSampledImage %289 %275 %279
|
||||
%291 = OpImageSampleImplicitLod %23 %290 %280
|
||||
%292 = OpLoad %23 %269
|
||||
%293 = OpFAdd %23 %292 %291
|
||||
OpStore %269 %293
|
||||
%295 = OpSampledImage %294 %276 %279
|
||||
%296 = OpImageSampleImplicitLod %23 %295 %286
|
||||
%297 = OpLoad %23 %269
|
||||
%298 = OpFAdd %23 %297 %296
|
||||
OpStore %269 %298
|
||||
%299 = OpSampledImage %294 %276 %279
|
||||
%300 = OpImageSampleImplicitLod %23 %299 %286 ConstOffset %30
|
||||
%301 = OpLoad %23 %269
|
||||
%302 = OpFAdd %23 %301 %300
|
||||
OpStore %269 %302
|
||||
%303 = OpSampledImage %294 %276 %279
|
||||
%304 = OpImageSampleExplicitLod %23 %303 %286 Lod %281
|
||||
%305 = OpLoad %23 %269
|
||||
%306 = OpFAdd %23 %305 %304
|
||||
OpStore %269 %306
|
||||
%307 = OpSampledImage %294 %276 %279
|
||||
%308 = OpImageSampleExplicitLod %23 %307 %286 Lod|ConstOffset %281 %30
|
||||
%309 = OpLoad %23 %269
|
||||
%310 = OpFAdd %23 %309 %308
|
||||
OpStore %269 %310
|
||||
%311 = OpSampledImage %294 %276 %279
|
||||
%312 = OpImageSampleImplicitLod %23 %311 %286 Bias|ConstOffset %282 %30
|
||||
%313 = OpLoad %23 %269
|
||||
%314 = OpFAdd %23 %313 %312
|
||||
OpStore %269 %314
|
||||
%316 = OpConvertUToF %7 %199
|
||||
%317 = OpCompositeConstruct %287 %286 %316
|
||||
%318 = OpSampledImage %315 %277 %279
|
||||
%319 = OpImageSampleImplicitLod %23 %318 %317
|
||||
%320 = OpLoad %23 %269
|
||||
%321 = OpFAdd %23 %320 %319
|
||||
OpStore %269 %321
|
||||
%322 = OpConvertUToF %7 %199
|
||||
%323 = OpCompositeConstruct %287 %286 %322
|
||||
%324 = OpSampledImage %315 %277 %279
|
||||
%325 = OpImageSampleImplicitLod %23 %324 %323 ConstOffset %30
|
||||
%326 = OpLoad %23 %269
|
||||
%327 = OpFAdd %23 %326 %325
|
||||
OpStore %269 %327
|
||||
%328 = OpConvertUToF %7 %199
|
||||
%329 = OpCompositeConstruct %287 %286 %328
|
||||
%330 = OpSampledImage %315 %277 %279
|
||||
%331 = OpImageSampleExplicitLod %23 %330 %329 Lod %281
|
||||
%332 = OpLoad %23 %269
|
||||
%333 = OpFAdd %23 %332 %331
|
||||
OpStore %269 %333
|
||||
%334 = OpConvertUToF %7 %199
|
||||
%335 = OpCompositeConstruct %287 %286 %334
|
||||
%336 = OpSampledImage %315 %277 %279
|
||||
%337 = OpImageSampleExplicitLod %23 %336 %335 Lod|ConstOffset %281 %30
|
||||
%338 = OpLoad %23 %269
|
||||
%339 = OpFAdd %23 %338 %337
|
||||
OpStore %269 %339
|
||||
%340 = OpConvertUToF %7 %199
|
||||
%341 = OpCompositeConstruct %287 %286 %340
|
||||
%342 = OpSampledImage %315 %277 %279
|
||||
%343 = OpImageSampleImplicitLod %23 %342 %341 Bias|ConstOffset %282 %30
|
||||
%344 = OpLoad %23 %269
|
||||
%345 = OpFAdd %23 %344 %343
|
||||
OpStore %269 %345
|
||||
%346 = OpConvertSToF %7 %283
|
||||
%347 = OpCompositeConstruct %287 %286 %346
|
||||
%348 = OpSampledImage %315 %277 %279
|
||||
%349 = OpImageSampleImplicitLod %23 %348 %347
|
||||
%350 = OpLoad %23 %269
|
||||
%351 = OpFAdd %23 %350 %349
|
||||
OpStore %269 %351
|
||||
%352 = OpConvertSToF %7 %283
|
||||
%353 = OpCompositeConstruct %287 %286 %352
|
||||
%354 = OpSampledImage %315 %277 %279
|
||||
%355 = OpImageSampleImplicitLod %23 %354 %353 ConstOffset %30
|
||||
%356 = OpLoad %23 %269
|
||||
%357 = OpFAdd %23 %356 %355
|
||||
OpStore %269 %357
|
||||
%358 = OpConvertSToF %7 %283
|
||||
%359 = OpCompositeConstruct %287 %286 %358
|
||||
%360 = OpSampledImage %315 %277 %279
|
||||
%361 = OpImageSampleExplicitLod %23 %360 %359 Lod %281
|
||||
%362 = OpLoad %23 %269
|
||||
%363 = OpFAdd %23 %362 %361
|
||||
OpStore %269 %363
|
||||
%364 = OpConvertSToF %7 %283
|
||||
%365 = OpCompositeConstruct %287 %286 %364
|
||||
%366 = OpSampledImage %315 %277 %279
|
||||
%367 = OpImageSampleExplicitLod %23 %366 %365 Lod|ConstOffset %281 %30
|
||||
%368 = OpLoad %23 %269
|
||||
%369 = OpFAdd %23 %368 %367
|
||||
OpStore %269 %369
|
||||
%370 = OpConvertSToF %7 %283
|
||||
%371 = OpCompositeConstruct %287 %286 %370
|
||||
%372 = OpSampledImage %315 %277 %279
|
||||
%373 = OpImageSampleImplicitLod %23 %372 %371 Bias|ConstOffset %282 %30
|
||||
%374 = OpLoad %23 %269
|
||||
%375 = OpFAdd %23 %374 %373
|
||||
OpStore %269 %375
|
||||
%377 = OpConvertUToF %7 %199
|
||||
%378 = OpCompositeConstruct %23 %288 %377
|
||||
%379 = OpSampledImage %376 %278 %279
|
||||
%380 = OpImageSampleImplicitLod %23 %379 %378
|
||||
%381 = OpLoad %23 %269
|
||||
%382 = OpFAdd %23 %381 %380
|
||||
OpStore %269 %382
|
||||
%383 = OpConvertUToF %7 %199
|
||||
%384 = OpCompositeConstruct %23 %288 %383
|
||||
%385 = OpSampledImage %376 %278 %279
|
||||
%386 = OpImageSampleExplicitLod %23 %385 %384 Lod %281
|
||||
%387 = OpLoad %23 %269
|
||||
%388 = OpFAdd %23 %387 %386
|
||||
OpStore %269 %388
|
||||
%389 = OpConvertUToF %7 %199
|
||||
%390 = OpCompositeConstruct %23 %288 %389
|
||||
%391 = OpSampledImage %376 %278 %279
|
||||
%392 = OpImageSampleImplicitLod %23 %391 %390 Bias %282
|
||||
%393 = OpLoad %23 %269
|
||||
%394 = OpFAdd %23 %393 %392
|
||||
OpStore %269 %394
|
||||
%395 = OpConvertSToF %7 %283
|
||||
%396 = OpCompositeConstruct %23 %288 %395
|
||||
%397 = OpSampledImage %376 %278 %279
|
||||
%398 = OpImageSampleImplicitLod %23 %397 %396
|
||||
%399 = OpLoad %23 %269
|
||||
%400 = OpFAdd %23 %399 %398
|
||||
OpStore %269 %400
|
||||
%401 = OpConvertSToF %7 %283
|
||||
%402 = OpCompositeConstruct %23 %288 %401
|
||||
%403 = OpSampledImage %376 %278 %279
|
||||
%404 = OpImageSampleExplicitLod %23 %403 %402 Lod %281
|
||||
%405 = OpLoad %23 %269
|
||||
%406 = OpFAdd %23 %405 %404
|
||||
OpStore %269 %406
|
||||
%407 = OpConvertSToF %7 %283
|
||||
%408 = OpCompositeConstruct %23 %288 %407
|
||||
%409 = OpSampledImage %376 %278 %279
|
||||
%410 = OpImageSampleImplicitLod %23 %409 %408 Bias %282
|
||||
%411 = OpLoad %23 %269
|
||||
%412 = OpFAdd %23 %411 %410
|
||||
%270 = OpFunction %2 None %79
|
||||
%268 = OpLabel
|
||||
%284 = OpVariable %285 Function %286
|
||||
%271 = OpLoad %15 %47
|
||||
%272 = OpLoad %16 %49
|
||||
%273 = OpLoad %18 %54
|
||||
%274 = OpLoad %20 %58
|
||||
%275 = OpLoad %24 %64
|
||||
OpBranch %287
|
||||
%287 = OpLabel
|
||||
%289 = OpSampledImage %288 %271 %275
|
||||
%290 = OpImageSampleImplicitLod %23 %289 %276
|
||||
%291 = OpLoad %23 %284
|
||||
%292 = OpFAdd %23 %291 %290
|
||||
OpStore %284 %292
|
||||
%294 = OpSampledImage %293 %272 %275
|
||||
%295 = OpImageSampleImplicitLod %23 %294 %278
|
||||
%296 = OpLoad %23 %284
|
||||
%297 = OpFAdd %23 %296 %295
|
||||
OpStore %284 %297
|
||||
%298 = OpSampledImage %293 %272 %275
|
||||
%299 = OpImageSampleImplicitLod %23 %298 %278 ConstOffset %30
|
||||
%300 = OpLoad %23 %284
|
||||
%301 = OpFAdd %23 %300 %299
|
||||
OpStore %284 %301
|
||||
%302 = OpSampledImage %293 %272 %275
|
||||
%303 = OpImageSampleExplicitLod %23 %302 %278 Lod %281
|
||||
%304 = OpLoad %23 %284
|
||||
%305 = OpFAdd %23 %304 %303
|
||||
OpStore %284 %305
|
||||
%306 = OpSampledImage %293 %272 %275
|
||||
%307 = OpImageSampleExplicitLod %23 %306 %278 Lod|ConstOffset %281 %30
|
||||
%308 = OpLoad %23 %284
|
||||
%309 = OpFAdd %23 %308 %307
|
||||
OpStore %284 %309
|
||||
%310 = OpSampledImage %293 %272 %275
|
||||
%311 = OpImageSampleImplicitLod %23 %310 %278 Bias|ConstOffset %282 %30
|
||||
%312 = OpLoad %23 %284
|
||||
%313 = OpFAdd %23 %312 %311
|
||||
OpStore %284 %313
|
||||
%315 = OpConvertUToF %7 %198
|
||||
%316 = OpCompositeConstruct %279 %278 %315
|
||||
%317 = OpSampledImage %314 %273 %275
|
||||
%318 = OpImageSampleImplicitLod %23 %317 %316
|
||||
%319 = OpLoad %23 %284
|
||||
%320 = OpFAdd %23 %319 %318
|
||||
OpStore %284 %320
|
||||
%321 = OpConvertUToF %7 %198
|
||||
%322 = OpCompositeConstruct %279 %278 %321
|
||||
%323 = OpSampledImage %314 %273 %275
|
||||
%324 = OpImageSampleImplicitLod %23 %323 %322 ConstOffset %30
|
||||
%325 = OpLoad %23 %284
|
||||
%326 = OpFAdd %23 %325 %324
|
||||
OpStore %284 %326
|
||||
%327 = OpConvertUToF %7 %198
|
||||
%328 = OpCompositeConstruct %279 %278 %327
|
||||
%329 = OpSampledImage %314 %273 %275
|
||||
%330 = OpImageSampleExplicitLod %23 %329 %328 Lod %281
|
||||
%331 = OpLoad %23 %284
|
||||
%332 = OpFAdd %23 %331 %330
|
||||
OpStore %284 %332
|
||||
%333 = OpConvertUToF %7 %198
|
||||
%334 = OpCompositeConstruct %279 %278 %333
|
||||
%335 = OpSampledImage %314 %273 %275
|
||||
%336 = OpImageSampleExplicitLod %23 %335 %334 Lod|ConstOffset %281 %30
|
||||
%337 = OpLoad %23 %284
|
||||
%338 = OpFAdd %23 %337 %336
|
||||
OpStore %284 %338
|
||||
%339 = OpConvertUToF %7 %198
|
||||
%340 = OpCompositeConstruct %279 %278 %339
|
||||
%341 = OpSampledImage %314 %273 %275
|
||||
%342 = OpImageSampleImplicitLod %23 %341 %340 Bias|ConstOffset %282 %30
|
||||
%343 = OpLoad %23 %284
|
||||
%344 = OpFAdd %23 %343 %342
|
||||
OpStore %284 %344
|
||||
%345 = OpConvertSToF %7 %283
|
||||
%346 = OpCompositeConstruct %279 %278 %345
|
||||
%347 = OpSampledImage %314 %273 %275
|
||||
%348 = OpImageSampleImplicitLod %23 %347 %346
|
||||
%349 = OpLoad %23 %284
|
||||
%350 = OpFAdd %23 %349 %348
|
||||
OpStore %284 %350
|
||||
%351 = OpConvertSToF %7 %283
|
||||
%352 = OpCompositeConstruct %279 %278 %351
|
||||
%353 = OpSampledImage %314 %273 %275
|
||||
%354 = OpImageSampleImplicitLod %23 %353 %352 ConstOffset %30
|
||||
%355 = OpLoad %23 %284
|
||||
%356 = OpFAdd %23 %355 %354
|
||||
OpStore %284 %356
|
||||
%357 = OpConvertSToF %7 %283
|
||||
%358 = OpCompositeConstruct %279 %278 %357
|
||||
%359 = OpSampledImage %314 %273 %275
|
||||
%360 = OpImageSampleExplicitLod %23 %359 %358 Lod %281
|
||||
%361 = OpLoad %23 %284
|
||||
%362 = OpFAdd %23 %361 %360
|
||||
OpStore %284 %362
|
||||
%363 = OpConvertSToF %7 %283
|
||||
%364 = OpCompositeConstruct %279 %278 %363
|
||||
%365 = OpSampledImage %314 %273 %275
|
||||
%366 = OpImageSampleExplicitLod %23 %365 %364 Lod|ConstOffset %281 %30
|
||||
%367 = OpLoad %23 %284
|
||||
%368 = OpFAdd %23 %367 %366
|
||||
OpStore %284 %368
|
||||
%369 = OpConvertSToF %7 %283
|
||||
%370 = OpCompositeConstruct %279 %278 %369
|
||||
%371 = OpSampledImage %314 %273 %275
|
||||
%372 = OpImageSampleImplicitLod %23 %371 %370 Bias|ConstOffset %282 %30
|
||||
%373 = OpLoad %23 %284
|
||||
%374 = OpFAdd %23 %373 %372
|
||||
OpStore %284 %374
|
||||
%376 = OpConvertUToF %7 %198
|
||||
%377 = OpCompositeConstruct %23 %280 %376
|
||||
%378 = OpSampledImage %375 %274 %275
|
||||
%379 = OpImageSampleImplicitLod %23 %378 %377
|
||||
%380 = OpLoad %23 %284
|
||||
%381 = OpFAdd %23 %380 %379
|
||||
OpStore %284 %381
|
||||
%382 = OpConvertUToF %7 %198
|
||||
%383 = OpCompositeConstruct %23 %280 %382
|
||||
%384 = OpSampledImage %375 %274 %275
|
||||
%385 = OpImageSampleExplicitLod %23 %384 %383 Lod %281
|
||||
%386 = OpLoad %23 %284
|
||||
%387 = OpFAdd %23 %386 %385
|
||||
OpStore %284 %387
|
||||
%388 = OpConvertUToF %7 %198
|
||||
%389 = OpCompositeConstruct %23 %280 %388
|
||||
%390 = OpSampledImage %375 %274 %275
|
||||
%391 = OpImageSampleImplicitLod %23 %390 %389 Bias %282
|
||||
%392 = OpLoad %23 %284
|
||||
%393 = OpFAdd %23 %392 %391
|
||||
OpStore %284 %393
|
||||
%394 = OpConvertSToF %7 %283
|
||||
%395 = OpCompositeConstruct %23 %280 %394
|
||||
%396 = OpSampledImage %375 %274 %275
|
||||
%397 = OpImageSampleImplicitLod %23 %396 %395
|
||||
%398 = OpLoad %23 %284
|
||||
%399 = OpFAdd %23 %398 %397
|
||||
OpStore %284 %399
|
||||
%400 = OpConvertSToF %7 %283
|
||||
%401 = OpCompositeConstruct %23 %280 %400
|
||||
%402 = OpSampledImage %375 %274 %275
|
||||
%403 = OpImageSampleExplicitLod %23 %402 %401 Lod %281
|
||||
%404 = OpLoad %23 %284
|
||||
%405 = OpFAdd %23 %404 %403
|
||||
OpStore %284 %405
|
||||
%406 = OpConvertSToF %7 %283
|
||||
%407 = OpCompositeConstruct %23 %280 %406
|
||||
%408 = OpSampledImage %375 %274 %275
|
||||
%409 = OpImageSampleImplicitLod %23 %408 %407 Bias %282
|
||||
%410 = OpLoad %23 %284
|
||||
%411 = OpFAdd %23 %410 %409
|
||||
OpStore %284 %411
|
||||
%412 = OpLoad %23 %284
|
||||
OpStore %269 %412
|
||||
%413 = OpLoad %23 %269
|
||||
OpStore %273 %413
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%420 = OpFunction %2 None %79
|
||||
%417 = OpLabel
|
||||
%414 = OpVariable %415 Function %416
|
||||
%421 = OpLoad %24 %66
|
||||
%422 = OpLoad %25 %68
|
||||
%423 = OpLoad %26 %70
|
||||
%424 = OpLoad %27 %72
|
||||
OpBranch %425
|
||||
%425 = OpLabel
|
||||
%426 = OpCompositeConstruct %285 %280 %280
|
||||
%427 = OpCompositeConstruct %287 %280 %280 %280
|
||||
%429 = OpSampledImage %428 %422 %421
|
||||
%430 = OpImageSampleDrefImplicitLod %7 %429 %426 %280
|
||||
%431 = OpLoad %7 %414
|
||||
%432 = OpFAdd %7 %431 %430
|
||||
OpStore %414 %432
|
||||
%434 = OpConvertUToF %7 %199
|
||||
%435 = OpCompositeConstruct %287 %426 %434
|
||||
%436 = OpSampledImage %433 %423 %421
|
||||
%437 = OpImageSampleDrefImplicitLod %7 %436 %435 %280
|
||||
%438 = OpLoad %7 %414
|
||||
%439 = OpFAdd %7 %438 %437
|
||||
OpStore %414 %439
|
||||
%440 = OpConvertSToF %7 %283
|
||||
%441 = OpCompositeConstruct %287 %426 %440
|
||||
%442 = OpSampledImage %433 %423 %421
|
||||
%443 = OpImageSampleDrefImplicitLod %7 %442 %441 %280
|
||||
%444 = OpLoad %7 %414
|
||||
%445 = OpFAdd %7 %444 %443
|
||||
OpStore %414 %445
|
||||
%447 = OpSampledImage %446 %424 %421
|
||||
%448 = OpImageSampleDrefImplicitLod %7 %447 %427 %280
|
||||
%449 = OpLoad %7 %414
|
||||
%450 = OpFAdd %7 %449 %448
|
||||
OpStore %414 %450
|
||||
%451 = OpSampledImage %428 %422 %421
|
||||
%452 = OpImageSampleDrefExplicitLod %7 %451 %426 %280 Lod %453
|
||||
%454 = OpLoad %7 %414
|
||||
%455 = OpFAdd %7 %454 %452
|
||||
OpStore %414 %455
|
||||
%456 = OpConvertUToF %7 %199
|
||||
%457 = OpCompositeConstruct %287 %426 %456
|
||||
%458 = OpSampledImage %433 %423 %421
|
||||
%459 = OpImageSampleDrefExplicitLod %7 %458 %457 %280 Lod %453
|
||||
%460 = OpLoad %7 %414
|
||||
%461 = OpFAdd %7 %460 %459
|
||||
OpStore %414 %461
|
||||
%462 = OpConvertSToF %7 %283
|
||||
%463 = OpCompositeConstruct %287 %426 %462
|
||||
%464 = OpSampledImage %433 %423 %421
|
||||
%465 = OpImageSampleDrefExplicitLod %7 %464 %463 %280 Lod %453
|
||||
%466 = OpLoad %7 %414
|
||||
%467 = OpFAdd %7 %466 %465
|
||||
OpStore %414 %467
|
||||
%468 = OpSampledImage %446 %424 %421
|
||||
%469 = OpImageSampleDrefExplicitLod %7 %468 %427 %280 Lod %453
|
||||
%470 = OpLoad %7 %414
|
||||
%471 = OpFAdd %7 %470 %469
|
||||
OpStore %414 %471
|
||||
%472 = OpLoad %7 %414
|
||||
OpStore %418 %472
|
||||
%416 = OpFunction %2 None %79
|
||||
%413 = OpLabel
|
||||
%421 = OpVariable %422 Function %423
|
||||
%417 = OpLoad %24 %66
|
||||
%418 = OpLoad %25 %68
|
||||
%419 = OpLoad %26 %70
|
||||
%420 = OpLoad %27 %72
|
||||
OpBranch %424
|
||||
%424 = OpLabel
|
||||
%426 = OpSampledImage %425 %418 %417
|
||||
%427 = OpImageSampleDrefImplicitLod %7 %426 %278 %276
|
||||
%428 = OpLoad %7 %421
|
||||
%429 = OpFAdd %7 %428 %427
|
||||
OpStore %421 %429
|
||||
%431 = OpConvertUToF %7 %198
|
||||
%432 = OpCompositeConstruct %279 %278 %431
|
||||
%433 = OpSampledImage %430 %419 %417
|
||||
%434 = OpImageSampleDrefImplicitLod %7 %433 %432 %276
|
||||
%435 = OpLoad %7 %421
|
||||
%436 = OpFAdd %7 %435 %434
|
||||
OpStore %421 %436
|
||||
%437 = OpConvertSToF %7 %283
|
||||
%438 = OpCompositeConstruct %279 %278 %437
|
||||
%439 = OpSampledImage %430 %419 %417
|
||||
%440 = OpImageSampleDrefImplicitLod %7 %439 %438 %276
|
||||
%441 = OpLoad %7 %421
|
||||
%442 = OpFAdd %7 %441 %440
|
||||
OpStore %421 %442
|
||||
%444 = OpSampledImage %443 %420 %417
|
||||
%445 = OpImageSampleDrefImplicitLod %7 %444 %280 %276
|
||||
%446 = OpLoad %7 %421
|
||||
%447 = OpFAdd %7 %446 %445
|
||||
OpStore %421 %447
|
||||
%448 = OpSampledImage %425 %418 %417
|
||||
%449 = OpImageSampleDrefExplicitLod %7 %448 %278 %276 Lod %450
|
||||
%451 = OpLoad %7 %421
|
||||
%452 = OpFAdd %7 %451 %449
|
||||
OpStore %421 %452
|
||||
%453 = OpConvertUToF %7 %198
|
||||
%454 = OpCompositeConstruct %279 %278 %453
|
||||
%455 = OpSampledImage %430 %419 %417
|
||||
%456 = OpImageSampleDrefExplicitLod %7 %455 %454 %276 Lod %450
|
||||
%457 = OpLoad %7 %421
|
||||
%458 = OpFAdd %7 %457 %456
|
||||
OpStore %421 %458
|
||||
%459 = OpConvertSToF %7 %283
|
||||
%460 = OpCompositeConstruct %279 %278 %459
|
||||
%461 = OpSampledImage %430 %419 %417
|
||||
%462 = OpImageSampleDrefExplicitLod %7 %461 %460 %276 Lod %450
|
||||
%463 = OpLoad %7 %421
|
||||
%464 = OpFAdd %7 %463 %462
|
||||
OpStore %421 %464
|
||||
%465 = OpSampledImage %443 %420 %417
|
||||
%466 = OpImageSampleDrefExplicitLod %7 %465 %280 %276 Lod %450
|
||||
%467 = OpLoad %7 %421
|
||||
%468 = OpFAdd %7 %467 %466
|
||||
OpStore %421 %468
|
||||
%469 = OpLoad %7 %421
|
||||
OpStore %414 %469
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%475 = OpFunction %2 None %79
|
||||
%473 = OpLabel
|
||||
%476 = OpLoad %16 %49
|
||||
%477 = OpLoad %3 %51
|
||||
%478 = OpLoad %17 %52
|
||||
%479 = OpLoad %24 %64
|
||||
%480 = OpLoad %24 %66
|
||||
%481 = OpLoad %25 %68
|
||||
OpBranch %482
|
||||
%482 = OpLabel
|
||||
%483 = OpCompositeConstruct %285 %280 %280
|
||||
%484 = OpSampledImage %294 %476 %479
|
||||
%485 = OpImageGather %23 %484 %483 %486
|
||||
%487 = OpSampledImage %294 %476 %479
|
||||
%488 = OpImageGather %23 %487 %483 %489 ConstOffset %30
|
||||
%490 = OpSampledImage %428 %481 %480
|
||||
%491 = OpImageDrefGather %23 %490 %483 %280
|
||||
%492 = OpSampledImage %428 %481 %480
|
||||
%493 = OpImageDrefGather %23 %492 %483 %280 ConstOffset %30
|
||||
%495 = OpSampledImage %494 %477 %479
|
||||
%496 = OpImageGather %98 %495 %483 %199
|
||||
%499 = OpSampledImage %498 %478 %479
|
||||
%500 = OpImageGather %497 %499 %483 %199
|
||||
%501 = OpConvertUToF %23 %496
|
||||
%502 = OpConvertSToF %23 %500
|
||||
%503 = OpFAdd %23 %501 %502
|
||||
%504 = OpFAdd %23 %485 %488
|
||||
%505 = OpFAdd %23 %504 %491
|
||||
%506 = OpFAdd %23 %505 %493
|
||||
%507 = OpFAdd %23 %506 %503
|
||||
OpStore %474 %507
|
||||
%472 = OpFunction %2 None %79
|
||||
%470 = OpLabel
|
||||
%473 = OpLoad %16 %49
|
||||
%474 = OpLoad %3 %51
|
||||
%475 = OpLoad %17 %52
|
||||
%476 = OpLoad %24 %64
|
||||
%477 = OpLoad %24 %66
|
||||
%478 = OpLoad %25 %68
|
||||
OpBranch %479
|
||||
%479 = OpLabel
|
||||
%480 = OpSampledImage %293 %473 %476
|
||||
%481 = OpImageGather %23 %480 %278 %482
|
||||
%483 = OpSampledImage %293 %473 %476
|
||||
%484 = OpImageGather %23 %483 %278 %485 ConstOffset %30
|
||||
%486 = OpSampledImage %425 %478 %477
|
||||
%487 = OpImageDrefGather %23 %486 %278 %276
|
||||
%488 = OpSampledImage %425 %478 %477
|
||||
%489 = OpImageDrefGather %23 %488 %278 %276 ConstOffset %30
|
||||
%491 = OpSampledImage %490 %474 %476
|
||||
%492 = OpImageGather %98 %491 %278 %198
|
||||
%495 = OpSampledImage %494 %475 %476
|
||||
%496 = OpImageGather %493 %495 %278 %198
|
||||
%497 = OpConvertUToF %23 %492
|
||||
%498 = OpConvertSToF %23 %496
|
||||
%499 = OpFAdd %23 %497 %498
|
||||
%500 = OpFAdd %23 %481 %484
|
||||
%501 = OpFAdd %23 %500 %487
|
||||
%502 = OpFAdd %23 %501 %489
|
||||
%503 = OpFAdd %23 %502 %499
|
||||
OpStore %471 %503
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%510 = OpFunction %2 None %79
|
||||
%508 = OpLabel
|
||||
%511 = OpLoad %24 %64
|
||||
%512 = OpLoad %25 %68
|
||||
OpBranch %513
|
||||
%513 = OpLabel
|
||||
%514 = OpCompositeConstruct %285 %280 %280
|
||||
%515 = OpSampledImage %428 %512 %511
|
||||
%516 = OpImageSampleImplicitLod %23 %515 %514
|
||||
%517 = OpCompositeExtract %7 %516 0
|
||||
%518 = OpSampledImage %428 %512 %511
|
||||
%519 = OpImageGather %23 %518 %514 %199
|
||||
%520 = OpCompositeConstruct %23 %517 %517 %517 %517
|
||||
%521 = OpFAdd %23 %520 %519
|
||||
OpStore %509 %521
|
||||
%506 = OpFunction %2 None %79
|
||||
%504 = OpLabel
|
||||
%507 = OpLoad %24 %64
|
||||
%508 = OpLoad %25 %68
|
||||
OpBranch %509
|
||||
%509 = OpLabel
|
||||
%510 = OpSampledImage %425 %508 %507
|
||||
%511 = OpImageSampleImplicitLod %23 %510 %278
|
||||
%512 = OpCompositeExtract %7 %511 0
|
||||
%513 = OpSampledImage %425 %508 %507
|
||||
%514 = OpImageGather %23 %513 %278 %198
|
||||
%515 = OpCompositeConstruct %23 %512 %512 %512 %512
|
||||
%516 = OpFAdd %23 %515 %514
|
||||
OpStore %505 %516
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -45,19 +45,19 @@ OpDecorate %26 BuiltIn PointSize
|
||||
%26 = OpVariable %27 Output
|
||||
%28 = OpConstant %4 1.0
|
||||
%30 = OpTypeFunction %2
|
||||
%31 = OpConstantComposite %3 %28 %28 %28 %28
|
||||
%29 = OpFunction %2 None %30
|
||||
%14 = OpLabel
|
||||
%17 = OpLoad %6 %15
|
||||
%19 = OpLoad %6 %18
|
||||
%21 = OpLoad %6 %20
|
||||
OpStore %26 %28
|
||||
OpBranch %31
|
||||
%31 = OpLabel
|
||||
%32 = OpIAdd %6 %17 %19
|
||||
%33 = OpIAdd %6 %32 %21
|
||||
%34 = OpCompositeConstruct %3 %28 %28 %28 %28
|
||||
%35 = OpConvertUToF %4 %33
|
||||
%36 = OpCompositeConstruct %5 %34 %35
|
||||
OpBranch %32
|
||||
%32 = OpLabel
|
||||
%33 = OpIAdd %6 %17 %19
|
||||
%34 = OpIAdd %6 %33 %21
|
||||
%35 = OpConvertUToF %4 %34
|
||||
%36 = OpCompositeConstruct %5 %31 %35
|
||||
%37 = OpCompositeExtract %3 %36 0
|
||||
OpStore %22 %37
|
||||
%38 = OpCompositeExtract %4 %36 1
|
||||
|
@ -1,11 +1,11 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: rspirv
|
||||
; Bound: 42
|
||||
; Bound: 41
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %30 "vertex_two_structs" %19 %23 %25 %27
|
||||
OpEntryPoint Vertex %27 "vertex_two_structs" %16 %20 %22 %24
|
||||
OpMemberDecorate %5 0 Offset 0
|
||||
OpMemberDecorate %5 1 Offset 16
|
||||
OpMemberDecorate %7 0 Offset 0
|
||||
@ -14,11 +14,11 @@ OpMemberDecorate %7 2 Offset 8
|
||||
OpDecorate %9 ArrayStride 4
|
||||
OpMemberDecorate %12 0 Offset 0
|
||||
OpMemberDecorate %13 0 Offset 0
|
||||
OpDecorate %19 BuiltIn VertexIndex
|
||||
OpDecorate %23 BuiltIn InstanceIndex
|
||||
OpDecorate %25 Invariant
|
||||
OpDecorate %25 BuiltIn Position
|
||||
OpDecorate %27 BuiltIn PointSize
|
||||
OpDecorate %16 BuiltIn VertexIndex
|
||||
OpDecorate %20 BuiltIn InstanceIndex
|
||||
OpDecorate %22 Invariant
|
||||
OpDecorate %22 BuiltIn Position
|
||||
OpDecorate %24 BuiltIn PointSize
|
||||
%2 = OpTypeVoid
|
||||
%4 = OpTypeFloat 32
|
||||
%3 = OpTypeVector %4 4
|
||||
@ -31,37 +31,35 @@ OpDecorate %27 BuiltIn PointSize
|
||||
%11 = OpTypeVector %6 3
|
||||
%12 = OpTypeStruct %6
|
||||
%13 = OpTypeStruct %6
|
||||
%15 = OpTypePointer Function %6
|
||||
%16 = OpConstantNull %6
|
||||
%20 = OpTypePointer Input %6
|
||||
%19 = OpVariable %20 Input
|
||||
%23 = OpVariable %20 Input
|
||||
%26 = OpTypePointer Output %3
|
||||
%25 = OpVariable %26 Output
|
||||
%28 = OpTypePointer Output %4
|
||||
%27 = OpVariable %28 Output
|
||||
%29 = OpConstant %4 1.0
|
||||
%31 = OpTypeFunction %2
|
||||
%32 = OpConstant %6 2
|
||||
%33 = OpConstant %4 0.0
|
||||
%30 = OpFunction %2 None %31
|
||||
%17 = OpLabel
|
||||
%14 = OpVariable %15 Function %16
|
||||
%21 = OpLoad %6 %19
|
||||
%18 = OpCompositeConstruct %12 %21
|
||||
%24 = OpLoad %6 %23
|
||||
%22 = OpCompositeConstruct %13 %24
|
||||
OpStore %27 %29
|
||||
OpBranch %34
|
||||
%34 = OpLabel
|
||||
OpStore %14 %32
|
||||
%35 = OpCompositeExtract %6 %18 0
|
||||
%36 = OpConvertUToF %4 %35
|
||||
%37 = OpCompositeExtract %6 %22 0
|
||||
%38 = OpConvertUToF %4 %37
|
||||
%39 = OpLoad %6 %14
|
||||
%40 = OpConvertUToF %4 %39
|
||||
%41 = OpCompositeConstruct %3 %36 %38 %40 %33
|
||||
OpStore %25 %41
|
||||
%17 = OpTypePointer Input %6
|
||||
%16 = OpVariable %17 Input
|
||||
%20 = OpVariable %17 Input
|
||||
%23 = OpTypePointer Output %3
|
||||
%22 = OpVariable %23 Output
|
||||
%25 = OpTypePointer Output %4
|
||||
%24 = OpVariable %25 Output
|
||||
%26 = OpConstant %4 1.0
|
||||
%28 = OpTypeFunction %2
|
||||
%29 = OpConstant %6 2
|
||||
%30 = OpConstant %4 0.0
|
||||
%32 = OpTypePointer Function %6
|
||||
%27 = OpFunction %2 None %28
|
||||
%14 = OpLabel
|
||||
%31 = OpVariable %32 Function %29
|
||||
%18 = OpLoad %6 %16
|
||||
%15 = OpCompositeConstruct %12 %18
|
||||
%21 = OpLoad %6 %20
|
||||
%19 = OpCompositeConstruct %13 %21
|
||||
OpStore %24 %26
|
||||
OpBranch %33
|
||||
%33 = OpLabel
|
||||
%34 = OpCompositeExtract %6 %15 0
|
||||
%35 = OpConvertUToF %4 %34
|
||||
%36 = OpCompositeExtract %6 %19 0
|
||||
%37 = OpConvertUToF %4 %36
|
||||
%38 = OpLoad %6 %31
|
||||
%39 = OpConvertUToF %4 %38
|
||||
%40 = OpCompositeConstruct %3 %35 %37 %39 %30
|
||||
OpStore %22 %40
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -6,7 +6,7 @@ OpCapability Shader
|
||||
OpCapability SampleRateShading
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %29 "vert_main" %13 %15 %17 %19 %21 %23 %24 %25 %26
|
||||
OpEntryPoint Vertex %26 "vert_main" %10 %12 %14 %16 %18 %20 %21 %22 %23
|
||||
OpEntryPoint Fragment %109 "frag_main" %88 %91 %94 %97 %100 %103 %105 %107
|
||||
OpExecutionMode %109 OriginUpperLeft
|
||||
OpMemberName %8 0 "position"
|
||||
@ -18,16 +18,16 @@ OpMemberName %8 5 "perspective"
|
||||
OpMemberName %8 6 "perspective_centroid"
|
||||
OpMemberName %8 7 "perspective_sample"
|
||||
OpName %8 "FragmentInput"
|
||||
OpName %9 "out"
|
||||
OpName %13 "position"
|
||||
OpName %15 "_flat"
|
||||
OpName %17 "_linear"
|
||||
OpName %19 "linear_centroid"
|
||||
OpName %21 "linear_sample"
|
||||
OpName %23 "perspective"
|
||||
OpName %24 "perspective_centroid"
|
||||
OpName %25 "perspective_sample"
|
||||
OpName %29 "vert_main"
|
||||
OpName %10 "position"
|
||||
OpName %12 "_flat"
|
||||
OpName %14 "_linear"
|
||||
OpName %16 "linear_centroid"
|
||||
OpName %18 "linear_sample"
|
||||
OpName %20 "perspective"
|
||||
OpName %21 "perspective_centroid"
|
||||
OpName %22 "perspective_sample"
|
||||
OpName %26 "vert_main"
|
||||
OpName %49 "out"
|
||||
OpName %88 "position"
|
||||
OpName %91 "_flat"
|
||||
OpName %94 "_linear"
|
||||
@ -45,23 +45,23 @@ OpMemberDecorate %8 4 Offset 32
|
||||
OpMemberDecorate %8 5 Offset 48
|
||||
OpMemberDecorate %8 6 Offset 64
|
||||
OpMemberDecorate %8 7 Offset 68
|
||||
OpDecorate %13 BuiltIn Position
|
||||
OpDecorate %15 Location 0
|
||||
OpDecorate %15 Flat
|
||||
OpDecorate %17 Location 1
|
||||
OpDecorate %17 NoPerspective
|
||||
OpDecorate %19 Location 2
|
||||
OpDecorate %19 NoPerspective
|
||||
OpDecorate %19 Centroid
|
||||
OpDecorate %21 Location 3
|
||||
OpDecorate %21 NoPerspective
|
||||
OpDecorate %21 Sample
|
||||
OpDecorate %23 Location 4
|
||||
OpDecorate %24 Location 5
|
||||
OpDecorate %24 Centroid
|
||||
OpDecorate %25 Location 6
|
||||
OpDecorate %25 Sample
|
||||
OpDecorate %26 BuiltIn PointSize
|
||||
OpDecorate %10 BuiltIn Position
|
||||
OpDecorate %12 Location 0
|
||||
OpDecorate %12 Flat
|
||||
OpDecorate %14 Location 1
|
||||
OpDecorate %14 NoPerspective
|
||||
OpDecorate %16 Location 2
|
||||
OpDecorate %16 NoPerspective
|
||||
OpDecorate %16 Centroid
|
||||
OpDecorate %18 Location 3
|
||||
OpDecorate %18 NoPerspective
|
||||
OpDecorate %18 Sample
|
||||
OpDecorate %20 Location 4
|
||||
OpDecorate %21 Location 5
|
||||
OpDecorate %21 Centroid
|
||||
OpDecorate %22 Location 6
|
||||
OpDecorate %22 Sample
|
||||
OpDecorate %23 BuiltIn PointSize
|
||||
OpDecorate %88 BuiltIn FragCoord
|
||||
OpDecorate %91 Location 0
|
||||
OpDecorate %91 Flat
|
||||
@ -85,52 +85,56 @@ OpDecorate %107 Sample
|
||||
%6 = OpTypeVector %4 2
|
||||
%7 = OpTypeVector %4 3
|
||||
%8 = OpTypeStruct %3 %5 %4 %6 %7 %3 %4 %4
|
||||
%10 = OpTypePointer Function %8
|
||||
%11 = OpConstantNull %8
|
||||
%14 = OpTypePointer Output %3
|
||||
%13 = OpVariable %14 Output
|
||||
%16 = OpTypePointer Output %5
|
||||
%15 = OpVariable %16 Output
|
||||
%18 = OpTypePointer Output %4
|
||||
%17 = OpVariable %18 Output
|
||||
%20 = OpTypePointer Output %6
|
||||
%19 = OpVariable %20 Output
|
||||
%22 = OpTypePointer Output %7
|
||||
%21 = OpVariable %22 Output
|
||||
%23 = OpVariable %14 Output
|
||||
%24 = OpVariable %18 Output
|
||||
%25 = OpVariable %18 Output
|
||||
%27 = OpTypePointer Output %4
|
||||
%26 = OpVariable %27 Output
|
||||
%28 = OpConstant %4 1.0
|
||||
%30 = OpTypeFunction %2
|
||||
%31 = OpConstant %4 2.0
|
||||
%32 = OpConstant %4 4.0
|
||||
%33 = OpConstant %4 5.0
|
||||
%34 = OpConstant %4 6.0
|
||||
%35 = OpConstant %5 8
|
||||
%36 = OpConstant %4 27.0
|
||||
%37 = OpConstant %4 64.0
|
||||
%38 = OpConstant %4 125.0
|
||||
%39 = OpConstant %4 216.0
|
||||
%40 = OpConstant %4 343.0
|
||||
%41 = OpConstant %4 512.0
|
||||
%11 = OpTypePointer Output %3
|
||||
%10 = OpVariable %11 Output
|
||||
%13 = OpTypePointer Output %5
|
||||
%12 = OpVariable %13 Output
|
||||
%15 = OpTypePointer Output %4
|
||||
%14 = OpVariable %15 Output
|
||||
%17 = OpTypePointer Output %6
|
||||
%16 = OpVariable %17 Output
|
||||
%19 = OpTypePointer Output %7
|
||||
%18 = OpVariable %19 Output
|
||||
%20 = OpVariable %11 Output
|
||||
%21 = OpVariable %15 Output
|
||||
%22 = OpVariable %15 Output
|
||||
%24 = OpTypePointer Output %4
|
||||
%23 = OpVariable %24 Output
|
||||
%25 = OpConstant %4 1.0
|
||||
%27 = OpTypeFunction %2
|
||||
%28 = OpConstant %4 2.0
|
||||
%29 = OpConstant %4 4.0
|
||||
%30 = OpConstant %4 5.0
|
||||
%31 = OpConstant %4 6.0
|
||||
%32 = OpConstantComposite %3 %28 %29 %30 %31
|
||||
%33 = OpConstant %5 8
|
||||
%34 = OpConstant %4 27.0
|
||||
%35 = OpConstant %4 64.0
|
||||
%36 = OpConstant %4 125.0
|
||||
%37 = OpConstantComposite %6 %35 %36
|
||||
%38 = OpConstant %4 216.0
|
||||
%39 = OpConstant %4 343.0
|
||||
%40 = OpConstant %4 512.0
|
||||
%41 = OpConstantComposite %7 %38 %39 %40
|
||||
%42 = OpConstant %4 729.0
|
||||
%43 = OpConstant %4 1000.0
|
||||
%44 = OpConstant %4 1331.0
|
||||
%45 = OpConstant %4 1728.0
|
||||
%46 = OpConstant %4 2197.0
|
||||
%47 = OpConstant %4 2744.0
|
||||
%49 = OpTypePointer Function %3
|
||||
%51 = OpConstant %5 0
|
||||
%53 = OpTypePointer Function %5
|
||||
%54 = OpConstant %5 1
|
||||
%56 = OpTypePointer Function %4
|
||||
%57 = OpConstant %5 2
|
||||
%59 = OpTypePointer Function %6
|
||||
%61 = OpConstant %5 3
|
||||
%63 = OpTypePointer Function %7
|
||||
%65 = OpConstant %5 4
|
||||
%46 = OpConstantComposite %3 %42 %43 %44 %45
|
||||
%47 = OpConstant %4 2197.0
|
||||
%48 = OpConstant %4 2744.0
|
||||
%50 = OpTypePointer Function %8
|
||||
%51 = OpConstantNull %8
|
||||
%53 = OpTypePointer Function %3
|
||||
%54 = OpConstant %5 0
|
||||
%56 = OpTypePointer Function %5
|
||||
%57 = OpConstant %5 1
|
||||
%59 = OpTypePointer Function %4
|
||||
%60 = OpConstant %5 2
|
||||
%62 = OpTypePointer Function %6
|
||||
%63 = OpConstant %5 3
|
||||
%65 = OpTypePointer Function %7
|
||||
%66 = OpConstant %5 4
|
||||
%68 = OpConstant %5 5
|
||||
%70 = OpConstant %5 6
|
||||
%72 = OpConstant %5 7
|
||||
@ -147,56 +151,52 @@ OpDecorate %107 Sample
|
||||
%103 = OpVariable %89 Input
|
||||
%105 = OpVariable %95 Input
|
||||
%107 = OpVariable %95 Input
|
||||
%29 = OpFunction %2 None %30
|
||||
%12 = OpLabel
|
||||
%9 = OpVariable %10 Function %11
|
||||
OpStore %26 %28
|
||||
OpBranch %48
|
||||
%48 = OpLabel
|
||||
%50 = OpCompositeConstruct %3 %31 %32 %33 %34
|
||||
%52 = OpAccessChain %49 %9 %51
|
||||
OpStore %52 %50
|
||||
%55 = OpAccessChain %53 %9 %54
|
||||
OpStore %55 %35
|
||||
%58 = OpAccessChain %56 %9 %57
|
||||
OpStore %58 %36
|
||||
%60 = OpCompositeConstruct %6 %37 %38
|
||||
%62 = OpAccessChain %59 %9 %61
|
||||
OpStore %62 %60
|
||||
%64 = OpCompositeConstruct %7 %39 %40 %41
|
||||
%66 = OpAccessChain %63 %9 %65
|
||||
OpStore %66 %64
|
||||
%67 = OpCompositeConstruct %3 %42 %43 %44 %45
|
||||
%69 = OpAccessChain %49 %9 %68
|
||||
OpStore %69 %67
|
||||
%71 = OpAccessChain %56 %9 %70
|
||||
OpStore %71 %46
|
||||
%73 = OpAccessChain %56 %9 %72
|
||||
OpStore %73 %47
|
||||
%74 = OpLoad %8 %9
|
||||
%26 = OpFunction %2 None %27
|
||||
%9 = OpLabel
|
||||
%49 = OpVariable %50 Function %51
|
||||
OpStore %23 %25
|
||||
OpBranch %52
|
||||
%52 = OpLabel
|
||||
%55 = OpAccessChain %53 %49 %54
|
||||
OpStore %55 %32
|
||||
%58 = OpAccessChain %56 %49 %57
|
||||
OpStore %58 %33
|
||||
%61 = OpAccessChain %59 %49 %60
|
||||
OpStore %61 %34
|
||||
%64 = OpAccessChain %62 %49 %63
|
||||
OpStore %64 %37
|
||||
%67 = OpAccessChain %65 %49 %66
|
||||
OpStore %67 %41
|
||||
%69 = OpAccessChain %53 %49 %68
|
||||
OpStore %69 %46
|
||||
%71 = OpAccessChain %59 %49 %70
|
||||
OpStore %71 %47
|
||||
%73 = OpAccessChain %59 %49 %72
|
||||
OpStore %73 %48
|
||||
%74 = OpLoad %8 %49
|
||||
%75 = OpCompositeExtract %3 %74 0
|
||||
OpStore %13 %75
|
||||
%76 = OpAccessChain %27 %13 %54
|
||||
OpStore %10 %75
|
||||
%76 = OpAccessChain %24 %10 %57
|
||||
%77 = OpLoad %4 %76
|
||||
%78 = OpFNegate %4 %77
|
||||
OpStore %76 %78
|
||||
%79 = OpCompositeExtract %5 %74 1
|
||||
OpStore %15 %79
|
||||
OpStore %12 %79
|
||||
%80 = OpCompositeExtract %4 %74 2
|
||||
OpStore %17 %80
|
||||
OpStore %14 %80
|
||||
%81 = OpCompositeExtract %6 %74 3
|
||||
OpStore %19 %81
|
||||
OpStore %16 %81
|
||||
%82 = OpCompositeExtract %7 %74 4
|
||||
OpStore %21 %82
|
||||
OpStore %18 %82
|
||||
%83 = OpCompositeExtract %3 %74 5
|
||||
OpStore %23 %83
|
||||
OpStore %20 %83
|
||||
%84 = OpCompositeExtract %4 %74 6
|
||||
OpStore %24 %84
|
||||
OpStore %21 %84
|
||||
%85 = OpCompositeExtract %4 %74 7
|
||||
OpStore %25 %85
|
||||
OpStore %22 %85
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%109 = OpFunction %2 None %30
|
||||
%109 = OpFunction %2 None %27
|
||||
%86 = OpLabel
|
||||
%90 = OpLoad %3 %88
|
||||
%93 = OpLoad %5 %91
|
||||
|
@ -1,7 +1,7 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 134
|
||||
; Bound: 126
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
@ -32,123 +32,115 @@ OpMemberDecorate %13 1 Offset 16
|
||||
%16 = OpTypeFunction %2
|
||||
%17 = OpConstant %4 1.0
|
||||
%18 = OpConstant %4 0.0
|
||||
%19 = OpConstant %6 -1
|
||||
%20 = OpConstant %4 -1.0
|
||||
%21 = OpConstantNull %5
|
||||
%22 = OpTypeInt 32 0
|
||||
%23 = OpConstant %22 0
|
||||
%24 = OpConstant %22 1
|
||||
%25 = OpConstant %6 0
|
||||
%26 = OpConstant %22 4294967295
|
||||
%27 = OpConstant %6 1
|
||||
%28 = OpConstant %6 2
|
||||
%29 = OpConstant %4 2.0
|
||||
%30 = OpConstant %6 3
|
||||
%31 = OpConstant %6 4
|
||||
%32 = OpConstant %4 1.5
|
||||
%40 = OpConstantComposite %3 %18 %18 %18 %18
|
||||
%41 = OpConstantComposite %3 %17 %17 %17 %17
|
||||
%50 = OpConstantNull %6
|
||||
%63 = OpTypeVector %22 2
|
||||
%73 = OpConstant %22 32
|
||||
%83 = OpConstantComposite %63 %73 %73
|
||||
%19 = OpConstantComposite %3 %18 %18 %18 %18
|
||||
%20 = OpConstant %6 -1
|
||||
%21 = OpConstantComposite %12 %20 %20 %20 %20
|
||||
%22 = OpConstant %4 -1.0
|
||||
%23 = OpConstantComposite %3 %22 %22 %22 %22
|
||||
%24 = OpConstantNull %5
|
||||
%25 = OpTypeInt 32 0
|
||||
%26 = OpConstant %25 0
|
||||
%27 = OpConstantComposite %5 %20 %20
|
||||
%28 = OpConstant %25 1
|
||||
%29 = OpTypeVector %25 2
|
||||
%30 = OpConstantComposite %29 %28 %28
|
||||
%31 = OpConstant %6 0
|
||||
%32 = OpConstant %25 4294967295
|
||||
%33 = OpConstantComposite %29 %26 %26
|
||||
%34 = OpConstantComposite %5 %31 %31
|
||||
%35 = OpConstant %6 1
|
||||
%36 = OpConstantComposite %5 %35 %35
|
||||
%37 = OpConstant %6 2
|
||||
%38 = OpConstant %4 2.0
|
||||
%39 = OpConstantComposite %7 %17 %38
|
||||
%40 = OpConstant %6 3
|
||||
%41 = OpConstant %6 4
|
||||
%42 = OpConstantComposite %5 %40 %41
|
||||
%43 = OpConstant %4 1.5
|
||||
%44 = OpConstantComposite %7 %43 %43
|
||||
%45 = OpConstantComposite %3 %43 %43 %43 %43
|
||||
%52 = OpConstantComposite %3 %17 %17 %17 %17
|
||||
%59 = OpConstantNull %6
|
||||
%77 = OpConstant %25 32
|
||||
%86 = OpConstantComposite %29 %77 %77
|
||||
%95 = OpConstant %6 31
|
||||
%101 = OpConstantComposite %5 %95 %95
|
||||
%100 = OpConstantComposite %5 %95 %95
|
||||
%15 = OpFunction %2 None %16
|
||||
%14 = OpLabel
|
||||
OpBranch %33
|
||||
%33 = OpLabel
|
||||
%34 = OpCompositeConstruct %3 %18 %18 %18 %18
|
||||
%35 = OpExtInst %4 %1 Degrees %17
|
||||
%36 = OpExtInst %4 %1 Radians %17
|
||||
%37 = OpExtInst %3 %1 Degrees %34
|
||||
%38 = OpExtInst %3 %1 Radians %34
|
||||
%39 = OpExtInst %3 %1 FClamp %34 %40 %41
|
||||
%42 = OpExtInst %3 %1 Refract %34 %34 %17
|
||||
%43 = OpExtInst %6 %1 SSign %19
|
||||
%44 = OpCompositeConstruct %12 %19 %19 %19 %19
|
||||
%45 = OpExtInst %12 %1 SSign %44
|
||||
%46 = OpExtInst %4 %1 FSign %20
|
||||
%47 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%48 = OpExtInst %3 %1 FSign %47
|
||||
%51 = OpCompositeExtract %6 %21 0
|
||||
%52 = OpCompositeExtract %6 %21 0
|
||||
%53 = OpIMul %6 %51 %52
|
||||
%54 = OpIAdd %6 %50 %53
|
||||
%55 = OpCompositeExtract %6 %21 1
|
||||
%56 = OpCompositeExtract %6 %21 1
|
||||
%57 = OpIMul %6 %55 %56
|
||||
%49 = OpIAdd %6 %54 %57
|
||||
%58 = OpCopyObject %22 %23
|
||||
%59 = OpExtInst %22 %1 FindUMsb %58
|
||||
%60 = OpExtInst %6 %1 FindSMsb %19
|
||||
%61 = OpCompositeConstruct %5 %19 %19
|
||||
%62 = OpExtInst %5 %1 FindSMsb %61
|
||||
%64 = OpCompositeConstruct %63 %24 %24
|
||||
%65 = OpExtInst %63 %1 FindUMsb %64
|
||||
%66 = OpExtInst %6 %1 FindILsb %19
|
||||
%67 = OpExtInst %22 %1 FindILsb %24
|
||||
%68 = OpCompositeConstruct %5 %19 %19
|
||||
%69 = OpExtInst %5 %1 FindILsb %68
|
||||
%70 = OpCompositeConstruct %63 %24 %24
|
||||
%71 = OpExtInst %63 %1 FindILsb %70
|
||||
%74 = OpExtInst %22 %1 FindILsb %23
|
||||
%72 = OpExtInst %22 %1 UMin %73 %74
|
||||
%76 = OpExtInst %6 %1 FindILsb %25
|
||||
%75 = OpExtInst %6 %1 UMin %73 %76
|
||||
%78 = OpExtInst %22 %1 FindILsb %26
|
||||
%77 = OpExtInst %22 %1 UMin %73 %78
|
||||
%80 = OpExtInst %6 %1 FindILsb %19
|
||||
%79 = OpExtInst %6 %1 UMin %73 %80
|
||||
%81 = OpCompositeConstruct %63 %23 %23
|
||||
%84 = OpExtInst %63 %1 FindILsb %81
|
||||
%82 = OpExtInst %63 %1 UMin %83 %84
|
||||
%85 = OpCompositeConstruct %5 %25 %25
|
||||
%87 = OpExtInst %5 %1 FindILsb %85
|
||||
%86 = OpExtInst %5 %1 UMin %83 %87
|
||||
%88 = OpCompositeConstruct %63 %24 %24
|
||||
%90 = OpExtInst %63 %1 FindILsb %88
|
||||
%89 = OpExtInst %63 %1 UMin %83 %90
|
||||
%91 = OpCompositeConstruct %5 %27 %27
|
||||
%93 = OpExtInst %5 %1 FindILsb %91
|
||||
%92 = OpExtInst %5 %1 UMin %83 %93
|
||||
%96 = OpExtInst %6 %1 FindUMsb %19
|
||||
OpBranch %46
|
||||
%46 = OpLabel
|
||||
%47 = OpExtInst %4 %1 Degrees %17
|
||||
%48 = OpExtInst %4 %1 Radians %17
|
||||
%49 = OpExtInst %3 %1 Degrees %19
|
||||
%50 = OpExtInst %3 %1 Radians %19
|
||||
%51 = OpExtInst %3 %1 FClamp %19 %19 %52
|
||||
%53 = OpExtInst %3 %1 Refract %19 %19 %17
|
||||
%54 = OpExtInst %6 %1 SSign %20
|
||||
%55 = OpExtInst %12 %1 SSign %21
|
||||
%56 = OpExtInst %4 %1 FSign %22
|
||||
%57 = OpExtInst %3 %1 FSign %23
|
||||
%60 = OpCompositeExtract %6 %24 0
|
||||
%61 = OpCompositeExtract %6 %24 0
|
||||
%62 = OpIMul %6 %60 %61
|
||||
%63 = OpIAdd %6 %59 %62
|
||||
%64 = OpCompositeExtract %6 %24 1
|
||||
%65 = OpCompositeExtract %6 %24 1
|
||||
%66 = OpIMul %6 %64 %65
|
||||
%58 = OpIAdd %6 %63 %66
|
||||
%67 = OpCopyObject %25 %26
|
||||
%68 = OpExtInst %25 %1 FindUMsb %67
|
||||
%69 = OpExtInst %6 %1 FindSMsb %20
|
||||
%70 = OpExtInst %5 %1 FindSMsb %27
|
||||
%71 = OpExtInst %29 %1 FindUMsb %30
|
||||
%72 = OpExtInst %6 %1 FindILsb %20
|
||||
%73 = OpExtInst %25 %1 FindILsb %28
|
||||
%74 = OpExtInst %5 %1 FindILsb %27
|
||||
%75 = OpExtInst %29 %1 FindILsb %30
|
||||
%78 = OpExtInst %25 %1 FindILsb %26
|
||||
%76 = OpExtInst %25 %1 UMin %77 %78
|
||||
%80 = OpExtInst %6 %1 FindILsb %31
|
||||
%79 = OpExtInst %6 %1 UMin %77 %80
|
||||
%82 = OpExtInst %25 %1 FindILsb %32
|
||||
%81 = OpExtInst %25 %1 UMin %77 %82
|
||||
%84 = OpExtInst %6 %1 FindILsb %20
|
||||
%83 = OpExtInst %6 %1 UMin %77 %84
|
||||
%87 = OpExtInst %29 %1 FindILsb %33
|
||||
%85 = OpExtInst %29 %1 UMin %86 %87
|
||||
%89 = OpExtInst %5 %1 FindILsb %34
|
||||
%88 = OpExtInst %5 %1 UMin %86 %89
|
||||
%91 = OpExtInst %29 %1 FindILsb %30
|
||||
%90 = OpExtInst %29 %1 UMin %86 %91
|
||||
%93 = OpExtInst %5 %1 FindILsb %36
|
||||
%92 = OpExtInst %5 %1 UMin %86 %93
|
||||
%96 = OpExtInst %6 %1 FindUMsb %20
|
||||
%94 = OpISub %6 %95 %96
|
||||
%98 = OpExtInst %6 %1 FindUMsb %24
|
||||
%97 = OpISub %22 %95 %98
|
||||
%99 = OpCompositeConstruct %5 %19 %19
|
||||
%102 = OpExtInst %5 %1 FindUMsb %99
|
||||
%100 = OpISub %5 %101 %102
|
||||
%103 = OpCompositeConstruct %63 %24 %24
|
||||
%105 = OpExtInst %5 %1 FindUMsb %103
|
||||
%104 = OpISub %63 %101 %105
|
||||
%106 = OpExtInst %4 %1 Ldexp %17 %28
|
||||
%107 = OpCompositeConstruct %7 %17 %29
|
||||
%108 = OpCompositeConstruct %5 %30 %31
|
||||
%109 = OpExtInst %7 %1 Ldexp %107 %108
|
||||
%110 = OpExtInst %8 %1 ModfStruct %32
|
||||
%111 = OpExtInst %8 %1 ModfStruct %32
|
||||
%112 = OpCompositeExtract %4 %111 0
|
||||
%113 = OpExtInst %8 %1 ModfStruct %32
|
||||
%114 = OpCompositeExtract %4 %113 1
|
||||
%115 = OpCompositeConstruct %7 %32 %32
|
||||
%116 = OpExtInst %9 %1 ModfStruct %115
|
||||
%117 = OpCompositeConstruct %3 %32 %32 %32 %32
|
||||
%118 = OpExtInst %10 %1 ModfStruct %117
|
||||
%119 = OpCompositeExtract %3 %118 1
|
||||
%98 = OpExtInst %6 %1 FindUMsb %28
|
||||
%97 = OpISub %25 %95 %98
|
||||
%101 = OpExtInst %5 %1 FindUMsb %27
|
||||
%99 = OpISub %5 %100 %101
|
||||
%103 = OpExtInst %5 %1 FindUMsb %30
|
||||
%102 = OpISub %29 %100 %103
|
||||
%104 = OpExtInst %4 %1 Ldexp %17 %37
|
||||
%105 = OpExtInst %7 %1 Ldexp %39 %42
|
||||
%106 = OpExtInst %8 %1 ModfStruct %43
|
||||
%107 = OpExtInst %8 %1 ModfStruct %43
|
||||
%108 = OpCompositeExtract %4 %107 0
|
||||
%109 = OpExtInst %8 %1 ModfStruct %43
|
||||
%110 = OpCompositeExtract %4 %109 1
|
||||
%111 = OpExtInst %9 %1 ModfStruct %44
|
||||
%112 = OpExtInst %10 %1 ModfStruct %45
|
||||
%113 = OpCompositeExtract %3 %112 1
|
||||
%114 = OpCompositeExtract %4 %113 0
|
||||
%115 = OpExtInst %9 %1 ModfStruct %44
|
||||
%116 = OpCompositeExtract %7 %115 0
|
||||
%117 = OpCompositeExtract %4 %116 1
|
||||
%118 = OpExtInst %11 %1 FrexpStruct %43
|
||||
%119 = OpExtInst %11 %1 FrexpStruct %43
|
||||
%120 = OpCompositeExtract %4 %119 0
|
||||
%121 = OpCompositeConstruct %7 %32 %32
|
||||
%122 = OpExtInst %9 %1 ModfStruct %121
|
||||
%123 = OpCompositeExtract %7 %122 0
|
||||
%124 = OpCompositeExtract %4 %123 1
|
||||
%125 = OpExtInst %11 %1 FrexpStruct %32
|
||||
%126 = OpExtInst %11 %1 FrexpStruct %32
|
||||
%127 = OpCompositeExtract %4 %126 0
|
||||
%128 = OpExtInst %11 %1 FrexpStruct %32
|
||||
%129 = OpCompositeExtract %6 %128 1
|
||||
%130 = OpCompositeConstruct %3 %32 %32 %32 %32
|
||||
%131 = OpExtInst %13 %1 FrexpStruct %130
|
||||
%132 = OpCompositeExtract %12 %131 1
|
||||
%133 = OpCompositeExtract %6 %132 0
|
||||
%121 = OpExtInst %11 %1 FrexpStruct %43
|
||||
%122 = OpCompositeExtract %6 %121 1
|
||||
%123 = OpExtInst %13 %1 FrexpStruct %45
|
||||
%124 = OpCompositeExtract %12 %123 1
|
||||
%125 = OpCompositeExtract %6 %124 0
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,12 +1,12 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 450
|
||||
; Bound: 308
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %439 "main"
|
||||
OpExecutionMode %439 LocalSize 1 1 1
|
||||
OpEntryPoint GLCompute %297 "main"
|
||||
OpExecutionMode %297 LocalSize 1 1 1
|
||||
%2 = OpTypeVoid
|
||||
%4 = OpTypeFloat 32
|
||||
%3 = OpTypeVector %4 4
|
||||
@ -37,476 +37,331 @@ OpExecutionMode %439 LocalSize 1 1 1
|
||||
%31 = OpConstantTrue %8
|
||||
%32 = OpConstant %6 0
|
||||
%33 = OpConstantFalse %8
|
||||
%34 = OpConstant %4 0.1
|
||||
%34 = OpConstantComposite %7 %33 %33 %33 %33
|
||||
%35 = OpConstant %4 0.1
|
||||
%36 = OpConstantComposite %5 %32 %32 %32 %32
|
||||
%58 = OpConstant %4 2.0
|
||||
%59 = OpConstant %4 3.0
|
||||
%60 = OpConstant %4 4.0
|
||||
%61 = OpConstant %6 5
|
||||
%62 = OpConstant %6 2
|
||||
%78 = OpTypePointer Function %9
|
||||
%79 = OpConstantNull %9
|
||||
%82 = OpTypeFunction %9
|
||||
%98 = OpTypeFunction %10 %10
|
||||
%100 = OpTypeVector %8 3
|
||||
%101 = OpConstantComposite %10 %22 %22 %22
|
||||
%103 = OpConstantComposite %10 %20 %20 %20
|
||||
%107 = OpTypeFunction %2
|
||||
%120 = OpConstant %4 -1.0
|
||||
%121 = OpConstant %6 -1
|
||||
%122 = OpConstant %6 3
|
||||
%123 = OpConstant %14 3
|
||||
%124 = OpConstant %14 2
|
||||
%59 = OpConstantComposite %9 %58 %58
|
||||
%60 = OpConstantComposite %9 %20 %20
|
||||
%61 = OpConstant %4 3.0
|
||||
%62 = OpConstantComposite %9 %61 %61
|
||||
%63 = OpConstant %4 4.0
|
||||
%64 = OpConstantComposite %9 %63 %63
|
||||
%65 = OpConstant %6 5
|
||||
%66 = OpConstantComposite %5 %65 %65 %65 %65
|
||||
%67 = OpConstant %6 2
|
||||
%68 = OpConstantComposite %5 %67 %67 %67 %67
|
||||
%79 = OpTypeFunction %9
|
||||
%81 = OpTypePointer Function %9
|
||||
%93 = OpTypeFunction %10 %10
|
||||
%95 = OpTypeVector %8 3
|
||||
%96 = OpConstantComposite %10 %22 %22 %22
|
||||
%98 = OpConstantComposite %10 %20 %20 %20
|
||||
%102 = OpTypeFunction %2
|
||||
%103 = OpConstantComposite %11 %33 %33
|
||||
%104 = OpConstantComposite %95 %31 %31 %31
|
||||
%105 = OpConstantComposite %95 %33 %33 %33
|
||||
%106 = OpConstantComposite %7 %31 %31 %31 %31
|
||||
%107 = OpConstantComposite %7 %33 %33 %33 %33
|
||||
%115 = OpConstant %4 -1.0
|
||||
%116 = OpConstant %6 -1
|
||||
%117 = OpConstantComposite %12 %116 %116
|
||||
%118 = OpConstantComposite %9 %115 %115
|
||||
%119 = OpConstant %6 3
|
||||
%120 = OpConstant %14 3
|
||||
%121 = OpConstantComposite %12 %67 %67
|
||||
%122 = OpConstantComposite %12 %26 %26
|
||||
%123 = OpConstant %14 2
|
||||
%124 = OpConstantComposite %13 %123 %123 %123
|
||||
%125 = OpConstant %14 1
|
||||
%126 = OpConstant %14 0
|
||||
%127 = OpConstantNull %16
|
||||
%128 = OpConstantNull %17
|
||||
%129 = OpConstantNull %18
|
||||
%293 = OpConstant %6 -2
|
||||
%294 = OpConstant %14 4294967294
|
||||
%295 = OpConstant %6 4
|
||||
%296 = OpConstant %14 4
|
||||
%388 = OpTypePointer Function %6
|
||||
%389 = OpConstantNull %6
|
||||
%391 = OpTypePointer Function %19
|
||||
%392 = OpConstantNull %19
|
||||
%422 = OpTypePointer Function %6
|
||||
%433 = OpConstant %6 -5
|
||||
%434 = OpConstant %6 6
|
||||
%435 = OpConstant %6 -7
|
||||
%436 = OpConstant %6 -8
|
||||
%126 = OpConstantComposite %13 %125 %125 %125
|
||||
%127 = OpConstantComposite %3 %58 %58 %58 %58
|
||||
%128 = OpConstantComposite %3 %20 %20 %20 %20
|
||||
%129 = OpConstant %14 0
|
||||
%130 = OpConstantComposite %15 %123 %123
|
||||
%131 = OpConstantComposite %15 %125 %125
|
||||
%132 = OpConstantComposite %12 %67 %67
|
||||
%133 = OpConstantComposite %15 %123 %123
|
||||
%134 = OpConstantComposite %9 %58 %58
|
||||
%135 = OpConstantNull %16
|
||||
%136 = OpConstantComposite %10 %22 %22 %22
|
||||
%137 = OpConstantComposite %16 %136 %136 %136
|
||||
%138 = OpConstantNull %17
|
||||
%139 = OpConstantComposite %10 %58 %58 %58
|
||||
%140 = OpConstantNull %18
|
||||
%208 = OpConstant %6 -2
|
||||
%209 = OpConstant %14 4294967294
|
||||
%210 = OpConstantComposite %12 %208 %208
|
||||
%211 = OpConstantComposite %13 %209 %209 %209
|
||||
%212 = OpConstant %6 4
|
||||
%213 = OpConstant %14 4
|
||||
%248 = OpConstantNull %19
|
||||
%250 = OpTypePointer Function %6
|
||||
%252 = OpTypePointer Function %19
|
||||
%280 = OpTypePointer Function %6
|
||||
%291 = OpConstant %6 -5
|
||||
%292 = OpConstant %6 6
|
||||
%293 = OpConstant %6 -7
|
||||
%294 = OpConstant %6 -8
|
||||
%298 = OpConstantComposite %10 %20 %20 %20
|
||||
%29 = OpFunction %3 None %30
|
||||
%28 = OpLabel
|
||||
OpBranch %35
|
||||
%35 = OpLabel
|
||||
%36 = OpSelect %6 %31 %26 %32
|
||||
%38 = OpCompositeConstruct %7 %31 %31 %31 %31
|
||||
%37 = OpSelect %3 %38 %21 %23
|
||||
%39 = OpCompositeConstruct %7 %33 %33 %33 %33
|
||||
%40 = OpSelect %3 %39 %23 %21
|
||||
%41 = OpExtInst %3 %1 FMix %23 %21 %25
|
||||
%43 = OpCompositeConstruct %3 %34 %34 %34 %34
|
||||
%42 = OpExtInst %3 %1 FMix %23 %21 %43
|
||||
%44 = OpBitcast %4 %26
|
||||
%45 = OpBitcast %3 %27
|
||||
%46 = OpCompositeConstruct %5 %32 %32 %32 %32
|
||||
%47 = OpCompositeConstruct %5 %36 %36 %36 %36
|
||||
%48 = OpIAdd %5 %47 %46
|
||||
OpBranch %37
|
||||
%37 = OpLabel
|
||||
%38 = OpSelect %6 %31 %26 %32
|
||||
%40 = OpCompositeConstruct %7 %31 %31 %31 %31
|
||||
%39 = OpSelect %3 %40 %21 %23
|
||||
%41 = OpSelect %3 %34 %23 %21
|
||||
%42 = OpExtInst %3 %1 FMix %23 %21 %25
|
||||
%44 = OpCompositeConstruct %3 %35 %35 %35 %35
|
||||
%43 = OpExtInst %3 %1 FMix %23 %21 %44
|
||||
%45 = OpBitcast %4 %26
|
||||
%46 = OpBitcast %3 %27
|
||||
%47 = OpCompositeConstruct %5 %38 %38 %38 %38
|
||||
%48 = OpIAdd %5 %47 %36
|
||||
%49 = OpConvertSToF %3 %48
|
||||
%50 = OpFAdd %3 %49 %37
|
||||
%51 = OpFAdd %3 %50 %41
|
||||
%52 = OpFAdd %3 %51 %42
|
||||
%53 = OpCompositeConstruct %3 %44 %44 %44 %44
|
||||
%50 = OpFAdd %3 %49 %39
|
||||
%51 = OpFAdd %3 %50 %42
|
||||
%52 = OpFAdd %3 %51 %43
|
||||
%53 = OpCompositeConstruct %3 %45 %45 %45 %45
|
||||
%54 = OpFAdd %3 %52 %53
|
||||
%55 = OpFAdd %3 %54 %45
|
||||
%55 = OpFAdd %3 %54 %46
|
||||
OpReturnValue %55
|
||||
OpFunctionEnd
|
||||
%57 = OpFunction %3 None %30
|
||||
%56 = OpLabel
|
||||
OpBranch %63
|
||||
%63 = OpLabel
|
||||
%64 = OpCompositeConstruct %9 %58 %58
|
||||
%65 = OpCompositeConstruct %9 %20 %20
|
||||
%66 = OpFAdd %9 %65 %64
|
||||
%67 = OpCompositeConstruct %9 %59 %59
|
||||
%68 = OpFSub %9 %66 %67
|
||||
%69 = OpCompositeConstruct %9 %60 %60
|
||||
%70 = OpFDiv %9 %68 %69
|
||||
%71 = OpCompositeConstruct %5 %61 %61 %61 %61
|
||||
%72 = OpCompositeConstruct %5 %62 %62 %62 %62
|
||||
%73 = OpSRem %5 %71 %72
|
||||
%74 = OpVectorShuffle %3 %70 %70 0 1 0 1
|
||||
OpBranch %69
|
||||
%69 = OpLabel
|
||||
%70 = OpFAdd %9 %60 %59
|
||||
%71 = OpFSub %9 %70 %62
|
||||
%72 = OpFDiv %9 %71 %64
|
||||
%73 = OpSRem %5 %66 %68
|
||||
%74 = OpVectorShuffle %3 %72 %72 0 1 0 1
|
||||
%75 = OpConvertSToF %3 %73
|
||||
%76 = OpFAdd %3 %74 %75
|
||||
OpReturnValue %76
|
||||
OpFunctionEnd
|
||||
%81 = OpFunction %9 None %82
|
||||
%80 = OpLabel
|
||||
%77 = OpVariable %78 Function %79
|
||||
OpBranch %83
|
||||
%83 = OpLabel
|
||||
%84 = OpCompositeConstruct %9 %58 %58
|
||||
OpStore %77 %84
|
||||
%85 = OpLoad %9 %77
|
||||
%86 = OpCompositeConstruct %9 %20 %20
|
||||
%87 = OpFAdd %9 %85 %86
|
||||
OpStore %77 %87
|
||||
%88 = OpLoad %9 %77
|
||||
%89 = OpCompositeConstruct %9 %59 %59
|
||||
%90 = OpFSub %9 %88 %89
|
||||
OpStore %77 %90
|
||||
%91 = OpLoad %9 %77
|
||||
%92 = OpCompositeConstruct %9 %60 %60
|
||||
%93 = OpFDiv %9 %91 %92
|
||||
OpStore %77 %93
|
||||
%94 = OpLoad %9 %77
|
||||
OpReturnValue %94
|
||||
%78 = OpFunction %9 None %79
|
||||
%77 = OpLabel
|
||||
%80 = OpVariable %81 Function %59
|
||||
OpBranch %82
|
||||
%82 = OpLabel
|
||||
%83 = OpLoad %9 %80
|
||||
%84 = OpFAdd %9 %83 %60
|
||||
OpStore %80 %84
|
||||
%85 = OpLoad %9 %80
|
||||
%86 = OpFSub %9 %85 %62
|
||||
OpStore %80 %86
|
||||
%87 = OpLoad %9 %80
|
||||
%88 = OpFDiv %9 %87 %64
|
||||
OpStore %80 %88
|
||||
%89 = OpLoad %9 %80
|
||||
OpReturnValue %89
|
||||
OpFunctionEnd
|
||||
%97 = OpFunction %10 None %98
|
||||
%96 = OpFunctionParameter %10
|
||||
%95 = OpLabel
|
||||
OpBranch %99
|
||||
%99 = OpLabel
|
||||
%102 = OpFUnordNotEqual %100 %96 %101
|
||||
%104 = OpSelect %10 %102 %103 %101
|
||||
OpReturnValue %104
|
||||
%92 = OpFunction %10 None %93
|
||||
%91 = OpFunctionParameter %10
|
||||
%90 = OpLabel
|
||||
OpBranch %94
|
||||
%94 = OpLabel
|
||||
%97 = OpFUnordNotEqual %95 %91 %96
|
||||
%99 = OpSelect %10 %97 %98 %96
|
||||
OpReturnValue %99
|
||||
OpFunctionEnd
|
||||
%106 = OpFunction %2 None %107
|
||||
%105 = OpLabel
|
||||
%101 = OpFunction %2 None %102
|
||||
%100 = OpLabel
|
||||
OpBranch %108
|
||||
%108 = OpLabel
|
||||
%109 = OpCompositeConstruct %11 %33 %33
|
||||
%110 = OpLogicalOr %8 %31 %33
|
||||
%111 = OpCompositeConstruct %100 %31 %31 %31
|
||||
%112 = OpCompositeConstruct %100 %33 %33 %33
|
||||
%113 = OpLogicalOr %100 %111 %112
|
||||
%114 = OpLogicalAnd %8 %31 %33
|
||||
%115 = OpCompositeConstruct %7 %31 %31 %31 %31
|
||||
%116 = OpCompositeConstruct %7 %33 %33 %33 %33
|
||||
%117 = OpLogicalAnd %7 %115 %116
|
||||
%109 = OpLogicalOr %8 %31 %33
|
||||
%110 = OpLogicalOr %95 %104 %105
|
||||
%111 = OpLogicalAnd %8 %31 %33
|
||||
%112 = OpLogicalAnd %7 %106 %107
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%119 = OpFunction %2 None %107
|
||||
%118 = OpLabel
|
||||
OpBranch %130
|
||||
%130 = OpLabel
|
||||
%131 = OpCompositeConstruct %12 %121 %121
|
||||
%132 = OpCompositeConstruct %9 %120 %120
|
||||
%133 = OpCompositeConstruct %12 %62 %62
|
||||
%134 = OpCompositeConstruct %12 %26 %26
|
||||
%135 = OpIAdd %12 %133 %134
|
||||
%136 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%137 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%138 = OpIAdd %13 %136 %137
|
||||
%139 = OpCompositeConstruct %3 %58 %58 %58 %58
|
||||
%140 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%141 = OpFAdd %3 %139 %140
|
||||
%142 = OpCompositeConstruct %12 %62 %62
|
||||
%143 = OpCompositeConstruct %12 %26 %26
|
||||
%144 = OpISub %12 %142 %143
|
||||
%145 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%146 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%147 = OpISub %13 %145 %146
|
||||
%148 = OpCompositeConstruct %3 %58 %58 %58 %58
|
||||
%149 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%150 = OpFSub %3 %148 %149
|
||||
%151 = OpCompositeConstruct %12 %62 %62
|
||||
%152 = OpCompositeConstruct %12 %26 %26
|
||||
%153 = OpIMul %12 %151 %152
|
||||
%154 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%155 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%156 = OpIMul %13 %154 %155
|
||||
%157 = OpCompositeConstruct %3 %58 %58 %58 %58
|
||||
%158 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%159 = OpFMul %3 %157 %158
|
||||
%160 = OpCompositeConstruct %12 %62 %62
|
||||
%161 = OpCompositeConstruct %12 %26 %26
|
||||
%162 = OpSDiv %12 %160 %161
|
||||
%163 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%164 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%165 = OpUDiv %13 %163 %164
|
||||
%166 = OpCompositeConstruct %3 %58 %58 %58 %58
|
||||
%167 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%168 = OpFDiv %3 %166 %167
|
||||
%169 = OpCompositeConstruct %12 %62 %62
|
||||
%170 = OpCompositeConstruct %12 %26 %26
|
||||
%171 = OpSRem %12 %169 %170
|
||||
%172 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%173 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%174 = OpUMod %13 %172 %173
|
||||
%175 = OpCompositeConstruct %3 %58 %58 %58 %58
|
||||
%176 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%177 = OpFRem %3 %175 %176
|
||||
OpBranch %178
|
||||
%178 = OpLabel
|
||||
%180 = OpCompositeConstruct %12 %62 %62
|
||||
%181 = OpCompositeConstruct %12 %26 %26
|
||||
%182 = OpIAdd %12 %180 %181
|
||||
%183 = OpCompositeConstruct %12 %26 %26
|
||||
%184 = OpCompositeConstruct %12 %62 %62
|
||||
%185 = OpIAdd %12 %184 %183
|
||||
%186 = OpCompositeConstruct %15 %124 %124
|
||||
%187 = OpCompositeConstruct %15 %125 %125
|
||||
%188 = OpIAdd %15 %186 %187
|
||||
%189 = OpCompositeConstruct %15 %125 %125
|
||||
%190 = OpCompositeConstruct %15 %124 %124
|
||||
%191 = OpIAdd %15 %190 %189
|
||||
%192 = OpCompositeConstruct %9 %58 %58
|
||||
%193 = OpCompositeConstruct %9 %20 %20
|
||||
%194 = OpFAdd %9 %192 %193
|
||||
%195 = OpCompositeConstruct %9 %20 %20
|
||||
%196 = OpCompositeConstruct %9 %58 %58
|
||||
%197 = OpFAdd %9 %196 %195
|
||||
%198 = OpCompositeConstruct %12 %62 %62
|
||||
%199 = OpCompositeConstruct %12 %26 %26
|
||||
%200 = OpISub %12 %198 %199
|
||||
%201 = OpCompositeConstruct %12 %26 %26
|
||||
%202 = OpCompositeConstruct %12 %62 %62
|
||||
%203 = OpISub %12 %202 %201
|
||||
%204 = OpCompositeConstruct %15 %124 %124
|
||||
%205 = OpCompositeConstruct %15 %125 %125
|
||||
%206 = OpISub %15 %204 %205
|
||||
%207 = OpCompositeConstruct %15 %125 %125
|
||||
%208 = OpCompositeConstruct %15 %124 %124
|
||||
%209 = OpISub %15 %208 %207
|
||||
%210 = OpCompositeConstruct %9 %58 %58
|
||||
%211 = OpCompositeConstruct %9 %20 %20
|
||||
%212 = OpFSub %9 %210 %211
|
||||
%213 = OpCompositeConstruct %9 %20 %20
|
||||
%214 = OpCompositeConstruct %9 %58 %58
|
||||
%215 = OpFSub %9 %214 %213
|
||||
%216 = OpCompositeConstruct %12 %62 %62
|
||||
%217 = OpCompositeConstruct %12 %62 %62
|
||||
%218 = OpCompositeConstruct %15 %124 %124
|
||||
%219 = OpCompositeConstruct %15 %124 %124
|
||||
%220 = OpCompositeConstruct %9 %58 %58
|
||||
%221 = OpCompositeConstruct %9 %58 %58
|
||||
%222 = OpCompositeConstruct %12 %62 %62
|
||||
%223 = OpCompositeConstruct %12 %26 %26
|
||||
%224 = OpSDiv %12 %222 %223
|
||||
%225 = OpCompositeConstruct %12 %26 %26
|
||||
%226 = OpCompositeConstruct %12 %62 %62
|
||||
%227 = OpSDiv %12 %226 %225
|
||||
%228 = OpCompositeConstruct %15 %124 %124
|
||||
%229 = OpCompositeConstruct %15 %125 %125
|
||||
%230 = OpUDiv %15 %228 %229
|
||||
%231 = OpCompositeConstruct %15 %125 %125
|
||||
%232 = OpCompositeConstruct %15 %124 %124
|
||||
%233 = OpUDiv %15 %232 %231
|
||||
%234 = OpCompositeConstruct %9 %58 %58
|
||||
%235 = OpCompositeConstruct %9 %20 %20
|
||||
%236 = OpFDiv %9 %234 %235
|
||||
%237 = OpCompositeConstruct %9 %20 %20
|
||||
%238 = OpCompositeConstruct %9 %58 %58
|
||||
%239 = OpFDiv %9 %238 %237
|
||||
%240 = OpCompositeConstruct %12 %62 %62
|
||||
%241 = OpCompositeConstruct %12 %26 %26
|
||||
%242 = OpSRem %12 %240 %241
|
||||
%243 = OpCompositeConstruct %12 %26 %26
|
||||
%244 = OpCompositeConstruct %12 %62 %62
|
||||
%245 = OpSRem %12 %244 %243
|
||||
%246 = OpCompositeConstruct %15 %124 %124
|
||||
%247 = OpCompositeConstruct %15 %125 %125
|
||||
%248 = OpUMod %15 %246 %247
|
||||
%249 = OpCompositeConstruct %15 %125 %125
|
||||
%250 = OpCompositeConstruct %15 %124 %124
|
||||
%251 = OpUMod %15 %250 %249
|
||||
%252 = OpCompositeConstruct %9 %58 %58
|
||||
%253 = OpCompositeConstruct %9 %20 %20
|
||||
%254 = OpFRem %9 %252 %253
|
||||
%255 = OpCompositeConstruct %9 %20 %20
|
||||
%256 = OpCompositeConstruct %9 %58 %58
|
||||
%257 = OpFRem %9 %256 %255
|
||||
OpBranch %179
|
||||
%179 = OpLabel
|
||||
%259 = OpCompositeExtract %10 %127 0
|
||||
%260 = OpCompositeExtract %10 %127 0
|
||||
%261 = OpFAdd %10 %259 %260
|
||||
%262 = OpCompositeExtract %10 %127 1
|
||||
%263 = OpCompositeExtract %10 %127 1
|
||||
%264 = OpFAdd %10 %262 %263
|
||||
%265 = OpCompositeExtract %10 %127 2
|
||||
%266 = OpCompositeExtract %10 %127 2
|
||||
%267 = OpFAdd %10 %265 %266
|
||||
%258 = OpCompositeConstruct %16 %261 %264 %267
|
||||
%269 = OpCompositeExtract %10 %127 0
|
||||
%270 = OpCompositeExtract %10 %127 0
|
||||
%271 = OpFSub %10 %269 %270
|
||||
%272 = OpCompositeExtract %10 %127 1
|
||||
%273 = OpCompositeExtract %10 %127 1
|
||||
%274 = OpFSub %10 %272 %273
|
||||
%275 = OpCompositeExtract %10 %127 2
|
||||
%276 = OpCompositeExtract %10 %127 2
|
||||
%277 = OpFSub %10 %275 %276
|
||||
%268 = OpCompositeConstruct %16 %271 %274 %277
|
||||
%278 = OpCompositeConstruct %10 %22 %22 %22
|
||||
%279 = OpCompositeConstruct %10 %22 %22 %22
|
||||
%280 = OpCompositeConstruct %10 %22 %22 %22
|
||||
%281 = OpCompositeConstruct %16 %278 %279 %280
|
||||
%282 = OpCompositeConstruct %10 %22 %22 %22
|
||||
%283 = OpCompositeConstruct %10 %22 %22 %22
|
||||
%284 = OpCompositeConstruct %10 %22 %22 %22
|
||||
%285 = OpCompositeConstruct %16 %282 %283 %284
|
||||
%286 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%287 = OpMatrixTimesVector %10 %128 %286
|
||||
%288 = OpCompositeConstruct %10 %58 %58 %58
|
||||
%289 = OpVectorTimesMatrix %3 %288 %128
|
||||
%290 = OpMatrixTimesMatrix %16 %128 %129
|
||||
%114 = OpFunction %2 None %102
|
||||
%113 = OpLabel
|
||||
OpBranch %141
|
||||
%141 = OpLabel
|
||||
%142 = OpIAdd %12 %121 %122
|
||||
%143 = OpIAdd %13 %124 %126
|
||||
%144 = OpFAdd %3 %127 %128
|
||||
%145 = OpISub %12 %121 %122
|
||||
%146 = OpISub %13 %124 %126
|
||||
%147 = OpFSub %3 %127 %128
|
||||
%148 = OpIMul %12 %121 %122
|
||||
%149 = OpIMul %13 %124 %126
|
||||
%150 = OpFMul %3 %127 %128
|
||||
%151 = OpSDiv %12 %121 %122
|
||||
%152 = OpUDiv %13 %124 %126
|
||||
%153 = OpFDiv %3 %127 %128
|
||||
%154 = OpSRem %12 %121 %122
|
||||
%155 = OpUMod %13 %124 %126
|
||||
%156 = OpFRem %3 %127 %128
|
||||
OpBranch %157
|
||||
%157 = OpLabel
|
||||
%159 = OpIAdd %12 %121 %122
|
||||
%160 = OpIAdd %12 %121 %122
|
||||
%161 = OpIAdd %15 %130 %131
|
||||
%162 = OpIAdd %15 %130 %131
|
||||
%163 = OpFAdd %9 %59 %60
|
||||
%164 = OpFAdd %9 %59 %60
|
||||
%165 = OpISub %12 %121 %122
|
||||
%166 = OpISub %12 %121 %122
|
||||
%167 = OpISub %15 %130 %131
|
||||
%168 = OpISub %15 %130 %131
|
||||
%169 = OpFSub %9 %59 %60
|
||||
%170 = OpFSub %9 %59 %60
|
||||
%171 = OpSDiv %12 %121 %122
|
||||
%172 = OpSDiv %12 %121 %122
|
||||
%173 = OpUDiv %15 %130 %131
|
||||
%174 = OpUDiv %15 %130 %131
|
||||
%175 = OpFDiv %9 %59 %60
|
||||
%176 = OpFDiv %9 %59 %60
|
||||
%177 = OpSRem %12 %121 %122
|
||||
%178 = OpSRem %12 %121 %122
|
||||
%179 = OpUMod %15 %130 %131
|
||||
%180 = OpUMod %15 %130 %131
|
||||
%181 = OpFRem %9 %59 %60
|
||||
%182 = OpFRem %9 %59 %60
|
||||
OpBranch %158
|
||||
%158 = OpLabel
|
||||
%184 = OpCompositeExtract %10 %135 0
|
||||
%185 = OpCompositeExtract %10 %135 0
|
||||
%186 = OpFAdd %10 %184 %185
|
||||
%187 = OpCompositeExtract %10 %135 1
|
||||
%188 = OpCompositeExtract %10 %135 1
|
||||
%189 = OpFAdd %10 %187 %188
|
||||
%190 = OpCompositeExtract %10 %135 2
|
||||
%191 = OpCompositeExtract %10 %135 2
|
||||
%192 = OpFAdd %10 %190 %191
|
||||
%183 = OpCompositeConstruct %16 %186 %189 %192
|
||||
%194 = OpCompositeExtract %10 %135 0
|
||||
%195 = OpCompositeExtract %10 %135 0
|
||||
%196 = OpFSub %10 %194 %195
|
||||
%197 = OpCompositeExtract %10 %135 1
|
||||
%198 = OpCompositeExtract %10 %135 1
|
||||
%199 = OpFSub %10 %197 %198
|
||||
%200 = OpCompositeExtract %10 %135 2
|
||||
%201 = OpCompositeExtract %10 %135 2
|
||||
%202 = OpFSub %10 %200 %201
|
||||
%193 = OpCompositeConstruct %16 %196 %199 %202
|
||||
%203 = OpMatrixTimesVector %10 %138 %128
|
||||
%204 = OpVectorTimesMatrix %3 %139 %138
|
||||
%205 = OpMatrixTimesMatrix %16 %138 %140
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%292 = OpFunction %2 None %107
|
||||
%291 = OpLabel
|
||||
OpBranch %297
|
||||
%297 = OpLabel
|
||||
%298 = OpCompositeConstruct %12 %293 %293
|
||||
%299 = OpCompositeConstruct %13 %294 %294 %294
|
||||
%300 = OpCompositeConstruct %12 %62 %62
|
||||
%301 = OpCompositeConstruct %12 %26 %26
|
||||
%302 = OpBitwiseOr %12 %300 %301
|
||||
%303 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%304 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%305 = OpBitwiseOr %13 %303 %304
|
||||
%306 = OpCompositeConstruct %12 %62 %62
|
||||
%307 = OpCompositeConstruct %12 %26 %26
|
||||
%308 = OpBitwiseAnd %12 %306 %307
|
||||
%309 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%310 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%311 = OpBitwiseAnd %13 %309 %310
|
||||
%312 = OpCompositeConstruct %12 %62 %62
|
||||
%313 = OpCompositeConstruct %12 %26 %26
|
||||
%314 = OpBitwiseXor %12 %312 %313
|
||||
%315 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%316 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%317 = OpBitwiseXor %13 %315 %316
|
||||
%318 = OpCompositeConstruct %12 %62 %62
|
||||
%319 = OpCompositeConstruct %15 %125 %125
|
||||
%320 = OpShiftLeftLogical %12 %318 %319
|
||||
%321 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%322 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%323 = OpShiftLeftLogical %13 %321 %322
|
||||
%324 = OpCompositeConstruct %12 %62 %62
|
||||
%325 = OpCompositeConstruct %15 %125 %125
|
||||
%326 = OpShiftRightArithmetic %12 %324 %325
|
||||
%327 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%328 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%329 = OpShiftRightLogical %13 %327 %328
|
||||
%207 = OpFunction %2 None %102
|
||||
%206 = OpLabel
|
||||
OpBranch %214
|
||||
%214 = OpLabel
|
||||
%215 = OpBitwiseOr %12 %121 %122
|
||||
%216 = OpBitwiseOr %13 %124 %126
|
||||
%217 = OpBitwiseAnd %12 %121 %122
|
||||
%218 = OpBitwiseAnd %13 %124 %126
|
||||
%219 = OpBitwiseXor %12 %121 %122
|
||||
%220 = OpBitwiseXor %13 %124 %126
|
||||
%221 = OpShiftLeftLogical %12 %121 %131
|
||||
%222 = OpShiftLeftLogical %13 %124 %126
|
||||
%223 = OpShiftRightArithmetic %12 %121 %131
|
||||
%224 = OpShiftRightLogical %13 %124 %126
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%331 = OpFunction %2 None %107
|
||||
%330 = OpLabel
|
||||
OpBranch %332
|
||||
%332 = OpLabel
|
||||
%333 = OpCompositeConstruct %12 %62 %62
|
||||
%334 = OpCompositeConstruct %12 %26 %26
|
||||
%335 = OpIEqual %11 %333 %334
|
||||
%336 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%337 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%338 = OpIEqual %100 %336 %337
|
||||
%339 = OpCompositeConstruct %3 %58 %58 %58 %58
|
||||
%340 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%341 = OpFOrdEqual %7 %339 %340
|
||||
%342 = OpCompositeConstruct %12 %62 %62
|
||||
%343 = OpCompositeConstruct %12 %26 %26
|
||||
%344 = OpINotEqual %11 %342 %343
|
||||
%345 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%346 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%347 = OpINotEqual %100 %345 %346
|
||||
%348 = OpCompositeConstruct %3 %58 %58 %58 %58
|
||||
%349 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%350 = OpFOrdNotEqual %7 %348 %349
|
||||
%351 = OpCompositeConstruct %12 %62 %62
|
||||
%352 = OpCompositeConstruct %12 %26 %26
|
||||
%353 = OpSLessThan %11 %351 %352
|
||||
%354 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%355 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%356 = OpULessThan %100 %354 %355
|
||||
%357 = OpCompositeConstruct %3 %58 %58 %58 %58
|
||||
%358 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%359 = OpFOrdLessThan %7 %357 %358
|
||||
%360 = OpCompositeConstruct %12 %62 %62
|
||||
%361 = OpCompositeConstruct %12 %26 %26
|
||||
%362 = OpSLessThanEqual %11 %360 %361
|
||||
%363 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%364 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%365 = OpULessThanEqual %100 %363 %364
|
||||
%366 = OpCompositeConstruct %3 %58 %58 %58 %58
|
||||
%367 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%368 = OpFOrdLessThanEqual %7 %366 %367
|
||||
%369 = OpCompositeConstruct %12 %62 %62
|
||||
%370 = OpCompositeConstruct %12 %26 %26
|
||||
%371 = OpSGreaterThan %11 %369 %370
|
||||
%372 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%373 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%374 = OpUGreaterThan %100 %372 %373
|
||||
%375 = OpCompositeConstruct %3 %58 %58 %58 %58
|
||||
%376 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%377 = OpFOrdGreaterThan %7 %375 %376
|
||||
%378 = OpCompositeConstruct %12 %62 %62
|
||||
%379 = OpCompositeConstruct %12 %26 %26
|
||||
%380 = OpSGreaterThanEqual %11 %378 %379
|
||||
%381 = OpCompositeConstruct %13 %124 %124 %124
|
||||
%382 = OpCompositeConstruct %13 %125 %125 %125
|
||||
%383 = OpUGreaterThanEqual %100 %381 %382
|
||||
%384 = OpCompositeConstruct %3 %58 %58 %58 %58
|
||||
%385 = OpCompositeConstruct %3 %20 %20 %20 %20
|
||||
%386 = OpFOrdGreaterThanEqual %7 %384 %385
|
||||
%226 = OpFunction %2 None %102
|
||||
%225 = OpLabel
|
||||
OpBranch %227
|
||||
%227 = OpLabel
|
||||
%228 = OpIEqual %11 %121 %122
|
||||
%229 = OpIEqual %95 %124 %126
|
||||
%230 = OpFOrdEqual %7 %127 %128
|
||||
%231 = OpINotEqual %11 %121 %122
|
||||
%232 = OpINotEqual %95 %124 %126
|
||||
%233 = OpFOrdNotEqual %7 %127 %128
|
||||
%234 = OpSLessThan %11 %121 %122
|
||||
%235 = OpULessThan %95 %124 %126
|
||||
%236 = OpFOrdLessThan %7 %127 %128
|
||||
%237 = OpSLessThanEqual %11 %121 %122
|
||||
%238 = OpULessThanEqual %95 %124 %126
|
||||
%239 = OpFOrdLessThanEqual %7 %127 %128
|
||||
%240 = OpSGreaterThan %11 %121 %122
|
||||
%241 = OpUGreaterThan %95 %124 %126
|
||||
%242 = OpFOrdGreaterThan %7 %127 %128
|
||||
%243 = OpSGreaterThanEqual %11 %121 %122
|
||||
%244 = OpUGreaterThanEqual %95 %124 %126
|
||||
%245 = OpFOrdGreaterThanEqual %7 %127 %128
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%394 = OpFunction %2 None %107
|
||||
%393 = OpLabel
|
||||
%387 = OpVariable %388 Function %389
|
||||
%390 = OpVariable %391 Function %392
|
||||
OpBranch %395
|
||||
%395 = OpLabel
|
||||
OpStore %387 %26
|
||||
%396 = OpLoad %6 %387
|
||||
%397 = OpIAdd %6 %396 %26
|
||||
OpStore %387 %397
|
||||
%398 = OpLoad %6 %387
|
||||
%399 = OpISub %6 %398 %26
|
||||
OpStore %387 %399
|
||||
%400 = OpLoad %6 %387
|
||||
%401 = OpLoad %6 %387
|
||||
%402 = OpIMul %6 %401 %400
|
||||
OpStore %387 %402
|
||||
%403 = OpLoad %6 %387
|
||||
%404 = OpLoad %6 %387
|
||||
%405 = OpSDiv %6 %404 %403
|
||||
OpStore %387 %405
|
||||
%406 = OpLoad %6 %387
|
||||
%407 = OpSRem %6 %406 %26
|
||||
OpStore %387 %407
|
||||
%408 = OpLoad %6 %387
|
||||
%409 = OpBitwiseAnd %6 %408 %32
|
||||
OpStore %387 %409
|
||||
%410 = OpLoad %6 %387
|
||||
%411 = OpBitwiseOr %6 %410 %32
|
||||
OpStore %387 %411
|
||||
%412 = OpLoad %6 %387
|
||||
%413 = OpBitwiseXor %6 %412 %32
|
||||
OpStore %387 %413
|
||||
%414 = OpLoad %6 %387
|
||||
%415 = OpShiftLeftLogical %6 %414 %124
|
||||
OpStore %387 %415
|
||||
%416 = OpLoad %6 %387
|
||||
%417 = OpShiftRightArithmetic %6 %416 %125
|
||||
OpStore %387 %417
|
||||
%418 = OpLoad %6 %387
|
||||
%419 = OpIAdd %6 %418 %26
|
||||
OpStore %387 %419
|
||||
%420 = OpLoad %6 %387
|
||||
%421 = OpISub %6 %420 %26
|
||||
OpStore %387 %421
|
||||
OpStore %390 %392
|
||||
%423 = OpAccessChain %422 %390 %125
|
||||
%424 = OpLoad %6 %423
|
||||
%425 = OpIAdd %6 %424 %26
|
||||
%426 = OpAccessChain %422 %390 %125
|
||||
OpStore %426 %425
|
||||
%427 = OpAccessChain %422 %390 %125
|
||||
%428 = OpLoad %6 %427
|
||||
%429 = OpISub %6 %428 %26
|
||||
%430 = OpAccessChain %422 %390 %125
|
||||
OpStore %430 %429
|
||||
%247 = OpFunction %2 None %102
|
||||
%246 = OpLabel
|
||||
%249 = OpVariable %250 Function %26
|
||||
%251 = OpVariable %252 Function %248
|
||||
OpBranch %253
|
||||
%253 = OpLabel
|
||||
%254 = OpLoad %6 %249
|
||||
%255 = OpIAdd %6 %254 %26
|
||||
OpStore %249 %255
|
||||
%256 = OpLoad %6 %249
|
||||
%257 = OpISub %6 %256 %26
|
||||
OpStore %249 %257
|
||||
%258 = OpLoad %6 %249
|
||||
%259 = OpLoad %6 %249
|
||||
%260 = OpIMul %6 %259 %258
|
||||
OpStore %249 %260
|
||||
%261 = OpLoad %6 %249
|
||||
%262 = OpLoad %6 %249
|
||||
%263 = OpSDiv %6 %262 %261
|
||||
OpStore %249 %263
|
||||
%264 = OpLoad %6 %249
|
||||
%265 = OpSRem %6 %264 %26
|
||||
OpStore %249 %265
|
||||
%266 = OpLoad %6 %249
|
||||
%267 = OpBitwiseAnd %6 %266 %32
|
||||
OpStore %249 %267
|
||||
%268 = OpLoad %6 %249
|
||||
%269 = OpBitwiseOr %6 %268 %32
|
||||
OpStore %249 %269
|
||||
%270 = OpLoad %6 %249
|
||||
%271 = OpBitwiseXor %6 %270 %32
|
||||
OpStore %249 %271
|
||||
%272 = OpLoad %6 %249
|
||||
%273 = OpShiftLeftLogical %6 %272 %123
|
||||
OpStore %249 %273
|
||||
%274 = OpLoad %6 %249
|
||||
%275 = OpShiftRightArithmetic %6 %274 %125
|
||||
OpStore %249 %275
|
||||
%276 = OpLoad %6 %249
|
||||
%277 = OpIAdd %6 %276 %26
|
||||
OpStore %249 %277
|
||||
%278 = OpLoad %6 %249
|
||||
%279 = OpISub %6 %278 %26
|
||||
OpStore %249 %279
|
||||
%281 = OpAccessChain %280 %251 %125
|
||||
%282 = OpLoad %6 %281
|
||||
%283 = OpIAdd %6 %282 %26
|
||||
%284 = OpAccessChain %280 %251 %125
|
||||
OpStore %284 %283
|
||||
%285 = OpAccessChain %280 %251 %125
|
||||
%286 = OpLoad %6 %285
|
||||
%287 = OpISub %6 %286 %26
|
||||
%288 = OpAccessChain %280 %251 %125
|
||||
OpStore %288 %287
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%432 = OpFunction %2 None %107
|
||||
%431 = OpLabel
|
||||
OpBranch %437
|
||||
%437 = OpLabel
|
||||
%290 = OpFunction %2 None %102
|
||||
%289 = OpLabel
|
||||
OpBranch %295
|
||||
%295 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%439 = OpFunction %2 None %107
|
||||
%438 = OpLabel
|
||||
OpBranch %440
|
||||
%440 = OpLabel
|
||||
%441 = OpFunctionCall %3 %29
|
||||
%442 = OpFunctionCall %3 %57
|
||||
%443 = OpCompositeConstruct %10 %20 %20 %20
|
||||
%444 = OpFunctionCall %10 %97 %443
|
||||
%445 = OpFunctionCall %2 %106
|
||||
%446 = OpFunctionCall %2 %119
|
||||
%447 = OpFunctionCall %2 %292
|
||||
%448 = OpFunctionCall %2 %331
|
||||
%449 = OpFunctionCall %2 %394
|
||||
%297 = OpFunction %2 None %102
|
||||
%296 = OpLabel
|
||||
OpBranch %299
|
||||
%299 = OpLabel
|
||||
%300 = OpFunctionCall %3 %29
|
||||
%301 = OpFunctionCall %3 %57
|
||||
%302 = OpFunctionCall %10 %92 %298
|
||||
%303 = OpFunctionCall %2 %101
|
||||
%304 = OpFunctionCall %2 %114
|
||||
%305 = OpFunctionCall %2 %207
|
||||
%306 = OpFunctionCall %2 %226
|
||||
%307 = OpFunctionCall %2 %247
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -73,6 +73,7 @@ OpDecorate %24 BuiltIn Position
|
||||
%31 = OpTypePointer Uniform %10
|
||||
%33 = OpTypePointer Uniform %12
|
||||
%35 = OpConstant %4 1.0
|
||||
%36 = OpConstantComposite %13 %35 %35 %35 %35
|
||||
%38 = OpTypePointer Uniform %4
|
||||
%39 = OpConstant %9 1
|
||||
%26 = OpFunction %2 None %27
|
||||
@ -80,12 +81,11 @@ OpDecorate %24 BuiltIn Position
|
||||
%30 = OpAccessChain %28 %14 %29
|
||||
%32 = OpAccessChain %31 %17 %29
|
||||
%34 = OpAccessChain %33 %20 %29
|
||||
OpBranch %36
|
||||
%36 = OpLabel
|
||||
%37 = OpCompositeConstruct %13 %35 %35 %35 %35
|
||||
OpBranch %37
|
||||
%37 = OpLabel
|
||||
%40 = OpAccessChain %38 %30 %39
|
||||
%41 = OpLoad %4 %40
|
||||
%42 = OpVectorTimesScalar %13 %37 %41
|
||||
%42 = OpVectorTimesScalar %13 %36 %41
|
||||
%43 = OpAccessChain %38 %32 %39
|
||||
%44 = OpLoad %4 %43
|
||||
%45 = OpVectorTimesScalar %13 %42 %44
|
||||
|
@ -10,8 +10,8 @@ OpMemoryModel Logical GLSL450
|
||||
OpMemberName %7 0 "arr"
|
||||
OpName %7 "DynamicArray"
|
||||
OpName %8 "dynamic_array"
|
||||
OpName %10 "v"
|
||||
OpName %14 "f"
|
||||
OpName %11 "f"
|
||||
OpName %14 "v"
|
||||
OpName %22 "i"
|
||||
OpName %23 "v"
|
||||
OpName %24 "index_unsized"
|
||||
@ -31,22 +31,22 @@ OpDecorate %8 Binding 0
|
||||
%7 = OpTypeStruct %6
|
||||
%9 = OpTypePointer StorageBuffer %7
|
||||
%8 = OpVariable %9 StorageBuffer
|
||||
%11 = OpTypePointer Function %3
|
||||
%12 = OpConstantNull %3
|
||||
%15 = OpTypeFunction %2
|
||||
%16 = OpConstant %4 10
|
||||
%12 = OpTypeFunction %2
|
||||
%13 = OpConstant %4 10
|
||||
%15 = OpTypePointer Function %3
|
||||
%16 = OpConstantNull %3
|
||||
%18 = OpTypePointer Function %4
|
||||
%19 = OpConstant %5 0
|
||||
%25 = OpTypeFunction %2 %4 %5
|
||||
%27 = OpTypePointer StorageBuffer %6
|
||||
%28 = OpTypePointer StorageBuffer %5
|
||||
%14 = OpFunction %2 None %15
|
||||
%13 = OpLabel
|
||||
%10 = OpVariable %11 Function %12
|
||||
%11 = OpFunction %2 None %12
|
||||
%10 = OpLabel
|
||||
%14 = OpVariable %15 Function %16
|
||||
OpBranch %17
|
||||
%17 = OpLabel
|
||||
%20 = OpAccessChain %18 %10 %19
|
||||
OpStore %20 %16
|
||||
%20 = OpAccessChain %18 %14 %19
|
||||
OpStore %20 %13
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%24 = OpFunction %2 None %25
|
||||
|
@ -1,7 +1,7 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 101
|
||||
; Bound: 100
|
||||
OpCapability Shader
|
||||
OpCapability ImageQuery
|
||||
OpCapability Linkage
|
||||
@ -17,11 +17,11 @@ OpName %24 "in_uniform"
|
||||
OpName %27 "image_2d_array"
|
||||
OpName %29 "in_workgroup"
|
||||
OpName %31 "in_private"
|
||||
OpName %34 "in_function"
|
||||
OpName %38 "c"
|
||||
OpName %39 "i"
|
||||
OpName %40 "l"
|
||||
OpName %41 "mock_function"
|
||||
OpName %35 "c"
|
||||
OpName %36 "i"
|
||||
OpName %37 "l"
|
||||
OpName %38 "mock_function"
|
||||
OpName %52 "in_function"
|
||||
OpDecorate %5 ArrayStride 16
|
||||
OpMemberDecorate %8 0 Offset 0
|
||||
OpDecorate %9 ArrayStride 16
|
||||
@ -72,78 +72,76 @@ OpDecorate %27 Binding 2
|
||||
%32 = OpTypePointer Private %15
|
||||
%33 = OpConstantNull %15
|
||||
%31 = OpVariable %32 Private %33
|
||||
%35 = OpTypePointer Function %19
|
||||
%36 = OpConstantNull %19
|
||||
%42 = OpTypeFunction %3 %17 %18 %18
|
||||
%43 = OpTypePointer StorageBuffer %8
|
||||
%44 = OpConstant %7 0
|
||||
%46 = OpTypePointer Uniform %11
|
||||
%49 = OpConstant %4 0.707
|
||||
%50 = OpConstant %4 0.0
|
||||
%51 = OpConstant %4 1.0
|
||||
%56 = OpTypePointer StorageBuffer %5
|
||||
%57 = OpTypePointer StorageBuffer %3
|
||||
%60 = OpTypePointer Uniform %9
|
||||
%61 = OpTypePointer Uniform %3
|
||||
%65 = OpTypeVector %18 3
|
||||
%67 = OpTypeBool
|
||||
%68 = OpConstantNull %3
|
||||
%74 = OpTypeVector %67 3
|
||||
%81 = OpTypePointer Workgroup %4
|
||||
%82 = OpConstant %7 29
|
||||
%88 = OpTypePointer Private %4
|
||||
%89 = OpConstant %7 39
|
||||
%95 = OpTypePointer Function %3
|
||||
%96 = OpConstant %7 1
|
||||
%41 = OpFunction %3 None %42
|
||||
%38 = OpFunctionParameter %17
|
||||
%39 = OpFunctionParameter %18
|
||||
%40 = OpFunctionParameter %18
|
||||
%37 = OpLabel
|
||||
%34 = OpVariable %35 Function %36
|
||||
%45 = OpAccessChain %43 %21 %44
|
||||
%47 = OpAccessChain %46 %24 %44
|
||||
%48 = OpLoad %12 %27
|
||||
OpBranch %52
|
||||
%52 = OpLabel
|
||||
%53 = OpCompositeConstruct %3 %49 %50 %50 %51
|
||||
%54 = OpCompositeConstruct %3 %50 %49 %50 %51
|
||||
%55 = OpCompositeConstruct %19 %53 %54
|
||||
OpStore %34 %55
|
||||
%58 = OpAccessChain %57 %45 %44 %39
|
||||
%59 = OpLoad %3 %58
|
||||
%62 = OpAccessChain %61 %47 %44 %39
|
||||
%63 = OpLoad %3 %62
|
||||
%64 = OpFAdd %3 %59 %63
|
||||
%66 = OpCompositeConstruct %65 %38 %39
|
||||
%69 = OpImageQueryLevels %18 %48
|
||||
%70 = OpULessThan %67 %40 %69
|
||||
OpSelectionMerge %71 None
|
||||
OpBranchConditional %70 %72 %71
|
||||
%72 = OpLabel
|
||||
%73 = OpImageQuerySizeLod %65 %48 %40
|
||||
%75 = OpULessThan %74 %66 %73
|
||||
%76 = OpAll %67 %75
|
||||
OpBranchConditional %76 %77 %71
|
||||
%77 = OpLabel
|
||||
%78 = OpImageFetch %3 %48 %66 Lod %40
|
||||
OpBranch %71
|
||||
%39 = OpTypeFunction %3 %17 %18 %18
|
||||
%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
|
||||
%51 = OpConstantComposite %19 %49 %50
|
||||
%53 = OpTypePointer Function %19
|
||||
%55 = OpTypePointer StorageBuffer %5
|
||||
%56 = OpTypePointer StorageBuffer %3
|
||||
%59 = OpTypePointer Uniform %9
|
||||
%60 = OpTypePointer Uniform %3
|
||||
%64 = OpTypeVector %18 3
|
||||
%66 = OpTypeBool
|
||||
%67 = OpConstantNull %3
|
||||
%73 = OpTypeVector %66 3
|
||||
%80 = OpTypePointer Workgroup %4
|
||||
%81 = OpConstant %7 29
|
||||
%87 = OpTypePointer Private %4
|
||||
%88 = OpConstant %7 39
|
||||
%94 = OpTypePointer Function %3
|
||||
%95 = OpConstant %7 1
|
||||
%38 = OpFunction %3 None %39
|
||||
%35 = OpFunctionParameter %17
|
||||
%36 = OpFunctionParameter %18
|
||||
%37 = OpFunctionParameter %18
|
||||
%34 = OpLabel
|
||||
%52 = OpVariable %53 Function %51
|
||||
%42 = OpAccessChain %40 %21 %41
|
||||
%44 = OpAccessChain %43 %24 %41
|
||||
%45 = OpLoad %12 %27
|
||||
OpBranch %54
|
||||
%54 = OpLabel
|
||||
%57 = OpAccessChain %56 %42 %41 %36
|
||||
%58 = OpLoad %3 %57
|
||||
%61 = OpAccessChain %60 %44 %41 %36
|
||||
%62 = OpLoad %3 %61
|
||||
%63 = OpFAdd %3 %58 %62
|
||||
%65 = OpCompositeConstruct %64 %35 %36
|
||||
%68 = OpImageQueryLevels %18 %45
|
||||
%69 = OpULessThan %66 %37 %68
|
||||
OpSelectionMerge %70 None
|
||||
OpBranchConditional %69 %71 %70
|
||||
%71 = OpLabel
|
||||
%79 = OpPhi %3 %68 %52 %68 %72 %78 %77
|
||||
%80 = OpFAdd %3 %64 %79
|
||||
%83 = OpExtInst %7 %1 UMin %39 %82
|
||||
%84 = OpAccessChain %81 %29 %83
|
||||
%85 = OpLoad %4 %84
|
||||
%86 = OpCompositeConstruct %3 %85 %85 %85 %85
|
||||
%87 = OpFAdd %3 %80 %86
|
||||
%90 = OpExtInst %7 %1 UMin %39 %89
|
||||
%91 = OpAccessChain %88 %31 %90
|
||||
%92 = OpLoad %4 %91
|
||||
%93 = OpCompositeConstruct %3 %92 %92 %92 %92
|
||||
%94 = OpFAdd %3 %87 %93
|
||||
%97 = OpExtInst %7 %1 UMin %39 %96
|
||||
%98 = OpAccessChain %95 %34 %97
|
||||
%99 = OpLoad %3 %98
|
||||
%100 = OpFAdd %3 %94 %99
|
||||
OpReturnValue %100
|
||||
%72 = OpImageQuerySizeLod %64 %45 %37
|
||||
%74 = OpULessThan %73 %65 %72
|
||||
%75 = OpAll %66 %74
|
||||
OpBranchConditional %75 %76 %70
|
||||
%76 = OpLabel
|
||||
%77 = OpImageFetch %3 %45 %65 Lod %37
|
||||
OpBranch %70
|
||||
%70 = OpLabel
|
||||
%78 = OpPhi %3 %67 %54 %67 %71 %77 %76
|
||||
%79 = OpFAdd %3 %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
|
||||
%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
|
||||
%96 = OpExtInst %7 %1 UMin %36 %95
|
||||
%97 = OpAccessChain %94 %52 %96
|
||||
%98 = OpLoad %3 %97
|
||||
%99 = OpFAdd %3 %93 %98
|
||||
OpReturnValue %99
|
||||
OpFunctionEnd
|
@ -68,6 +68,7 @@ OpDecorate %59 Location 0
|
||||
%52 = OpTypeBool
|
||||
%59 = OpVariable %23 Output
|
||||
%61 = OpConstant %3 0.5
|
||||
%62 = OpConstantComposite %5 %26 %61 %26 %61
|
||||
%24 = OpFunction %2 None %25
|
||||
%14 = OpLabel
|
||||
%17 = OpLoad %4 %15
|
||||
@ -110,9 +111,8 @@ OpReturn
|
||||
OpFunctionEnd
|
||||
%60 = OpFunction %2 None %25
|
||||
%58 = OpLabel
|
||||
OpBranch %62
|
||||
%62 = OpLabel
|
||||
%63 = OpCompositeConstruct %5 %26 %61 %26 %61
|
||||
OpStore %59 %63
|
||||
OpBranch %63
|
||||
%63 = OpLabel
|
||||
OpStore %59 %62
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -7,8 +7,8 @@ OpCapability RayQueryKHR
|
||||
OpExtension "SPV_KHR_ray_query"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %43 "main" %15 %17
|
||||
OpExecutionMode %43 LocalSize 1 1 1
|
||||
OpEntryPoint GLCompute %41 "main" %15 %17
|
||||
OpExecutionMode %41 LocalSize 1 1 1
|
||||
OpMemberDecorate %7 0 Offset 0
|
||||
OpMemberDecorate %7 1 Offset 16
|
||||
OpMemberDecorate %11 0 Offset 0
|
||||
@ -60,14 +60,17 @@ OpMemberDecorate %18 0 Offset 0
|
||||
%25 = OpConstant %6 1.0
|
||||
%26 = OpConstant %6 2.4
|
||||
%27 = OpConstant %6 0.0
|
||||
%41 = OpTypePointer Function %13
|
||||
%44 = OpTypeFunction %2
|
||||
%46 = OpTypePointer StorageBuffer %7
|
||||
%47 = OpConstant %4 0
|
||||
%49 = OpConstant %4 4
|
||||
%50 = OpConstant %4 255
|
||||
%51 = OpConstant %6 0.1
|
||||
%52 = OpConstant %6 100.0
|
||||
%42 = OpTypeFunction %2
|
||||
%44 = OpTypePointer StorageBuffer %7
|
||||
%45 = OpConstant %4 0
|
||||
%47 = OpConstantComposite %5 %27 %25 %27
|
||||
%48 = OpConstant %4 4
|
||||
%49 = OpConstant %4 255
|
||||
%50 = OpConstant %6 0.1
|
||||
%51 = OpConstant %6 100.0
|
||||
%52 = OpConstantComposite %5 %27 %27 %27
|
||||
%53 = OpConstantComposite %14 %48 %49 %50 %51 %52 %47
|
||||
%55 = OpTypePointer Function %13
|
||||
%72 = OpConstant %4 1
|
||||
%85 = OpTypePointer StorageBuffer %4
|
||||
%90 = OpTypePointer StorageBuffer %5
|
||||
@ -90,29 +93,26 @@ OpBranch %28
|
||||
%39 = OpExtInst %5 %1 Normalize %38
|
||||
OpReturnValue %39
|
||||
OpFunctionEnd
|
||||
%43 = OpFunction %2 None %44
|
||||
%42 = OpLabel
|
||||
%40 = OpVariable %41 Function
|
||||
%45 = OpLoad %3 %15
|
||||
%48 = OpAccessChain %46 %17 %47
|
||||
OpBranch %53
|
||||
%53 = OpLabel
|
||||
%54 = OpCompositeConstruct %5 %27 %25 %27
|
||||
%55 = OpCompositeConstruct %5 %27 %27 %27
|
||||
%56 = OpCompositeConstruct %14 %49 %50 %51 %52 %55 %54
|
||||
%57 = OpCompositeExtract %4 %56 0
|
||||
%58 = OpCompositeExtract %4 %56 1
|
||||
%59 = OpCompositeExtract %6 %56 2
|
||||
%60 = OpCompositeExtract %6 %56 3
|
||||
%61 = OpCompositeExtract %5 %56 4
|
||||
%62 = OpCompositeExtract %5 %56 5
|
||||
OpRayQueryInitializeKHR %40 %45 %57 %58 %61 %59 %62 %60
|
||||
%41 = OpFunction %2 None %42
|
||||
%40 = OpLabel
|
||||
%54 = OpVariable %55 Function
|
||||
%43 = OpLoad %3 %15
|
||||
%46 = OpAccessChain %44 %17 %45
|
||||
OpBranch %56
|
||||
%56 = OpLabel
|
||||
%57 = OpCompositeExtract %4 %53 0
|
||||
%58 = OpCompositeExtract %4 %53 1
|
||||
%59 = OpCompositeExtract %6 %53 2
|
||||
%60 = OpCompositeExtract %6 %53 3
|
||||
%61 = OpCompositeExtract %5 %53 4
|
||||
%62 = OpCompositeExtract %5 %53 5
|
||||
OpRayQueryInitializeKHR %54 %43 %57 %58 %61 %59 %62 %60
|
||||
OpBranch %63
|
||||
%63 = OpLabel
|
||||
OpLoopMerge %64 %66 None
|
||||
OpBranch %65
|
||||
%65 = OpLabel
|
||||
%67 = OpRayQueryProceedKHR %9 %40
|
||||
%67 = OpRayQueryProceedKHR %9 %54
|
||||
OpSelectionMerge %68 None
|
||||
OpBranchConditional %67 %68 %69
|
||||
%69 = OpLabel
|
||||
@ -126,27 +126,27 @@ OpBranch %66
|
||||
%66 = OpLabel
|
||||
OpBranch %63
|
||||
%64 = OpLabel
|
||||
%73 = OpRayQueryGetIntersectionTypeKHR %4 %40 %72
|
||||
%74 = OpRayQueryGetIntersectionInstanceCustomIndexKHR %4 %40 %72
|
||||
%75 = OpRayQueryGetIntersectionInstanceIdKHR %4 %40 %72
|
||||
%76 = OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR %4 %40 %72
|
||||
%77 = OpRayQueryGetIntersectionGeometryIndexKHR %4 %40 %72
|
||||
%78 = OpRayQueryGetIntersectionPrimitiveIndexKHR %4 %40 %72
|
||||
%79 = OpRayQueryGetIntersectionTKHR %6 %40 %72
|
||||
%80 = OpRayQueryGetIntersectionBarycentricsKHR %8 %40 %72
|
||||
%81 = OpRayQueryGetIntersectionFrontFaceKHR %9 %40 %72
|
||||
%82 = OpRayQueryGetIntersectionObjectToWorldKHR %10 %40 %72
|
||||
%83 = OpRayQueryGetIntersectionWorldToObjectKHR %10 %40 %72
|
||||
%73 = OpRayQueryGetIntersectionTypeKHR %4 %54 %72
|
||||
%74 = OpRayQueryGetIntersectionInstanceCustomIndexKHR %4 %54 %72
|
||||
%75 = OpRayQueryGetIntersectionInstanceIdKHR %4 %54 %72
|
||||
%76 = OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR %4 %54 %72
|
||||
%77 = OpRayQueryGetIntersectionGeometryIndexKHR %4 %54 %72
|
||||
%78 = OpRayQueryGetIntersectionPrimitiveIndexKHR %4 %54 %72
|
||||
%79 = OpRayQueryGetIntersectionTKHR %6 %54 %72
|
||||
%80 = OpRayQueryGetIntersectionBarycentricsKHR %8 %54 %72
|
||||
%81 = OpRayQueryGetIntersectionFrontFaceKHR %9 %54 %72
|
||||
%82 = OpRayQueryGetIntersectionObjectToWorldKHR %10 %54 %72
|
||||
%83 = OpRayQueryGetIntersectionWorldToObjectKHR %10 %54 %72
|
||||
%84 = OpCompositeConstruct %11 %73 %79 %74 %75 %76 %77 %78 %80 %81 %82 %83
|
||||
%86 = OpCompositeExtract %4 %84 0
|
||||
%87 = OpIEqual %9 %86 %47
|
||||
%88 = OpSelect %4 %87 %72 %47
|
||||
%89 = OpAccessChain %85 %48 %47
|
||||
%87 = OpIEqual %9 %86 %45
|
||||
%88 = OpSelect %4 %87 %72 %45
|
||||
%89 = OpAccessChain %85 %46 %45
|
||||
OpStore %89 %88
|
||||
%91 = OpCompositeExtract %6 %84 1
|
||||
%92 = OpVectorTimesScalar %5 %54 %91
|
||||
%92 = OpVectorTimesScalar %5 %47 %91
|
||||
%93 = OpFunctionCall %5 %23 %92 %84
|
||||
%94 = OpAccessChain %90 %48 %72
|
||||
%94 = OpAccessChain %90 %46 %72
|
||||
OpStore %94 %93
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,16 +1,16 @@
|
||||
; SPIR-V
|
||||
; Version: 1.2
|
||||
; Generator: rspirv
|
||||
; Bound: 267
|
||||
; Bound: 265
|
||||
OpCapability Shader
|
||||
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %87 "vs_main" %77 %80 %82 %84 %86
|
||||
OpEntryPoint Fragment %147 "fs_main" %138 %141 %144 %146
|
||||
OpEntryPoint Fragment %214 "fs_main_without_storage" %207 %209 %211 %213
|
||||
OpExecutionMode %147 OriginUpperLeft
|
||||
OpExecutionMode %214 OriginUpperLeft
|
||||
OpEntryPoint Vertex %84 "vs_main" %74 %77 %79 %81 %83
|
||||
OpEntryPoint Fragment %142 "fs_main" %133 %136 %139 %141
|
||||
OpEntryPoint Fragment %210 "fs_main_without_storage" %203 %205 %207 %209
|
||||
OpExecutionMode %142 OriginUpperLeft
|
||||
OpExecutionMode %210 OriginUpperLeft
|
||||
OpMemberName %8 0 "view_proj"
|
||||
OpMemberName %8 1 "num_lights"
|
||||
OpName %8 "Globals"
|
||||
@ -36,25 +36,25 @@ OpName %38 "sampler_shadow"
|
||||
OpName %41 "light_id"
|
||||
OpName %42 "homogeneous_coords"
|
||||
OpName %43 "fetch_shadow"
|
||||
OpName %73 "out"
|
||||
OpName %77 "position"
|
||||
OpName %80 "normal"
|
||||
OpName %82 "proj_position"
|
||||
OpName %84 "world_normal"
|
||||
OpName %86 "world_position"
|
||||
OpName %87 "vs_main"
|
||||
OpName %131 "color"
|
||||
OpName %133 "i"
|
||||
OpName %138 "proj_position"
|
||||
OpName %141 "world_normal"
|
||||
OpName %144 "world_position"
|
||||
OpName %147 "fs_main"
|
||||
OpName %203 "color"
|
||||
OpName %204 "i"
|
||||
OpName %207 "proj_position"
|
||||
OpName %209 "world_normal"
|
||||
OpName %211 "world_position"
|
||||
OpName %214 "fs_main_without_storage"
|
||||
OpName %74 "position"
|
||||
OpName %77 "normal"
|
||||
OpName %79 "proj_position"
|
||||
OpName %81 "world_normal"
|
||||
OpName %83 "world_position"
|
||||
OpName %84 "vs_main"
|
||||
OpName %91 "out"
|
||||
OpName %133 "proj_position"
|
||||
OpName %136 "world_normal"
|
||||
OpName %139 "world_position"
|
||||
OpName %142 "fs_main"
|
||||
OpName %149 "color"
|
||||
OpName %150 "i"
|
||||
OpName %203 "proj_position"
|
||||
OpName %205 "world_normal"
|
||||
OpName %207 "world_position"
|
||||
OpName %210 "fs_main_without_storage"
|
||||
OpName %217 "color"
|
||||
OpName %218 "i"
|
||||
OpMemberDecorate %8 0 Offset 0
|
||||
OpMemberDecorate %8 0 ColMajor
|
||||
OpMemberDecorate %8 0 MatrixStride 16
|
||||
@ -94,19 +94,19 @@ OpDecorate %36 DescriptorSet 0
|
||||
OpDecorate %36 Binding 2
|
||||
OpDecorate %38 DescriptorSet 0
|
||||
OpDecorate %38 Binding 3
|
||||
OpDecorate %77 Location 0
|
||||
OpDecorate %80 Location 1
|
||||
OpDecorate %82 BuiltIn Position
|
||||
OpDecorate %84 Location 0
|
||||
OpDecorate %86 Location 1
|
||||
OpDecorate %138 BuiltIn FragCoord
|
||||
OpDecorate %74 Location 0
|
||||
OpDecorate %77 Location 1
|
||||
OpDecorate %79 BuiltIn Position
|
||||
OpDecorate %81 Location 0
|
||||
OpDecorate %83 Location 1
|
||||
OpDecorate %133 BuiltIn FragCoord
|
||||
OpDecorate %136 Location 0
|
||||
OpDecorate %139 Location 1
|
||||
OpDecorate %141 Location 0
|
||||
OpDecorate %144 Location 1
|
||||
OpDecorate %146 Location 0
|
||||
OpDecorate %207 BuiltIn FragCoord
|
||||
OpDecorate %203 BuiltIn FragCoord
|
||||
OpDecorate %205 Location 0
|
||||
OpDecorate %207 Location 1
|
||||
OpDecorate %209 Location 0
|
||||
OpDecorate %211 Location 1
|
||||
OpDecorate %213 Location 0
|
||||
%2 = OpTypeVoid
|
||||
%5 = OpTypeFloat 32
|
||||
%4 = OpTypeVector %5 4
|
||||
@ -150,22 +150,24 @@ OpDecorate %213 Location 0
|
||||
%48 = OpConstant %5 1.0
|
||||
%49 = OpConstant %5 0.5
|
||||
%50 = OpConstant %5 -0.5
|
||||
%53 = OpTypeBool
|
||||
%51 = OpConstantComposite %21 %49 %50
|
||||
%52 = OpConstantComposite %21 %49 %49
|
||||
%55 = OpTypeBool
|
||||
%68 = OpTypeSampledImage %19
|
||||
%74 = OpTypePointer Function %11
|
||||
%75 = OpConstantNull %11
|
||||
%78 = OpTypePointer Input %12
|
||||
%77 = OpVariable %78 Input
|
||||
%80 = OpVariable %78 Input
|
||||
%83 = OpTypePointer Output %4
|
||||
%82 = OpVariable %83 Output
|
||||
%85 = OpTypePointer Output %10
|
||||
%84 = OpVariable %85 Output
|
||||
%86 = OpVariable %83 Output
|
||||
%88 = OpTypeFunction %2
|
||||
%89 = OpTypePointer Uniform %8
|
||||
%90 = OpConstant %7 0
|
||||
%92 = OpTypePointer Uniform %9
|
||||
%75 = OpTypePointer Input %12
|
||||
%74 = OpVariable %75 Input
|
||||
%77 = OpVariable %75 Input
|
||||
%80 = OpTypePointer Output %4
|
||||
%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
|
||||
%89 = OpTypePointer Uniform %9
|
||||
%92 = OpTypePointer Function %11
|
||||
%93 = OpConstantNull %11
|
||||
%95 = OpTypePointer Uniform %3
|
||||
%102 = OpTypePointer Function %10
|
||||
%110 = OpTypeVector %13 3
|
||||
@ -173,72 +175,68 @@ OpDecorate %213 Location 0
|
||||
%116 = OpTypePointer Function %4
|
||||
%117 = OpConstant %7 2
|
||||
%125 = OpTypePointer Output %5
|
||||
%132 = OpConstantNull %10
|
||||
%134 = OpTypePointer Function %7
|
||||
%135 = OpConstantNull %7
|
||||
%139 = OpTypePointer Input %4
|
||||
%138 = OpVariable %139 Input
|
||||
%142 = OpTypePointer Input %10
|
||||
%141 = OpVariable %142 Input
|
||||
%144 = OpVariable %139 Input
|
||||
%146 = OpVariable %83 Output
|
||||
%150 = OpTypePointer StorageBuffer %16
|
||||
%162 = OpTypePointer Uniform %6
|
||||
%163 = OpTypePointer Uniform %7
|
||||
%173 = OpTypePointer StorageBuffer %15
|
||||
%199 = OpTypePointer Uniform %4
|
||||
%207 = OpVariable %139 Input
|
||||
%209 = OpVariable %142 Input
|
||||
%211 = OpVariable %139 Input
|
||||
%213 = OpVariable %83 Output
|
||||
%217 = OpTypePointer Uniform %17
|
||||
%238 = OpTypePointer Uniform %15
|
||||
%134 = OpTypePointer Input %4
|
||||
%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
|
||||
%171 = OpTypePointer StorageBuffer %15
|
||||
%197 = OpTypePointer Uniform %4
|
||||
%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
|
||||
%40 = OpLabel
|
||||
%45 = OpLoad %19 %36
|
||||
%46 = OpLoad %20 %38
|
||||
OpBranch %51
|
||||
%51 = OpLabel
|
||||
%52 = OpCompositeExtract %5 %42 3
|
||||
%54 = OpFOrdLessThanEqual %53 %52 %47
|
||||
OpSelectionMerge %55 None
|
||||
OpBranchConditional %54 %56 %55
|
||||
%56 = OpLabel
|
||||
OpBranch %53
|
||||
%53 = OpLabel
|
||||
%54 = OpCompositeExtract %5 %42 3
|
||||
%56 = OpFOrdLessThanEqual %55 %54 %47
|
||||
OpSelectionMerge %57 None
|
||||
OpBranchConditional %56 %58 %57
|
||||
%58 = OpLabel
|
||||
OpReturnValue %48
|
||||
%55 = OpLabel
|
||||
%57 = OpCompositeConstruct %21 %49 %50
|
||||
%58 = OpCompositeExtract %5 %42 3
|
||||
%59 = OpFDiv %5 %48 %58
|
||||
%60 = OpVectorShuffle %21 %42 %42 0 1
|
||||
%61 = OpFMul %21 %60 %57
|
||||
%62 = OpVectorTimesScalar %21 %61 %59
|
||||
%63 = OpCompositeConstruct %21 %49 %49
|
||||
%64 = OpFAdd %21 %62 %63
|
||||
%57 = OpLabel
|
||||
%59 = OpCompositeExtract %5 %42 3
|
||||
%60 = OpFDiv %5 %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 %59
|
||||
%67 = OpFMul %5 %66 %60
|
||||
%69 = OpConvertSToF %5 %65
|
||||
%70 = OpCompositeConstruct %10 %64 %69
|
||||
%71 = OpSampledImage %68 %45 %46
|
||||
%72 = OpImageSampleDrefExplicitLod %5 %71 %70 %67 Lod %47
|
||||
OpReturnValue %72
|
||||
OpFunctionEnd
|
||||
%87 = OpFunction %2 None %88
|
||||
%76 = OpLabel
|
||||
%73 = OpVariable %74 Function %75
|
||||
%79 = OpLoad %12 %77
|
||||
%81 = OpLoad %12 %80
|
||||
%91 = OpAccessChain %89 %24 %90
|
||||
%93 = OpAccessChain %92 %27 %90
|
||||
%84 = OpFunction %2 None %85
|
||||
%73 = OpLabel
|
||||
%91 = OpVariable %92 Function %93
|
||||
%76 = OpLoad %12 %74
|
||||
%78 = OpLoad %12 %77
|
||||
%88 = OpAccessChain %86 %24 %87
|
||||
%90 = OpAccessChain %89 %27 %87
|
||||
OpBranch %94
|
||||
%94 = OpLabel
|
||||
%96 = OpAccessChain %95 %93 %90
|
||||
%96 = OpAccessChain %95 %90 %87
|
||||
%97 = OpLoad %3 %96
|
||||
%98 = OpAccessChain %95 %93 %90
|
||||
%98 = OpAccessChain %95 %90 %87
|
||||
%99 = OpLoad %3 %98
|
||||
%100 = OpConvertSToF %4 %79
|
||||
%100 = OpConvertSToF %4 %76
|
||||
%101 = OpMatrixTimesVector %4 %99 %100
|
||||
%103 = OpCompositeExtract %4 %97 0
|
||||
%104 = OpVectorShuffle %10 %103 %103 0 1 2
|
||||
@ -247,180 +245,176 @@ OpBranch %94
|
||||
%107 = OpCompositeExtract %4 %97 2
|
||||
%108 = OpVectorShuffle %10 %107 %107 0 1 2
|
||||
%109 = OpCompositeConstruct %14 %104 %106 %108
|
||||
%111 = OpVectorShuffle %110 %81 %81 0 1 2
|
||||
%111 = OpVectorShuffle %110 %78 %78 0 1 2
|
||||
%112 = OpConvertSToF %10 %111
|
||||
%113 = OpMatrixTimesVector %10 %109 %112
|
||||
%115 = OpAccessChain %102 %73 %114
|
||||
%115 = OpAccessChain %102 %91 %114
|
||||
OpStore %115 %113
|
||||
%118 = OpAccessChain %116 %73 %117
|
||||
%118 = OpAccessChain %116 %91 %117
|
||||
OpStore %118 %101
|
||||
%119 = OpAccessChain %95 %91 %90
|
||||
%119 = OpAccessChain %95 %88 %87
|
||||
%120 = OpLoad %3 %119
|
||||
%121 = OpMatrixTimesVector %4 %120 %101
|
||||
%122 = OpAccessChain %116 %73 %90
|
||||
%122 = OpAccessChain %116 %91 %87
|
||||
OpStore %122 %121
|
||||
%123 = OpLoad %11 %73
|
||||
%123 = OpLoad %11 %91
|
||||
%124 = OpCompositeExtract %4 %123 0
|
||||
OpStore %82 %124
|
||||
%126 = OpAccessChain %125 %82 %114
|
||||
OpStore %79 %124
|
||||
%126 = OpAccessChain %125 %79 %114
|
||||
%127 = OpLoad %5 %126
|
||||
%128 = OpFNegate %5 %127
|
||||
OpStore %126 %128
|
||||
%129 = OpCompositeExtract %10 %123 1
|
||||
OpStore %84 %129
|
||||
OpStore %81 %129
|
||||
%130 = OpCompositeExtract %4 %123 2
|
||||
OpStore %86 %130
|
||||
OpStore %83 %130
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%147 = OpFunction %2 None %88
|
||||
%136 = OpLabel
|
||||
%131 = OpVariable %102 Function %132
|
||||
%133 = OpVariable %134 Function %135
|
||||
%140 = OpLoad %4 %138
|
||||
%143 = OpLoad %10 %141
|
||||
%145 = OpLoad %4 %144
|
||||
%137 = OpCompositeConstruct %11 %140 %143 %145
|
||||
%148 = OpAccessChain %89 %24 %90
|
||||
%149 = OpAccessChain %92 %27 %90
|
||||
%151 = OpAccessChain %150 %30 %90
|
||||
%152 = OpLoad %19 %36
|
||||
%153 = OpLoad %20 %38
|
||||
OpBranch %154
|
||||
%154 = OpLabel
|
||||
%155 = OpCompositeExtract %10 %137 1
|
||||
%156 = OpExtInst %10 %1 Normalize %155
|
||||
OpStore %131 %23
|
||||
OpStore %133 %90
|
||||
%142 = OpFunction %2 None %85
|
||||
%131 = OpLabel
|
||||
%149 = OpVariable %102 Function %23
|
||||
%150 = OpVariable %151 Function %87
|
||||
%135 = OpLoad %4 %133
|
||||
%138 = OpLoad %10 %136
|
||||
%140 = OpLoad %4 %139
|
||||
%132 = OpCompositeConstruct %11 %135 %138 %140
|
||||
%143 = OpAccessChain %86 %24 %87
|
||||
%144 = OpAccessChain %89 %27 %87
|
||||
%146 = OpAccessChain %145 %30 %87
|
||||
%147 = OpLoad %19 %36
|
||||
%148 = OpLoad %20 %38
|
||||
OpBranch %152
|
||||
%152 = OpLabel
|
||||
%153 = OpCompositeExtract %10 %132 1
|
||||
%154 = OpExtInst %10 %1 Normalize %153
|
||||
OpBranch %155
|
||||
%155 = OpLabel
|
||||
OpLoopMerge %156 %158 None
|
||||
OpBranch %157
|
||||
%157 = OpLabel
|
||||
OpLoopMerge %158 %160 None
|
||||
OpBranch %159
|
||||
%159 = OpLabel
|
||||
%161 = OpLoad %7 %133
|
||||
%164 = OpAccessChain %163 %148 %114 %90
|
||||
%165 = OpLoad %7 %164
|
||||
%166 = OpExtInst %7 %1 UMin %165 %18
|
||||
%167 = OpULessThan %53 %161 %166
|
||||
OpSelectionMerge %168 None
|
||||
OpBranchConditional %167 %168 %169
|
||||
%159 = OpLoad %7 %150
|
||||
%162 = OpAccessChain %161 %143 %114 %87
|
||||
%163 = OpLoad %7 %162
|
||||
%164 = OpExtInst %7 %1 UMin %163 %18
|
||||
%165 = OpULessThan %55 %159 %164
|
||||
OpSelectionMerge %166 None
|
||||
OpBranchConditional %165 %166 %167
|
||||
%167 = OpLabel
|
||||
OpBranch %156
|
||||
%166 = OpLabel
|
||||
OpBranch %168
|
||||
%168 = OpLabel
|
||||
%170 = OpLoad %7 %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
|
||||
%180 = OpVectorShuffle %10 %179 %179 0 1 2
|
||||
%181 = OpCompositeExtract %4 %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
|
||||
%189 = OpVectorShuffle %10 %188 %188 0 1 2
|
||||
%190 = OpVectorTimesScalar %10 %189 %187
|
||||
%191 = OpLoad %10 %149
|
||||
%192 = OpFAdd %10 %191 %190
|
||||
OpStore %149 %192
|
||||
OpBranch %169
|
||||
%169 = OpLabel
|
||||
OpBranch %158
|
||||
%168 = OpLabel
|
||||
OpBranch %170
|
||||
%170 = OpLabel
|
||||
%172 = OpLoad %7 %133
|
||||
%174 = OpAccessChain %173 %151 %172
|
||||
%175 = OpLoad %15 %174
|
||||
%176 = OpLoad %7 %133
|
||||
%177 = OpCompositeExtract %3 %175 0
|
||||
%178 = OpCompositeExtract %4 %137 2
|
||||
%179 = OpMatrixTimesVector %4 %177 %178
|
||||
%180 = OpFunctionCall %5 %43 %176 %179
|
||||
%181 = OpCompositeExtract %4 %175 1
|
||||
%182 = OpVectorShuffle %10 %181 %181 0 1 2
|
||||
%183 = OpCompositeExtract %4 %137 2
|
||||
%184 = OpVectorShuffle %10 %183 %183 0 1 2
|
||||
%185 = OpFSub %10 %182 %184
|
||||
%186 = OpExtInst %10 %1 Normalize %185
|
||||
%187 = OpDot %5 %156 %186
|
||||
%188 = OpExtInst %5 %1 FMax %47 %187
|
||||
%189 = OpFMul %5 %180 %188
|
||||
%190 = OpCompositeExtract %4 %175 2
|
||||
%191 = OpVectorShuffle %10 %190 %190 0 1 2
|
||||
%192 = OpVectorTimesScalar %10 %191 %189
|
||||
%193 = OpLoad %10 %131
|
||||
%194 = OpFAdd %10 %193 %192
|
||||
OpStore %131 %194
|
||||
OpBranch %171
|
||||
%171 = OpLabel
|
||||
OpBranch %160
|
||||
%160 = OpLabel
|
||||
%195 = OpLoad %7 %133
|
||||
%196 = OpIAdd %7 %195 %114
|
||||
OpStore %133 %196
|
||||
OpBranch %157
|
||||
%158 = OpLabel
|
||||
%197 = OpLoad %10 %131
|
||||
%198 = OpCompositeConstruct %4 %197 %48
|
||||
%200 = OpAccessChain %199 %149 %114
|
||||
%201 = OpLoad %4 %200
|
||||
%202 = OpFMul %4 %198 %201
|
||||
OpStore %146 %202
|
||||
%193 = OpLoad %7 %150
|
||||
%194 = OpIAdd %7 %193 %114
|
||||
OpStore %150 %194
|
||||
OpBranch %155
|
||||
%156 = OpLabel
|
||||
%195 = OpLoad %10 %149
|
||||
%196 = OpCompositeConstruct %4 %195 %48
|
||||
%198 = OpAccessChain %197 %144 %114
|
||||
%199 = OpLoad %4 %198
|
||||
%200 = OpFMul %4 %196 %199
|
||||
OpStore %141 %200
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%214 = OpFunction %2 None %88
|
||||
%205 = OpLabel
|
||||
%203 = OpVariable %102 Function %132
|
||||
%204 = OpVariable %134 Function %135
|
||||
%210 = OpFunction %2 None %85
|
||||
%201 = OpLabel
|
||||
%217 = OpVariable %102 Function %23
|
||||
%218 = OpVariable %151 Function %87
|
||||
%204 = OpLoad %4 %203
|
||||
%206 = OpLoad %10 %205
|
||||
%208 = OpLoad %4 %207
|
||||
%210 = OpLoad %10 %209
|
||||
%212 = OpLoad %4 %211
|
||||
%206 = OpCompositeConstruct %11 %208 %210 %212
|
||||
%215 = OpAccessChain %89 %24 %90
|
||||
%216 = OpAccessChain %92 %27 %90
|
||||
%218 = OpAccessChain %217 %33 %90
|
||||
%219 = OpLoad %19 %36
|
||||
%220 = OpLoad %20 %38
|
||||
OpBranch %221
|
||||
%221 = OpLabel
|
||||
%222 = OpCompositeExtract %10 %206 1
|
||||
%223 = OpExtInst %10 %1 Normalize %222
|
||||
OpStore %203 %23
|
||||
OpStore %204 %90
|
||||
%202 = OpCompositeConstruct %11 %204 %206 %208
|
||||
%211 = OpAccessChain %86 %24 %87
|
||||
%212 = OpAccessChain %89 %27 %87
|
||||
%214 = OpAccessChain %213 %33 %87
|
||||
%215 = OpLoad %19 %36
|
||||
%216 = OpLoad %20 %38
|
||||
OpBranch %219
|
||||
%219 = OpLabel
|
||||
%220 = OpCompositeExtract %10 %202 1
|
||||
%221 = OpExtInst %10 %1 Normalize %220
|
||||
OpBranch %222
|
||||
%222 = OpLabel
|
||||
OpLoopMerge %223 %225 None
|
||||
OpBranch %224
|
||||
%224 = OpLabel
|
||||
OpLoopMerge %225 %227 None
|
||||
OpBranch %226
|
||||
%226 = OpLabel
|
||||
%228 = OpLoad %7 %204
|
||||
%229 = OpAccessChain %163 %215 %114 %90
|
||||
%230 = OpLoad %7 %229
|
||||
%231 = OpExtInst %7 %1 UMin %230 %18
|
||||
%232 = OpULessThan %53 %228 %231
|
||||
OpSelectionMerge %233 None
|
||||
OpBranchConditional %232 %233 %234
|
||||
%226 = OpLoad %7 %218
|
||||
%227 = OpAccessChain %161 %211 %114 %87
|
||||
%228 = OpLoad %7 %227
|
||||
%229 = OpExtInst %7 %1 UMin %228 %18
|
||||
%230 = OpULessThan %55 %226 %229
|
||||
OpSelectionMerge %231 None
|
||||
OpBranchConditional %230 %231 %232
|
||||
%232 = OpLabel
|
||||
OpBranch %223
|
||||
%231 = OpLabel
|
||||
OpBranch %233
|
||||
%233 = OpLabel
|
||||
%235 = OpLoad %7 %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
|
||||
%245 = OpVectorShuffle %10 %244 %244 0 1 2
|
||||
%246 = OpCompositeExtract %4 %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
|
||||
%254 = OpVectorShuffle %10 %253 %253 0 1 2
|
||||
%255 = OpVectorTimesScalar %10 %254 %252
|
||||
%256 = OpLoad %10 %217
|
||||
%257 = OpFAdd %10 %256 %255
|
||||
OpStore %217 %257
|
||||
OpBranch %234
|
||||
%234 = OpLabel
|
||||
OpBranch %225
|
||||
%233 = OpLabel
|
||||
OpBranch %235
|
||||
%235 = OpLabel
|
||||
%237 = OpLoad %7 %204
|
||||
%239 = OpAccessChain %238 %218 %237
|
||||
%240 = OpLoad %15 %239
|
||||
%241 = OpLoad %7 %204
|
||||
%242 = OpCompositeExtract %3 %240 0
|
||||
%243 = OpCompositeExtract %4 %206 2
|
||||
%244 = OpMatrixTimesVector %4 %242 %243
|
||||
%245 = OpFunctionCall %5 %43 %241 %244
|
||||
%246 = OpCompositeExtract %4 %240 1
|
||||
%247 = OpVectorShuffle %10 %246 %246 0 1 2
|
||||
%248 = OpCompositeExtract %4 %206 2
|
||||
%249 = OpVectorShuffle %10 %248 %248 0 1 2
|
||||
%250 = OpFSub %10 %247 %249
|
||||
%251 = OpExtInst %10 %1 Normalize %250
|
||||
%252 = OpDot %5 %223 %251
|
||||
%253 = OpExtInst %5 %1 FMax %47 %252
|
||||
%254 = OpFMul %5 %245 %253
|
||||
%255 = OpCompositeExtract %4 %240 2
|
||||
%256 = OpVectorShuffle %10 %255 %255 0 1 2
|
||||
%257 = OpVectorTimesScalar %10 %256 %254
|
||||
%258 = OpLoad %10 %203
|
||||
%259 = OpFAdd %10 %258 %257
|
||||
OpStore %203 %259
|
||||
OpBranch %236
|
||||
%236 = OpLabel
|
||||
OpBranch %227
|
||||
%227 = OpLabel
|
||||
%260 = OpLoad %7 %204
|
||||
%261 = OpIAdd %7 %260 %114
|
||||
OpStore %204 %261
|
||||
OpBranch %224
|
||||
%225 = OpLabel
|
||||
%262 = OpLoad %10 %203
|
||||
%263 = OpCompositeConstruct %4 %262 %48
|
||||
%264 = OpAccessChain %199 %216 %114
|
||||
%265 = OpLoad %4 %264
|
||||
%266 = OpFMul %4 %263 %265
|
||||
OpStore %213 %266
|
||||
%258 = OpLoad %7 %218
|
||||
%259 = OpIAdd %7 %258 %114
|
||||
OpStore %218 %259
|
||||
OpBranch %222
|
||||
%223 = OpLabel
|
||||
%260 = OpLoad %10 %217
|
||||
%261 = OpCompositeConstruct %4 %260 %48
|
||||
%262 = OpAccessChain %197 %212 %114
|
||||
%263 = OpLoad %4 %262
|
||||
%264 = OpFMul %4 %261 %263
|
||||
OpStore %209 %264
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,13 +1,13 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: rspirv
|
||||
; Bound: 97
|
||||
; Bound: 98
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %33 "vs_main" %26 %29 %31
|
||||
OpEntryPoint Fragment %89 "fs_main" %82 %85 %88
|
||||
OpExecutionMode %89 OriginUpperLeft
|
||||
OpEntryPoint Vertex %29 "vs_main" %22 %25 %27
|
||||
OpEntryPoint Fragment %90 "fs_main" %83 %86 %89
|
||||
OpExecutionMode %90 OriginUpperLeft
|
||||
OpMemberDecorate %6 0 Offset 0
|
||||
OpMemberDecorate %6 1 Offset 16
|
||||
OpMemberDecorate %8 0 Offset 0
|
||||
@ -24,12 +24,12 @@ OpDecorate %17 DescriptorSet 0
|
||||
OpDecorate %17 Binding 1
|
||||
OpDecorate %19 DescriptorSet 0
|
||||
OpDecorate %19 Binding 2
|
||||
OpDecorate %26 BuiltIn VertexIndex
|
||||
OpDecorate %29 BuiltIn Position
|
||||
OpDecorate %31 Location 0
|
||||
OpDecorate %82 BuiltIn FragCoord
|
||||
OpDecorate %85 Location 0
|
||||
OpDecorate %88 Location 0
|
||||
OpDecorate %22 BuiltIn VertexIndex
|
||||
OpDecorate %25 BuiltIn Position
|
||||
OpDecorate %27 Location 0
|
||||
OpDecorate %83 BuiltIn FragCoord
|
||||
OpDecorate %86 Location 0
|
||||
OpDecorate %89 Location 0
|
||||
%2 = OpTypeVoid
|
||||
%4 = OpTypeFloat 32
|
||||
%3 = OpTypeVector %4 4
|
||||
@ -49,90 +49,91 @@ OpDecorate %88 Location 0
|
||||
%17 = OpVariable %18 UniformConstant
|
||||
%20 = OpTypePointer UniformConstant %13
|
||||
%19 = OpVariable %20 UniformConstant
|
||||
%22 = OpTypePointer Function %10
|
||||
%23 = OpConstantNull %10
|
||||
%27 = OpTypePointer Input %9
|
||||
%26 = OpVariable %27 Input
|
||||
%30 = OpTypePointer Output %3
|
||||
%29 = OpVariable %30 Output
|
||||
%32 = OpTypePointer Output %5
|
||||
%31 = OpVariable %32 Output
|
||||
%34 = OpTypeFunction %2
|
||||
%35 = OpTypePointer Uniform %8
|
||||
%36 = OpConstant %9 0
|
||||
%38 = OpConstant %10 2
|
||||
%39 = OpConstant %10 1
|
||||
%40 = OpConstant %4 4.0
|
||||
%41 = OpConstant %4 1.0
|
||||
%42 = OpConstant %4 0.0
|
||||
%57 = OpTypePointer Uniform %7
|
||||
%58 = OpTypePointer Uniform %3
|
||||
%59 = OpConstant %9 1
|
||||
%66 = OpConstant %9 2
|
||||
%83 = OpTypePointer Input %3
|
||||
%82 = OpVariable %83 Input
|
||||
%86 = OpTypePointer Input %5
|
||||
%85 = OpVariable %86 Input
|
||||
%88 = OpVariable %30 Output
|
||||
%94 = OpTypeSampledImage %12
|
||||
%33 = OpFunction %2 None %34
|
||||
%25 = OpLabel
|
||||
%21 = OpVariable %22 Function %23
|
||||
%24 = OpVariable %22 Function %23
|
||||
%28 = OpLoad %9 %26
|
||||
%37 = OpAccessChain %35 %14 %36
|
||||
OpBranch %43
|
||||
%43 = OpLabel
|
||||
%44 = OpBitcast %10 %28
|
||||
%45 = OpSDiv %10 %44 %38
|
||||
OpStore %21 %45
|
||||
%46 = OpBitcast %10 %28
|
||||
%47 = OpBitwiseAnd %10 %46 %39
|
||||
OpStore %24 %47
|
||||
%48 = OpLoad %10 %21
|
||||
%49 = OpConvertSToF %4 %48
|
||||
%50 = OpFMul %4 %49 %40
|
||||
%51 = OpFSub %4 %50 %41
|
||||
%52 = OpLoad %10 %24
|
||||
%53 = OpConvertSToF %4 %52
|
||||
%54 = OpFMul %4 %53 %40
|
||||
%55 = OpFSub %4 %54 %41
|
||||
%56 = OpCompositeConstruct %3 %51 %55 %42 %41
|
||||
%60 = OpAccessChain %58 %37 %59 %36
|
||||
%61 = OpLoad %3 %60
|
||||
%62 = OpVectorShuffle %5 %61 %61 0 1 2
|
||||
%63 = OpAccessChain %58 %37 %59 %59
|
||||
%64 = OpLoad %3 %63
|
||||
%65 = OpVectorShuffle %5 %64 %64 0 1 2
|
||||
%67 = OpAccessChain %58 %37 %59 %66
|
||||
%68 = OpLoad %3 %67
|
||||
%69 = OpVectorShuffle %5 %68 %68 0 1 2
|
||||
%70 = OpCompositeConstruct %11 %62 %65 %69
|
||||
%71 = OpTranspose %11 %70
|
||||
%72 = OpAccessChain %57 %37 %36
|
||||
%73 = OpLoad %7 %72
|
||||
%74 = OpMatrixTimesVector %3 %73 %56
|
||||
%75 = OpVectorShuffle %5 %74 %74 0 1 2
|
||||
%76 = OpMatrixTimesVector %5 %71 %75
|
||||
%77 = OpCompositeConstruct %6 %56 %76
|
||||
%78 = OpCompositeExtract %3 %77 0
|
||||
OpStore %29 %78
|
||||
%79 = OpCompositeExtract %5 %77 1
|
||||
OpStore %31 %79
|
||||
%23 = OpTypePointer Input %9
|
||||
%22 = OpVariable %23 Input
|
||||
%26 = OpTypePointer Output %3
|
||||
%25 = OpVariable %26 Output
|
||||
%28 = OpTypePointer Output %5
|
||||
%27 = OpVariable %28 Output
|
||||
%30 = OpTypeFunction %2
|
||||
%31 = OpTypePointer Uniform %8
|
||||
%32 = OpConstant %9 0
|
||||
%34 = OpConstant %10 2
|
||||
%35 = OpConstant %10 1
|
||||
%36 = OpConstant %4 4.0
|
||||
%37 = OpConstant %4 1.0
|
||||
%38 = OpConstant %4 0.0
|
||||
%40 = OpTypePointer Function %10
|
||||
%41 = OpConstantNull %10
|
||||
%43 = OpConstantNull %10
|
||||
%58 = OpTypePointer Uniform %7
|
||||
%59 = OpTypePointer Uniform %3
|
||||
%60 = OpConstant %9 1
|
||||
%67 = OpConstant %9 2
|
||||
%84 = OpTypePointer Input %3
|
||||
%83 = OpVariable %84 Input
|
||||
%87 = OpTypePointer Input %5
|
||||
%86 = OpVariable %87 Input
|
||||
%89 = OpVariable %26 Output
|
||||
%95 = OpTypeSampledImage %12
|
||||
%29 = OpFunction %2 None %30
|
||||
%21 = OpLabel
|
||||
%39 = OpVariable %40 Function %41
|
||||
%42 = OpVariable %40 Function %43
|
||||
%24 = OpLoad %9 %22
|
||||
%33 = OpAccessChain %31 %14 %32
|
||||
OpBranch %44
|
||||
%44 = OpLabel
|
||||
%45 = OpBitcast %10 %24
|
||||
%46 = OpSDiv %10 %45 %34
|
||||
OpStore %39 %46
|
||||
%47 = OpBitcast %10 %24
|
||||
%48 = OpBitwiseAnd %10 %47 %35
|
||||
OpStore %42 %48
|
||||
%49 = OpLoad %10 %39
|
||||
%50 = OpConvertSToF %4 %49
|
||||
%51 = OpFMul %4 %50 %36
|
||||
%52 = OpFSub %4 %51 %37
|
||||
%53 = OpLoad %10 %42
|
||||
%54 = OpConvertSToF %4 %53
|
||||
%55 = OpFMul %4 %54 %36
|
||||
%56 = OpFSub %4 %55 %37
|
||||
%57 = OpCompositeConstruct %3 %52 %56 %38 %37
|
||||
%61 = OpAccessChain %59 %33 %60 %32
|
||||
%62 = OpLoad %3 %61
|
||||
%63 = OpVectorShuffle %5 %62 %62 0 1 2
|
||||
%64 = OpAccessChain %59 %33 %60 %60
|
||||
%65 = OpLoad %3 %64
|
||||
%66 = OpVectorShuffle %5 %65 %65 0 1 2
|
||||
%68 = OpAccessChain %59 %33 %60 %67
|
||||
%69 = OpLoad %3 %68
|
||||
%70 = OpVectorShuffle %5 %69 %69 0 1 2
|
||||
%71 = OpCompositeConstruct %11 %63 %66 %70
|
||||
%72 = OpTranspose %11 %71
|
||||
%73 = OpAccessChain %58 %33 %32
|
||||
%74 = OpLoad %7 %73
|
||||
%75 = OpMatrixTimesVector %3 %74 %57
|
||||
%76 = OpVectorShuffle %5 %75 %75 0 1 2
|
||||
%77 = OpMatrixTimesVector %5 %72 %76
|
||||
%78 = OpCompositeConstruct %6 %57 %77
|
||||
%79 = OpCompositeExtract %3 %78 0
|
||||
OpStore %25 %79
|
||||
%80 = OpCompositeExtract %5 %78 1
|
||||
OpStore %27 %80
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%89 = OpFunction %2 None %34
|
||||
%80 = OpLabel
|
||||
%84 = OpLoad %3 %82
|
||||
%87 = OpLoad %5 %85
|
||||
%81 = OpCompositeConstruct %6 %84 %87
|
||||
%90 = OpLoad %12 %17
|
||||
%91 = OpLoad %13 %19
|
||||
OpBranch %92
|
||||
%92 = OpLabel
|
||||
%93 = OpCompositeExtract %5 %81 1
|
||||
%95 = OpSampledImage %94 %90 %91
|
||||
%96 = OpImageSampleImplicitLod %3 %95 %93
|
||||
OpStore %88 %96
|
||||
%90 = OpFunction %2 None %30
|
||||
%81 = OpLabel
|
||||
%85 = OpLoad %3 %83
|
||||
%88 = OpLoad %5 %86
|
||||
%82 = OpCompositeConstruct %6 %85 %88
|
||||
%91 = OpLoad %12 %17
|
||||
%92 = OpLoad %13 %19
|
||||
OpBranch %93
|
||||
%93 = OpLabel
|
||||
%94 = OpCompositeExtract %5 %82 1
|
||||
%96 = OpSampledImage %95 %91 %92
|
||||
%97 = OpImageSampleImplicitLod %3 %96 %94
|
||||
OpStore %89 %97
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -1,66 +1,68 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 40
|
||||
; Bound: 42
|
||||
OpCapability Shader
|
||||
OpCapability DerivativeControl
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %22 "derivatives" %17 %20
|
||||
OpExecutionMode %22 OriginUpperLeft
|
||||
OpDecorate %17 BuiltIn FragCoord
|
||||
OpDecorate %20 Location 0
|
||||
OpEntryPoint Fragment %17 "derivatives" %12 %15
|
||||
OpExecutionMode %17 OriginUpperLeft
|
||||
OpDecorate %12 BuiltIn FragCoord
|
||||
OpDecorate %15 Location 0
|
||||
%2 = OpTypeVoid
|
||||
%3 = OpTypeBool
|
||||
%5 = OpTypeFloat 32
|
||||
%4 = OpTypeVector %5 4
|
||||
%8 = OpTypeFunction %3
|
||||
%9 = OpConstantTrue %3
|
||||
%12 = OpTypePointer Function %4
|
||||
%13 = OpConstantNull %4
|
||||
%18 = OpTypePointer Input %4
|
||||
%17 = OpVariable %18 Input
|
||||
%21 = OpTypePointer Output %4
|
||||
%20 = OpVariable %21 Output
|
||||
%23 = OpTypeFunction %2
|
||||
%13 = OpTypePointer Input %4
|
||||
%12 = OpVariable %13 Input
|
||||
%16 = OpTypePointer Output %4
|
||||
%15 = OpVariable %16 Output
|
||||
%18 = OpTypeFunction %2
|
||||
%20 = OpTypePointer Function %4
|
||||
%21 = OpConstantNull %4
|
||||
%23 = OpConstantNull %4
|
||||
%25 = OpConstantNull %4
|
||||
%7 = OpFunction %3 None %8
|
||||
%6 = OpLabel
|
||||
OpBranch %10
|
||||
%10 = OpLabel
|
||||
OpReturnValue %9
|
||||
OpFunctionEnd
|
||||
%22 = OpFunction %2 None %23
|
||||
%16 = OpLabel
|
||||
%11 = OpVariable %12 Function %13
|
||||
%14 = OpVariable %12 Function %13
|
||||
%15 = OpVariable %12 Function %13
|
||||
%19 = OpLoad %4 %17
|
||||
OpBranch %24
|
||||
%24 = OpLabel
|
||||
%25 = OpDPdxCoarse %4 %19
|
||||
OpStore %11 %25
|
||||
%26 = OpDPdyCoarse %4 %19
|
||||
OpStore %14 %26
|
||||
%27 = OpFwidthCoarse %4 %19
|
||||
OpStore %15 %27
|
||||
%28 = OpDPdxFine %4 %19
|
||||
OpStore %11 %28
|
||||
%29 = OpDPdyFine %4 %19
|
||||
OpStore %14 %29
|
||||
%30 = OpFwidthFine %4 %19
|
||||
OpStore %15 %30
|
||||
%31 = OpDPdx %4 %19
|
||||
OpStore %11 %31
|
||||
%32 = OpDPdy %4 %19
|
||||
OpStore %14 %32
|
||||
%33 = OpFwidth %4 %19
|
||||
OpStore %15 %33
|
||||
%34 = OpFunctionCall %3 %7
|
||||
%35 = OpLoad %4 %11
|
||||
%36 = OpLoad %4 %14
|
||||
%37 = OpFAdd %4 %35 %36
|
||||
%38 = OpLoad %4 %15
|
||||
%39 = OpFMul %4 %37 %38
|
||||
OpStore %20 %39
|
||||
%17 = OpFunction %2 None %18
|
||||
%11 = OpLabel
|
||||
%19 = OpVariable %20 Function %21
|
||||
%22 = OpVariable %20 Function %23
|
||||
%24 = OpVariable %20 Function %25
|
||||
%14 = OpLoad %4 %12
|
||||
OpBranch %26
|
||||
%26 = OpLabel
|
||||
%27 = OpDPdxCoarse %4 %14
|
||||
OpStore %19 %27
|
||||
%28 = OpDPdyCoarse %4 %14
|
||||
OpStore %22 %28
|
||||
%29 = OpFwidthCoarse %4 %14
|
||||
OpStore %24 %29
|
||||
%30 = OpDPdxFine %4 %14
|
||||
OpStore %19 %30
|
||||
%31 = OpDPdyFine %4 %14
|
||||
OpStore %22 %31
|
||||
%32 = OpFwidthFine %4 %14
|
||||
OpStore %24 %32
|
||||
%33 = OpDPdx %4 %14
|
||||
OpStore %19 %33
|
||||
%34 = OpDPdy %4 %14
|
||||
OpStore %22 %34
|
||||
%35 = OpFwidth %4 %14
|
||||
OpStore %24 %35
|
||||
%36 = OpFunctionCall %3 %7
|
||||
%37 = OpLoad %4 %19
|
||||
%38 = OpLoad %4 %22
|
||||
%39 = OpFAdd %4 %37 %38
|
||||
%40 = OpLoad %4 %24
|
||||
%41 = OpFMul %4 %39 %40
|
||||
OpStore %15 %41
|
||||
OpReturn
|
||||
OpFunctionEnd
|
@ -30,6 +30,7 @@ OpDecorate %26 Location 0
|
||||
%10 = OpVariable %11 UniformConstant
|
||||
%18 = OpTypeFunction %6 %9 %11
|
||||
%19 = OpConstant %4 0.0
|
||||
%20 = OpConstantComposite %7 %19 %19
|
||||
%22 = OpTypeSampledImage %3
|
||||
%27 = OpTypePointer Output %6
|
||||
%26 = OpVariable %27 Output
|
||||
@ -40,11 +41,10 @@ OpDecorate %26 Location 0
|
||||
%12 = OpLabel
|
||||
%14 = OpLoad %3 %13
|
||||
%16 = OpLoad %5 %15
|
||||
OpBranch %20
|
||||
%20 = OpLabel
|
||||
%21 = OpCompositeConstruct %7 %19 %19
|
||||
OpBranch %21
|
||||
%21 = OpLabel
|
||||
%23 = OpSampledImage %22 %14 %16
|
||||
%24 = OpImageSampleImplicitLod %6 %23 %21
|
||||
%24 = OpImageSampleImplicitLod %6 %23 %20
|
||||
OpReturnValue %24
|
||||
OpFunctionEnd
|
||||
%28 = OpFunction %2 None %29
|
||||
|
@ -37,10 +37,9 @@ var<uniform> nested_mat_cx2_: MatCx2InArray;
|
||||
var<workgroup> val: u32;
|
||||
|
||||
fn test_matrix_within_struct_accesses() {
|
||||
var idx: i32;
|
||||
var t: Baz;
|
||||
var idx: i32 = 1;
|
||||
var t: Baz = Baz(mat3x2<f32>(vec2(1.0), vec2(2.0), vec2(3.0)));
|
||||
|
||||
idx = 1;
|
||||
let _e3 = idx;
|
||||
idx = (_e3 - 1);
|
||||
let l0_ = baz.m;
|
||||
@ -55,7 +54,6 @@ fn test_matrix_within_struct_accesses() {
|
||||
let _e36 = idx;
|
||||
let _e38 = idx;
|
||||
let l6_ = baz.m[_e36][_e38];
|
||||
t = Baz(mat3x2<f32>(vec2(1.0), vec2(2.0), vec2(3.0)));
|
||||
let _e51 = idx;
|
||||
idx = (_e51 + 1);
|
||||
t.m = mat3x2<f32>(vec2(6.0), vec2(5.0), vec2(4.0));
|
||||
@ -74,10 +72,9 @@ fn test_matrix_within_struct_accesses() {
|
||||
}
|
||||
|
||||
fn test_matrix_within_array_within_struct_accesses() {
|
||||
var idx_1: i32;
|
||||
var t_1: MatCx2InArray;
|
||||
var idx_1: i32 = 1;
|
||||
var t_1: MatCx2InArray = MatCx2InArray(array<mat4x2<f32>, 2>());
|
||||
|
||||
idx_1 = 1;
|
||||
let _e3 = idx_1;
|
||||
idx_1 = (_e3 - 1);
|
||||
let l0_1 = nested_mat_cx2_.am;
|
||||
@ -93,7 +90,6 @@ fn test_matrix_within_array_within_struct_accesses() {
|
||||
let _e46 = idx_1;
|
||||
let _e48 = idx_1;
|
||||
let l7_ = nested_mat_cx2_.am[0][_e46][_e48];
|
||||
t_1 = MatCx2InArray(array<mat4x2<f32>, 2>());
|
||||
let _e55 = idx_1;
|
||||
idx_1 = (_e55 + 1);
|
||||
t_1.am = array<mat4x2<f32>, 2>();
|
||||
@ -133,10 +129,9 @@ fn assign_array_through_ptr_fn(foo_2: ptr<function, array<vec4<f32>, 2>>) {
|
||||
|
||||
@vertex
|
||||
fn foo_vert(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4<f32> {
|
||||
var foo: f32;
|
||||
var foo: f32 = 0.0;
|
||||
var c2_: array<i32, 5>;
|
||||
|
||||
foo = 0.0;
|
||||
let baz_1 = foo;
|
||||
foo = 1.0;
|
||||
test_matrix_within_struct_accesses();
|
||||
@ -167,9 +162,8 @@ fn foo_frag() -> @location(0) vec4<f32> {
|
||||
|
||||
@compute @workgroup_size(1, 1, 1)
|
||||
fn assign_through_ptr() {
|
||||
var arr: array<vec4<f32>, 2>;
|
||||
var arr: array<vec4<f32>, 2> = array<vec4<f32>, 2>(vec4(6.0), vec4(7.0));
|
||||
|
||||
arr = array<vec4<f32>, 2>(vec4(6.0), vec4(7.0));
|
||||
assign_through_ptr_fn((&val));
|
||||
assign_array_through_ptr_fn((&arr));
|
||||
return;
|
||||
|
@ -7,11 +7,10 @@ var<storage, read_write> arr_u32_: array<atomic<u32>, 128>;
|
||||
|
||||
@compute @workgroup_size(1, 1, 1)
|
||||
fn test_atomic_compare_exchange_i32_() {
|
||||
var i: u32;
|
||||
var i: u32 = 0u;
|
||||
var old: i32;
|
||||
var exchanged: bool;
|
||||
var exchanged: bool = false;
|
||||
|
||||
i = 0u;
|
||||
loop {
|
||||
let _e2 = i;
|
||||
if (_e2 < SIZE) {
|
||||
@ -50,11 +49,10 @@ fn test_atomic_compare_exchange_i32_() {
|
||||
|
||||
@compute @workgroup_size(1, 1, 1)
|
||||
fn test_atomic_compare_exchange_u32_() {
|
||||
var i_1: u32;
|
||||
var i_1: u32 = 0u;
|
||||
var old_1: u32;
|
||||
var exchanged_1: bool;
|
||||
var exchanged_1: bool = false;
|
||||
|
||||
i_1 = 0u;
|
||||
loop {
|
||||
let _e2 = i_1;
|
||||
if (_e2 < SIZE) {
|
||||
|
@ -27,17 +27,13 @@ var<uniform> uni: UniformIndex;
|
||||
|
||||
@fragment
|
||||
fn main(fragment_in: FragmentIn) -> @location(0) vec4<f32> {
|
||||
var u1_: u32;
|
||||
var u2_: vec2<u32>;
|
||||
var v1_: f32;
|
||||
var v4_: vec4<f32>;
|
||||
var u1_: u32 = 0u;
|
||||
var u2_: vec2<u32> = vec2(0u);
|
||||
var v1_: f32 = 0.0;
|
||||
var v4_: vec4<f32> = vec4(0.0);
|
||||
|
||||
let uniform_index = uni.index;
|
||||
let non_uniform_index = fragment_in.index;
|
||||
u1_ = 0u;
|
||||
u2_ = vec2(0u);
|
||||
v1_ = 0.0;
|
||||
v4_ = vec4(0.0);
|
||||
let uv = vec2(0.0);
|
||||
let pix = vec2(0);
|
||||
let _e21 = textureDimensions(texture_array_unbounded[0]);
|
||||
|
@ -17,11 +17,10 @@ var<uniform> uni: UniformIndex;
|
||||
|
||||
@fragment
|
||||
fn main(fragment_in: FragmentIn) -> @location(0) @interpolate(flat) u32 {
|
||||
var u1_: u32;
|
||||
var u1_: u32 = 0u;
|
||||
|
||||
let uniform_index = uni.index;
|
||||
let non_uniform_index = fragment_in.index;
|
||||
u1_ = 0u;
|
||||
let _e10 = storage_array[0].x;
|
||||
let _e11 = u1_;
|
||||
u1_ = (_e11 + _e10);
|
||||
|
@ -1,24 +1,15 @@
|
||||
@compute @workgroup_size(1, 1, 1)
|
||||
fn main() {
|
||||
var i2_: vec2<i32>;
|
||||
var i3_: vec3<i32>;
|
||||
var i4_: vec4<i32>;
|
||||
var u2_: vec2<u32>;
|
||||
var u3_: vec3<u32>;
|
||||
var u4_: vec4<u32>;
|
||||
var f2_: vec2<f32>;
|
||||
var f3_: vec3<f32>;
|
||||
var f4_: vec4<f32>;
|
||||
var i2_: vec2<i32> = vec2(0);
|
||||
var i3_: vec3<i32> = vec3(0);
|
||||
var i4_: vec4<i32> = vec4(0);
|
||||
var u2_: vec2<u32> = vec2(0u);
|
||||
var u3_: vec3<u32> = vec3(0u);
|
||||
var u4_: vec4<u32> = vec4(0u);
|
||||
var f2_: vec2<f32> = vec2(0.0);
|
||||
var f3_: vec3<f32> = vec3(0.0);
|
||||
var f4_: vec4<f32> = vec4(0.0);
|
||||
|
||||
i2_ = vec2(0);
|
||||
i3_ = vec3(0);
|
||||
i4_ = vec4(0);
|
||||
u2_ = vec2(0u);
|
||||
u3_ = vec3(0u);
|
||||
u4_ = vec4(0u);
|
||||
f2_ = vec2(0.0);
|
||||
f3_ = vec3(0.0);
|
||||
f4_ = vec4(0.0);
|
||||
let _e27 = i2_;
|
||||
u2_ = bitcast<vec2<u32>>(_e27);
|
||||
let _e29 = i3_;
|
||||
|
@ -1,26 +1,16 @@
|
||||
@compute @workgroup_size(1, 1, 1)
|
||||
fn main() {
|
||||
var i: i32;
|
||||
var i2_: vec2<i32>;
|
||||
var i3_: vec3<i32>;
|
||||
var i4_: vec4<i32>;
|
||||
var u: u32;
|
||||
var u2_: vec2<u32>;
|
||||
var u3_: vec3<u32>;
|
||||
var u4_: vec4<u32>;
|
||||
var f2_: vec2<f32>;
|
||||
var f4_: vec4<f32>;
|
||||
var i: i32 = 0;
|
||||
var i2_: vec2<i32> = vec2(0);
|
||||
var i3_: vec3<i32> = vec3(0);
|
||||
var i4_: vec4<i32> = vec4(0);
|
||||
var u: u32 = 0u;
|
||||
var u2_: vec2<u32> = vec2(0u);
|
||||
var u3_: vec3<u32> = vec3(0u);
|
||||
var u4_: vec4<u32> = vec4(0u);
|
||||
var f2_: vec2<f32> = vec2(0.0);
|
||||
var f4_: vec4<f32> = vec4(0.0);
|
||||
|
||||
i = 0;
|
||||
i2_ = vec2(0);
|
||||
i3_ = vec3(0);
|
||||
i4_ = vec4(0);
|
||||
u = 0u;
|
||||
u2_ = vec2(0u);
|
||||
u3_ = vec3(0u);
|
||||
u4_ = vec4(0u);
|
||||
f2_ = vec2(0.0);
|
||||
f4_ = vec4(0.0);
|
||||
let _e28 = f4_;
|
||||
u = pack4x8snorm(_e28);
|
||||
let _e30 = f4_;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user