Lines Matching defs:symbol
133 void visitSymbol(glslang::TIntermSymbol* symbol);
269 // for mapping glslang symbol struct to symbol Id
2018 void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol)
2022 builder.setLine(symbol->getLoc().line, symbol->getLoc().getFilename());
2025 if (symbol->getType().isStruct())
2026 glslangTypeToIdMap[symbol->getType().getStruct()] = symbol->getId();
2028 if (symbol->getType().getQualifier().isSpecConstant())
2031 // Skip symbol handling if it is string-typed
2032 if (symbol->getBasicType() == glslang::EbtString)
2038 spv::Id id = getSymbolId(symbol);
2040 if (symbol->getType().getQualifier().isTaskPayload())
2044 if (!symbol->getType().getQualifier().isParamInput() &&
2045 !symbol->getType().getQualifier().isParamOutput()) {
2049 if (!symbol->getType().isStruct() || symbol->getType().getStruct()->size() > 0) {
2066 if (symbol->getType().getQualifier().storage == glslang::EvqVaryingIn)
2071 if (! linkageOnly || symbol->getQualifier().isSpecConstant()) {
2074 // L-value chains will be computed left to right. We're on the symbol now,
2086 glslang::TQualifier qualifier = symbol->getQualifier();
2087 if (qualifier.isSpecConstant() || rValueParameters.find(symbol->getId()) != rValueParameters.end() ||
2101 if (symbol->getType().getQualifier().isUniformOrBuffer()) {
2102 if (!glslangIntermediate->hasCounterBufferName(symbol->getName())) {
2105 std::string keyName = symbol->getName().c_str();
2107 counterOriginator[keyName] = symbol;
2110 std::string keyName = symbol->getName().c_str();
2115 spv::Id counterId = getSymbolId(symbol);
9449 spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol)
9451 auto iter = symbolValues.find(symbol->getId());
9459 spv::BuiltIn builtIn = TranslateBuiltInDecoration(symbol->getQualifier().builtIn, false);
9460 auto forcedType = getForcedType(symbol->getQualifier().builtIn, symbol->getType());
9474 symbolValues[symbol->getId()] = id;
9481 id = createSpvVariable(symbol, forcedType.first);
9487 symbolValues[symbol->getId()] = id;
9491 if (symbol->getBasicType() != glslang::EbtBlock) {
9492 builder.addDecoration(id, TranslatePrecisionDecoration(symbol->getType()));
9493 builder.addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier()));
9494 builder.addDecoration(id, TranslateAuxiliaryStorageDecoration(symbol->getType().getQualifier()));
9495 addMeshNVDecoration(id, /*member*/ -1, symbol->getType().getQualifier());
9496 if (symbol->getQualifier().hasComponent())
9497 builder.addDecoration(id, spv::DecorationComponent, symbol->getQualifier().layoutComponent);
9498 if (symbol->getQualifier().hasIndex())
9499 builder.addDecoration(id, spv::DecorationIndex, symbol->getQualifier().layoutIndex);
9500 if (symbol->getType().getQualifier().hasSpecConstantId())
9501 builder.addDecoration(id, spv::DecorationSpecId, symbol->getType().getQualifier().layoutSpecConstantId);
9503 if (symbol->getQualifier().hasOffset())
9504 builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutOffset);
9507 if (symbol->getQualifier().hasLocation()) {
9519 builder.addDecoration(id, spv::DecorationLocation, symbol->getQualifier().layoutLocation);
9523 builder.addDecoration(id, TranslateInvariantDecoration(symbol->getType().getQualifier()));
9524 if (symbol->getQualifier().hasStream() && glslangIntermediate->isMultiStream()) {
9526 builder.addDecoration(id, spv::DecorationStream, symbol->getQualifier().layoutStream);
9528 if (symbol->getQualifier().hasSet())
9529 builder.addDecoration(id, spv::DecorationDescriptorSet, symbol->getQualifier().layoutSet);
9530 else if (IsDescriptorResource(symbol->getType())) {
9534 if (symbol->getQualifier().hasBinding())
9535 builder.addDecoration(id, spv::DecorationBinding, symbol->getQualifier().layoutBinding);
9536 else if (IsDescriptorResource(symbol->getType())) {
9540 if (symbol->getQualifier().hasAttachment())
9541 builder.addDecoration(id, spv::DecorationInputAttachmentIndex, symbol->getQualifier().layoutAttachment);
9544 if (symbol->getQualifier().hasXfbBuffer()) {
9545 builder.addDecoration(id, spv::DecorationXfbBuffer, symbol->getQualifier().layoutXfbBuffer);
9546 unsigned stride = glslangIntermediate->getXfbStride(symbol->getQualifier().layoutXfbBuffer);
9550 if (symbol->getQualifier().hasXfbOffset())
9551 builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutXfbOffset);
9570 if (symbol->getType().isImage() || symbol->getQualifier().isPipeInput()) {
9572 TranslateMemoryDecoration(symbol->getType().getQualifier(), memory,
9593 if (symbol->getQualifier().layoutViewportRelative) {
9598 if (symbol->getQualifier().layoutSecondaryViewportRelativeOffset != -2048) {
9600 symbol->getQualifier().layoutSecondaryViewportRelativeOffset);
9606 if (symbol->getQualifier().layoutPassthrough) {
9611 if (symbol->getQualifier().pervertexNV) {
9617 if (symbol->getQualifier().pervertexEXT) {
9623 if (glslangIntermediate->getHlslFunctionality1() && symbol->getType().getQualifier().semanticName != nullptr) {
9626 symbol->getType().getQualifier().semanticName);
9629 if (symbol->isReference()) {
9630 builder.addDecoration(id, symbol->getType().getQualifier().restrict ?
9635 if (symbol->getType().getQualifier().hasSpirvDecorate())
9636 applySpirvDecorate(symbol->getType(), id, {});
9755 // An AST node labelled as specialization constant should be a symbol node.
9927 // Return true if the node is a constant or symbol whose reading has no
9939 // not a symbol means non-trivial
9943 // a symbol, depends on what's being read