For nonuniformEXT constructor, make a copy of the node to decorate
This commit is contained in:
parent
e291f7a09f
commit
88220d507e
9 changed files with 374 additions and 296 deletions
|
|
@ -85,6 +85,8 @@ enum TOperator {
|
|||
EOpPreIncrement,
|
||||
EOpPreDecrement,
|
||||
|
||||
EOpCopyObject,
|
||||
|
||||
// (u)int* -> bool
|
||||
EOpConvInt8ToBool,
|
||||
EOpConvUint8ToBool,
|
||||
|
|
|
|||
|
|
@ -6951,9 +6951,10 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T
|
|||
break;
|
||||
|
||||
case EOpConstructNonuniform:
|
||||
node->getWritableType().getQualifier().nonUniform = true;
|
||||
return node;
|
||||
break;
|
||||
// Make a nonuniform copy of node
|
||||
newNode = intermediate.addBuiltInFunctionCall(node->getLoc(), EOpCopyObject, true, node, node->getType());
|
||||
newNode->getWritableType().getQualifier().nonUniform = true;
|
||||
return newNode;
|
||||
|
||||
case EOpConstructReference:
|
||||
// construct reference from reference
|
||||
|
|
|
|||
|
|
@ -237,6 +237,7 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node)
|
|||
case EOpPostDecrement: out.debug << "Post-Decrement"; break;
|
||||
case EOpPreIncrement: out.debug << "Pre-Increment"; break;
|
||||
case EOpPreDecrement: out.debug << "Pre-Decrement"; break;
|
||||
case EOpCopyObject: out.debug << "copy object"; break;
|
||||
|
||||
// * -> bool
|
||||
case EOpConvInt8ToBool: out.debug << "Convert int8_t to bool"; break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue