59 #include <unordered_map> 82 strings.push_back(std::unique_ptr<Instruction>(fileString));
89 Id import(
const char*);
183 return module.getInstruction(scalarTypeId)->getImmediateOperand(0);
202 return (
Dim)
module.getInstruction(typeId)->getImmediateOperand(1);
213 return module.getInstruction(typeId)->getImmediateOperand(3) != 0;
257 const std::vector<std::vector<Decoration>>& precisions,
Block **entry = 0);
428 const std::vector<int>& valueToSegment,
int defaultSegment, std::vector<Block*>& segmentBB);
437 void endSwitch(std::vector<Block*>& segmentBB);
569 void dump(std::vector<unsigned int>&)
const;
596 void dumpInstructions(std::vector<unsigned int>&,
const std::vector<std::unique_ptr<Instruction> >&)
const;
621 std::vector<std::unique_ptr<Instruction> >
strings;
622 std::vector<std::unique_ptr<Instruction> >
imports;
625 std::vector<std::unique_ptr<Instruction> >
names;
634 std::unordered_map<unsigned int, std::vector<Instruction*>>
groupedTypes;
648 #endif // SpvBuilder_H StorageClass getTypeStorageClass(Id typeId) const
Definition: SpvBuilder.h:146
unsigned int Id
Definition: spirv.hpp:47
bool emitOpLines
Definition: SpvBuilder.h:605
unsigned long Instruction
Definition: llimits.h:165
void makeBeginElse()
Definition: SpvBuilder.cpp:2137
Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format)
Definition: SpvBuilder.cpp:405
int builderNumber
Definition: SpvBuilder.h:612
Id createBitFieldInsertCall(Decoration precision, Id, Id, Id, Id)
int getTypeNumRows(Id typeId) const
Definition: SpvBuilder.h:192
GLsizeiptr size
Definition: glext.h:6559
bool isAggregate(Id resultId) const
Definition: SpvBuilder.h:153
GLuint GLsizei const GLuint const GLintptr * offsets
Definition: glsym_gl.h:634
GLenum GLuint id
Definition: glext.h:6233
std::stack< Block * > switchMerges
Definition: SpvBuilder.h:637
Function * makeFunctionEntry(Decoration precision, Id returnType, const char *name, const std::vector< Id > ¶mTypes, const std::vector< std::vector< Decoration >> &precisions, Block **entry=0)
Definition: SpvBuilder.cpp:1095
Definition: spirv.hpp:735
LoopBlocks & operator=(const LoopBlocks &)
void setAccessChain(AccessChain newChain)
Definition: SpvBuilder.h:514
Id createRvalueSwizzle(Decoration precision, Id typeId, Id source, const std::vector< unsigned > &channels)
Definition: SpvBuilder.cpp:1457
Id condition
Definition: SpvBuilder.h:406
Id lod
Definition: SpvBuilder.h:356
void addExecutionMode(Function *, ExecutionMode mode, int value1=-1, int value2=-1, int value3=-1)
Definition: SpvBuilder.cpp:977
StorageClass
Definition: spirv.hpp:137
void addExtension(const char *ext)
Definition: SpvBuilder.h:88
Block * getBuildPoint() const
Definition: SpvBuilder.h:247
std::unordered_map< unsigned int, std::vector< Instruction * > > groupedConstants
Definition: SpvBuilder.h:632
unsigned int spvVersion
Definition: SpvBuilder.h:599
Id accessChainGetInferredType()
Definition: SpvBuilder.cpp:2424
virtual ~Builder()
Definition: SpvBuilder.cpp:76
void leaveFunction()
Definition: SpvBuilder.cpp:1140
Block & makeNewBlock()
Definition: SpvBuilder.cpp:2237
GLfloat GLfloat GLfloat v2
Definition: glext.h:6703
Decoration
Definition: spirv.hpp:344
GLenum GLenum GLvoid GLvoid * column
Definition: glext.h:6316
void setBuildPoint(Block *bp)
Definition: SpvBuilder.h:246
Id createMatrixConstructor(Decoration precision, const std::vector< Id > &sources, Id constructee)
Definition: SpvBuilder.cpp:2025
Id makeIntType(int width)
Definition: SpvBuilder.h:120
Id getScalarTypeId(Id typeId) const
Definition: SpvBuilder.cpp:570
bool isConstantScalar(Id resultId) const
Definition: SpvBuilder.h:174
std::set< spv::Capability > capabilities
Definition: SpvBuilder.h:611
Id instr
Definition: SpvBuilder.h:500
GLfloat GLfloat v1
Definition: glext.h:6702
bool isBoolType(Id typeId)
Definition: SpvBuilder.h:156
Id createSamplePositionCall(Decoration precision, Id, Id)
static const signed char indexes[2][4][20]
Definition: camellia.c:218
Id createArrayLength(Id base, unsigned int member)
Definition: SpvBuilder.cpp:1241
void promoteScalar(Decoration precision, Id &left, Id &right)
Definition: SpvBuilder.cpp:1512
std::vector< std::unique_ptr< Instruction > > externals
Definition: SpvBuilder.h:628
Dim
Definition: spirv.hpp:154
GLsizei GLenum * sources
Definition: glext.h:8420
const Decoration NoPrecision
Definition: spvIR.h:67
Definition: SpvBuilder.h:439
Op getMostBasicTypeClass(Id typeId) const
Definition: SpvBuilder.cpp:515
Block & merge
Definition: SpvBuilder.h:442
dictionary args
Definition: test_shaders.py:20
If(Id condition, unsigned int ctrl, Builder &builder)
Definition: SpvBuilder.cpp:2114
Id makeUintConstant(unsigned u, bool specConstant=false)
Definition: SpvBuilder.h:223
Id makeFpConstant(Id type, double d, bool specConstant=false)
Definition: SpvBuilder.cpp:851
Definition: SpvBuilder.h:63
GLenum condition
Definition: glext.h:10162
GLsizei GLsizei GLchar * source
Definition: glext.h:6688
ImageFormat
Definition: spirv.hpp:180
LoopBlocks(Block &head, Block &body, Block &merge, Block &continue_target)
Definition: SpvBuilder.h:440
Block & continue_target
Definition: SpvBuilder.h:442
void closeLoop()
Definition: SpvBuilder.cpp:2274
AccessChain getAccessChain()
Definition: SpvBuilder.h:513
Op
Definition: spirv.hpp:714
Id createUnaryOp(Op, Id typeId, Id operand)
Definition: SpvBuilder.cpp:1369
Op getOpCode(Id id) const
Definition: SpvBuilder.h:137
GLsizei const GLchar *const * string
Definition: glext.h:6699
void createControlBarrier(Scope execution, Scope memory, MemorySemanticsMask)
Definition: SpvBuilder.cpp:1351
Block * mergeBlock
Definition: SpvBuilder.h:412
Id makeFloat16Constant(float f16, bool specConstant=false)
Definition: SpvBuilder.cpp:823
Id makeFloatConstant(float f, bool specConstant=false)
Definition: SpvBuilder.cpp:770
Id makeUintType(int width)
Definition: SpvBuilder.h:121
bool isInSpecConstCodeGenMode()
Definition: SpvBuilder.h:580
Id sampler
Definition: SpvBuilder.h:353
GLuint const GLchar * name
Definition: glext.h:6671
GLfloat f
Definition: glext.h:8207
void accessChainPushComponent(Id component, Id preSwizzleBaseType)
Definition: SpvBuilder.h:544
void addSwitchBreak()
Definition: SpvBuilder.cpp:2203
Id createCompositeInsert(Id object, Id composite, Id typeId, unsigned index)
Definition: SpvBuilder.cpp:1283
SpvBuildLogger * logger
Definition: SpvBuilder.h:643
MemoryModel
Definition: spirv.hpp:86
AddressingModel addressModel
Definition: SpvBuilder.h:609
Id base
Definition: SpvBuilder.h:498
void dump(std::vector< unsigned int > &) const
Definition: SpvBuilder.cpp:2492
Id createTextureQueryCall(Op, const TextureParameters &, bool isUnsignedResult)
Definition: SpvBuilder.cpp:1775
int getScalarTypeWidth(Id typeId) const
Definition: SpvBuilder.h:179
int getNumComponents(Id resultId) const
Definition: SpvBuilder.h:140
bool isStructType(Id typeId) const
Definition: SpvBuilder.h:164
Id makeStructType(const std::vector< Id > &members, const char *)
Definition: SpvBuilder.cpp:247
const char * fileName
Definition: Hlsl.FromFile.cpp:44
void createNoResultOp(Op)
Definition: SpvBuilder.cpp:1328
Id makeVoidType()
Definition: SpvBuilder.cpp:110
Definition: disassemble.cpp:50
Definition: SpvBuilder.h:393
std::vector< std::unique_ptr< Instruction > > names
Definition: SpvBuilder.h:625
Id makeVectorType(Id component, int size)
Definition: SpvBuilder.cpp:288
void simplifyAccessChainSwizzle()
Definition: SpvBuilder.cpp:2613
bool isArrayedImageType(Id typeId) const
Definition: SpvBuilder.h:210
void makeDiscard()
Definition: SpvBuilder.cpp:1157
Id smearScalar(Decoration precision, Id scalarVal, Id vectorType)
Definition: SpvBuilder.cpp:1525
SourceLanguage source
Definition: SpvBuilder.h:600
bool isScalarType(Id typeId) const
Definition: SpvBuilder.h:161
void remapDynamicSwizzle()
Definition: SpvBuilder.cpp:2594
int getNumTypeComponents(Id typeId) const
Definition: SpvBuilder.h:142
std::unordered_map< unsigned int, std::vector< Instruction * > > groupedStructConstants
Definition: SpvBuilder.h:633
bool isVectorType(Id typeId) const
Definition: SpvBuilder.h:162
Definition: spirv.hpp:744
Id bias
Definition: SpvBuilder.h:355
int currentLine
Definition: SpvBuilder.h:604
Definition: spirv.hpp:742
void createStore(Id rValue, Id lValue)
Definition: SpvBuilder.cpp:1197
void setToNormalCodeGenMode()
Definition: SpvBuilder.h:578
Definition: spirv.hpp:736
Id makeSamplerType()
Definition: SpvBuilder.cpp:138
Id accessChainLoad(Decoration precision, Decoration nonUniform, Id ResultType)
Definition: SpvBuilder.cpp:2336
Id makeFunctionType(Id returnType, const std::vector< Id > ¶mTypes)
Definition: SpvBuilder.cpp:374
Id offset
Definition: SpvBuilder.h:358
int getTypeNumColumns(Id typeId) const
Definition: SpvBuilder.h:186
Definition: civetweb.c:1024
Id createSpecConstantOp(Op, Id typeId, const std::vector< spv::Id > &operands, const std::vector< unsigned > &literals)
Definition: SpvBuilder.cpp:1431
unsigned int getConstantScalar(Id resultId) const
Definition: SpvBuilder.h:176
bool isPointerType(Id typeId) const
Definition: SpvBuilder.h:160
ExecutionModel
Definition: spirv.hpp:68
version
Definition: setup.py:6
Id accessChainGetLValue()
Definition: SpvBuilder.cpp:2407
GLsizei const GLfloat * value
Definition: glext.h:6709
std::vector< std::unique_ptr< Instruction > > constantsTypesGlobals
Definition: SpvBuilder.h:627
std::vector< std::unique_ptr< Instruction > > executionModes
Definition: SpvBuilder.h:624
bool isMatrix(Id resultId) const
Definition: SpvBuilder.h:152
void makeSwitch(Id condition, unsigned int control, int numSegments, const std::vector< int > &caseValues, const std::vector< int > &valueToSegment, int defaultSegment, std::vector< Block *> &segmentBB)
Definition: SpvBuilder.cpp:2170
void addModuleProcessed(const std::string &p)
Definition: SpvBuilder.h:86
void nextSwitchSegment(std::vector< Block *> &segmentBB, int segment)
Definition: SpvBuilder.cpp:2211
Definition: SpvBuilder.h:497
Id makePointer(StorageClass, Id type)
Definition: SpvBuilder.cpp:152
Id createOp(Op, Id typeId, const std::vector< Id > &operands)
Definition: SpvBuilder.cpp:1421
std::set< std::string > extensions
Definition: SpvBuilder.h:606
LoopBlocks & makeNewLoop()
Definition: SpvBuilder.cpp:2245
Function * entryPointFunction
Definition: SpvBuilder.h:616
std::vector< std::unique_ptr< Instruction > > strings
Definition: SpvBuilder.h:621
bool isVector(Id resultId) const
Definition: SpvBuilder.h:151
Id makeUint64Constant(unsigned long long u, bool specConstant=false)
Definition: SpvBuilder.h:225
std::vector< std::unique_ptr< Function > > functions
Definition: SpvBuilder.h:629
Id collapseAccessChain()
Definition: SpvBuilder.cpp:2554
void transferAccessChainSwizzle(bool dynamic)
Definition: SpvBuilder.cpp:2638
std::stack< LoopBlocks > loops
Definition: SpvBuilder.h:640
Id makeUint16Constant(unsigned u, bool specConstant=false)
Definition: SpvBuilder.h:221
bool isSampledImageType(Id typeId) const
Definition: SpvBuilder.h:169
Id uniqueId
Definition: SpvBuilder.h:615
MemorySemanticsMask
Definition: spirv.hpp:534
bool generatingOpCodeForSpecConst
Definition: SpvBuilder.h:617
Id createConstructor(Decoration precision, const std::vector< Id > &sources, Id resultTypeId)
Definition: SpvBuilder.cpp:1941
GLenum cap
Definition: glext.h:10546
std::vector< const char * > sourceExtensions
Definition: SpvBuilder.h:607
Id makeIntegerType(int width, bool hasSign)
Definition: SpvBuilder.cpp:174
Id makeInt16Constant(int i, bool specConstant=false)
Definition: SpvBuilder.h:220
int sourceVersion
Definition: SpvBuilder.h:601
Id gradX
Definition: SpvBuilder.h:360
bool isSpecConstantOpCode(Op opcode) const
Definition: SpvBuilder.cpp:681
void setSourceFile(const std::string &file)
Definition: SpvBuilder.h:77
Definition: spirv.hpp:734
const Id NoResult
Definition: spvIR.h:64
void createLoopContinue()
Definition: SpvBuilder.cpp:2260
std::string sourceText
Definition: SpvBuilder.h:603
void addSourceExtension(const char *ext)
Definition: SpvBuilder.h:85
void makeReturn(bool implicit, Id retVal=0)
Definition: SpvBuilder.cpp:1126
Instruction * addEntryPoint(ExecutionModel, Function *, const char *name)
Definition: SpvBuilder.cpp:964
void dumpInstructions(std::vector< unsigned int > &, const std::vector< std::unique_ptr< Instruction > > &) const
Definition: SpvBuilder.cpp:2761
Capability
Definition: spirv.hpp:599
std::vector< std::unique_ptr< Instruction > > entryPoints
Definition: SpvBuilder.h:623
Id Dref
Definition: SpvBuilder.h:357
MemoryModel memoryModel
Definition: SpvBuilder.h:610
GLuint GLuint num
Definition: glext.h:10525
Block * elseBlock
Definition: SpvBuilder.h:411
Id createFunctionCall(spv::Function *, const std::vector< spv::Id > &)
Definition: SpvBuilder.cpp:1445
Id makeFloatType(int width)
Definition: SpvBuilder.cpp:211
GLenum mode
Definition: glext.h:6857
Id makeUint8Constant(unsigned u, bool specConstant=false)
Definition: SpvBuilder.h:219
Dim getTypeDimensionality(Id typeId) const
Definition: SpvBuilder.h:199
void setSourceText(const std::string &text)
Definition: SpvBuilder.h:84
static int block
Definition: psp2.c:31
Id component
Definition: SpvBuilder.h:363
const Id NoType
Definition: spvIR.h:65
ExecutionMode
Definition: spirv.hpp:93
Id getTypeId(Id resultId) const
Definition: SpvBuilder.h:135
void createAndSetNoPredecessorBlock(const char *)
Definition: SpvBuilder.cpp:2668
Id createCompositeCompare(Decoration precision, Id, Id, bool)
Definition: SpvBuilder.cpp:1846
Id createCompositeExtract(Id composite, Id typeId, unsigned index)
Definition: SpvBuilder.cpp:1252
Id makeInt8Constant(int i, bool specConstant=false)
Definition: SpvBuilder.h:218
Id createVectorExtractDynamic(Id vector, Id typeId, Id componentIndex)
Definition: SpvBuilder.cpp:1306
void addMemberName(Id, int member, const char *name)
Definition: SpvBuilder.cpp:1001
Block & head
Definition: SpvBuilder.h:442
void createSelectionMerge(Block *mergeBlock, unsigned int control)
Definition: SpvBuilder.cpp:2688
void accessChainStore(Id rvalue)
Definition: SpvBuilder.cpp:2314
Id getContainedTypeId(Id typeId) const
Definition: SpvBuilder.cpp:619
Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value)
Definition: SpvBuilder.cpp:626
std::vector< unsigned > swizzle
Definition: SpvBuilder.h:501
void endSwitch(std::vector< Block *> &segmentBB)
Definition: SpvBuilder.cpp:2225
void setToSpecConstCodeGenMode()
Definition: SpvBuilder.h:576
Op getTypeClass(Id typeId) const
Definition: SpvBuilder.h:138
unsigned int getSpvVersion() const
Definition: SpvBuilder.h:70
void addCapability(spv::Capability cap)
Definition: SpvBuilder.h:96
Block * buildPoint
Definition: SpvBuilder.h:614
bool isMatrixType(Id typeId) const
Definition: SpvBuilder.h:163
Definition: spirv.hpp:739
void eliminateDeadDecorations()
Definition: SpvBuilder.cpp:2457
bool isPointer(Id resultId) const
Definition: SpvBuilder.h:149
Definition: spirv.hpp:738
Id getImageType(Id resultId) const
Definition: SpvBuilder.h:204
Id makeCompositeConstant(Id type, const std::vector< Id > &comps, bool specConst=false)
Definition: SpvBuilder.cpp:923
void addDecorationId(Id id, Decoration, Id idDecoration)
Definition: SpvBuilder.cpp:1038
Function * makeEntryPoint(const char *)
Definition: SpvBuilder.cpp:1081
GLenum type
Definition: glext.h:6233
Id makeMatrixType(Id component, int cols, int rows)
Definition: SpvBuilder.cpp:310
Definition: spirv.hpp:722
GLfloat GLfloat p
Definition: glext.h:9809
std::vector< std::unique_ptr< Instruction > > decorations
Definition: SpvBuilder.h:626
Id getDerefTypeId(Id resultId) const
Definition: SpvBuilder.cpp:507
GLintptr offset
Definition: glext.h:6560
GLint left
Definition: glext.h:8393
Id setPrecision(Id id, Decoration precision)
Definition: SpvBuilder.h:321
bool isUintType(Id typeId) const
Definition: SpvBuilder.h:158
Id getUniqueId()
Definition: SpvBuilder.h:99
bool isAggregateType(Id typeId) const
Definition: SpvBuilder.h:166
Definition: spirv.hpp:732
Id createBitFieldExtractCall(Decoration precision, Id, Id, Id, bool isSigned)
void accessChainPush(Id offset)
Definition: SpvBuilder.h:534
StorageClass getStorageClass(Id resultId) const
Definition: SpvBuilder.h:177
void dumpSourceInstructions(std::vector< unsigned int > &) const
Definition: SpvBuilder.cpp:2722
Id makeDoubleConstant(double d, bool specConstant=false)
Definition: SpvBuilder.cpp:795
void addStringOperand(const char *str)
Definition: spvIR.h:93
void addName(Id, const char *name)
Definition: SpvBuilder.cpp:992
Definition: ffmpeg_fft.c:36
Id getUniqueIds(int numIds)
Definition: SpvBuilder.h:102
Id getResultId() const
Definition: spvIR.h:123
Id findCompositeConstant(Op typeClass, const std::vector< Id > &comps)
Definition: SpvBuilder.cpp:870
void addMemberDecoration(Id, unsigned int member, Decoration, int num=-1)
Definition: SpvBuilder.cpp:1051
int getNumTypeConstituents(Id typeId) const
Definition: SpvBuilder.cpp:541
Block & body
Definition: SpvBuilder.h:442
Builder(unsigned int spvVersion, unsigned int userNumber, SpvBuildLogger *logger)
Definition: SpvBuilder.cpp:57
Id coords
Definition: SpvBuilder.h:354
Id lodClamp
Definition: SpvBuilder.h:365
bool isArrayType(Id typeId) const
Definition: SpvBuilder.h:165
Id texelOut
Definition: SpvBuilder.h:364
bool isConstant(Id resultId) const
Definition: SpvBuilder.h:173
void makeEndIf()
Definition: SpvBuilder.cpp:2151
Id makeStructResultType(Id type0, Id type1)
Definition: SpvBuilder.cpp:266
Definition: spirv.hpp:740
void accessChainPushSwizzle(std::vector< unsigned > &swizzle, Id preSwizzleBaseType)
Definition: SpvBuilder.cpp:2291
void setAccessChainLValue(Id lValue)
Definition: SpvBuilder.h:520
bool isConstantOpCode(Op opcode) const
Definition: SpvBuilder.cpp:659
Id createVariable(StorageClass, Id type, const char *name=0)
Definition: SpvBuilder.cpp:1164
AccessChain accessChain
Definition: SpvBuilder.h:618
std::vector< const char * > moduleProcesses
Definition: SpvBuilder.h:608
Id makeBoolType()
Definition: SpvBuilder.cpp:124
Id createBuiltinCall(Id resultType, Id builtins, int entryPoint, const std::vector< Id > &args)
Definition: SpvBuilder.cpp:1558
void setMemoryModel(spv::AddressingModel addr, spv::MemoryModel mem)
Definition: SpvBuilder.h:90
GLsizei stride
Definition: glext.h:6488
GLint GLint GLsizei GLsizei GLsizei depth
Definition: glext.h:6293
Id makeRuntimeArray(Id element)
Definition: SpvBuilder.cpp:364
Id offsets
Definition: SpvBuilder.h:359
Id makeIntConstant(int i, bool specConstant=false)
Definition: SpvBuilder.h:222
spv::Id sourceFileStringId
Definition: SpvBuilder.h:602
std::vector< std::unique_ptr< Instruction > > imports
Definition: SpvBuilder.h:622
Scope
Definition: spirv.hpp:562
void setSource(spv::SourceLanguage lang, int version)
Definition: SpvBuilder.h:72
unsigned int control
Definition: SpvBuilder.h:407
std::unordered_map< unsigned int, std::vector< Instruction * > > groupedTypes
Definition: SpvBuilder.h:634
Id createTextureCall(Decoration precision, Id resultType, bool sparse, bool fetch, bool proj, bool gather, bool noImplicit, const TextureParameters &)
Definition: SpvBuilder.cpp:1573
GLsizei GLsizei numSegments
Definition: glext.h:12661
void createMemoryBarrier(unsigned executionScope, unsigned memorySemantics)
Definition: SpvBuilder.cpp:1360
Block * thenBlock
Definition: SpvBuilder.h:410
Id makeArrayType(Id element, Id sizeId, int stride)
Definition: SpvBuilder.cpp:340
Builder & builder
Definition: SpvBuilder.h:405
bool isFloatType(Id typeId) const
Definition: SpvBuilder.h:159
void setEmitOpLines()
Definition: SpvBuilder.h:87
bool isIntType(Id typeId) const
Definition: SpvBuilder.h:157
Block * headerBlock
Definition: SpvBuilder.h:409
Id createUndefined(Id type)
Definition: SpvBuilder.cpp:1189
Definition: SpvBuilder.h:352
Id makeInt64Constant(long long i, bool specConstant=false)
Definition: SpvBuilder.h:224
bool isSampledImage(Id resultId) const
Definition: SpvBuilder.h:154
SourceLanguage
Definition: spirv.hpp:58
void createLoopExit()
Definition: SpvBuilder.cpp:2267
Id findStructConstant(Id typeId, const std::vector< Id > &comps)
Definition: SpvBuilder.cpp:898
const char * entryPoint
Definition: Hlsl.FromFile.cpp:45
bool isScalar(Id resultId) const
Definition: SpvBuilder.h:150
std::vector< Id > indexChain
Definition: SpvBuilder.h:499
Id preSwizzleBaseType
Definition: SpvBuilder.h:503
GLuint GLenum swizzle
Definition: glext.h:10418
Id makeBoolConstant(bool b, bool specConstant=false)
Definition: SpvBuilder.cpp:695
void createBranch(Block *block)
Definition: SpvBuilder.cpp:2680
void createConditionalBranch(Id condition, Block *thenBlock, Block *elseBlock)
Definition: SpvBuilder.cpp:2708
bool isSpecConstant(Id resultId) const
Definition: SpvBuilder.h:175
void clearAccessChain()
Definition: SpvBuilder.cpp:2279
void addDecoration(Id, Decoration, int num=-1)
Definition: SpvBuilder.cpp:1011
void setLine(int line)
Definition: SpvBuilder.cpp:91
ImageFormat getImageTypeFormat(Id typeId) const
Definition: SpvBuilder.h:147
AddressingModel
Definition: spirv.hpp:79
Id makeSampledImageType(Id imageType)
Definition: SpvBuilder.cpp:486
GLenum GLint GLint * precision
Definition: glext.h:8206
bool isSamplerType(Id typeId) const
Definition: SpvBuilder.h:168
bool isRValue
Definition: SpvBuilder.h:504
Id createLvalueSwizzle(Id typeId, Id target, Id source, const std::vector< unsigned > &channels)
Definition: SpvBuilder.cpp:1479
Id createLoad(Id lValue)
Definition: SpvBuilder.cpp:1206
bool isImageType(Id typeId) const
Definition: SpvBuilder.h:167
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: glext.h:6293
Definition: spirv.hpp:754
Id createCompositeConstruct(Id typeId, const std::vector< Id > &constituents)
Definition: SpvBuilder.cpp:1914
Module module
Definition: SpvBuilder.h:613
~If()
Definition: SpvBuilder.h:396
GLboolean GLboolean GLboolean b
Definition: glext.h:6844
void createLoopMerge(Block *mergeBlock, Block *continueBlock, unsigned int control, unsigned int dependencyLength)
Definition: SpvBuilder.cpp:2696
GLenum const GLvoid * addr
Definition: glext.h:10528
GLint GLint GLsizei width
Definition: glext.h:6293
Id sample
Definition: SpvBuilder.h:362
int getNumRows(Id resultId) const
Definition: SpvBuilder.h:197
GLdouble GLdouble right
Definition: glext.h:11766
Definition: spirv.hpp:733
void dumpModuleProcesses(std::vector< unsigned int > &) const
Definition: SpvBuilder.cpp:2768
Id createVectorInsertDynamic(Id vector, Id typeId, Id component, Id componentIndex)
Definition: SpvBuilder.cpp:1316
Id createBinOp(Op, Id typeId, Id operand1, Id operand2)
Definition: SpvBuilder.cpp:1383
Id createTriOp(Op, Id typeId, Id operand1, Id operand2, Id operand3)
Definition: SpvBuilder.cpp:1400
Id createAccessChain(StorageClass, Id base, const std::vector< Id > &offsets)
Definition: SpvBuilder.cpp:1216
Definition: spirv.hpp:737
void addLine(Id fileName, int line, int column)
Definition: SpvBuilder.cpp:100
int getNumColumns(Id resultId) const
Definition: SpvBuilder.h:191
Id gradY
Definition: SpvBuilder.h:361
static const int maxMatrixSize
Definition: SpvBuilder.h:68
Id component
Definition: SpvBuilder.h:502
void setAccessChainRValue(Id rValue)
Definition: SpvBuilder.h:527
GLsizei const GLchar *const * strings
Definition: glext.h:8289
GLuint index
Definition: glext.h:6671