Updated glslang.

This commit is contained in:
Branimir Karadžić 2018-03-10 15:03:31 -08:00
parent 969cc7c8b8
commit ba4a90b9bd
611 changed files with 52460 additions and 8143 deletions

1026
3rdparty/glslang/SPIRV/GlslangToSpv.cpp vendored Executable file → Normal file

File diff suppressed because it is too large Load Diff

View File

@ -256,7 +256,7 @@ namespace spv {
spv::Id spirvbin_t::localId(spv::Id id, spv::Id newId)
{
assert(id != spv::NoResult && newId != spv::NoResult);
//assert(id != spv::NoResult && newId != spv::NoResult);
if (id > bound()) {
error(std::string("ID out of range: ") + std::to_string(id));

View File

@ -46,9 +46,7 @@
#include "SpvBuilder.h"
#ifdef AMD_EXTENSIONS
#include "hex_float.h"
#endif
#include "hex_float.h"
#ifndef _WIN32
#include <cstdio>
@ -194,6 +192,9 @@ Id Builder::makeIntegerType(int width, bool hasSign)
// deal with capabilities
switch (width) {
case 8:
addCapability(CapabilityInt8);
break;
case 16:
addCapability(CapabilityInt16);
break;
@ -819,7 +820,6 @@ Id Builder::makeDoubleConstant(double d, bool specConstant)
return c->getResultId();
}
#ifdef AMD_EXTENSIONS
Id Builder::makeFloat16Constant(float f16, bool specConstant)
{
Op opcode = specConstant ? OpSpecConstant : OpConstant;
@ -847,7 +847,6 @@ Id Builder::makeFloat16Constant(float f16, bool specConstant)
return c->getResultId();
}
#endif
Id Builder::findCompositeConstant(Op typeClass, const std::vector<Id>& comps)
{
@ -1178,7 +1177,7 @@ Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vec
Id Builder::createArrayLength(Id base, unsigned int member)
{
spv::Id intType = makeUintType(32);
spv::Id intType = makeIntType(32);
Instruction* length = new Instruction(getUniqueId(), intType, OpArrayLength);
length->addIdOperand(base);
length->addImmediateOperand(member);

View File

@ -1,6 +1,7 @@
//
// Copyright (C) 2014-2015 LunarG, Inc.
// Copyright (C) 2015-2016 Google, Inc.
// Copyright (C) 2017 ARM Limited.
//
// All rights reserved.
//
@ -66,6 +67,8 @@ public:
static const int maxMatrixSize = 4;
unsigned int getSpvVersion() const { return spvVersion; }
void setSource(spv::SourceLanguage lang, int version)
{
source = lang;
@ -212,19 +215,17 @@ public:
// For making new constants (will return old constant if the requested one was already made).
Id makeBoolConstant(bool b, bool specConstant = false);
Id makeInt8Constant(int i, bool specConstant = false) { return makeIntConstant(makeIntType(8), (unsigned)i, specConstant); }
Id makeUint8Constant(unsigned u, bool specConstant = false) { return makeIntConstant(makeUintType(8), u, specConstant); }
Id makeInt16Constant(int i, bool specConstant = false) { return makeIntConstant(makeIntType(16), (unsigned)i, specConstant); }
Id makeUint16Constant(unsigned u, bool specConstant = false) { return makeIntConstant(makeUintType(16), u, specConstant); }
Id makeIntConstant(int i, bool specConstant = false) { return makeIntConstant(makeIntType(32), (unsigned)i, specConstant); }
Id makeUintConstant(unsigned u, bool specConstant = false) { return makeIntConstant(makeUintType(32), u, specConstant); }
Id makeInt64Constant(long long i, bool specConstant = false) { return makeInt64Constant(makeIntType(64), (unsigned long long)i, specConstant); }
Id makeUint64Constant(unsigned long long u, bool specConstant = false) { return makeInt64Constant(makeUintType(64), u, specConstant); }
#ifdef AMD_EXTENSIONS
Id makeInt16Constant(short i, bool specConstant = false) { return makeIntConstant(makeIntType(16), (unsigned)((unsigned short)i), specConstant); }
Id makeUint16Constant(unsigned short u, bool specConstant = false) { return makeIntConstant(makeUintType(16), (unsigned)u, specConstant); }
#endif
Id makeFloatConstant(float f, bool specConstant = false);
Id makeDoubleConstant(double d, bool specConstant = false);
#ifdef AMD_EXTENSIONS
Id makeFloat16Constant(float f16, bool specConstant = false);
#endif
// Turn the array of constants into a proper spv constant of the requested type.
Id makeCompositeConstant(Id type, const std::vector<Id>& comps, bool specConst = false);
@ -331,7 +332,7 @@ public:
// Generally, the type of 'scalar' does not need to be the same type as the components in 'vector'.
// The type of the created vector is a vector of components of the same type as the scalar.
//
// Note: One of the arguments will change, with the result coming back that way rather than
// Note: One of the arguments will change, with the result coming back that way rather than
// through the return value.
void promoteScalar(Decoration precision, Id& left, Id& right);

View File

@ -54,6 +54,7 @@ namespace spv {
#ifdef AMD_EXTENSIONS
#include "GLSL.ext.AMD.h"
#endif
#ifdef NV_EXTENSIONS
#include "GLSL.ext.NV.h"
#endif
@ -80,12 +81,15 @@ static void Kill(std::ostream& out, const char* message)
// used to identify the extended instruction library imported when printing
enum ExtInstSet {
GLSL450Inst,
#ifdef AMD_EXTENSIONS
GLSLextAMDInst,
#endif
#ifdef NV_EXTENSIONS
GLSLextNVInst,
#endif
OpenCLExtInst,
};
@ -653,7 +657,6 @@ static const char* GLSLextAMDGetDebugNames(const char* name, unsigned entrypoint
}
#endif
#ifdef NV_EXTENSIONS
static const char* GLSLextNVGetDebugNames(const char* name, unsigned entrypoint)
{

222
3rdparty/glslang/SPIRV/doc.cpp vendored Executable file → Normal file
View File

@ -725,7 +725,7 @@ const char* ScopeString(int mem)
}
}
const int GroupOperationCeiling = 3;
const int GroupOperationCeiling = 4;
const char* GroupOperationString(int gop)
{
@ -735,6 +735,7 @@ const char* GroupOperationString(int gop)
case 0: return "Reduce";
case 1: return "InclusiveScan";
case 2: return "ExclusiveScan";
case 3: return "ClusteredReduce";
case GroupOperationCeiling:
default: return "Bad";
@ -833,6 +834,14 @@ const char* CapabilityString(int info)
case 55: return "StorageImageReadWithoutFormat";
case 56: return "StorageImageWriteWithoutFormat";
case 57: return "MultiViewport";
case 61: return "GroupNonUniform";
case 62: return "GroupNonUniformVote";
case 63: return "GroupNonUniformArithmetic";
case 64: return "GroupNonUniformBallot";
case 65: return "GroupNonUniformShuffle";
case 66: return "GroupNonUniformShuffleRelative";
case 67: return "GroupNonUniformClustered";
case 68: return "GroupNonUniformQuad";
case 4423: return "SubgroupBallotKHR";
case 4427: return "DrawParameters";
@ -1200,6 +1209,41 @@ const char* OpcodeString(int op)
case OpModuleProcessed: return "OpModuleProcessed";
case 333: return "OpGroupNonUniformElect";
case 334: return "OpGroupNonUniformAll";
case 335: return "OpGroupNonUniformAny";
case 336: return "OpGroupNonUniformAllEqual";
case 337: return "OpGroupNonUniformBroadcast";
case 338: return "OpGroupNonUniformBroadcastFirst";
case 339: return "OpGroupNonUniformBallot";
case 340: return "OpGroupNonUniformInverseBallot";
case 341: return "OpGroupNonUniformBallotBitExtract";
case 342: return "OpGroupNonUniformBallotBitCount";
case 343: return "OpGroupNonUniformBallotFindLSB";
case 344: return "OpGroupNonUniformBallotFindMSB";
case 345: return "OpGroupNonUniformShuffle";
case 346: return "OpGroupNonUniformShuffleXor";
case 347: return "OpGroupNonUniformShuffleUp";
case 348: return "OpGroupNonUniformShuffleDown";
case 349: return "OpGroupNonUniformIAdd";
case 350: return "OpGroupNonUniformFAdd";
case 351: return "OpGroupNonUniformIMul";
case 352: return "OpGroupNonUniformFMul";
case 353: return "OpGroupNonUniformSMin";
case 354: return "OpGroupNonUniformUMin";
case 355: return "OpGroupNonUniformFMin";
case 356: return "OpGroupNonUniformSMax";
case 357: return "OpGroupNonUniformUMax";
case 358: return "OpGroupNonUniformFMax";
case 359: return "OpGroupNonUniformBitwiseAnd";
case 360: return "OpGroupNonUniformBitwiseOr";
case 361: return "OpGroupNonUniformBitwiseXor";
case 362: return "OpGroupNonUniformLogicalAnd";
case 363: return "OpGroupNonUniformLogicalOr";
case 364: return "OpGroupNonUniformLogicalXor";
case 365: return "OpGroupNonUniformQuadBroadcast";
case 366: return "OpGroupNonUniformQuadSwap";
case 4421: return "OpSubgroupBallotKHR";
case 4422: return "OpSubgroupFirstInvocationKHR";
case 4428: return "OpSubgroupAllKHR";
@ -2823,6 +2867,182 @@ void Parameterize()
InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Wait Events'");
InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Ret Event'");
InstructionDesc[OpGroupNonUniformElect].capabilities.push_back(CapabilityGroupNonUniform);
InstructionDesc[OpGroupNonUniformElect].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformAll].capabilities.push_back(CapabilityGroupNonUniformVote);
InstructionDesc[OpGroupNonUniformAll].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformAll].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformAny].capabilities.push_back(CapabilityGroupNonUniformVote);
InstructionDesc[OpGroupNonUniformAny].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformAny].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformAllEqual].capabilities.push_back(CapabilityGroupNonUniformVote);
InstructionDesc[OpGroupNonUniformAllEqual].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformAllEqual].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformBroadcast].capabilities.push_back(CapabilityGroupNonUniformBallot);
InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandId, "ID");
InstructionDesc[OpGroupNonUniformBroadcastFirst].capabilities.push_back(CapabilityGroupNonUniformBallot);
InstructionDesc[OpGroupNonUniformBroadcastFirst].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformBroadcastFirst].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformBallot].capabilities.push_back(CapabilityGroupNonUniformBallot);
InstructionDesc[OpGroupNonUniformBallot].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformBallot].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformInverseBallot].capabilities.push_back(CapabilityGroupNonUniformBallot);
InstructionDesc[OpGroupNonUniformInverseBallot].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformInverseBallot].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformBallotBitExtract].capabilities.push_back(CapabilityGroupNonUniformBallot);
InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandId, "Bit");
InstructionDesc[OpGroupNonUniformBallotBitCount].capabilities.push_back(CapabilityGroupNonUniformBallot);
InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformBallotFindLSB].capabilities.push_back(CapabilityGroupNonUniformBallot);
InstructionDesc[OpGroupNonUniformBallotFindLSB].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformBallotFindLSB].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformBallotFindMSB].capabilities.push_back(CapabilityGroupNonUniformBallot);
InstructionDesc[OpGroupNonUniformBallotFindMSB].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformBallotFindMSB].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformShuffle].capabilities.push_back(CapabilityGroupNonUniformShuffle);
InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandId, "'Id'");
InstructionDesc[OpGroupNonUniformShuffleXor].capabilities.push_back(CapabilityGroupNonUniformShuffle);
InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandId, "Mask");
InstructionDesc[OpGroupNonUniformShuffleUp].capabilities.push_back(CapabilityGroupNonUniformShuffleRelative);
InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandId, "Offset");
InstructionDesc[OpGroupNonUniformShuffleDown].capabilities.push_back(CapabilityGroupNonUniformShuffleRelative);
InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandId, "Offset");
InstructionDesc[OpGroupNonUniformIAdd].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformFAdd].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformIMul].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformFMul].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformSMin].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformUMin].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformFMin].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformSMax].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformUMax].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformFMax].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformBitwiseAnd].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformBitwiseOr].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformBitwiseXor].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformLogicalAnd].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformLogicalOr].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformLogicalXor].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandGroupOperation, "'Operation'");
InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandId, "'ClusterSize'", true);
InstructionDesc[OpGroupNonUniformQuadBroadcast].capabilities.push_back(CapabilityGroupNonUniformQuad);
InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandId, "'Id'");
InstructionDesc[OpGroupNonUniformQuadSwap].capabilities.push_back(CapabilityGroupNonUniformQuad);
InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandId, "X");
InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandLiteralNumber, "'Direction'");
InstructionDesc[OpSubgroupBallotKHR].operands.push(OperandId, "'Predicate'");
InstructionDesc[OpSubgroupFirstInvocationKHR].operands.push(OperandId, "'Value'");

