GLSL: Inherit memory qualifiers, both declaratively and in execution.

Fixes #1870, probably others.
This commit is contained in:
John Kessenich 2019-08-22 06:58:26 -06:00
parent 28f314d436
commit 9a5689f632
11 changed files with 371 additions and 89 deletions

View file

@ -539,20 +539,6 @@ public:
writeonly = false;
}
// Drop just the storage qualification, which perhaps should
// never be done, as it is fundamentally inconsistent, but need to
// explore what downstream consumers need.
// E.g., in a dereference, it is an inconsistency between:
// A) partially dereferenced resource is still in the storage class it started in
// B) partially dereferenced resource is a new temporary object
// If A, then nothing should change, if B, then everything should change, but this is half way.
void makePartialTemporary()
{
storage = EvqTemporary;
specConstant = false;
nonUniform = false;
}
const char* semanticName;
TStorageQualifier storage : 6;
TBuiltInVariable builtIn : 9;