Lines Matching defs:swizzle
165 void convertSwizzle(const glslang::TIntermAggregate&, std::vector<unsigned>& swizzle);
2222 // This is essentially a hard-coded vector swizzle of size 1,
2223 // so short circuit the access-chain stuff with a swizzle.
2224 std::vector<unsigned> swizzle;
2225 swizzle.push_back(glslangIndex);
2227 builder.accessChainPushSwizzle(swizzle, convertGlslangToSpvType(node->getLeft()->getType()),
2319 std::vector<unsigned> swizzle;
2320 convertSwizzle(*node->getRight()->getAsAggregate(), swizzle);
2322 builder.accessChainPushSwizzle(swizzle, convertGlslangToSpvType(node->getLeft()->getType()),
2329 logger->missingFunctionality("matrix swizzle");
2586 // Does it need a swizzle inversion? If so, evaluation is inverted;
2587 // operate first on the swizzle base, then apply the swizzle.
3462 // Does it need a swizzle inversion? If so, evaluation is inverted;
3463 // operate first on the swizzle base, then apply the swizzle.
3584 // SPIR-V cannot represent an l-value containing a swizzle that doesn't
3586 // receive the result, and must later swizzle that into the original
4342 // If node is a swizzle operation, return the type that should be used if
4343 // the swizzle base is first consumed by another operation, before the swizzle
4354 // When inverting a swizzle with a parent op, this function
4355 // will apply the swizzle operation to a completed parent operation.
4359 std::vector<unsigned> swizzle;
4360 convertSwizzle(*node.getAsBinaryNode()->getRight()->getAsAggregate(), swizzle);
4361 return builder.createRvalueSwizzle(precision, convertGlslangToSpvType(node.getType()), parentResult, swizzle);
4364 // Convert a glslang AST swizzle node to a swizzle vector for building SPIR-V.
4365 void TGlslangToSpvTraverser::convertSwizzle(const glslang::TIntermAggregate& node, std::vector<unsigned>& swizzle)
4369 swizzle.push_back(swizzleSequence[i]->getAsConstantUnion()->getConstArray()[0].getIConst());