Lines Matching refs:Id

108         void addNoContraction(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, noContraction); }
109 void addNonUniform(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, nonUniform); }
161 spv::Id createSpvVariable(const glslang::TIntermSymbol*, spv::Id forcedType);
162 spv::Id getSampledType(const glslang::TSampler&);
163 spv::Id getInvertedSwizzleType(const glslang::TIntermTyped&);
164 spv::Id createInvertedSwizzle(spv::Decoration precision, const glslang::TIntermTyped&, spv::Id parentResult);
166 spv::Id convertGlslangToSpvType(const glslang::TType& type, bool forwardReferenceOnly = false);
167 spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&,
169 void applySpirvDecorate(const glslang::TType& type, spv::Id id, std::optional<int> member);
171 spv::Id convertGlslangStructToSpvType(const glslang::TType&, const glslang::TTypeList* glslangStruct,
175 const glslang::TQualifier&, spv::Id, const std::vector<spv::Id>& spvMembers);
176 spv::Id makeArraySizeId(const glslang::TArraySizes&, int dim, bool allowZero = false);
177 spv::Id accessChainLoad(const glslang::TType& type);
178 void accessChainStore(const glslang::TType& type, spv::Id rvalue);
179 void multiTypeStore(const glslang::TType&, spv::Id rValue);
180 spv::Id convertLoadedBoolInUniformToUint(const glslang::TType& type, spv::Id nominalTypeId, spv::Id loadedId);
196 void translateArguments(const glslang::TIntermAggregate& node, std::vector<spv::Id>& arguments,
198 void translateArguments(glslang::TIntermUnary& node, std::vector<spv::Id>& arguments);
199 spv::Id createImageTextureFunctionCall(glslang::TIntermOperator* node);
200 spv::Id handleUserFunctionCall(const glslang::TIntermAggregate*);
202 spv::Id createBinaryOperation(glslang::TOperator op, OpDecorations&, spv::Id typeId, spv::Id left, spv::Id right,
204 spv::Id createBinaryMatrixOperation(spv::Op, OpDecorations&, spv::Id typeId, spv::Id left, spv::Id right);
205 spv::Id createUnaryOperation(glslang::TOperator op, OpDecorations&, spv::Id typeId, spv::Id operand,
208 spv::Id createUnaryMatrixOperation(spv::Op op, OpDecorations&, spv::Id typeId, spv::Id operand,
210 spv::Id createConversion(glslang::TOperator op, OpDecorations&, spv::Id destTypeId, spv::Id operand,
212 spv::Id createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize, spv::Id destType);
213 spv::Id makeSmearedConstant(spv::Id constant, int vectorSize);
214 spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId,
215 std::vector<spv::Id>& operands, glslang::TBasicType typeProxy,
217 spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands,
219 spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::GroupOperation groupOperation,
220 spv::Id typeId, std::vector<spv::Id>& operands);
221 spv::Id createSubgroupOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands,
223 spv::Id createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId,
224 std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
225 spv::Id createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId);
226 spv::Id getSymbolId(const glslang::TIntermSymbol* node);
227 void addMeshNVDecoration(spv::Id id, int member, const glslang::TQualifier & qualifier);
228 void addImageProcessingQCOMDecoration(spv::Id id, spv::Decoration decor);
229 spv::Id createSpvConstant(const glslang::TIntermTyped&);
230 spv::Id createSpvConstantFromConstUnionArray(const glslang::TType& type, const glslang::TConstUnionArray&,
234 spv::Id createShortCircuit(glslang::TOperator, glslang::TIntermTyped& left, glslang::TIntermTyped& right);
235 spv::Id getExtBuiltins(const char* name);
236 std::pair<spv::Id, spv::Id> getForcedType(glslang::TBuiltInVariable builtIn, const glslang::TType&);
237 spv::Id translateForcedType(spv::Id object);
238 spv::Id createCompositeConstruct(spv::Id typeId, std::vector<spv::Id> constituents);
254 std::set<spv::Id> iOSet; // all input/output variables from either static use or declaration of interface
257 spv::Id stdBuiltins;
258 spv::Id nonSemanticDebugPrintf;
259 std::unordered_map<std::string, spv::Id> extBuiltinMap;
261 std::unordered_map<long long, spv::Id> symbolValues;
262 std::unordered_map<uint32_t, spv::Id> builtInVariableIds;
266 std::unordered_map<const glslang::TTypeList*, spv::Id> structMap[glslang::ElpCount][glslang::ElmCount];
269 // for mapping glslang symbol struct to symbol Id
274 std::map<const glslang::TType *, spv::Id> forwardPointers;
278 std::unordered_map<spv::Id, spv::Id> forceType;
280 spv::Id taskPayloadID;
1757 std::vector<spv::Id> dimConstId;
1892 std::vector<spv::Id> dimConstId;
1961 std::vector<spv::Id> operandIds;
2038 spv::Id id = getSymbolId(symbol);
2115 spv::Id counterId = getSymbolId(symbol);
2173 spv::Id rValue = accessChainLoad(node->getRight()->getType());
2181 spv::Id leftRValue = accessChainLoad(node->getLeft()->getType());
2240 spv::Id left = accessChainLoad(node->getLeft()->getType());
2293 spv::Id index = accessChainLoad(node->getRight()->getType());
2341 spv::Id result = createShortCircuit(node->getOp(), *node->getLeft()->getAsTyped(),
2356 spv::Id left = accessChainLoad(node->getLeft()->getType());
2361 spv::Id right = accessChainLoad(node->getRight()->getType());
2367 spv::Id result = createBinaryOperation(node->getOp(), decorations,
2381 spv::Id TGlslangToSpvTraverser::convertLoadedBoolInUniformToUint(const glslang::TType& type,
2382 spv::Id nominalTypeId,
2383 spv::Id loadedId)
2387 spv::Id boolType = builder.makeBoolType();
2393 spv::Id bvecType = builder.makeVectorType(builder.makeBoolType(), vecSize);
2399 spv::Id boolArrayTypeId = convertGlslangToSpvType(type);
2407 spv::Id elementNominalTypeId = builder.getContainedTypeId(nominalTypeId);
2408 std::vector<spv::Id> constituents;
2411 spv::Id elementValue = builder.createCompositeExtract(loadedId, elementNominalTypeId, index);
2414 spv::Id elementConvertedValue = convertLoadedBoolInUniformToUint(glslangElementType, elementNominalTypeId, elementValue);
2427 std::pair<spv::Id, spv::Id> TGlslangToSpvTraverser::getForcedType(glslang::TBuiltInVariable glslangBuiltIn,
2440 spv::Id ivec4_type = builder.makeVectorType(builder.makeUintType(32), 4);
2441 spv::Id uint64_type = builder.makeUintType(64);
2442 std::pair<spv::Id, spv::Id> ret(ivec4_type, uint64_type);
2449 spv::Id mat43 = builder.makeMatrixType(builder.makeFloatType(32), 4, 3);
2450 spv::Id mat34 = builder.makeMatrixType(builder.makeFloatType(32), 3, 4);
2451 std::pair<spv::Id, spv::Id> ret(mat43, mat34);
2458 std::pair<spv::Id, spv::Id> ret(spv::NoType, spv::NoType);
2465 spv::Id TGlslangToSpvTraverser::translateForcedType(spv::Id object)
2471 spv::Id desiredTypeId = forceIt->second;
2472 spv::Id objectTypeId = builder.getTypeId(object);
2482 std::vector<spv::Id> components;
2486 spv::Id vecType = builder.makeVectorType(builder.getContainedTypeId(objectTypeId), 2);
2515 spv::Id result = spv::NoResult;
2540 spv::Id length;
2542 spv::Id typeId = convertGlslangToSpvType(node->getOperand()->getType());
2588 spv::Id invertedType = spv::NoType;
2603 spv::Id operand = spv::NoResult;
2725 spv::Id one = 0;
2747 spv::Id result = createBinaryOperation(op, decorations,
2792 spv::Id TGlslangToSpvTraverser::createCompositeConstruct(spv::Id resultTypeId, std::vector<spv::Id> constituents)
2795 spv::Id& constituent = constituents[c];
2796 spv::Id lType = builder.getContainedTypeId(resultTypeId, c);
2797 spv::Id rType = builder.getTypeId(constituent);
2802 std::vector<spv::Id> rTypeConstituents;
2811 std::vector<spv::Id> rTypeConstituents;
2814 spv::Id elementRType = builder.getContainedTypeId(rType);
2831 spv::Id result = spv::NoResult;
2832 spv::Id invertedType = spv::NoType; // to use to override the natural type of the node
2835 std::vector<spv::Id> temporaryLvalues; // temporaries to pass, as proxies for complexLValues
2939 spv::Id sourceFileId = sourceFileName ? builder.getStringId(sourceFileName) : builder.getSourceFile();
3079 std::vector<spv::Id> arguments;
3081 spv::Id constructed;
3096 std::vector<spv::Id> constituents;
3358 spv::Id leftId = accessChainLoad(left->getType());
3362 spv::Id rightId = accessChainLoad(right->getType());
3384 std::vector<spv::Id> operands;
3541 spv::Id elementId = accessChainLoad(glslangOperands[2]->getAsTyped()->getType());
3629 spv::Id symId = getSymbolId(itNode->second);
3640 spv::Id symId = getSymbolId(itNode->second);
3666 spv::Id typeId = builder.getContainedTypeId(builder.getTypeId(operands[0]));
3669 spv::Id result = node->getOp() == glslang::EOpCooperativeMatrixLoad
3701 spv::Id typeId = builder.makeArrayType(builder.makeVectorType(builder.makeFloatType(32), 3),
3707 spv::Id result = builder.createOp(spvOp, typeId, idImmOps);
3877 spv::Id result = spv::NoResult; // upcoming result selecting between trueValue and falseValue
3880 spv::Id condition = accessChainLoad(node->getCondition()->getType());
3885 spv::Id resultType = convertGlslangToSpvType(node->getType());
3887 spv::Id trueValue = accessChainLoad(node->getTrueBlock()->getAsTyped()->getType());
3889 spv::Id falseValue = accessChainLoad(node->getFalseBlock()->getAsTyped()->getType());
3975 spv::Id load = accessChainLoad(node->getTrueBlock()->getAsTyped()->getType());
3988 spv::Id load = accessChainLoad(node->getFalseBlock()->getAsTyped()->getType());
4021 spv::Id selector = accessChainLoad(node->getCondition()->getAsTyped()->getType());
4077 spv::Id constant = createSpvConstantFromConstUnionArray(node->getType(), node->getConstArray(), nextConst, false);
4107 spv::Id condition = accessChainLoad(node->getTest()->getType());
4137 spv::Id condition =
4188 spv::Id returnId = accessChainLoad(glslangReturnType);
4192 spv::Id copyId = builder.createVariable(currentFunction->getReturnPrecision(),
4225 spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol* node, spv::Id forcedType)
4228 // can still have a mapping to a SPIR-V Id.
4231 spv::Id result = createSpvConstant(*node);
4238 spv::Id spvType = forcedType == spv::NoType ? convertGlslangToSpvType(node->getType())
4302 spv::Id initializer = spv::NoResult;
4317 // Return type Id of the sampled type.
4318 spv::Id TGlslangToSpvTraverser::getSampledType(const glslang::TSampler& sampler)
4345 spv::Id TGlslangToSpvTraverser::getInvertedSwizzleType(const glslang::TIntermTyped& node)
4356 spv::Id TGlslangToSpvTraverser::createInvertedSwizzle(spv::Decoration precision, const glslang::TIntermTyped& node,
4357 spv::Id parentResult)
4375 spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, bool forwardReferenceOnly)
4390 // Do full recursive conversion of an arbitrary glslang type to a SPIR-V Id.
4393 spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type,
4397 spv::Id spvType = spv::NoResult;
4486 spv::Id forwardId = builder.makeForwardPointer(spv::StorageClassPhysicalStorageBufferEXT);
4491 spv::Id referentType = convertGlslangToSpvType(*type.getReferentType());
4635 spv::Id scope = makeArraySizeId(*type.getTypeParameters()->arraySizes, 1);
4636 spv::Id rows = makeArraySizeId(*type.getTypeParameters()->arraySizes, 2);
4637 spv::Id cols = makeArraySizeId(*type.getTypeParameters()->arraySizes, 3);
4652 spv::Id scope = makeArraySizeId(*type.getTypeParameters()->arraySizes, 0);
4653 spv::Id rows = makeArraySizeId(*type.getTypeParameters()->arraySizes, 1);
4654 spv::Id cols = makeArraySizeId(*type.getTypeParameters()->arraySizes, 2);
4655 spv::Id use = builder.makeUintConstant(type.getCoopMatKHRuse());
4713 void TGlslangToSpvTraverser::applySpirvDecorate(const glslang::TType& type, spv::Id id, std::optional<int> member)
4742 std::vector<spv::Id> operandIds;
4805 // Do full recursive conversion of a glslang structure (or block) type to a SPIR-V Id.
4808 spv::Id TGlslangToSpvTraverser::convertGlslangStructToSpvType(const glslang::TType& type,
4814 std::vector<spv::Id> spvMembers;
4876 spv::Id spvType = builder.makeStructType(spvMembers, type.getTypeName().c_str(), false);
4895 spv::Id spvType,
4896 const std::vector<spv::Id>& spvMembers)
5031 // Sometimes, a raw constant is turned into an Id, and sometimes
5033 spv::Id TGlslangToSpvTraverser::makeArraySizeId(const glslang::TArraySizes& arraySizes, int dim, bool allowZero)
5059 spv::Id TGlslangToSpvTraverser::accessChainLoad(const glslang::TType& type)
5061 spv::Id nominalTypeId = builder.accessChainGetInferredType();
5079 spv::Id loadedId = builder.accessChainLoad(TranslatePrecisionDecoration(type),
5099 void TGlslangToSpvTraverser::accessChainStore(const glslang::TType& type, spv::Id rvalue)
5103 spv::Id nominalTypeId = builder.accessChainGetInferredType();
5107 spv::Id boolType = builder.makeBoolType();
5110 spv::Id one = builder.makeUintConstant(1);
5111 spv::Id zero = builder.makeUintConstant(0);
5118 spv::Id bvecType = builder.makeVectorType(builder.makeBoolType(), vecSize);
5121 spv::Id one = makeSmearedConstant(builder.makeUintConstant(1), vecSize);
5122 spv::Id zero = makeSmearedConstant(builder.makeUintConstant(0), vecSize);
5153 void TGlslangToSpvTraverser::multiTypeStore(const glslang::TType& type, spv::Id rValue)
5162 spv::Id rType = builder.getTypeId(rValue);
5163 spv::Id lValue = builder.accessChainGetLValue();
5164 spv::Id lType = builder.getContainedTypeId(builder.getTypeId(lValue));
5182 spv::Id logicalCopy = builder.createUnaryOp(spv::OpCopyLogical, lType, rValue);
5191 spv::Id elementRType = builder.getContainedTypeId(rType);
5194 spv::Id elementRValue = builder.createCompositeExtract(rValue, elementRType, index);
5214 spv::Id memberRType = builder.getContainedTypeId(rType, m);
5215 spv::Id memberRValue = builder.createCompositeExtract(rValue, memberRType, m);
5445 std::vector<spv::Id>(), // main function has no param
5464 std::vector<spv::Id> paramTypes;
5479 spv::Id typeId = convertGlslangToSpvType(paramType);
5596 void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& node, std::vector<spv::Id>& arguments,
5719 spv::Id lvalue_id = builder.accessChainGetLValue();
5729 void TGlslangToSpvTraverser::translateArguments(glslang::TIntermUnary& node, std::vector<spv::Id>& arguments)
5736 spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermOperator* node)
5765 std::vector<spv::Id> arguments;
5842 spv::Id zero = builder.makeIntConstant(0);
5843 std::vector<spv::Id> comps;
5861 spv::Id result = builder.createOp(spv::OpImageRead, resultType(), operands);
5871 spv::Id result = builder.createOp(spv::OpColorAttachmentReadEXT, resultType(), operands);
5913 std::vector<spv::Id> result(1, builder.createOp(spv::OpImageRead, resultType(), operands));
6004 spv::Id texelOut = *opIt;
6005 spv::Id typeId0 = resultType();
6006 spv::Id typeId1 = builder.getDerefTypeId(texelOut);
6007 spv::Id resultTypeId = builder.makeStructResultType(typeId0, typeId1);
6009 spv::Id resultId = builder.createOp(spv::OpImageSparseRead, resultTypeId, operands);
6023 spv::Id resultTypeId;
6033 spv::Id pointer = builder.createOp(spv::OpImageTexelPointer, resultTypeId, operands);
6038 std::vector<spv::Id> operands;
6053 std::vector<spv::Id> operands;
6060 spv::Id zero = builder.makeIntConstant(0);
6061 std::vector<spv::Id> comps;
6137 std::vector<spv::Id> indexes;
6200 spv::Id resultStruct = spv::NoResult;
6237 spv::Id resultStructType = builder.getContainedTypeId(builder.getTypeId(resultStruct));
6247 std::vector<spv::Id> members;
6252 spv::Id resType = builder.makeStructType(members, "ResType");
6255 spv::Id res = builder.createTextureCall(precision, resType, sparse, cracked.fetch, cracked.proj,
6290 spv::Id projComp = builder.createCompositeExtract(params.coords,
6307 std::vector<spv::Id> result( 1,
6318 spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAggregate* node)
6338 std::vector<spv::Id> rValues;
6362 std::vector<spv::Id> spvArgs;
6364 spv::Id arg;
6376 spv::Id copy = accessChainLoad(*argTypes[a]);
6387 spv::Id argCopy = builder.createVariable(function->getParamPrecision(a), spv::StorageClassFunction, function->getParamType(a), "arg");
6400 spv::Id result = builder.createFunctionCall(function, spvArgs);
6411 spv::Id copy = builder.createLoad(spvArgs[a], spv::NoPrecision);
6424 spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, OpDecorations& decorations,
6425 spv::Id typeId, spv::Id left, spv::Id right,
6594 spv::Id result = builder.createBinOp(binOp, typeId, left, right);
6607 spv::Id result = builder.createCompositeCompare(decorations.precision, left, right, op == glslang::EOpEqual);
6668 spv::Id result = builder.createBinOp(binOp, typeId, left, right);
6691 spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, OpDecorations& decorations, spv::Id typeId,
6692 spv::Id left, spv::Id right)
6701 spv::Id resultType = builder.getTypeId(right);
6733 spv::Id result = builder.createBinOp(op, typeId, left, right);
6758 spv::Id scalarType = builder.getScalarTypeId(typeId);
6759 spv::Id vecType = builder.makeVectorType(scalarType, numRows);
6760 std::vector<spv::Id> results;
6761 spv::Id smearVec = spv::NoResult;
6771 spv::Id leftVec = leftMat ? builder.createCompositeExtract( left, vecType, indexes) : smearVec;
6772 spv::Id rightVec = rightMat ? builder.createCompositeExtract(right, vecType, indexes) : smearVec;
6773 spv::Id result = builder.createBinOp(op, vecType, leftVec, rightVec);
6780 spv::Id result = builder.setPrecision(builder.createCompositeConstruct(typeId, results), decorations.precision);
6790 spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDecorations& decorations, spv::Id typeId,
6791 spv::Id operand, glslang::TBasicType typeProxy, const spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags)
7077 std::vector<spv::Id> operands;
7134 std::vector<spv::Id> operands;
7173 std::vector<spv::Id> operands;
7308 spv::Id id;
7310 std::vector<spv::Id> args;
7323 spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, OpDecorations& decorations, spv::Id typeId,
7324 spv::Id operand, glslang::TBasicType /* typeProxy */)
7336 spv::Id srcVecType = builder.makeVectorType(builder.getScalarTypeId(builder.getTypeId(operand)), numRows);
7337 spv::Id destVecType = builder.makeVectorType(builder.getScalarTypeId(typeId), numRows);
7338 std::vector<spv::Id> results;
7344 spv::Id srcVec = builder.createCompositeExtract(operand, srcVecType, indexes);
7345 spv::Id destVec = builder.createUnaryOp(op, destVecType, srcVec);
7352 spv::Id result = builder.setPrecision(builder.createCompositeConstruct(typeId, results), decorations.precision);
7362 spv::Id TGlslangToSpvTraverser::createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize, spv::Id destType)
7407 spv::Id type = spv::NoType;
7442 spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecorations& decorations, spv::Id destType,
7443 spv::Id operand, glslang::TBasicType typeProxy)
7446 spv::Id zero = 0;
7447 spv::Id one = 0;
7764 spv::Id result = 0;
7780 spv::Id TGlslangToSpvTraverser::makeSmearedConstant(spv::Id constant, int vectorSize)
7785 spv::Id vectorTypeId = builder.makeVectorType(builder.getTypeId(constant), vectorSize);
7786 std::vector<spv::Id> components;
7793 spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv::Decoration /*precision*/,
7794 spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy,
7911 spv::Id pointerId = 0, compareId = 0, valueId = 0;
7913 spv::Id scopeId;
7920 spv::Id semanticsId = builder.makeUintConstant(lvalueCoherentFlags.isVolatile() &&
7924 spv::Id semanticsId2 = semanticsId;
7972 std::vector<spv::Id> spvAtomicOperands; // hold the spv operands
7988 spv::Id resultId = builder.createOp(opCode, typeId, spvAtomicOperands);
8000 spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId,
8001 std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
8101 spv::Id uintType = builder.makeUintType(32);
8102 spv::Id uvec4Type = builder.makeVectorType(uintType, 4);
8103 spv::Id result = builder.createOp(spv::OpSubgroupBallotKHR, uvec4Type, spvGroupOperands);
8105 std::vector<spv::Id> components;
8109 spv::Id uvec2Type = builder.makeVectorType(uintType, 2);
8210 spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv::GroupOperation groupOperation,
8211 spv::Id typeId, std::vector<spv::Id>& operands)
8232 spv::Id scalarType = builder.getScalarTypeId(builder.getTypeId(operands[0]));
8233 std::vector<spv::Id> results;
8269 spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, spv::Id typeId,
8270 std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
8596 spv::Id directionId = spv::NoResult;
8611 spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::Decoration precision,
8612 spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
8621 spv::Id typeId0 = 0;
8624 spv::Id typeId1 = 0;
8627 spv::Id frexpIntType = 0;
9186 spv::Id id = 0;
9191 std::vector<spv::Id> callArguments(operands.begin(), operands.begin() + consumedOperands);
9197 spv::Id mulOp = builder.createBinOp(spv::OpIMul, builder.getTypeId(operands[0]), operands[0], operands[1]);
9242 spv::Id member1 = builder.createCompositeExtract(id, frexpIntType, 1);
9259 spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId)
9359 std::vector<spv::Id> operands;
9364 std::vector<spv::Id> args; // Dummy arguments
9365 spv::Id id = builder.createBuiltinCall(typeId, getExtBuiltins(spv::E_SPV_AMD_gcn_shader), spv::TimeAMD, args);
9395 std::vector<spv::Id> args; // Dummy arguments
9402 std::vector<spv::Id> args;
9410 std::vector<spv::Id> args;
9436 std::vector<spv::Id> args; // Dummy args
9437 spv::Id result = builder.createOp(spv_op, typeId, args);
9449 spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol)
9452 spv::Id id;
9642 void TGlslangToSpvTraverser::addMeshNVDecoration(spv::Id id, int member, const glslang::TQualifier& qualifier)
9688 void TGlslangToSpvTraverser::addImageProcessingQCOMDecoration(spv::Id id, spv::Decoration decor)
9697 spv::Id texid = builder.getIdOperand(id, 0);
9712 spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& node)
9743 std::vector<spv::Id> dimConstId;
9758 spv::Id result;
9788 spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glslang::TType& glslangType,
9792 std::vector<spv::Id> spvConsts;
9795 spv::Id typeId = convertGlslangToSpvType(glslangType);
9866 spv::Id scalar = 0;
10016 spv::Id TGlslangToSpvTraverser::createShortCircuit(glslang::TOperator op, glslang::TIntermTyped& left,
10019 spv::Id boolTypeId = builder.makeBoolType();
10024 spv::Id leftId = accessChainLoad(left.getType());
10027 std::vector<spv::Id> phiOperands;
10047 spv::Id rightId = accessChainLoad(right.getType());
10060 // Return type Id of the imported set of extended instructions corresponds to the name.
10062 spv::Id TGlslangToSpvTraverser::getExtBuiltins(const char* name)
10068 spv::Id extBuiltins = builder.import(name);