SPV: The result type of OpArrayLength should be UINT

This commit is contained in:
Rex Xu 2018-03-02 17:09:23 +08:00
parent b5b5f918c6
commit e518772dc9
470 changed files with 590 additions and 589 deletions

View file

@ -6134,7 +6134,8 @@ int GetSpirvGeneratorVersion()
// return 1; // start
// return 2; // EOpAtomicCounterDecrement gets a post decrement, to map between GLSL -> SPIR-V
// return 3; // change/correct barrier-instruction operands, to match memory model group decisions
return 4; // some deeper access chains: for dynamic vector component, and local Boolean component
// return 4; // some deeper access chains: for dynamic vector component, and local Boolean component
return 5; // make OpArrayLength result type be an int with signedness of 0
}
// Write SPIR-V out to a binary file

View file

@ -1178,7 +1178,7 @@ Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vec
Id Builder::createArrayLength(Id base, unsigned int member)
{
spv::Id intType = makeIntType(32);
spv::Id intType = makeUintType(32);
Instruction* length = new Instruction(getUniqueId(), intType, OpArrayLength);
length->addIdOperand(base);
length->addImmediateOperand(member);