[glsl-in] arguments of opaque types are constant

This commit is contained in:
João Capucho 2021-06-20 20:15:41 +01:00 committed by Dzmitry Malyshau
parent 01036e8f42
commit c152205c87

View File

@ -345,6 +345,11 @@ impl<'function> Context<'function> {
};
parameters.push(ty);
let opaque = match program.module.types[ty].inner {
TypeInner::Image { .. } | TypeInner::Sampler { .. } => true,
_ => false,
};
if qualifier.is_lhs() {
arg.ty = program.module.types.fetch_or_append(Type {
name: None,
@ -359,7 +364,7 @@ impl<'function> Context<'function> {
if let Some(name) = name {
let expr = self.add_expression(Expression::FunctionArgument(index as u32), body);
let mutable = qualifier != ParameterQualifier::Const;
let mutable = qualifier != ParameterQualifier::Const && !opaque;
let load = qualifier.is_lhs();
if mutable && !load {