Lines Matching refs:SpvId
60 virtual SpvId getPointer() = 0;
62 virtual SpvId load(OutputStream& out) = 0;
64 virtual void store(SpvId value, OutputStream& out) = 0;
105 SpvId nextId();
109 SpvId getType(const Type& type);
111 SpvId getType(const Type& type, const MemoryLayout& layout);
113 SpvId getImageType(const Type& type);
115 SpvId getFunctionType(const FunctionDeclaration& function);
117 SpvId getPointerType(const Type& type, SpvStorageClass_ storageClass);
119 SpvId getPointerType(const Type& type, const MemoryLayout& layout,
122 void writePrecisionModifier(const Modifiers& modifiers, SpvId id);
124 std::vector<SpvId> getAccessChain(const Expression& expr, OutputStream& out);
126 void writeLayout(const Layout& layout, SpvId target);
128 void writeLayout(const Layout& layout, SpvId target, int member);
130 void writeStruct(const Type& type, const MemoryLayout& layout, SpvId resultId);
134 SpvId writeInterfaceBlock(const InterfaceBlock& intf);
136 SpvId writeFunctionStart(const FunctionDeclaration& f, OutputStream& out);
138 SpvId writeFunctionDeclaration(const FunctionDeclaration& f, OutputStream& out);
140 SpvId writeFunction(const FunctionDefinition& f, OutputStream& out);
146 SpvId writeVariableReference(const VariableReference& ref, OutputStream& out);
150 SpvId writeExpression(const Expression& expr, OutputStream& out);
152 SpvId writeIntrinsicCall(const FunctionCall& c, OutputStream& out);
154 SpvId writeFunctionCall(const FunctionCall& c, OutputStream& out);
157 void writeGLSLExtendedInstruction(const Type& type, SpvId id, SpvId floatInst,
158 SpvId signedInst, SpvId unsignedInst,
159 const std::vector<SpvId>& args, OutputStream& out);
167 std::vector<SpvId> vectorize(const std::vector<std::unique_ptr<Expression>>& args,
170 SpvId writeSpecialIntrinsic(const FunctionCall& c, SpecialIntrinsic kind, OutputStream& out);
172 SpvId writeConstantVector(const Constructor& c);
174 SpvId writeFloatConstructor(const Constructor& c, OutputStream& out);
176 SpvId writeIntConstructor(const Constructor& c, OutputStream& out);
178 SpvId writeUIntConstructor(const Constructor& c, OutputStream& out);
184 void writeUniformScaleMatrix(SpvId id, SpvId diagonal, const Type& type, OutputStream& out);
191 void writeMatrixCopy(SpvId id, SpvId src, const Type& srcType, const Type& dstType,
194 SpvId writeMatrixConstructor(const Constructor& c, OutputStream& out);
196 SpvId writeVectorConstructor(const Constructor& c, OutputStream& out);
198 SpvId writeArrayConstructor(const Constructor& c, OutputStream& out);
200 SpvId writeConstructor(const Constructor& c, OutputStream& out);
202 SpvId writeFieldAccess(const FieldAccess& f, OutputStream& out);
204 SpvId writeSwizzle(const Swizzle& swizzle, OutputStream& out);
212 SpvId foldToBool(SpvId id, const Type& operandType, SpvOp op, OutputStream& out);
214 SpvId writeMatrixComparison(const Type& operandType, SpvId lhs, SpvId rhs, SpvOp_ floatOperator,
218 SpvId writeComponentwiseMatrixBinary(const Type& operandType, SpvId lhs, SpvId rhs,
222 SpvId writeBinaryOperation(const Type& resultType, const Type& operandType, SpvId lhs,
223 SpvId rhs, SpvOp_ ifFloat, SpvOp_ ifInt, SpvOp_ ifUInt,
226 SpvId writeBinaryOperation(const BinaryExpression& expr, SpvOp_ ifFloat, SpvOp_ ifInt,
229 SpvId writeBinaryExpression(const BinaryExpression& b, OutputStream& out);
231 SpvId writeTernaryExpression(const TernaryExpression& t, OutputStream& out);
233 SpvId writeIndexExpression(const IndexExpression& expr, OutputStream& out);
235 SpvId writeLogicalAnd(const BinaryExpression& b, OutputStream& out);
237 SpvId writeLogicalOr(const BinaryExpression& o, OutputStream& out);
239 SpvId writePrefixExpression(const PrefixExpression& p, OutputStream& out);
241 SpvId writePostfixExpression(const PostfixExpression& p, OutputStream& out);
243 SpvId writeBoolLiteral(const BoolLiteral& b);
245 SpvId writeIntLiteral(const IntLiteral& i);
247 SpvId writeFloatLiteral(const FloatLiteral& f);
275 void writeLabel(SpvId id, OutputStream& out);
309 void writeGeometryShaderExecutionMode(SpvId entryPoint, OutputStream& out);
315 SpvId fIdCount;
316 SpvId fGLSLExtendedInstructions;
319 std::unordered_map<const FunctionDeclaration*, SpvId> fFunctionMap;
320 std::unordered_map<const Variable*, SpvId> fVariableMap;
322 std::unordered_map<String, SpvId> fImageTypeMap;
323 std::unordered_map<String, SpvId> fTypeMap;
333 SpvId fBoolTrue;
334 SpvId fBoolFalse;
335 std::unordered_map<int64_t, SpvId> fIntConstants;
336 std::unordered_map<uint64_t, SpvId> fUIntConstants;
337 std::unordered_map<float, SpvId> fFloatConstants;
338 std::unordered_map<double, SpvId> fDoubleConstants;
341 SpvId fCurrentBlock;
342 std::stack<SpvId> fBreakTarget;
343 std::stack<SpvId> fContinueTarget;
344 SpvId fRTHeightStructId = (SpvId) -1;
345 SpvId fRTHeightFieldIndex = (SpvId) -1;