View File

@ -46,12 +46,12 @@ namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 0x10200
#define SPV_REVISION 3
#define SPV_VERSION 0x10300
#define SPV_REVISION 1
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010200;
static const unsigned int Revision = 3;
static const unsigned int Version = 0x00010300;
static const unsigned int Revision = 1;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@ -440,10 +440,15 @@ enum BuiltIn {
BuiltInSubgroupLocalInvocationId = 41,
BuiltInVertexIndex = 42,
BuiltInInstanceIndex = 43,
BuiltInSubgroupEqMask = 4416,
BuiltInSubgroupEqMaskKHR = 4416,
BuiltInSubgroupGeMask = 4417,
BuiltInSubgroupGeMaskKHR = 4417,
BuiltInSubgroupGtMask = 4418,
BuiltInSubgroupGtMaskKHR = 4418,
BuiltInSubgroupLeMask = 4419,
BuiltInSubgroupLeMaskKHR = 4419,
BuiltInSubgroupLtMask = 4420,
BuiltInSubgroupLtMaskKHR = 4420,
BuiltInBaseVertex = 4424,
BuiltInBaseInstance = 4425,
@ -566,6 +571,7 @@ enum GroupOperation {
GroupOperationReduce = 0,
GroupOperationInclusiveScan = 1,
GroupOperationExclusiveScan = 2,
GroupOperationClusteredReduce = 3,
GroupOperationMax = 0x7fffffff,
};
@ -646,6 +652,14 @@ enum Capability {
CapabilitySubgroupDispatch = 58,
CapabilityNamedBarrier = 59,
CapabilityPipeStorage = 60,
CapabilityGroupNonUniform = 61,
CapabilityGroupNonUniformVote = 62,
CapabilityGroupNonUniformArithmetic = 63,
CapabilityGroupNonUniformBallot = 64,
CapabilityGroupNonUniformShuffle = 65,
CapabilityGroupNonUniformShuffleRelative = 66,
CapabilityGroupNonUniformClustered = 67,
CapabilityGroupNonUniformQuad = 68,
CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427,
CapabilitySubgroupVoteKHR = 4431,
@ -987,6 +1001,40 @@ enum Op {
OpModuleProcessed = 330,
OpExecutionModeId = 331,
OpDecorateId = 332,
OpGroupNonUniformElect = 333,
OpGroupNonUniformAll = 334,
OpGroupNonUniformAny = 335,
OpGroupNonUniformAllEqual = 336,
OpGroupNonUniformBroadcast = 337,
OpGroupNonUniformBroadcastFirst = 338,
OpGroupNonUniformBallot = 339,
OpGroupNonUniformInverseBallot = 340,
OpGroupNonUniformBallotBitExtract = 341,
OpGroupNonUniformBallotBitCount = 342,
OpGroupNonUniformBallotFindLSB = 343,
OpGroupNonUniformBallotFindMSB = 344,
OpGroupNonUniformShuffle = 345,
OpGroupNonUniformShuffleXor = 346,
OpGroupNonUniformShuffleUp = 347,
OpGroupNonUniformShuffleDown = 348,
OpGroupNonUniformIAdd = 349,
OpGroupNonUniformFAdd = 350,
OpGroupNonUniformIMul = 351,
OpGroupNonUniformFMul = 352,
OpGroupNonUniformSMin = 353,
OpGroupNonUniformUMin = 354,
OpGroupNonUniformFMin = 355,
OpGroupNonUniformSMax = 356,
OpGroupNonUniformUMax = 357,
OpGroupNonUniformFMax = 358,
OpGroupNonUniformBitwiseAnd = 359,
OpGroupNonUniformBitwiseOr = 360,
OpGroupNonUniformBitwiseXor = 361,
OpGroupNonUniformLogicalAnd = 362,
OpGroupNonUniformLogicalOr = 363,
OpGroupNonUniformLogicalXor = 364,
OpGroupNonUniformQuadBroadcast = 365,
OpGroupNonUniformQuadSwap = 366,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,

View File

@ -99,6 +99,7 @@ enum TOptions {
EOptionOptimizeDisable = (1 << 28),
EOptionOptimizeSize = (1 << 29),
EOptionInvertY = (1 << 30),
EOptionDumpBareVersion = (1 << 31),
};
//
@ -155,12 +156,16 @@ const char* entryPointName = nullptr;
const char* sourceEntryPointName = nullptr;
const char* shaderStageName = nullptr;
const char* variableName = nullptr;
bool HlslEnable16BitTypes = false;
std::vector<std::string> IncludeDirectoryList;
int ClientInputSemanticsVersion = 100; // maps to, say, #define VULKAN 100
int VulkanClientVersion = 100; // would map to, say, Vulkan 1.0
int OpenGLClientVersion = 450; // doesn't influence anything yet, but maps to OpenGL 4.50
unsigned int TargetVersion = 0x00010000; // maps to, say, SPIR-V 1.0
std::vector<std::string> Processes; // what should be recorded by OpModuleProcessed, or equivalent
int ClientInputSemanticsVersion = 100; // maps to, say, #define VULKAN 100
glslang::EshTargetClientVersion VulkanClientVersion =
glslang::EShTargetVulkan_1_0; // would map to, say, Vulkan 1.0
glslang::EshTargetClientVersion OpenGLClientVersion =
glslang::EShTargetOpenGL_450; // doesn't influence anything yet, but maps to OpenGL 4.50
glslang::EShTargetLanguageVersion TargetVersion =
glslang::EShTargetSpv_1_0; // maps to, say, SPIR-V 1.0
std::vector<std::string> Processes; // what should be recorded by OpModuleProcessed, or equivalent
// Per descriptor-set binding base data
typedef std::map<unsigned int, unsigned int> TPerSetBaseBinding;
@ -449,6 +454,11 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
lowerword == "hlsl-iomapper" ||
lowerword == "hlsl-iomapping") {
Options |= EOptionHlslIoMapping;
} else if (lowerword == "hlsl-enable-16bit-types") {
HlslEnable16BitTypes = true;
} else if (lowerword == "invert-y" || // synonyms
lowerword == "iy") {
Options |= EOptionInvertY;
} else if (lowerword == "keep-uncalled" || // synonyms
lowerword == "ku") {
Options |= EOptionKeepUncalled;
@ -504,25 +514,28 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
if (argc > 1) {
if (strcmp(argv[1], "vulkan1.0") == 0) {
setVulkanSpv();
VulkanClientVersion = 100;
VulkanClientVersion = glslang::EShTargetVulkan_1_0;
} else if (strcmp(argv[1], "vulkan1.1") == 0) {
setVulkanSpv();
TargetVersion = glslang::EShTargetSpv_1_3;
VulkanClientVersion = glslang::EShTargetVulkan_1_1;
} else if (strcmp(argv[1], "opengl") == 0) {
setOpenGlSpv();
OpenGLClientVersion = 450;
OpenGLClientVersion = glslang::EShTargetOpenGL_450;
} else
Error("--target-env expected vulkan1.0 or opengl");
Error("--target-env expected vulkan1.0, opengl, or hlsl-16bit-types");
}
bumpArg();
} else if (lowerword == "variable-name" || // synonyms
lowerword == "vn") {
lowerword == "vn") {
Options |= EOptionOutputHexadecimal;
if (argc <= 1)
Error("no <C-variable-name> provided for --variable-name");
variableName = argv[1];
bumpArg();
break;
} else if (lowerword == "invert-y" || // synonyms
lowerword == "iy") {
Options |= EOptionInvertY;
} else if (lowerword == "version") {
Options |= EOptionDumpVersions;
} else {
usage();
}
@ -586,7 +599,11 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
Options |= EOptionDumpConfig;
break;
case 'd':
Options |= EOptionDefaultDesktop;
if (strncmp(&argv[0][1], "dumpversion", strlen(&argv[0][1]) + 1) == 0 ||
strncmp(&argv[0][1], "dumpfullversion", strlen(&argv[0][1]) + 1) == 0)
Options |= EOptionDumpBareVersion;
else
Options |= EOptionDefaultDesktop;
break;
case 'e':
// HLSL todo: entry point handle needs much more sophistication.
@ -694,6 +711,8 @@ void SetMessageOptions(EShMessages& messages)
messages = (EShMessages)(messages | EShMsgHlslOffsets);
if (Options & EOptionDebug)
messages = (EShMessages)(messages | EShMsgDebugInfo);
if (HlslEnable16BitTypes)
messages = (EShMessages)(messages | EShMsgHlslEnable16BitTypes);
}
//
@ -1046,8 +1065,14 @@ int singleMain()
return ESuccess;
}
if (Options & EOptionDumpVersions) {
printf("Glslang Version: %s %s\n", GLSLANG_REVISION, GLSLANG_DATE);
if (Options & EOptionDumpBareVersion) {
printf("%d.%d.%d\n",
glslang::GetSpirvGeneratorVersion(), GLSLANG_MINOR_VERSION, GLSLANG_PATCH_LEVEL);
if (workList.empty())
return ESuccess;
} else if (Options & EOptionDumpVersions) {
printf("Glslang Version: %d.%d.%d\n",
glslang::GetSpirvGeneratorVersion(), GLSLANG_MINOR_VERSION, GLSLANG_PATCH_LEVEL);
printf("ESSL Version: %s\n", glslang::GetEsslVersionString());
printf("GLSL Version: %s\n", glslang::GetGlslVersionString());
std::string spirvVersion;
@ -1313,12 +1338,16 @@ void usage()
" 'location' (fragile, not cross stage)\n"
" --aml synonym for --auto-map-locations\n"
" --client {vulkan<ver>|opengl<ver>} see -V and -G\n"
" -dumpfullversion print bare major.minor.patchlevel\n"
" -dumpversion same as -dumpfullversion\n"
" --flatten-uniform-arrays flatten uniform texture/sampler arrays to\n"
" scalars\n"
" --fua synonym for --flatten-uniform-arrays\n"
" --hlsl-offsets Allow block offsets to follow HLSL rules\n"
" Works independently of source language\n"
" --hlsl-iomap Perform IO mapping in HLSL register space\n"
" --hlsl-enable-16bit-types Allow use of 16-bit types in SPIR-V for HLSL\n"
" --invert-y | --iy invert position.Y output in vertex shader\n"
" --keep-uncalled don't eliminate uncalled functions\n"
" --ku synonym for --keep-uncalled\n"
" --no-storage-format use Unknown image format\n"
@ -1357,16 +1386,17 @@ void usage()
" using -S.\n"
" --suppress-warnings suppress GLSL warnings\n"
" (except as required by #extension : warn)\n"
" --target-env {vulkan1.0|opengl} set the execution environment code will\n"
" execute in (as opposed to language\n"
" --target-env {vulkan1.0 | vulkan1.1 | opengl} \n"
" set execution environment that emitted code\n"
" will execute in (as opposed to the language\n"
" semantics selected by --client) defaults:\n"
" 'vulkan1.0' under '--client vulkan<ver>'\n"
" 'opengl' under '--client opengl<ver>'\n"
" --variable-name <name> Creates a C header file that contains a\n"
" uint32_t array named <name>\n"
" initialized with the shader binary code.\n"
" --version synonym for -v\n"
" --vn <name> synonym for --variable-name <name>\n"
" --invert-y | --iy invert position.Y output in vertex shader\n"
);
exit(EFailUsage);

View File

@ -1,7 +1,7 @@
hlsl.aliasOpaque.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 87
Capability Shader

View File

@ -1,7 +1,7 @@
hlsl.flattenOpaque.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 185
Capability Shader

View File

@ -1,7 +1,7 @@
hlsl.flattenOpaqueInit.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 134
Capability Shader

View File

@ -1,7 +1,7 @@
hlsl.flattenOpaqueInitMix.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 80
Capability Shader

View File

@ -1,7 +1,7 @@
hlsl.flattenSubset.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 66
Capability Shader

View File

@ -1,7 +1,7 @@
hlsl.flattenSubset2.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 53
Capability Shader

View File

@ -1,7 +1,7 @@
hlsl.partialFlattenLocal.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 169
Capability Shader

View File

@ -1,7 +1,7 @@
hlsl.partialFlattenMixed.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 36
Capability Shader

View File

@ -52,7 +52,10 @@ ERROR: 0:209: 'assign' : cannot convert from ' const float' to ' temp 4-compone
ERROR: 0:212: 'sampler2DRect' : Reserved word.
ERROR: 0:244: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' global void' and a right operand of type ' const int' (or there is no acceptable conversion)
ERROR: 0:245: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' const int' and a right operand of type ' global void' (or there is no acceptable conversion)
ERROR: 0:248: 'half floating-point suffix' : required extension not requested: GL_AMD_gpu_shader_half_float
ERROR: 0:248: 'explicit types' : required extension not requested: Possible extensions include:
GL_AMD_gpu_shader_half_float
GL_KHX_shader_explicit_arithmetic_types
GL_KHX_shader_explicit_arithmetic_types_float16
ERROR: 0:248: 'half floating-point suffix' : not supported with this profile: none
ERROR: 0:248: '' : syntax error, unexpected IDENTIFIER, expecting COMMA or SEMICOLON
ERROR: 56 compilation errors. No code generated.

View File

@ -10,7 +10,7 @@ Requested GL_ARB_gpu_shader_int64
0:6 move second child to first child ( temp int16_t)
0:6 'u' ( temp int16_t)
0:6 Constant:
0:6 32768 (const int)
0:6 -32768 (const int16_t)
0:7 Sequence
0:7 move second child to first child ( temp int)
0:7 'v' ( temp int)
@ -25,7 +25,7 @@ Requested GL_ARB_gpu_shader_int64
0:9 move second child to first child ( temp int16_t)
0:9 'x' ( temp int16_t)
0:9 Constant:
0:9 0 (const int)
0:9 0 (const int8_t)
0:10 Sequence
0:10 move second child to first child ( temp int)
0:10 'y' ( temp int)

View File

@ -0,0 +1,233 @@
findFunction.frag
ERROR: 0:39: 'func' : ambiguous best function under implicit type conversion
ERROR: 0:40: 'func' : no matching overloaded function found
ERROR: 0:40: '=' : cannot convert from ' const float' to ' temp int64_t'
ERROR: 0:41: 'func' : no matching overloaded function found
ERROR: 0:41: '=' : cannot convert from ' const float' to ' temp int64_t'
ERROR: 0:44: 'func' : no matching overloaded function found
ERROR: 0:44: '=' : cannot convert from ' const float' to ' temp int64_t'
ERROR: 0:45: 'func' : ambiguous best function under implicit type conversion
ERROR: 8 compilation errors. No code generated.
Shader version: 450
Requested GL_KHX_shader_explicit_arithmetic_types
ERROR: node is still EOpNull!
0:5 Function Definition: func(i81;i161;i161; ( global int64_t)
0:5 Function Parameters:
0:5 'a' ( in int8_t)
0:5 'b' ( in int16_t)
0:5 'c' ( in int16_t)
0:7 Sequence
0:7 Branch: Return with expression
0:7 Convert int16_t to int64 ( temp int64_t)
0:7 inclusive-or ( temp int16_t)
0:7 Convert int8_t to int16_t ( temp int16_t)
0:7 'a' ( in int8_t)
0:7 add ( temp int16_t)
0:7 'b' ( in int16_t)
0:7 'c' ( in int16_t)
0:10 Function Definition: func(i81;i161;i1; ( global int64_t)
0:10 Function Parameters:
0:10 'a' ( in int8_t)
0:10 'b' ( in int16_t)
0:10 'c' ( in int)
0:12 Sequence
0:12 Branch: Return with expression
0:12 Convert int to int64 ( temp int64_t)
0:12 inclusive-or ( temp int)
0:12 Convert int8_t to int ( temp int)
0:12 'a' ( in int8_t)
0:12 subtract ( temp int)
0:12 Convert int16_t to int ( temp int)
0:12 'b' ( in int16_t)
0:12 'c' ( in int)
0:15 Function Definition: func(i1;i1;i1; ( global int64_t)
0:15 Function Parameters:
0:15 'a' ( in int)
0:15 'b' ( in int)
0:15 'c' ( in int)
0:17 Sequence
0:17 Branch: Return with expression
0:17 Convert int to int64 ( temp int64_t)
0:17 add ( temp int)
0:17 divide ( temp int)
0:17 'a' ( in int)
0:17 'b' ( in int)
0:17 'c' ( in int)
0:20 Function Definition: func(f161;f161;f1; ( global int64_t)
0:20 Function Parameters:
0:20 'a' ( in float16_t)
0:20 'b' ( in float16_t)
0:20 'c' ( in float)
0:22 Sequence
0:22 Branch: Return with expression
0:22 Convert float to int64 ( temp int64_t)
0:22 subtract ( temp float)
0:22 Convert float16_t to float ( temp float)
0:22 'a' ( in float16_t)
0:22 component-wise multiply ( temp float)
0:22 Convert float16_t to float ( temp float)
0:22 'b' ( in float16_t)
0:22 'c' ( in float)
0:25 Function Definition: func(f161;i161;f1; ( global int64_t)
0:25 Function Parameters:
0:25 'a' ( in float16_t)
0:25 'b' ( in int16_t)
0:25 'c' ( in float)
0:27 Sequence
0:27 Branch: Return with expression
0:27 Convert float to int64 ( temp int64_t)
0:27 subtract ( temp float)
0:27 Convert float16_t to float ( temp float)
0:27 'a' ( in float16_t)
0:27 component-wise multiply ( temp float)
0:27 Convert int16_t to float ( temp float)
0:27 'b' ( in int16_t)
0:27 'c' ( in float)
0:30 Function Definition: main( ( global void)
0:30 Function Parameters:
0:? Sequence
0:38 Sequence
0:38 move second child to first child ( temp int64_t)
0:38 'b1' ( temp int64_t)
0:38 Function Call: func(i81;i161;i1; ( global int64_t)
0:38 'x' ( temp int8_t)
0:38 'y' ( temp int16_t)
0:38 'z' ( temp int)
0:39 Sequence
0:39 move second child to first child ( temp int64_t)
0:39 'b2' ( temp int64_t)
0:39 Function Call: func(f161;i161;f1; ( global int64_t)
0:39 Convert int16_t to float16_t ( temp float16_t)
0:39 'y' ( temp int16_t)
0:39 'y' ( temp int16_t)
0:39 Convert int to float ( temp float)
0:39 'z' ( temp int)
0:42 Sequence
0:42 move second child to first child ( temp int64_t)
0:42 'b5' ( temp int64_t)
0:42 Function Call: func(f161;i161;f1; ( global int64_t)
0:42 Convert int16_t to float16_t ( temp float16_t)
0:42 'y' ( temp int16_t)
0:42 'y' ( temp int16_t)
0:42 Convert float16_t to float ( temp float)
0:42 'f16' ( temp float16_t)
0:43 Sequence
0:43 move second child to first child ( temp int64_t)
0:43 'b7' ( temp int64_t)
0:43 Function Call: func(f161;f161;f1; ( global int64_t)
0:43 'f16' ( temp float16_t)
0:43 'f16' ( temp float16_t)
0:43 Convert int16_t to float ( temp float)
0:43 'y' ( temp int16_t)
0:45 Sequence
0:45 move second child to first child ( temp int64_t)
0:45 'b9' ( temp int64_t)
0:45 Function Call: func(f161;f161;f1; ( global int64_t)
0:45 'f16' ( temp float16_t)
0:45 Convert int8_t to float16_t ( temp float16_t)
0:45 'x' ( temp int8_t)
0:45 Convert float16_t to float ( temp float)
0:45 'f16' ( temp float16_t)
0:? Linker Objects
Linked fragment stage:
Shader version: 450
Requested GL_KHX_shader_explicit_arithmetic_types
ERROR: node is still EOpNull!
0:10 Function Definition: func(i81;i161;i1; ( global int64_t)
0:10 Function Parameters:
0:10 'a' ( in int8_t)
0:10 'b' ( in int16_t)
0:10 'c' ( in int)
0:12 Sequence
0:12 Branch: Return with expression
0:12 Convert int to int64 ( temp int64_t)
0:12 inclusive-or ( temp int)
0:12 Convert int8_t to int ( temp int)
0:12 'a' ( in int8_t)
0:12 subtract ( temp int)
0:12 Convert int16_t to int ( temp int)
0:12 'b' ( in int16_t)
0:12 'c' ( in int)
0:20 Function Definition: func(f161;f161;f1; ( global int64_t)
0:20 Function Parameters:
0:20 'a' ( in float16_t)
0:20 'b' ( in float16_t)
0:20 'c' ( in float)
0:22 Sequence
0:22 Branch: Return with expression
0:22 Convert float to int64 ( temp int64_t)
0:22 subtract ( temp float)
0:22 Convert float16_t to float ( temp float)
0:22 'a' ( in float16_t)
0:22 component-wise multiply ( temp float)
0:22 Convert float16_t to float ( temp float)
0:22 'b' ( in float16_t)
0:22 'c' ( in float)
0:25 Function Definition: func(f161;i161;f1; ( global int64_t)
0:25 Function Parameters:
0:25 'a' ( in float16_t)
0:25 'b' ( in int16_t)
0:25 'c' ( in float)
0:27 Sequence
0:27 Branch: Return with expression
0:27 Convert float to int64 ( temp int64_t)
0:27 subtract ( temp float)
0:27 Convert float16_t to float ( temp float)
0:27 'a' ( in float16_t)
0:27 component-wise multiply ( temp float)
0:27 Convert int16_t to float ( temp float)
0:27 'b' ( in int16_t)
0:27 'c' ( in float)
0:30 Function Definition: main( ( global void)
0:30 Function Parameters:
0:? Sequence
0:38 Sequence
0:38 move second child to first child ( temp int64_t)
0:38 'b1' ( temp int64_t)
0:38 Function Call: func(i81;i161;i1; ( global int64_t)
0:38 'x' ( temp int8_t)
0:38 'y' ( temp int16_t)
0:38 'z' ( temp int)
0:39 Sequence
0:39 move second child to first child ( temp int64_t)
0:39 'b2' ( temp int64_t)
0:39 Function Call: func(f161;i161;f1; ( global int64_t)
0:39 Convert int16_t to float16_t ( temp float16_t)
0:39 'y' ( temp int16_t)
0:39 'y' ( temp int16_t)
0:39 Convert int to float ( temp float)
0:39 'z' ( temp int)
0:42 Sequence
0:42 move second child to first child ( temp int64_t)
0:42 'b5' ( temp int64_t)
0:42 Function Call: func(f161;i161;f1; ( global int64_t)
0:42 Convert int16_t to float16_t ( temp float16_t)
0:42 'y' ( temp int16_t)
0:42 'y' ( temp int16_t)
0:42 Convert float16_t to float ( temp float)
0:42 'f16' ( temp float16_t)
0:43 Sequence
0:43 move second child to first child ( temp int64_t)
0:43 'b7' ( temp int64_t)
0:43 Function Call: func(f161;f161;f1; ( global int64_t)
0:43 'f16' ( temp float16_t)
0:43 'f16' ( temp float16_t)
0:43 Convert int16_t to float ( temp float)
0:43 'y' ( temp int16_t)
0:45 Sequence
0:45 move second child to first child ( temp int64_t)
0:45 'b9' ( temp int64_t)
0:45 Function Call: func(f161;f161;f1; ( global int64_t)
0:45 'f16' ( temp float16_t)
0:45 Convert int8_t to float16_t ( temp float16_t)
0:45 'x' ( temp int8_t)
0:45 Convert float16_t to float ( temp float)
0:45 'f16' ( temp float16_t)
0:? Linker Objects

View File

@ -2,7 +2,7 @@ glsl.entryPointRename.vert
ERROR: Source entry point must be "main"
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 20
Capability Shader

View File

@ -1,6 +1,6 @@
glsl.entryPointRename.vert
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 20
Capability Shader

View File

@ -2,7 +2,7 @@ glspv.version.frag
ERROR: #version: compilation for SPIR-V does not support the compatibility profile
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 6
Capability Shader

View File

@ -70,7 +70,7 @@ output primitive = line_strip
0:? 'OutputStream.ps' ( out float PointSize)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 36
Capability Geometry

View File

@ -38,7 +38,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out float PointSize)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 16
Capability Shader

View File

@ -143,7 +143,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 64
Capability Shader

View File

@ -160,7 +160,7 @@ gl_FragCoord origin is upper left
0:? 'm' ( global 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 57
Capability Shader

View File

@ -345,7 +345,7 @@ gl_FragCoord origin is upper left
0:? 'ps_output.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 143
Capability Shader

View File

@ -290,7 +290,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=1) in 3-element array of 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 126
Capability Shader

View File

@ -163,7 +163,7 @@ gl_FragCoord origin is upper left
0:? 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f})
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 72
Capability Shader

View File

@ -134,7 +134,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 57
Capability Shader

View File

@ -132,7 +132,7 @@ gl_FragCoord origin is upper left
0:? 'a5' (layout( location=4) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 58
Capability Shader

View File

@ -82,7 +82,7 @@ local_size = (4, 6, 8)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 39
Capability Shader

View File

@ -50,7 +50,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 24
Capability Shader

View File

@ -94,7 +94,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=8) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 51
Capability Shader

View File

@ -56,7 +56,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 28
Capability Shader

View File

@ -60,7 +60,7 @@ local_size = (1, 1, 1)
0:? 'gti' ( in int LocalInvocationID)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 35
Capability Shader

View File

@ -188,7 +188,7 @@ output primitive = line_strip
0:? 'OutputStream.something' (layout( location=1) out int)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 68
Capability Geometry

View File

@ -204,7 +204,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 99
Capability Shader

View File

@ -146,7 +146,7 @@ gl_FragCoord origin is upper left
0:? 'input' ( in 4-component vector of float FragCoord)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 73
Capability Shader

View File

@ -356,7 +356,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 148
Capability Shader

View File

@ -72,7 +72,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 39
Capability Shader

View File

@ -250,7 +250,7 @@ Shader version: 500
0:? 'input.Norm' (layout( location=1) in 3-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 106
Capability Shader

View File

@ -146,7 +146,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 58
Capability Shader

View File

@ -74,7 +74,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 30
Capability Shader

View File

@ -98,7 +98,7 @@ gl_FragCoord origin is upper left
0:? 'cull' ( in 1-element array of float CullDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 53
Capability Shader

View File

@ -550,7 +550,7 @@ output primitive = line_strip
0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 118
Capability Geometry

View File

@ -108,7 +108,7 @@ Shader version: 500
0:? 'cull' ( out 1-element array of float CullDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 46
Capability Shader

View File

@ -290,7 +290,7 @@ gl_FragCoord origin is upper left
0:? 'cull' ( in 4-element array of float CullDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 84
Capability Shader

View File

@ -724,7 +724,7 @@ output primitive = line_strip
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 128
Capability Geometry

View File

@ -420,7 +420,7 @@ Shader version: 500
0:? 'cull' ( out 4-element array of float CullDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 89
Capability Shader

View File

@ -98,7 +98,7 @@ gl_FragCoord origin is upper left
0:? 'cull' ( in 2-element array of float CullDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 53
Capability Shader

View File

@ -630,7 +630,7 @@ output primitive = line_strip
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 127
Capability Geometry

View File

@ -136,7 +136,7 @@ Shader version: 500
0:? 'cull' ( out 2-element array of float CullDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 51
Capability Shader

View File

@ -174,7 +174,7 @@ gl_FragCoord origin is upper left
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 57
Capability Shader

View File

@ -612,7 +612,7 @@ output primitive = line_strip
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 130
Capability Geometry

View File

@ -270,7 +270,7 @@ Shader version: 500
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 72
Capability Shader

View File

@ -232,7 +232,7 @@ gl_FragCoord origin is upper left
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 62
Capability Shader

View File

@ -318,7 +318,7 @@ Shader version: 500
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 73
Capability Shader

View File

@ -282,7 +282,7 @@ gl_FragCoord origin is upper left
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 79
Capability Shader

View File

@ -428,7 +428,7 @@ Shader version: 500
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 86
Capability Shader

View File

@ -270,7 +270,7 @@ gl_FragCoord origin is upper left
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 78
Capability Shader

View File

@ -384,7 +384,7 @@ Shader version: 500
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 81
Capability Shader

View File

@ -186,7 +186,7 @@ gl_FragCoord origin is upper left
0:? 'v.clip1' ( in 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 65
Capability Shader

View File

@ -240,7 +240,7 @@ Shader version: 500
0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 62
Capability Shader

View File

@ -144,7 +144,7 @@ gl_FragCoord origin is upper left
0:? 'clip0' ( in 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 68
Capability Shader

View File

@ -194,7 +194,7 @@ Shader version: 500
0:? 'clip0' ( out 4-element array of float ClipDistance)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 67
Capability Shader

View File

@ -356,7 +356,7 @@ triangle order = cw
0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 127
Capability Tessellation

View File

@ -262,7 +262,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 96
Capability Shader

View File

@ -522,7 +522,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 206
Capability Shader

View File

@ -132,7 +132,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 66
Capability Shader

View File

@ -268,7 +268,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 89
Capability Shader

View File

@ -104,7 +104,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 40
Capability Shader

View File

@ -544,7 +544,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out int)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 98
Capability Shader

View File

@ -1,6 +1,6 @@
hlsl.dashI.vert
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 40
Capability Shader

View File

@ -1,6 +1,6 @@
hlsl.deadFunctionMissingBody.vert
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 18
Capability Shader

View File

@ -50,7 +50,7 @@ using depth_greater
0:? 'depth' ( out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 20
Capability Shader

View File

@ -42,7 +42,7 @@ using depth_less
0:? '@entryPointOutput' ( out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 16
Capability Shader

View File

@ -108,7 +108,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 50
Capability Shader

View File

@ -144,7 +144,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 71
Capability Shader

View File

@ -286,7 +286,7 @@ triangle order = none
0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 103
Capability Tessellation

View File

@ -284,7 +284,7 @@ triangle order = none
0:? 'pcf_data.foo' (layout( location=2) patch in float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 98
Capability Tessellation

View File

@ -264,7 +264,7 @@ triangle order = none
0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 100
Capability Tessellation

View File

@ -60,7 +60,7 @@ Shader version: 500
0:? 'vertexIndex' (layout( location=0) in uint)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 29
Capability Shader

View File

@ -50,7 +50,7 @@ gl_FragCoord origin is upper left
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 27
Capability Shader

View File

@ -48,7 +48,7 @@ Shader version: 500
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 27
Capability Shader

View File

@ -166,7 +166,7 @@ gl_FragCoord origin is upper left
0:? 'i.i2' (layout( location=1) flat in 2-component vector of int)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 74
Capability Shader

View File

@ -244,7 +244,7 @@ gl_FragCoord origin is upper left
0:? 'out3.i' (layout( location=5) out 2-component vector of int)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 89
Capability Shader

View File

@ -72,7 +72,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 32
Capability Shader

View File

@ -1,6 +1,6 @@
hlsl.explicitDescriptorSet.frag
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 31
Capability Shader

View File

@ -1,6 +1,6 @@
hlsl.explicitDescriptorSet.frag
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 31
Capability Shader

View File

@ -118,7 +118,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.other_struct_member3' (layout( location=3) out float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 49
Capability Shader

View File

@ -295,7 +295,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 122
Capability Shader

View File

@ -165,7 +165,7 @@ Shader version: 500
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 82
Capability Shader

View File

@ -107,7 +107,7 @@ Shader version: 500
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 59
Capability Shader

View File

@ -115,7 +115,7 @@ gl_FragCoord origin is upper left
0:? 'vpos' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 54
Capability Shader

View File

@ -149,7 +149,7 @@ gl_FragCoord origin is upper left
0:? 'vpos' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 56
Capability Shader

View File

@ -65,7 +65,7 @@ gl_FragCoord origin is upper left
0:? 'scalar' ( global float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 27
Capability Shader

View File

@ -42,7 +42,7 @@ gl_FragCoord origin is upper left
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4})
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 26
Capability Shader

View File

@ -402,7 +402,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 183
Capability Shader

View File

@ -64,7 +64,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80005
// Generated by (magic number): 80006
// Id's are bound by 25
Capability Shader

Some files were not shown because too many files have changed in this diff Show More