Updated glslang.

This commit is contained in:
Branimir Karadžić 2017-06-10 20:51:54 -07:00
parent c40c83d337
commit b6ccccd4c5
263 changed files with 8332 additions and 4312 deletions

View File

@ -28,11 +28,12 @@
#define GLSLextAMD_H
enum BuiltIn;
enum Capability;
enum Decoration;
enum Op;
static const int GLSLextAMDVersion = 100;
static const int GLSLextAMDRevision = 2;
static const int GLSLextAMDRevision = 4;
// SPV_AMD_shader_ballot
static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot";
@ -113,4 +114,12 @@ enum GcnShaderAMD {
// SPV_AMD_gpu_shader_half_float
static const char* const E_SPV_AMD_gpu_shader_half_float = "SPV_AMD_gpu_shader_half_float";
// SPV_AMD_texture_gather_bias_lod
static const char* const E_SPV_AMD_texture_gather_bias_lod = "SPV_AMD_texture_gather_bias_lod";
static const Capability OpCapabilityImageGatherBiasLodAMD = static_cast<Capability>(5009);
// SPV_AMD_gpu_shader_int16
static const char* const E_SPV_AMD_gpu_shader_int16 = "SPV_AMD_gpu_shader_int16";
#endif // #ifndef GLSLextAMD_H

View File

@ -1369,6 +1369,10 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
#endif
else if (node->getBasicType() == glslang::EbtInt64 || node->getBasicType() == glslang::EbtUint64)
one = builder.makeInt64Constant(1);
#ifdef AMD_EXTENSIONS
else if (node->getBasicType() == glslang::EbtInt16 || node->getBasicType() == glslang::EbtUint16)
one = builder.makeInt16Constant(1);
#endif
else
one = builder.makeIntConstant(1);
glslang::TOperator op;
@ -1616,6 +1620,16 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
case glslang::EOpConstructU64Vec2:
case glslang::EOpConstructU64Vec3:
case glslang::EOpConstructU64Vec4:
#ifdef AMD_EXTENSIONS
case glslang::EOpConstructInt16:
case glslang::EOpConstructI16Vec2:
case glslang::EOpConstructI16Vec3:
case glslang::EOpConstructI16Vec4:
case glslang::EOpConstructUint16:
case glslang::EOpConstructU16Vec2:
case glslang::EOpConstructU16Vec3:
case glslang::EOpConstructU16Vec4:
#endif
case glslang::EOpConstructStruct:
case glslang::EOpConstructTextureSampler:
{
@ -2149,7 +2163,9 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol*
spv::Id spvType = convertGlslangToSpvType(node->getType());
#ifdef AMD_EXTENSIONS
const bool contains16BitType = node->getType().containsBasicType(glslang::EbtFloat16);
const bool contains16BitType = node->getType().containsBasicType(glslang::EbtFloat16) ||
node->getType().containsBasicType(glslang::EbtInt16) ||
node->getType().containsBasicType(glslang::EbtUint16);
if (contains16BitType) {
if (storageClass == spv::StorageClassInput || storageClass == spv::StorageClassOutput) {
builder.addExtension(spv::E_SPV_KHR_16bit_storage);
@ -2262,13 +2278,21 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
spvType = builder.makeUintType(32);
break;
case glslang::EbtInt64:
builder.addCapability(spv::CapabilityInt64);
spvType = builder.makeIntType(64);
break;
case glslang::EbtUint64:
builder.addCapability(spv::CapabilityInt64);
spvType = builder.makeUintType(64);
break;
#ifdef AMD_EXTENSIONS
case glslang::EbtInt16:
builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16);
spvType = builder.makeIntType(16);
break;
case glslang::EbtUint16:
builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16);
spvType = builder.makeUintType(16);
break;
#endif
case glslang::EbtAtomicUint:
builder.addCapability(spv::CapabilityAtomicStorage);
spvType = builder.makeUintType(32);
@ -3044,7 +3068,7 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate&
if (i == 6)
lvalue = true;
break;
case glslang::EOpSparseTextureGather:
case glslang::EOpSparseTextureGather:
if ((sampler.shadow && i == 3) || (! sampler.shadow && i == 2))
lvalue = true;
break;
@ -3053,6 +3077,17 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate&
if ((sampler.shadow && i == 4) || (! sampler.shadow && i == 3))
lvalue = true;
break;
#ifdef AMD_EXTENSIONS
case glslang::EOpSparseTextureGatherLod:
if (i == 3)
lvalue = true;
break;
case glslang::EOpSparseTextureGatherLodOffset:
case glslang::EOpSparseTextureGatherLodOffsets:
if (i == 4)
lvalue = true;
break;
#endif
default:
break;
}
@ -3219,10 +3254,22 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
// check for bias argument
bool bias = false;
#ifdef AMD_EXTENSIONS
if (! cracked.lod && ! cracked.grad && ! cracked.fetch && ! cubeCompare) {
#else
if (! cracked.lod && ! cracked.gather && ! cracked.grad && ! cracked.fetch && ! cubeCompare) {
#endif
int nonBiasArgCount = 2;
#ifdef AMD_EXTENSIONS
if (cracked.gather)
++nonBiasArgCount; // comp argument should be present when bias argument is present
#endif
if (cracked.offset)
++nonBiasArgCount;
#ifdef AMD_EXTENSIONS
else if (cracked.offsets)
++nonBiasArgCount;
#endif
if (cracked.grad)
nonBiasArgCount += 2;
if (cracked.lodClamp)
@ -3241,6 +3288,17 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler);
}
#ifdef AMD_EXTENSIONS
if (cracked.gather) {
const auto& sourceExtensions = glslangIntermediate->getRequestedExtensions();
if (bias || cracked.lod ||
sourceExtensions.find(glslang::E_GL_AMD_texture_gather_bias_lod) != sourceExtensions.end()) {
builder.addExtension(spv::E_SPV_AMD_texture_gather_bias_lod);
builder.addCapability(spv::OpCapabilityImageGatherBiasLodAMD);
}
}
#endif
// set the rest of the arguments
params.coords = arguments[1];
@ -3308,21 +3366,20 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
++extraArgs;
}
// bias
if (bias) {
params.bias = arguments[2 + extraArgs];
++extraArgs;
}
// gather component
if (cracked.gather && ! sampler.shadow) {
// default component is 0, if missing, otherwise an argument
if (2 + extraArgs < (int)arguments.size()) {
params.component = arguments[2 + extraArgs];
++extraArgs;
} else {
} else
params.component = builder.makeIntConstant(0);
}
}
// bias
if (bias) {
params.bias = arguments[2 + extraArgs];
++extraArgs;
}
// projective component (might not to move)
@ -3452,10 +3509,11 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv
spv::Id typeId, spv::Id left, spv::Id right,
glslang::TBasicType typeProxy, bool reduceComparison)
{
bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
#ifdef AMD_EXTENSIONS
bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64 || typeProxy == glslang::EbtUint16;
bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16;
#else
bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
#endif
bool isBool = typeProxy == glslang::EbtBool;
@ -3782,10 +3840,11 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
spv::Op unaryOp = spv::OpNop;
int extBuiltins = -1;
int libCall = -1;
bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
#ifdef AMD_EXTENSIONS
bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64 || typeProxy == glslang::EbtUint16;
bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16;
#else
bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
#endif
@ -3924,6 +3983,12 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
case glslang::EOpDoubleBitsToUint64:
case glslang::EOpInt64BitsToDouble:
case glslang::EOpUint64BitsToDouble:
#ifdef AMD_EXTENSIONS
case glslang::EOpFloat16BitsToInt16:
case glslang::EOpFloat16BitsToUint16:
case glslang::EOpInt16BitsToFloat16:
case glslang::EOpUint16BitsToFloat16:
#endif
unaryOp = spv::OpBitcast;
break;
@ -3972,6 +4037,14 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
break;
#ifdef AMD_EXTENSIONS
case glslang::EOpPackInt2x16:
case glslang::EOpUnpackInt2x16:
case glslang::EOpPackUint2x16:
case glslang::EOpUnpackUint2x16:
case glslang::EOpPackInt4x16:
case glslang::EOpUnpackInt4x16:
case glslang::EOpPackUint4x16:
case glslang::EOpUnpackUint4x16:
case glslang::EOpPackFloat2x16:
case glslang::EOpUnpackFloat2x16:
unaryOp = spv::OpBitcast;
@ -4171,8 +4244,18 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
case glslang::EOpConvUintToBool:
case glslang::EOpConvInt64ToBool:
case glslang::EOpConvUint64ToBool:
zero = (op == glslang::EOpConvInt64ToBool ||
op == glslang::EOpConvUint64ToBool) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0);
#ifdef AMD_EXTENSIONS
case glslang::EOpConvInt16ToBool:
case glslang::EOpConvUint16ToBool:
#endif
if (op == glslang::EOpConvInt64ToBool || op == glslang::EOpConvUint64ToBool)
zero = builder.makeUint64Constant(0);
#ifdef AMD_EXTENSIONS
else if (op == glslang::EOpConvInt16ToBool || op == glslang::EOpConvUint16ToBool)
zero = builder.makeUint16Constant(0);
#endif
else
zero = builder.makeUintConstant(0);
zero = makeSmearedConstant(zero, vectorSize);
return builder.createBinOp(spv::OpINotEqual, destType, operand, zero);
@ -4215,15 +4298,53 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
case glslang::EOpConvBoolToInt:
case glslang::EOpConvBoolToInt64:
zero = (op == glslang::EOpConvBoolToInt64) ? builder.makeInt64Constant(0) : builder.makeIntConstant(0);
one = (op == glslang::EOpConvBoolToInt64) ? builder.makeInt64Constant(1) : builder.makeIntConstant(1);
#ifdef AMD_EXTENSIONS
case glslang::EOpConvBoolToInt16:
#endif
if (op == glslang::EOpConvBoolToInt64)
zero = builder.makeInt64Constant(0);
#ifdef AMD_EXTENSIONS
else if (op == glslang::EOpConvBoolToInt16)
zero = builder.makeInt16Constant(0);
#endif
else
zero = builder.makeIntConstant(0);
if (op == glslang::EOpConvBoolToInt64)
one = builder.makeInt64Constant(1);
#ifdef AMD_EXTENSIONS
else if (op == glslang::EOpConvBoolToInt16)
one = builder.makeInt16Constant(1);
#endif
else
one = builder.makeIntConstant(1);
convOp = spv::OpSelect;
break;
case glslang::EOpConvBoolToUint:
case glslang::EOpConvBoolToUint64:
zero = (op == glslang::EOpConvBoolToUint64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0);
one = (op == glslang::EOpConvBoolToUint64) ? builder.makeUint64Constant(1) : builder.makeUintConstant(1);
#ifdef AMD_EXTENSIONS
case glslang::EOpConvBoolToUint16:
#endif
if (op == glslang::EOpConvBoolToUint64)
zero = builder.makeUint64Constant(0);
#ifdef AMD_EXTENSIONS
else if (op == glslang::EOpConvBoolToUint16)
zero = builder.makeUint16Constant(0);
#endif
else
zero = builder.makeUintConstant(0);
if (op == glslang::EOpConvBoolToUint64)
one = builder.makeUint64Constant(1);
#ifdef AMD_EXTENSIONS
else if (op == glslang::EOpConvBoolToUint16)
one = builder.makeUint16Constant(1);
#endif
else
one = builder.makeUintConstant(1);
convOp = spv::OpSelect;
break;
@ -4232,6 +4353,9 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
case glslang::EOpConvInt64ToFloat:
case glslang::EOpConvInt64ToDouble:
#ifdef AMD_EXTENSIONS
case glslang::EOpConvInt16ToFloat:
case glslang::EOpConvInt16ToDouble:
case glslang::EOpConvInt16ToFloat16:
case glslang::EOpConvIntToFloat16:
case glslang::EOpConvInt64ToFloat16:
#endif
@ -4243,6 +4367,9 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
case glslang::EOpConvUint64ToFloat:
case glslang::EOpConvUint64ToDouble:
#ifdef AMD_EXTENSIONS
case glslang::EOpConvUint16ToFloat:
case glslang::EOpConvUint16ToDouble:
case glslang::EOpConvUint16ToFloat16:
case glslang::EOpConvUintToFloat16:
case glslang::EOpConvUint64ToFloat16:
#endif
@ -4267,6 +4394,9 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
case glslang::EOpConvFloatToInt64:
case glslang::EOpConvDoubleToInt64:
#ifdef AMD_EXTENSIONS
case glslang::EOpConvFloatToInt16:
case glslang::EOpConvDoubleToInt16:
case glslang::EOpConvFloat16ToInt16:
case glslang::EOpConvFloat16ToInt:
case glslang::EOpConvFloat16ToInt64:
#endif
@ -4277,10 +4407,21 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
case glslang::EOpConvIntToUint:
case glslang::EOpConvUint64ToInt64:
case glslang::EOpConvInt64ToUint64:
#ifdef AMD_EXTENSIONS
case glslang::EOpConvUint16ToInt16:
case glslang::EOpConvInt16ToUint16:
#endif
if (builder.isInSpecConstCodeGenMode()) {
// Build zero scalar or vector for OpIAdd.
zero = (op == glslang::EOpConvUint64ToInt64 ||
op == glslang::EOpConvInt64ToUint64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0);
if (op == glslang::EOpConvUint64ToInt64 || op == glslang::EOpConvInt64ToUint64)
zero = builder.makeUint64Constant(0);
#ifdef AMD_EXTENSIONS
else if (op == glslang::EOpConvUint16ToInt16 || op == glslang::EOpConvInt16ToUint16)
zero = builder.makeUint16Constant(0);
#endif
else
zero = builder.makeUintConstant(0);
zero = makeSmearedConstant(zero, vectorSize);
// Use OpIAdd, instead of OpBitcast to do the conversion when
// generating for OpSpecConstantOp instruction.
@ -4295,6 +4436,9 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
case glslang::EOpConvFloatToUint64:
case glslang::EOpConvDoubleToUint64:
#ifdef AMD_EXTENSIONS
case glslang::EOpConvFloatToUint16:
case glslang::EOpConvDoubleToUint16:
case glslang::EOpConvFloat16ToUint16:
case glslang::EOpConvFloat16ToUint:
case glslang::EOpConvFloat16ToUint64:
#endif
@ -4303,11 +4447,23 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
case glslang::EOpConvIntToInt64:
case glslang::EOpConvInt64ToInt:
#ifdef AMD_EXTENSIONS
case glslang::EOpConvIntToInt16:
case glslang::EOpConvInt16ToInt:
case glslang::EOpConvInt64ToInt16:
case glslang::EOpConvInt16ToInt64:
#endif
convOp = spv::OpSConvert;
break;
case glslang::EOpConvUintToUint64:
case glslang::EOpConvUint64ToUint:
#ifdef AMD_EXTENSIONS
case glslang::EOpConvUintToUint16:
case glslang::EOpConvUint16ToUint:
case glslang::EOpConvUint64ToUint16:
case glslang::EOpConvUint16ToUint64:
#endif
convOp = spv::OpUConvert;
break;
@ -4315,24 +4471,58 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
case glslang::EOpConvInt64ToUint:
case glslang::EOpConvUint64ToInt:
case glslang::EOpConvUintToInt64:
#ifdef AMD_EXTENSIONS
case glslang::EOpConvInt16ToUint:
case glslang::EOpConvUintToInt16:
case glslang::EOpConvInt16ToUint64:
case glslang::EOpConvUint64ToInt16:
case glslang::EOpConvUint16ToInt:
case glslang::EOpConvIntToUint16:
case glslang::EOpConvUint16ToInt64:
case glslang::EOpConvInt64ToUint16:
#endif
// OpSConvert/OpUConvert + OpBitCast
switch (op) {
case glslang::EOpConvIntToUint64:
#ifdef AMD_EXTENSIONS
case glslang::EOpConvInt16ToUint64:
#endif
convOp = spv::OpSConvert;
type = builder.makeIntType(64);
break;
case glslang::EOpConvInt64ToUint:
#ifdef AMD_EXTENSIONS
case glslang::EOpConvInt16ToUint:
#endif
convOp = spv::OpSConvert;
type = builder.makeIntType(32);
break;
case glslang::EOpConvUint64ToInt:
#ifdef AMD_EXTENSIONS
case glslang::EOpConvUint16ToInt:
#endif
convOp = spv::OpUConvert;
type = builder.makeUintType(32);
break;
case glslang::EOpConvUintToInt64:
#ifdef AMD_EXTENSIONS
case glslang::EOpConvUint16ToInt64:
#endif
convOp = spv::OpUConvert;
type = builder.makeUintType(64);
break;
#ifdef AMD_EXTENSIONS
case glslang::EOpConvUintToInt16:
case glslang::EOpConvUint64ToInt16:
convOp = spv::OpUConvert;
type = builder.makeUintType(16);
break;
case glslang::EOpConvIntToUint16:
case glslang::EOpConvInt64ToUint16:
convOp = spv::OpSConvert;
type = builder.makeIntType(16);
break;
#endif
default:
assert(0);
break;
@ -4345,8 +4535,22 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
if (builder.isInSpecConstCodeGenMode()) {
// Build zero scalar or vector for OpIAdd.
zero = (op == glslang::EOpConvIntToUint64 ||
op == glslang::EOpConvUintToInt64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0);
#ifdef AMD_EXTENSIONS
if (op == glslang::EOpConvIntToUint64 || op == glslang::EOpConvUintToInt64 ||
op == glslang::EOpConvInt16ToUint64 || op == glslang::EOpConvUint16ToInt64)
zero = builder.makeUint64Constant(0);
else if (op == glslang::EOpConvIntToUint16 || op == glslang::EOpConvUintToInt16 ||
op == glslang::EOpConvInt64ToUint16 || op == glslang::EOpConvUint64ToInt16)
zero = builder.makeUint16Constant(0);
else
zero = builder.makeUintConstant(0);
#else
if (op == glslang::EOpConvIntToUint64 || op == glslang::EOpConvUintToInt64)
zero = builder.makeUint64Constant(0);
else
zero = builder.makeUintConstant(0);
#endif
zero = makeSmearedConstant(zero, vectorSize);
// Use OpIAdd, instead of OpBitcast to do the conversion when
// generating for OpSpecConstantOp instruction.
@ -4732,10 +4936,11 @@ spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv
spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
{
bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
#ifdef AMD_EXTENSIONS
bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64 || typeProxy == glslang::EbtUint16;
bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16;
#else
bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
#endif
@ -5320,6 +5525,14 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla
case glslang::EbtUint64:
spvConsts.push_back(builder.makeUint64Constant(zero ? 0 : consts[nextConst].getU64Const()));
break;
#ifdef AMD_EXTENSIONS
case glslang::EbtInt16:
spvConsts.push_back(builder.makeInt16Constant(zero ? 0 : (short)consts[nextConst].getIConst()));
break;
case glslang::EbtUint16:
spvConsts.push_back(builder.makeUint16Constant(zero ? 0 : (unsigned short)consts[nextConst].getUConst()));
break;
#endif
case glslang::EbtFloat:
spvConsts.push_back(builder.makeFloatConstant(zero ? 0.0F : (float)consts[nextConst].getDConst()));
break;
@ -5357,6 +5570,14 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla
case glslang::EbtUint64:
scalar = builder.makeUint64Constant(zero ? 0 : consts[nextConst].getU64Const(), specConstant);
break;
#ifdef AMD_EXTENSIONS
case glslang::EbtInt16:
scalar = builder.makeInt16Constant(zero ? 0 : (short)consts[nextConst].getIConst(), specConstant);
break;
case glslang::EbtUint16:
scalar = builder.makeUint16Constant(zero ? 0 : (unsigned short)consts[nextConst].getUConst(), specConstant);
break;
#endif
case glslang::EbtFloat:
scalar = builder.makeFloatConstant(zero ? 0.0F : (float)consts[nextConst].getDConst(), specConstant);
break;

View File

@ -214,6 +214,10 @@ public:
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

View File

@ -839,6 +839,10 @@ const char* CapabilityString(int info)
case 4437: return "DeviceGroup";
case 4439: return "MultiView";
#ifdef AMD_EXTENSIONS
case 5009: return "ImageGatherBiasLodAMD";
#endif
#ifdef NV_EXTENSIONS
case 5251: return "GeometryShaderPassthroughNV";
case 5254: return "ShaderViewportIndexLayerNV";

View File

@ -48,6 +48,8 @@
// Can be overridden to customize.
class DirStackFileIncluder : public glslang::TShader::Includer {
public:
DirStackFileIncluder() : externalLocalDirectoryCount(0) { }
virtual IncludeResult* includeLocal(const char* headerName,
const char* includerName,
size_t inclusionDepth) override
@ -62,6 +64,18 @@ public:
return readSystemPath(headerName);
}
// Externally set directories. E.g., from a command-line -I<dir>.
// - Most-recently pushed are checked first.
// - All these are checked after the parse-time stack of local directories
// is checked.
// - This only applies to the "local" form of #include.
// - Makes its own copy of the path.
virtual void pushExternalLocalDirectory(const std::string& dir)
{
directoryStack.push_back(dir);
externalLocalDirectoryCount = directoryStack.size();
}
virtual void releaseInclude(IncludeResult* result) override
{
if (result != nullptr) {
@ -75,17 +89,19 @@ public:
protected:
typedef char tUserDataElement;
std::vector<std::string> directoryStack;
int externalLocalDirectoryCount;
// Search for a valid "local" path based on combining the stack of include
// directories and the nominal name of the header.
virtual IncludeResult* readLocalPath(const char* headerName, const char* includerName, int depth)
{
// Discard popped include directories, and if first level, initialize.
directoryStack.resize(depth);
// Discard popped include directories, and
// initialize when at parse-time first level.
directoryStack.resize(depth + externalLocalDirectoryCount);
if (depth == 1)
directoryStack.front() = getDirectory(includerName);
directoryStack.back() = getDirectory(includerName);
// find a directory that works, reverse search of include stack
// Find a directory that works, using a reverse search of the include stack.
for (auto it = directoryStack.rbegin(); it != directoryStack.rend(); ++it) {
std::string path = *it + '/' + headerName;
std::replace(path.begin(), path.end(), '\\', '/');

View File

@ -167,6 +167,7 @@ const char* entryPointName = nullptr;
const char* sourceEntryPointName = nullptr;
const char* shaderStageName = nullptr;
const char* variableName = nullptr;
std::vector<std::string> IncludeDirectoryList;
std::array<unsigned int, EShLangCount> baseSamplerBinding;
std::array<unsigned int, EShLangCount> baseTextureBinding;
@ -407,6 +408,13 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
Options |= EOptionLinkProgram;
}
break;
case 'I':
if (argv[0][2] == 0) {
printf("include path must immediately follow (no spaces) -I\n");
exit(EFailUsage);
}
IncludeDirectoryList.push_back(argv[0]+2);
break;
case 'V':
Options |= EOptionSpv;
Options |= EOptionVulkanRules;
@ -668,6 +676,8 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
const int defaultVersion = Options & EOptionDefaultDesktop? 110: 100;
DirStackFileIncluder includer;
std::for_each(IncludeDirectoryList.rbegin(), IncludeDirectoryList.rend(), [&includer](const std::string& dir) {
includer.pushExternalLocalDirectory(dir); });
if (Options & EOptionOutputPreprocessed) {
std::string str;
if (shader->preprocess(&Resources, defaultVersion, ENoProfile, false, false,
@ -1031,6 +1041,8 @@ void usage()
" -G create SPIR-V binary, under OpenGL semantics; turns on -l;\n"
" default file name is <stage>.spv (-o overrides this)\n"
" -H print human readable form of SPIR-V; turns on -V\n"
" -I<dir> add dir to the include search path; includer's directory\n"
" is searched first, followed by left-to-right order of -I\n"
" -E print pre-processed GLSL; cannot be used with -l;\n"
" errors will appear on stderr.\n"
" -S <stage> uses specified stage rather than parsing the file extension\n"

View File

@ -4,7 +4,7 @@ layout(local_size_x = 2) in;
layout(local_size_x = 16) in; // ERROR, changing
layout(local_size_z = 4096) in; // ERROR, too large
layout(local_size_x = 2) in;
layout(local_size_y = 0) in; // ERROR, 0 not allowed
const int total = gl_MaxComputeWorkGroupCount.y
+ gl_MaxComputeUniformComponents
+ gl_MaxComputeTextureImageUnits

View File

@ -194,4 +194,8 @@ void bitwiseConv()
iout += i | uu;
}
subroutine(subT1, subT2);
subroutine float subT1() { return 1.0; }
subroutine float subT2() { return 1.0; }
struct SKeyMem { int precise; } KeyMem; // ERROR, keyword can't be a member

View File

@ -1 +1,6 @@
#version 450 core
layout(local_size_x = 0) in; // ERROR, 0 not allowed
void main()
{
shared float f; // ERROR shared must be global
}

View File

@ -54,3 +54,13 @@ float cull(int i)
{
return (i >= 6) ? gl_CullDistance[5] : gl_CullDistance[i];
}
layout(location = 6) in bName1 {
float f;
layout(location = 7) float g;
mat4 m;
} bInst1;
layout(location = 12) in bName2 {
float f;
layout(location = 13) float g; // ERROR, location on array
} bInst2[3];

View File

@ -12,3 +12,12 @@ void main()
{
gl_out[gl_InvocationID].gl_CullDistance[2] = gl_in[1].gl_CullDistance[2];
}
layout(location = 4) out bName1 {
float f;
layout(location = 5) float g;
} bInst1[2];
layout(location = 6) out bName2 {
float f;
layout(location = 7) float g; // ERROR, location on array
} bInst2[2][3];

View File

@ -210,7 +210,6 @@ ERROR: node is still EOpNull!
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
400.tesc
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
@ -442,7 +441,6 @@ ERROR: node is still EOpNull!
0:? 'badOrder' ( invariant noContraction out 4-element array of 4-component vector of float)
400.tese
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:5: 'triangles' : cannot change previously set input primitive
ERROR: 0:6: 'isolines' : cannot change previously set input primitive
@ -612,7 +610,6 @@ ERROR: node is still EOpNull!
0:? 'pinbi' ( patch in block{ in int a})
410.tesc
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier
ERROR: 1 compilation errors. No code generated.
@ -628,7 +625,6 @@ ERROR: node is still EOpNull!
0:? 'patchOut' ( patch out 4-component vector of float)
420.tesc
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out
ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a
ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb
@ -747,7 +743,6 @@ ERROR: node is still EOpNull!
0:? 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double)
420.tese
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:7: '=' : cannot convert from ' const 3-element array of float' to ' global 2-element array of float'
ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): temp 2-component vector of float
ERROR: 0:9: 'initializer list' : wrong number of matrix columns: temp 3X3 matrix of float

View File

@ -1,7 +1,7 @@
310.comp
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:4: 'local_size' : cannot change previously set size
ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize
ERROR: 0:7: 'local_size_y' : must be at least 1
ERROR: 0:23: '' : array size required
ERROR: 0:39: 'in' : global storage input qualifier cannot be used in a compute shader
ERROR: 0:39: 'location qualifier on input' : not supported in this stage: compute
@ -16,7 +16,7 @@ ERROR: 0:47: 'local_size' : can only apply to 'in'
ERROR: 0:61: 'assign' : l-value required "ro" (can't modify a readonly buffer)
ERROR: 0:66: 'buffer' : buffers can be declared only as blocks
ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:76: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
ERROR: 0:76: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
ERROR: 0:81: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:82: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:87: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic
@ -54,12 +54,12 @@ ERROR: 0:171: 'samplerCubeArray' : Reserved word.
ERROR: 0:171: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:172: 'iimage2DRect' : Reserved word.
ERROR: 0:172: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:172: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
ERROR: 0:172: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
ERROR: 0:173: 'image2DMS' : Reserved word.
ERROR: 0:173: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
ERROR: 0:173: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
ERROR: 0:174: 'uimage2DMSArray' : Reserved word.
ERROR: 0:174: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:174: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
ERROR: 0:174: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
ERROR: 0:181: 'rgba32f' : format requires readonly or writeonly memory qualifier
ERROR: 0:182: 'rgba8i' : format requires readonly or writeonly memory qualifier
ERROR: 0:183: 'rgba16ui' : format requires readonly or writeonly memory qualifier
@ -84,7 +84,7 @@ WARNING: 0:238: '#define' : names containing consecutive underscores are reserve
ERROR: 0:244: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group
ERROR: 0:245: 'gl_ViewIndex' : undeclared identifier
ERROR: 0:255: 'gl_ViewIndex' : undeclared identifier
ERROR: 82 compilation errors. No code generated.
ERROR: 83 compilation errors. No code generated.
Shader version: 310

View File

@ -1,5 +1,4 @@
310.frag
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:2: 'float' : type requires declaration of default precision qualifier
ERROR: 0:8: 'origin_upper_left' : not supported with this profile: es
ERROR: 0:8: 'pixel_center_integer' : not supported with this profile: es
@ -19,13 +18,13 @@ ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset,
ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
ERROR: 0:66: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:66: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
ERROR: 0:66: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
ERROR: 0:67: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:67: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
ERROR: 0:67: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:68: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
ERROR: 0:68: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
ERROR: 0:69: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:69: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
ERROR: 0:69: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
ERROR: 0:73: 'binding' : requires block, or sampler/image, or atomic-counter type
ERROR: 0:77: 'location' : location is too large
ERROR: 0:81: 'location' : too large for fragment output
@ -36,7 +35,7 @@ ERROR: 0:83: 'layout-id value' : cannot be negative
ERROR: 0:96: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:110: 'out' : cannot be bool
ERROR: 0:111: 'image2D' : sampler/image types can only be used in uniform variables or function parameters: imageOut
ERROR: 0:111: 'image variables declared 'writeonly' without a format layout qualifier' : not supported with this profile: es
ERROR: 0:111: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es
ERROR: 0:112: 'out' : cannot be a matrix
ERROR: 0:114: 'in' : cannot be bool
ERROR: 0:115: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: ino

View File

@ -1,5 +1,4 @@
310.geom
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:29: 'fromVertex' : block instance name redefinition
ERROR: 0:33: 'fromVertex' : redefinition
ERROR: 0:35: 'fooC' : block instance name redefinition

View File

@ -1,5 +1,4 @@
310.tesc
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:8: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:9: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:10: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)

View File

@ -1,5 +1,4 @@
310.tese
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:7: 'vertices' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:9: 'triangles' : cannot change previously set input primitive
ERROR: 0:10: 'isolines' : cannot change previously set input primitive

View File

@ -1,5 +1,4 @@
310.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:3: 'shared' : not supported in this stage: vertex
ERROR: 0:4: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:5: 'buffer' : buffers can be declared only as blocks

View File

@ -1,5 +1,4 @@
310AofA.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:17: '' : array size required
ERROR: 0:23: '' : array size required
ERROR: 0:28: '[]' : only outermost dimension of an array of arrays can be implicitly sized

View File

@ -1,5 +1,4 @@
310implicitSizeArrayError.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:3: '' : array size required
ERROR: 1 compilation errors. No code generated.

View File

@ -100,7 +100,7 @@ ERROR: node is still EOpNull!
0:? 'v20' ( smooth in 4-component vector of float)
0:? 'v21' (layout( location=60) smooth in float)
0:? 'v22' (layout( location=2) smooth in float)
0:? 'anon@1' ( in block{layout( location=1 component=0) in float f1, layout( location=3) in float f2})
0:? 'anon@1' ( in block{layout( location=1) in float f1, layout( location=3) in float f2})
0:? 'uinst' (layout( location=1 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2})
0:? 'v3' (layout( location=6) smooth in 4-component vector of float)
0:? 'v4' ( smooth in 4-component vector of float)
@ -108,12 +108,12 @@ ERROR: node is still EOpNull!
0:? 'v6' (layout( location=30) smooth in 4-component vector of float)
0:? 'v23' (layout( location=61) smooth in float)
0:? 'v24' (layout( location=62) smooth in float)
0:? 'ininst2' ( in block{layout( location=28 component=0) in bool b1, layout( location=29 component=0) in float f1, layout( location=25) in float f2, layout( location=26 component=0) in 4-component vector of float f3, layout( location=21) in structure{ global float f1, temp float f2} s2, layout( location=23 component=0) in 4-component vector of float f4, layout( location=24 component=0) in 4-component vector of float f5})
0:? 'ininst2' ( in block{layout( location=28) in bool b1, layout( location=29) in float f1, layout( location=25) in float f2, layout( location=26) in 4-component vector of float f3, layout( location=21) in structure{ global float f1, temp float f2} s2, layout( location=23) in 4-component vector of float f4, layout( location=24) in 4-component vector of float f5})
0:? 'uinst2' (layout( location=13 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2})
0:? 'in3' ( in block{ in float f1, layout( location=40) in float f2})
0:? 'in4' ( in block{layout( location=50) in float f1, layout( location=51) in float f2})
0:? 's' (layout( location=33) smooth in structure{ global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A})
0:? 'anon@2' ( in block{layout( location=44 component=0) in 4-component vector of float d, layout( location=45 component=0) in 4-component vector of float e, layout( location=47) in 4-component vector of float f, layout( location=48 component=0) in 4-component vector of float g, layout( location=41) in 4-component vector of float h, layout( location=42 component=0) in 4-component vector of float i, layout( location=43 component=0) in 4-component vector of float j, layout( location=44 component=0) in 4-component vector of float k})
0:? 'anon@2' ( in block{layout( location=44) in 4-component vector of float d, layout( location=45) in 4-component vector of float e, layout( location=47) in 4-component vector of float f, layout( location=48) in 4-component vector of float g, layout( location=41) in 4-component vector of float h, layout( location=42) in 4-component vector of float i, layout( location=43) in 4-component vector of float j, layout( location=44) in 4-component vector of float k})
0:? 'outVar2' (layout( location=4095 index=0) out 4-component vector of float)
0:? 'outVar3' (layout( location=0 index=1) out 4-component vector of float)
0:? 'outVar4' (layout( location=0 index=1) out 4-component vector of float)
@ -165,7 +165,7 @@ ERROR: node is still EOpNull!
0:? 'v20' ( smooth in 4-component vector of float)
0:? 'v21' (layout( location=60) smooth in float)
0:? 'v22' (layout( location=2) smooth in float)
0:? 'anon@1' ( in block{layout( location=1 component=0) in float f1, layout( location=3) in float f2})
0:? 'anon@1' ( in block{layout( location=1) in float f1, layout( location=3) in float f2})
0:? 'uinst' (layout( location=1 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2})
0:? 'v3' (layout( location=6) smooth in 4-component vector of float)
0:? 'v4' ( smooth in 4-component vector of float)
@ -173,12 +173,12 @@ ERROR: node is still EOpNull!
0:? 'v6' (layout( location=30) smooth in 4-component vector of float)
0:? 'v23' (layout( location=61) smooth in float)
0:? 'v24' (layout( location=62) smooth in float)
0:? 'ininst2' ( in block{layout( location=28 component=0) in bool b1, layout( location=29 component=0) in float f1, layout( location=25) in float f2, layout( location=26 component=0) in 4-component vector of float f3, layout( location=21) in structure{ global float f1, temp float f2} s2, layout( location=23 component=0) in 4-component vector of float f4, layout( location=24 component=0) in 4-component vector of float f5})
0:? 'ininst2' ( in block{layout( location=28) in bool b1, layout( location=29) in float f1, layout( location=25) in float f2, layout( location=26) in 4-component vector of float f3, layout( location=21) in structure{ global float f1, temp float f2} s2, layout( location=23) in 4-component vector of float f4, layout( location=24) in 4-component vector of float f5})
0:? 'uinst2' (layout( location=13 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2})
0:? 'in3' ( in block{ in float f1, layout( location=40) in float f2})
0:? 'in4' ( in block{layout( location=50) in float f1, layout( location=51) in float f2})
0:? 's' (layout( location=33) smooth in structure{ global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A})
0:? 'anon@2' ( in block{layout( location=44 component=0) in 4-component vector of float d, layout( location=45 component=0) in 4-component vector of float e, layout( location=47) in 4-component vector of float f, layout( location=48 component=0) in 4-component vector of float g, layout( location=41) in 4-component vector of float h, layout( location=42 component=0) in 4-component vector of float i, layout( location=43 component=0) in 4-component vector of float j, layout( location=44 component=0) in 4-component vector of float k})
0:? 'anon@2' ( in block{layout( location=44) in 4-component vector of float d, layout( location=45) in 4-component vector of float e, layout( location=47) in 4-component vector of float f, layout( location=48) in 4-component vector of float g, layout( location=41) in 4-component vector of float h, layout( location=42) in 4-component vector of float i, layout( location=43) in 4-component vector of float j, layout( location=44) in 4-component vector of float k})
0:? 'outVar2' (layout( location=4095 index=0) out 4-component vector of float)
0:? 'outVar3' (layout( location=0 index=1) out 4-component vector of float)
0:? 'outVar4' (layout( location=0 index=1) out 4-component vector of float)

View File

@ -1,5 +1,4 @@
400.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:18: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
ERROR: 0:22: 'textureGatherOffset(...)' : must be a compile-time constant: component argument
ERROR: 0:23: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument
@ -34,8 +33,12 @@ ERROR: 0:183: 'textureQueryLod' : no matching overloaded function found
ERROR: 0:183: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float'
ERROR: 0:184: 'textureQueryLod' : no matching overloaded function found
ERROR: 0:184: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float'
ERROR: 0:197: '' : syntax error, unexpected PRECISE, expecting IDENTIFIER
ERROR: 35 compilation errors. No code generated.
ERROR: 0:197: 'subroutine' : feature not yet implemented
ERROR: 0:197: '' : default qualifier requires 'uniform', 'buffer', 'in', or 'out' storage qualification
ERROR: 0:198: 'subroutine' : feature not yet implemented
ERROR: 0:199: 'subroutine' : feature not yet implemented
ERROR: 0:201: '' : syntax error, unexpected PRECISE, expecting IDENTIFIER
ERROR: 39 compilation errors. No code generated.
Shader version: 400
@ -490,6 +493,18 @@ ERROR: node is still EOpNull!
0:194 Convert int to uint ( temp uint)
0:194 'i' ( flat in int)
0:194 'uu' ( uniform uint)
0:198 Function Definition: subT1( ( temp float)
0:198 Function Parameters:
0:198 Sequence
0:198 Branch: Return with expression
0:198 Constant:
0:198 1.000000
0:199 Function Definition: subT2( ( temp float)
0:199 Function Parameters:
0:199 Sequence
0:199 Branch: Return with expression
0:199 Constant:
0:199 1.000000
0:? Linker Objects
0:? 'c2D' ( smooth in 2-component vector of float)
0:? 'i' ( flat in int)

View File

@ -1,5 +1,4 @@
400.geom
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:12: 'invocations' : can only apply to a standalone qualifier
ERROR: 0:20: 'patch' : not supported in this stage: geometry
ERROR: 0:20: 'gl_PointSize' : cannot add layout to redeclared block member

View File

@ -1,5 +1,4 @@
400.tesc
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)

View File

@ -1,5 +1,4 @@
400.tese
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:5: 'triangles' : cannot change previously set input primitive
ERROR: 0:6: 'isolines' : cannot change previously set input primitive

View File

@ -1,5 +1,4 @@
400.vert
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:3: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
ERROR: 0:4: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
ERROR: 0:5: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions

View File

@ -1,5 +1,4 @@
410.geom
Warning, version 410 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:8: 'myIn' : cannot redeclare a built-in block with a user name
ERROR: 0:12: 'gl_myIn' : no declaration found for redeclaration
ERROR: 0:20: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use

View File

@ -1,5 +1,4 @@
410.tesc
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier
ERROR: 1 compilation errors. No code generated.

View File

@ -1,6 +1,4 @@
410.vert
Warning, version 410 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 410
0:? Sequence
0:7 Function Definition: main( ( global void)

View File

@ -1,5 +1,4 @@
420.comp
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:3: 'gl_WorkGroupSize' : not supported for this version or the enabled extensions
ERROR: 1 compilation errors. No code generated.

View File

@ -1,10 +1,9 @@
420.frag
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:4: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth
ERROR: 0:11: 'layout qualifier' : can only apply depth layout to gl_FragDepth
ERROR: 0:12: 'gl_FragDepth' : cannot redeclare after use
WARNING: 0:14: 'atomic_uint' : implicitly sized atomic_uint array treated as having one element for tracking the default offset
ERROR: 3 compilation errors. No code generated.
ERROR: 0:14: 'atomic_uint' : array must be explicitly sized
ERROR: 4 compilation errors. No code generated.
Shader version: 420

View File

@ -1,5 +1,4 @@
420.geom
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:9: 'length' : array must first be sized by a redeclaration or layout qualifier
ERROR: 0:11: '[' : array must be sized by a redeclaration or layout qualifier before being indexed with a variable
ERROR: 0:42: 'assign' : l-value required (can't modify a const)

View File

@ -1,5 +1,4 @@
420.tesc
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out
ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a
ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb

View File

@ -1,5 +1,4 @@
420.tese
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:7: '=' : cannot convert from ' const 3-element array of float' to ' global 2-element array of float'
ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): temp 2-component vector of float
ERROR: 0:9: 'initializer list' : wrong number of matrix columns: temp 3X3 matrix of float

View File

@ -1,5 +1,4 @@
420.vert
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:2: '#version' : must occur first in shader
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
ERROR: 0:3: 'varying' : no longer supported in core profile; removed in version 420
@ -33,7 +32,7 @@ ERROR: 0:85: '' : vertex input cannot be further qualified
ERROR: 0:86: 'patch' : not supported in this stage: vertex
ERROR: 0:100: '=' : global const initializers must be constant ' const int'
ERROR: 0:101: '' : array size must be a constant integer expression
ERROR: 0:107: 'image variables declared 'writeonly' without a format layout qualifier' : not supported for this version or the enabled extensions
ERROR: 0:107: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported for this version or the enabled extensions
ERROR: 0:114: 'imageAtomicMin' : only supported on image with format r32i or r32ui
ERROR: 0:115: 'imageAtomicMax' : no matching overloaded function found
ERROR: 0:119: 'writeonly' : argument cannot drop memory qualifier when passed to formal parameter

View File

@ -1,5 +1,4 @@
420_size_gl_in.geom
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:19: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
ERROR: 1 compilation errors. No code generated.

View File

@ -1,5 +1,4 @@
430.comp
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:4: 'local_size' : cannot change previously set size
ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize
ERROR: 0:43: 'in' : global storage input qualifier cannot be used in a compute shader

View File

@ -1,5 +1,4 @@
430.vert
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:3: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
ERROR: 0:7: 'input block' : not supported in this stage: vertex
ERROR: 0:7: 'location qualifier on in/out block' : not supported for this version or the enabled extensions
@ -233,7 +232,7 @@ ERROR: node is still EOpNull!
0:? 'start2' ( const int)
0:? 5 (const int)
0:? 'v6' (layout( location=19) in 4-component vector of float)
0:? 'ininst2' ( in block{layout( location=28 component=0) in bool b1, layout( location=29 component=0) in float f1, layout( location=25) in float f2})
0:? 'ininst2' ( in block{layout( location=28) in bool b1, layout( location=29) in float f1, layout( location=25) in float f2})
0:? 'in4' ( in block{layout( location=50) in float f1, layout( location=51) in float f2})
0:? 'bbinst2g' ( out block{layout( xfb_buffer=3 xfb_offset=64) out 4-component vector of float bbv})
0:? 'bg' (layout( xfb_buffer=1 xfb_offset=48 xfb_stride=80) smooth out 4-component vector of float)
@ -308,7 +307,7 @@ ERROR: node is still EOpNull!
0:? 'start2' ( const int)
0:? 5 (const int)
0:? 'v6' (layout( location=19) in 4-component vector of float)
0:? 'ininst2' ( in block{layout( location=28 component=0) in bool b1, layout( location=29 component=0) in float f1, layout( location=25) in float f2})
0:? 'ininst2' ( in block{layout( location=28) in bool b1, layout( location=29) in float f1, layout( location=25) in float f2})
0:? 'in4' ( in block{layout( location=50) in float f1, layout( location=51) in float f2})
0:? 'bbinst2g' ( out block{layout( xfb_buffer=3 xfb_offset=64) out 4-component vector of float bbv})
0:? 'bg' (layout( xfb_buffer=1 xfb_offset=48 xfb_stride=80) smooth out 4-component vector of float)

View File

@ -1,5 +1,4 @@
430AofA.frag
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:6: '[]' : only outermost dimension of an array of arrays can be implicitly sized
ERROR: 0:14: 'constructor' : constructing non-array constituent from array argument
ERROR: 0:15: 'constructor' : array constructor argument not correct type to construct array element

View File

@ -1,5 +1,4 @@
430scope.vert
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:5: 'a' : redefinition
ERROR: 0:17: 'b' : function name is redeclaration of existing name
ERROR: 0:20: 'c' : redefinition

View File

@ -1,5 +1,4 @@
440.frag
Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:11: 'location' : overlapping use of location 4
ERROR: 0:13: 'component' : type overflows the available 4 components
ERROR: 0:22: 'location' : fragment outputs sharing the same location must be the same basic type 30

View File

@ -1,5 +1,4 @@
440.vert
Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:8: 'component' : type overflows the available 4 components
ERROR: 0:15: 'component' : component is too large
ERROR: 0:23: 'location' : overlapping use of location 4

View File

@ -1,18 +1,24 @@
450.comp
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:2: 'local_size_x' : must be at least 1
ERROR: 0:5: 'shared' : not allowed in nested scope
ERROR: 2 compilation errors. No code generated.
Shader version: 450
local_size = (1, 1, 1)
0:? Sequence
ERROR: node is still EOpNull!
0:3 Function Definition: main( ( global void)
0:3 Function Parameters:
0:? Linker Objects
Linked compute stage:
ERROR: Linking compute stage: Missing entry point: Each stage requires one entry point
Shader version: 450
local_size = (1, 1, 1)
0:? Sequence
ERROR: node is still EOpNull!
0:3 Function Definition: main( ( global void)
0:3 Function Parameters:
0:? Linker Objects

View File

@ -1,8 +1,10 @@
450.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:63: 'location' : cannot use in a block array where new locations are needed for each block element
ERROR: 1 compilation errors. No code generated.
Shader version: 450
0:? Sequence
ERROR: node is still EOpNull!
0:8 Function Definition: main( ( global void)
0:8 Function Parameters:
0:10 Sequence
@ -160,13 +162,15 @@ Shader version: 450
0:? 'us2dmsa' ( uniform usampler2DMSArray)
0:? 'ii2dms' (layout( rgba32i) uniform iimage2DMS)
0:? 'i2dmsa' (layout( rgba32f) uniform image2DMSArray)
0:? 'bInst1' ( in block{layout( location=6) in float f, layout( location=7) in float g, layout( location=8) in 4X4 matrix of float m})
0:? 'bInst2' ( in 3-element array of block{layout( location=12) in float f, layout( location=13) in float g})
Linked fragment stage:
Shader version: 450
0:? Sequence
ERROR: node is still EOpNull!
0:8 Function Definition: main( ( global void)
0:8 Function Parameters:
0:10 Sequence
@ -273,4 +277,6 @@ Shader version: 450
0:? 'us2dmsa' ( uniform usampler2DMSArray)
0:? 'ii2dms' (layout( rgba32i) uniform iimage2DMS)
0:? 'i2dmsa' (layout( rgba32f) uniform image2DMSArray)
0:? 'bInst1' ( in block{layout( location=6) in float f, layout( location=7) in float g, layout( location=8) in 4X4 matrix of float m})
0:? 'bInst2' ( in 3-element array of block{layout( location=12) in float f, layout( location=13) in float g})

View File

@ -1,5 +1,4 @@
450.geom
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:15: '[' : array index out of range '3'
ERROR: 0:15: 'gl_Position' : no such field in structure
ERROR: 2 compilation errors. No code generated.

View File

@ -1,9 +1,11 @@
450.tesc
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:20: 'location' : cannot use in a block array where new locations are needed for each block element
ERROR: 1 compilation errors. No code generated.
Shader version: 450
vertices = -1
0:? Sequence
ERROR: node is still EOpNull!
0:11 Function Definition: main( ( global void)
0:11 Function Parameters:
0:13 Sequence
@ -30,6 +32,8 @@ vertices = -1
0:? Linker Objects
0:? 'gl_in' ( in 32-element array of block{ in 3-element array of float CullDistance gl_CullDistance})
0:? 'gl_out' ( out 4-element array of block{ out 3-element array of float CullDistance gl_CullDistance})
0:? 'bInst1' ( out 2-element array of block{layout( location=4) out float f, layout( location=5) out float g})
0:? 'bInst2' ( out 2-element array of 3-element array of block{layout( location=6) out float f, layout( location=7) out float g})
Linked tessellation control stage:
@ -38,7 +42,7 @@ ERROR: Linking tessellation control stage: At least one shader must specify an o
Shader version: 450
vertices = -1
0:? Sequence
ERROR: node is still EOpNull!
0:11 Function Definition: main( ( global void)
0:11 Function Parameters:
0:13 Sequence
@ -65,4 +69,6 @@ vertices = -1
0:? Linker Objects
0:? 'gl_in' ( in 32-element array of block{ in 3-element array of float CullDistance gl_CullDistance})
0:? 'gl_out' ( out 4-element array of block{ out 3-element array of float CullDistance gl_CullDistance})
0:? 'bInst1' ( out 2-element array of block{layout( location=4) out float f, layout( location=5) out float g})
0:? 'bInst2' ( out 2-element array of 3-element array of block{layout( location=6) out float f, layout( location=7) out float g})

View File

@ -1,6 +1,4 @@
450.tese
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 450
input primitive = none
vertex spacing = none

View File

@ -1,5 +1,4 @@
450.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:12: 'out' : cannot be bool
ERROR: 0:13: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: outo
ERROR: 0:27: '::' : not supported

View File

@ -1,5 +1,4 @@
atomic_uint.frag
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:10: 'atomic_uint' : samplers and atomic_uints cannot be output parameters
ERROR: 0:12: 'return' : type does not match, or is not convertible to, the function's return type
ERROR: 0:18: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: non_uniform_counter

View File

@ -1,5 +1,4 @@
badMacroArgs.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:4: 'macro expansion' : Too few args in Macro m
ERROR: 0:4: '' : compilation terminated
ERROR: 2 compilation errors. No code generated.

View File

@ -1,5 +1,4 @@
comment.frag
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
WARNING: 0:10: 'line continuation' : used at end of comment; the following line is still part of the comment
WARNING: 0:12: 'line continuation' : used at end of comment; the following line is still part of the comment

View File

@ -1,5 +1,4 @@
constFold.frag
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:109: '[' : index out of range '-1'
ERROR: 0:110: '[' : vector index out of range '4'
ERROR: 0:111: '[' : index out of range '-2'

View File

@ -1,5 +1,4 @@
cppSimple.vert
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:77: '#error' : good1
ERROR: 0:81: '#error' : good2
ERROR: 0:85: '#error' : good3
@ -91,8 +90,10 @@ ERROR: 12:9504: '#if' : unexpected tokens following directive
ERROR: 12:9506: '#error' : \ 377
ERROR: 12:9507: '#error' : \ 376
ERROR: 12:9508: '#error' : \ 377
ERROR: 12:9602: 'defined' : cannot use in preprocessor expression when expanded from macros
ERROR: 12:9603: '#error' : DEF_DEFINED then
ERROR: 12:10002: '' : missing #endif
ERROR: 88 compilation errors. No code generated.
ERROR: 90 compilation errors. No code generated.
Shader version: 400

View File

@ -1,6 +1,4 @@
dce.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 400
0:? Sequence
0:5 Sequence

View File

@ -1,5 +1,4 @@
functionSemantics.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:74: 'return' : cannot convert return value to function return type
WARNING: 0:74: 'return' : type conversion on return values was not explicitly allowed until version 420
ERROR: 1 compilation errors. No code generated.

View File

@ -1,6 +1,5 @@
glspv.esversion.vert
ERROR: #version: ES shaders for OpenGL SPIR-V are not supported
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 1 compilation errors. No code generated.

View File

@ -1,5 +1,4 @@
glspv.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:3: 'push_constant' : only allowed when using GLSL for Vulkan
ERROR: 0:6: 'descriptor set' : only allowed when using GLSL for Vulkan
ERROR: 0:8: 'shared' : not allowed when generating SPIR-V

View File

@ -0,0 +1,69 @@
hlsl.dashI.vert
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 40
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 38
Source HLSL 500
Name 4 "main"
Name 9 "@main("
Name 11 "$Global"
MemberName 11($Global) 0 "i1"
MemberName 11($Global) 1 "p1"
MemberName 11($Global) 2 "p2"
MemberName 11($Global) 3 "p3"
MemberName 11($Global) 4 "i4"
Name 13 ""
Name 38 "@entryPointOutput"
MemberDecorate 11($Global) 0 Offset 0
MemberDecorate 11($Global) 1 Offset 16
MemberDecorate 11($Global) 2 Offset 32
MemberDecorate 11($Global) 3 Offset 48
MemberDecorate 11($Global) 4 Offset 64
Decorate 11($Global) Block
Decorate 13 DescriptorSet 0
Decorate 38(@entryPointOutput) BuiltIn Position
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeFunction 7(fvec4)
11($Global): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4)
12: TypePointer Uniform 11($Global)
13: 12(ptr) Variable Uniform
14: TypeInt 32 1
15: 14(int) Constant 0
16: TypePointer Uniform 7(fvec4)
19: 14(int) Constant 4
23: 14(int) Constant 1
27: 14(int) Constant 2
31: 14(int) Constant 3
37: TypePointer Output 7(fvec4)
38(@entryPointOutput): 37(ptr) Variable Output
4(main): 2 Function None 3
5: Label
39: 7(fvec4) FunctionCall 9(@main()
Store 38(@entryPointOutput) 39
Return
FunctionEnd
9(@main(): 7(fvec4) Function None 8
10: Label
17: 16(ptr) AccessChain 13 15
18: 7(fvec4) Load 17
20: 16(ptr) AccessChain 13 19
21: 7(fvec4) Load 20
22: 7(fvec4) FAdd 18 21
24: 16(ptr) AccessChain 13 23
25: 7(fvec4) Load 24
26: 7(fvec4) FAdd 22 25
28: 16(ptr) AccessChain 13 27
29: 7(fvec4) Load 28
30: 7(fvec4) FAdd 26 29
32: 16(ptr) AccessChain 13 31
33: 7(fvec4) Load 32
34: 7(fvec4) FAdd 30 33
ReturnValue 34
FunctionEnd

View File

@ -110,6 +110,80 @@ gl_FragCoord origin is upper left
0:11 'ii' ( temp int)
0:12 Pre-Decrement ( temp float)
0:12 'ii' ( temp float)
0:13 Sequence
0:13 move second child to first child ( temp int)
0:13 'first' ( temp int)
0:13 Constant:
0:13 0 (const int)
0:13 move second child to first child ( temp int)
0:13 'second' ( temp int)
0:13 Constant:
0:13 1 (const int)
0:13 Loop with condition tested first
0:13 No loop condition
0:13 Loop Body
0:13 add ( temp int)
0:13 'first' ( temp int)
0:13 'second' ( temp int)
0:14 Sequence
0:14 move second child to first child ( temp int)
0:14 'i' ( temp int)
0:14 Constant:
0:14 0 (const int)
0:14 move second child to first child ( temp int)
0:14 'count' ( temp int)
0:14 Convert float to int ( temp int)
0:14 'ii' ( temp float)
0:14 Loop with condition tested first
0:14 Loop Condition
0:14 Compare Less Than ( temp bool)
0:14 'i' ( temp int)
0:14 'count' ( temp int)
0:14 No loop body
0:14 Loop Terminal Expression
0:14 Post-Increment ( temp int)
0:14 'i' ( temp int)
0:15 Sequence
0:15 move second child to first child ( temp float)
0:15 'first' ( temp float)
0:15 Constant:
0:15 0.000000
0:15 Loop with condition tested first
0:15 Loop Condition
0:15 Compare Less Than ( temp bool)
0:15 'first' ( temp float)
0:15 direct index ( temp float)
0:15 'second' ( temp 2-element array of float)
0:15 Constant:
0:15 0 (const int)
0:15 Loop Body
0:15 add ( temp float)
0:15 add ( temp float)
0:15 'first' ( temp float)
0:15 direct index ( temp float)
0:15 'second' ( temp 2-element array of float)
0:15 Constant:
0:15 1 (const int)
0:15 'third' ( temp float)
0:15 Loop Terminal Expression
0:15 Pre-Increment ( temp float)
0:15 direct index ( temp float)
0:15 'second' ( temp 2-element array of float)
0:15 Constant:
0:15 1 (const int)
0:? Sequence
0:16 Comma ( temp float)
0:16 Comma ( temp float)
0:16 Pre-Decrement ( temp float)
0:16 'ii' ( temp float)
0:16 Pre-Decrement ( temp float)
0:16 'ii' ( temp float)
0:16 Pre-Decrement ( temp float)
0:16 'ii' ( temp float)
0:16 Loop with condition tested first
0:16 No loop condition
0:16 Loop Body
0:16 'ii' ( temp float)
0:2 Function Definition: PixelShaderFunction( ( temp void)
0:2 Function Parameters:
0:? Sequence
@ -239,6 +313,80 @@ gl_FragCoord origin is upper left
0:11 'ii' ( temp int)
0:12 Pre-Decrement ( temp float)
0:12 'ii' ( temp float)
0:13 Sequence
0:13 move second child to first child ( temp int)
0:13 'first' ( temp int)
0:13 Constant:
0:13 0 (const int)
0:13 move second child to first child ( temp int)
0:13 'second' ( temp int)
0:13 Constant:
0:13 1 (const int)
0:13 Loop with condition tested first
0:13 No loop condition
0:13 Loop Body
0:13 add ( temp int)
0:13 'first' ( temp int)
0:13 'second' ( temp int)
0:14 Sequence
0:14 move second child to first child ( temp int)
0:14 'i' ( temp int)
0:14 Constant:
0:14 0 (const int)
0:14 move second child to first child ( temp int)
0:14 'count' ( temp int)
0:14 Convert float to int ( temp int)
0:14 'ii' ( temp float)
0:14 Loop with condition tested first
0:14 Loop Condition
0:14 Compare Less Than ( temp bool)
0:14 'i' ( temp int)
0:14 'count' ( temp int)
0:14 No loop body
0:14 Loop Terminal Expression
0:14 Post-Increment ( temp int)
0:14 'i' ( temp int)
0:15 Sequence
0:15 move second child to first child ( temp float)
0:15 'first' ( temp float)
0:15 Constant:
0:15 0.000000
0:15 Loop with condition tested first
0:15 Loop Condition
0:15 Compare Less Than ( temp bool)
0:15 'first' ( temp float)
0:15 direct index ( temp float)
0:15 'second' ( temp 2-element array of float)
0:15 Constant:
0:15 0 (const int)
0:15 Loop Body
0:15 add ( temp float)
0:15 add ( temp float)
0:15 'first' ( temp float)
0:15 direct index ( temp float)
0:15 'second' ( temp 2-element array of float)
0:15 Constant:
0:15 1 (const int)
0:15 'third' ( temp float)
0:15 Loop Terminal Expression
0:15 Pre-Increment ( temp float)
0:15 direct index ( temp float)
0:15 'second' ( temp 2-element array of float)
0:15 Constant:
0:15 1 (const int)
0:? Sequence
0:16 Comma ( temp float)
0:16 Comma ( temp float)
0:16 Pre-Decrement ( temp float)
0:16 'ii' ( temp float)
0:16 Pre-Decrement ( temp float)
0:16 'ii' ( temp float)
0:16 Pre-Decrement ( temp float)
0:16 'ii' ( temp float)
0:16 Loop with condition tested first
0:16 No loop condition
0:16 Loop Body
0:16 'ii' ( temp float)
0:2 Function Definition: PixelShaderFunction( ( temp void)
0:2 Function Parameters:
0:? Sequence
@ -255,12 +403,12 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 124
// Id's are bound by 183
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 117 120
EntryPoint Fragment 4 "PixelShaderFunction" 176 179
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "PixelShaderFunction"
@ -268,12 +416,19 @@ gl_FragCoord origin is upper left
Name 10 "input"
Name 92 "ii"
Name 111 "ii"
Name 115 "input"
Name 117 "input"
Name 120 "@entryPointOutput"
Name 121 "param"
Decorate 117(input) Location 0
Decorate 120(@entryPointOutput) Location 0
Name 114 "first"
Name 116 "second"
Name 124 "i"
Name 125 "count"
Name 138 "first"
Name 149 "second"
Name 157 "third"
Name 174 "input"
Name 176 "input"
Name 179 "@entryPointOutput"
Name 180 "param"
Decorate 176(input) Location 0
Decorate 179(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -293,20 +448,25 @@ gl_FragCoord origin is upper left
100: 90(int) Constant 3
103: 90(int) Constant 2
109: 90(int) Constant 1
116: TypePointer Input 7(fvec4)
117(input): 116(ptr) Variable Input
119: TypePointer Output 7(fvec4)
120(@entryPointOutput): 119(ptr) Variable Output
115: 90(int) Constant 0
139: 6(float) Constant 0
146: 71(int) Constant 2
147: TypeArray 6(float) 146
148: TypePointer Function 147
175: TypePointer Input 7(fvec4)
176(input): 175(ptr) Variable Input
178: TypePointer Output 7(fvec4)
179(@entryPointOutput): 178(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
115(input): 8(ptr) Variable Function
121(param): 8(ptr) Variable Function
118: 7(fvec4) Load 117(input)
Store 115(input) 118
122: 7(fvec4) Load 115(input)
Store 121(param) 122
123: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 121(param)
Store 120(@entryPointOutput) 123
174(input): 8(ptr) Variable Function
180(param): 8(ptr) Variable Function
177: 7(fvec4) Load 176(input)
Store 174(input) 177
181: 7(fvec4) Load 174(input)
Store 180(param) 181
182: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 180(param)
Store 179(@entryPointOutput) 182
Return
FunctionEnd
11(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9
@ -314,6 +474,13 @@ gl_FragCoord origin is upper left
12: Label
92(ii): 91(ptr) Variable Function
111(ii): 73(ptr) Variable Function
114(first): 91(ptr) Variable Function
116(second): 91(ptr) Variable Function
124(i): 91(ptr) Variable Function
125(count): 91(ptr) Variable Function
138(first): 73(ptr) Variable Function
149(second): 148(ptr) Variable Function
157(third): 73(ptr) Variable Function
Branch 13
13: Label
LoopMerge 15 16 None
@ -454,6 +621,85 @@ gl_FragCoord origin is upper left
112: 6(float) Load 111(ii)
113: 6(float) FSub 112 18
Store 111(ii) 113
114: 7(fvec4) Undef
ReturnValue 114
Store 114(first) 115
Store 116(second) 109
Branch 117
117: Label
LoopMerge 119 120 None
Branch 118
118: Label
121: 90(int) Load 114(first)
122: 90(int) Load 116(second)
123: 90(int) IAdd 121 122
Branch 120
120: Label
Branch 117
119: Label
Store 124(i) 115
126: 6(float) Load 111(ii)
127: 90(int) ConvertFToS 126
Store 125(count) 127
Branch 128
128: Label
LoopMerge 130 131 None
Branch 132
132: Label
133: 90(int) Load 124(i)
134: 90(int) Load 125(count)
135: 32(bool) SLessThan 133 134
BranchConditional 135 129 130
129: Label
Branch 131
131: Label
136: 90(int) Load 124(i)
137: 90(int) IAdd 136 109
Store 124(i) 137
Branch 128
130: Label
Store 138(first) 139
Branch 140
140: Label
LoopMerge 142 143 None
Branch 144
144: Label
145: 6(float) Load 138(first)
150: 73(ptr) AccessChain 149(second) 115
151: 6(float) Load 150
152: 32(bool) FOrdLessThan 145 151
BranchConditional 152 141 142
141: Label
153: 6(float) Load 138(first)
154: 73(ptr) AccessChain 149(second) 109
155: 6(float) Load 154
156: 6(float) FAdd 153 155
158: 6(float) Load 157(third)
159: 6(float) FAdd 156 158
Branch 143
143: Label
160: 73(ptr) AccessChain 149(second) 109
161: 6(float) Load 160
162: 6(float) FAdd 161 18
Store 160 162
Branch 140
142: Label
163: 6(float) Load 111(ii)
164: 6(float) FSub 163 18
Store 111(ii) 164
165: 6(float) Load 111(ii)
166: 6(float) FSub 165 18
Store 111(ii) 166
167: 6(float) Load 111(ii)
168: 6(float) FSub 167 18
Store 111(ii) 168
Branch 169
169: Label
LoopMerge 171 172 None
Branch 170
170: Label
Branch 172
172: Label
Branch 169
171: Label
173: 7(fvec4) Undef
ReturnValue 173
FunctionEnd

View File

@ -0,0 +1,61 @@
hlsl.pp.vert
Shader version: 500
0:? Sequence
0:17 Function Definition: @main( ( temp void)
0:17 Function Parameters:
0:17 Function Definition: main( ( temp void)
0:17 Function Parameters:
0:? Sequence
0:17 Function Call: @main( ( temp void)
0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int goodGlobal1, uniform int goodGlobal2})
Linked vertex stage:
Shader version: 500
0:? Sequence
0:17 Function Definition: @main( ( temp void)
0:17 Function Parameters:
0:17 Function Definition: main( ( temp void)
0:17 Function Parameters:
0:? Sequence
0:17 Function Call: @main( ( temp void)
0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int goodGlobal1, uniform int goodGlobal2})
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 13
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
Source HLSL 500
Name 4 "main"
Name 6 "@main("
Name 10 "$Global"
MemberName 10($Global) 0 "goodGlobal1"
MemberName 10($Global) 1 "goodGlobal2"
Name 12 ""
MemberDecorate 10($Global) 0 Offset 0
MemberDecorate 10($Global) 1 Offset 4
Decorate 10($Global) Block
Decorate 12 DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
9: TypeInt 32 1
10($Global): TypeStruct 9(int) 9(int)
11: TypePointer Uniform 10($Global)
12: 11(ptr) Variable Uniform
4(main): 2 Function None 3
5: Label
8: 2 FunctionCall 6(@main()
Return
FunctionEnd
6(@main(): 2 Function None 3
7: Label
Return
FunctionEnd

View File

@ -0,0 +1,544 @@
hlsl.texture.subvec4.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:15 Function Definition: @main( ( temp 4-component vector of float)
0:15 Function Parameters:
0:? Sequence
0:24 Sequence
0:24 move second child to first child ( temp 2-component vector of uint)
0:24 'sizeQueryTemp' ( temp 2-component vector of uint)
0:24 textureSize ( temp 2-component vector of uint)
0:24 'g_tTex2dmsf1' ( uniform texture2DMS)
0:24 move second child to first child ( temp uint)
0:24 'WidthU' ( temp uint)
0:24 direct index ( temp uint)
0:24 'sizeQueryTemp' ( temp 2-component vector of uint)
0:24 Constant:
0:24 0 (const int)
0:24 move second child to first child ( temp uint)
0:24 'HeightU' ( temp uint)
0:24 direct index ( temp uint)
0:24 'sizeQueryTemp' ( temp 2-component vector of uint)
0:24 Constant:
0:24 1 (const int)
0:24 move second child to first child ( temp uint)
0:24 'NumberOfSamplesU' ( temp uint)
0:24 imageQuerySamples ( temp uint)
0:24 'g_tTex2dmsf1' ( uniform texture2DMS)
0:25 Sequence
0:25 move second child to first child ( temp 2-component vector of uint)
0:25 'sizeQueryTemp' ( temp 2-component vector of uint)
0:25 textureSize ( temp 2-component vector of uint)
0:25 'g_tTex2dmsf2' ( uniform texture2DMS)
0:25 move second child to first child ( temp uint)
0:25 'WidthU' ( temp uint)
0:25 direct index ( temp uint)
0:25 'sizeQueryTemp' ( temp 2-component vector of uint)
0:25 Constant:
0:25 0 (const int)
0:25 move second child to first child ( temp uint)
0:25 'HeightU' ( temp uint)
0:25 direct index ( temp uint)
0:25 'sizeQueryTemp' ( temp 2-component vector of uint)
0:25 Constant:
0:25 1 (const int)
0:25 move second child to first child ( temp uint)
0:25 'NumberOfSamplesU' ( temp uint)
0:25 imageQuerySamples ( temp uint)
0:25 'g_tTex2dmsf2' ( uniform texture2DMS)
0:26 Sequence
0:26 move second child to first child ( temp 2-component vector of uint)
0:26 'sizeQueryTemp' ( temp 2-component vector of uint)
0:26 textureSize ( temp 2-component vector of uint)
0:26 'g_tTex2dmsf3' ( uniform texture2DMS)
0:26 move second child to first child ( temp uint)
0:26 'WidthU' ( temp uint)
0:26 direct index ( temp uint)
0:26 'sizeQueryTemp' ( temp 2-component vector of uint)
0:26 Constant:
0:26 0 (const int)
0:26 move second child to first child ( temp uint)
0:26 'HeightU' ( temp uint)
0:26 direct index ( temp uint)
0:26 'sizeQueryTemp' ( temp 2-component vector of uint)
0:26 Constant:
0:26 1 (const int)
0:26 move second child to first child ( temp uint)
0:26 'NumberOfSamplesU' ( temp uint)
0:26 imageQuerySamples ( temp uint)
0:26 'g_tTex2dmsf3' ( uniform texture2DMS)
0:27 Sequence
0:27 move second child to first child ( temp 2-component vector of uint)
0:27 'sizeQueryTemp' ( temp 2-component vector of uint)
0:27 textureSize ( temp 2-component vector of uint)
0:27 'g_tTex2dmsf4' ( uniform texture2DMS)
0:27 move second child to first child ( temp uint)
0:27 'WidthU' ( temp uint)
0:27 direct index ( temp uint)
0:27 'sizeQueryTemp' ( temp 2-component vector of uint)
0:27 Constant:
0:27 0 (const int)
0:27 move second child to first child ( temp uint)
0:27 'HeightU' ( temp uint)
0:27 direct index ( temp uint)
0:27 'sizeQueryTemp' ( temp 2-component vector of uint)
0:27 Constant:
0:27 1 (const int)
0:27 move second child to first child ( temp uint)
0:27 'NumberOfSamplesU' ( temp uint)
0:27 imageQuerySamples ( temp uint)
0:27 'g_tTex2dmsf4' ( uniform texture2DMS)
0:29 Construct float ( temp float)
0:? textureFetch ( temp 4-component vector of float)
0:29 'g_tTex2dmsf1' ( uniform texture2DMS)
0:? Constant:
0:? 1 (const int)
0:? 2 (const int)
0:29 Constant:
0:29 3 (const int)
0:30 Construct vec2 ( temp 2-component vector of float)
0:? textureFetch ( temp 4-component vector of float)
0:30 'g_tTex2dmsf2' ( uniform texture2DMS)
0:? Constant:
0:? 1 (const int)
0:? 2 (const int)
0:30 Constant:
0:30 3 (const int)
0:31 Construct vec3 ( temp 3-component vector of float)
0:? textureFetch ( temp 4-component vector of float)
0:31 'g_tTex2dmsf3' ( uniform texture2DMS)
0:? Constant:
0:? 1 (const int)
0:? 2 (const int)
0:31 Constant:
0:31 3 (const int)
0:32 textureFetch ( temp 4-component vector of float)
0:32 'g_tTex2dmsf4' ( uniform texture2DMS)
0:? Constant:
0:? 1 (const int)
0:? 2 (const int)
0:32 Constant:
0:32 3 (const int)
0:34 Construct float ( temp float)
0:? texture ( temp 4-component vector of float)
0:34 Construct combined texture-sampler ( temp sampler2D)
0:34 'g_tTex2df1' ( uniform texture2D)
0:34 'g_sSamp' ( uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:35 Construct vec2 ( temp 2-component vector of float)
0:? texture ( temp 4-component vector of float)
0:35 Construct combined texture-sampler ( temp sampler2D)
0:35 'g_tTex2df2' ( uniform texture2D)
0:35 'g_sSamp' ( uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:36 Construct vec3 ( temp 3-component vector of float)
0:? texture ( temp 4-component vector of float)
0:36 Construct combined texture-sampler ( temp sampler2D)
0:36 'g_tTex2df3' ( uniform texture2D)
0:36 'g_sSamp' ( uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:37 texture ( temp 4-component vector of float)
0:37 Construct combined texture-sampler ( temp sampler2D)
0:37 'g_tTex2df4' ( uniform texture2D)
0:37 'g_sSamp' ( uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:39 Branch: Return with expression
0:39 Constant:
0:39 0.000000
0:39 0.000000
0:39 0.000000
0:39 0.000000
0:15 Function Definition: main( ( temp void)
0:15 Function Parameters:
0:? Sequence
0:15 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:15 Function Call: @main( ( temp 4-component vector of float)
0:? Linker Objects
0:? 'g_tTex2dmsf1' ( uniform texture2DMS)
0:? 'g_tTex2dmsf2' ( uniform texture2DMS)
0:? 'g_tTex2dmsf3' ( uniform texture2DMS)
0:? 'g_tTex2dmsf4' ( uniform texture2DMS)
0:? 'g_tTex2df1' ( uniform texture2D)
0:? 'g_tTex2df2' ( uniform texture2D)
0:? 'g_tTex2df3' ( uniform texture2D)
0:? 'g_tTex2df4' ( uniform texture2D)
0:? 'g_sSamp' ( uniform sampler)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
Linked fragment stage:
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:15 Function Definition: @main( ( temp 4-component vector of float)
0:15 Function Parameters:
0:? Sequence
0:24 Sequence
0:24 move second child to first child ( temp 2-component vector of uint)
0:24 'sizeQueryTemp' ( temp 2-component vector of uint)
0:24 textureSize ( temp 2-component vector of uint)
0:24 'g_tTex2dmsf1' ( uniform texture2DMS)
0:24 move second child to first child ( temp uint)
0:24 'WidthU' ( temp uint)
0:24 direct index ( temp uint)
0:24 'sizeQueryTemp' ( temp 2-component vector of uint)
0:24 Constant:
0:24 0 (const int)
0:24 move second child to first child ( temp uint)
0:24 'HeightU' ( temp uint)
0:24 direct index ( temp uint)
0:24 'sizeQueryTemp' ( temp 2-component vector of uint)
0:24 Constant:
0:24 1 (const int)
0:24 move second child to first child ( temp uint)
0:24 'NumberOfSamplesU' ( temp uint)
0:24 imageQuerySamples ( temp uint)
0:24 'g_tTex2dmsf1' ( uniform texture2DMS)
0:25 Sequence
0:25 move second child to first child ( temp 2-component vector of uint)
0:25 'sizeQueryTemp' ( temp 2-component vector of uint)
0:25 textureSize ( temp 2-component vector of uint)
0:25 'g_tTex2dmsf2' ( uniform texture2DMS)
0:25 move second child to first child ( temp uint)
0:25 'WidthU' ( temp uint)
0:25 direct index ( temp uint)
0:25 'sizeQueryTemp' ( temp 2-component vector of uint)
0:25 Constant:
0:25 0 (const int)
0:25 move second child to first child ( temp uint)
0:25 'HeightU' ( temp uint)
0:25 direct index ( temp uint)
0:25 'sizeQueryTemp' ( temp 2-component vector of uint)
0:25 Constant:
0:25 1 (const int)
0:25 move second child to first child ( temp uint)
0:25 'NumberOfSamplesU' ( temp uint)
0:25 imageQuerySamples ( temp uint)
0:25 'g_tTex2dmsf2' ( uniform texture2DMS)
0:26 Sequence
0:26 move second child to first child ( temp 2-component vector of uint)
0:26 'sizeQueryTemp' ( temp 2-component vector of uint)
0:26 textureSize ( temp 2-component vector of uint)
0:26 'g_tTex2dmsf3' ( uniform texture2DMS)
0:26 move second child to first child ( temp uint)
0:26 'WidthU' ( temp uint)
0:26 direct index ( temp uint)
0:26 'sizeQueryTemp' ( temp 2-component vector of uint)
0:26 Constant:
0:26 0 (const int)
0:26 move second child to first child ( temp uint)
0:26 'HeightU' ( temp uint)
0:26 direct index ( temp uint)
0:26 'sizeQueryTemp' ( temp 2-component vector of uint)
0:26 Constant:
0:26 1 (const int)
0:26 move second child to first child ( temp uint)
0:26 'NumberOfSamplesU' ( temp uint)
0:26 imageQuerySamples ( temp uint)
0:26 'g_tTex2dmsf3' ( uniform texture2DMS)
0:27 Sequence
0:27 move second child to first child ( temp 2-component vector of uint)
0:27 'sizeQueryTemp' ( temp 2-component vector of uint)
0:27 textureSize ( temp 2-component vector of uint)
0:27 'g_tTex2dmsf4' ( uniform texture2DMS)
0:27 move second child to first child ( temp uint)
0:27 'WidthU' ( temp uint)
0:27 direct index ( temp uint)
0:27 'sizeQueryTemp' ( temp 2-component vector of uint)
0:27 Constant:
0:27 0 (const int)
0:27 move second child to first child ( temp uint)
0:27 'HeightU' ( temp uint)
0:27 direct index ( temp uint)
0:27 'sizeQueryTemp' ( temp 2-component vector of uint)
0:27 Constant:
0:27 1 (const int)
0:27 move second child to first child ( temp uint)
0:27 'NumberOfSamplesU' ( temp uint)
0:27 imageQuerySamples ( temp uint)
0:27 'g_tTex2dmsf4' ( uniform texture2DMS)
0:29 Construct float ( temp float)
0:? textureFetch ( temp 4-component vector of float)
0:29 'g_tTex2dmsf1' ( uniform texture2DMS)
0:? Constant:
0:? 1 (const int)
0:? 2 (const int)
0:29 Constant:
0:29 3 (const int)
0:30 Construct vec2 ( temp 2-component vector of float)
0:? textureFetch ( temp 4-component vector of float)
0:30 'g_tTex2dmsf2' ( uniform texture2DMS)
0:? Constant:
0:? 1 (const int)
0:? 2 (const int)
0:30 Constant:
0:30 3 (const int)
0:31 Construct vec3 ( temp 3-component vector of float)
0:? textureFetch ( temp 4-component vector of float)
0:31 'g_tTex2dmsf3' ( uniform texture2DMS)
0:? Constant:
0:? 1 (const int)
0:? 2 (const int)
0:31 Constant:
0:31 3 (const int)
0:32 textureFetch ( temp 4-component vector of float)
0:32 'g_tTex2dmsf4' ( uniform texture2DMS)
0:? Constant:
0:? 1 (const int)
0:? 2 (const int)
0:32 Constant:
0:32 3 (const int)
0:34 Construct float ( temp float)
0:? texture ( temp 4-component vector of float)
0:34 Construct combined texture-sampler ( temp sampler2D)
0:34 'g_tTex2df1' ( uniform texture2D)
0:34 'g_sSamp' ( uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:35 Construct vec2 ( temp 2-component vector of float)
0:? texture ( temp 4-component vector of float)
0:35 Construct combined texture-sampler ( temp sampler2D)
0:35 'g_tTex2df2' ( uniform texture2D)
0:35 'g_sSamp' ( uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:36 Construct vec3 ( temp 3-component vector of float)
0:? texture ( temp 4-component vector of float)
0:36 Construct combined texture-sampler ( temp sampler2D)
0:36 'g_tTex2df3' ( uniform texture2D)
0:36 'g_sSamp' ( uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:37 texture ( temp 4-component vector of float)
0:37 Construct combined texture-sampler ( temp sampler2D)
0:37 'g_tTex2df4' ( uniform texture2D)
0:37 'g_sSamp' ( uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
0:39 Branch: Return with expression
0:39 Constant:
0:39 0.000000
0:39 0.000000
0:39 0.000000
0:39 0.000000
0:15 Function Definition: main( ( temp void)
0:15 Function Parameters:
0:? Sequence
0:15 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:15 Function Call: @main( ( temp 4-component vector of float)
0:? Linker Objects
0:? 'g_tTex2dmsf1' ( uniform texture2DMS)
0:? 'g_tTex2dmsf2' ( uniform texture2DMS)
0:? 'g_tTex2dmsf3' ( uniform texture2DMS)
0:? 'g_tTex2dmsf4' ( uniform texture2DMS)
0:? 'g_tTex2df1' ( uniform texture2D)
0:? 'g_tTex2df2' ( uniform texture2D)
0:? 'g_tTex2df3' ( uniform texture2D)
0:? 'g_tTex2df4' ( uniform texture2D)
0:? 'g_sSamp' ( uniform sampler)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 130
Capability Shader
Capability ImageQuery
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 128
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
Name 9 "@main("
Name 14 "sizeQueryTemp"
Name 17 "g_tTex2dmsf1"
Name 21 "WidthU"
Name 25 "HeightU"
Name 29 "NumberOfSamplesU"
Name 32 "sizeQueryTemp"
Name 33 "g_tTex2dmsf2"
Name 42 "sizeQueryTemp"
Name 43 "g_tTex2dmsf3"
Name 52 "sizeQueryTemp"
Name 53 "g_tTex2dmsf4"
Name 88 "g_tTex2df1"
Name 92 "g_sSamp"
Name 101 "g_tTex2df2"
Name 109 "g_tTex2df3"
Name 118 "g_tTex2df4"
Name 128 "@entryPointOutput"
Decorate 17(g_tTex2dmsf1) DescriptorSet 0
Decorate 33(g_tTex2dmsf2) DescriptorSet 0
Decorate 43(g_tTex2dmsf3) DescriptorSet 0
Decorate 53(g_tTex2dmsf4) DescriptorSet 0
Decorate 88(g_tTex2df1) DescriptorSet 0
Decorate 92(g_sSamp) DescriptorSet 0
Decorate 101(g_tTex2df2) DescriptorSet 0
Decorate 109(g_tTex2df3) DescriptorSet 0
Decorate 118(g_tTex2df4) DescriptorSet 0
Decorate 128(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeFunction 7(fvec4)
11: TypeInt 32 0
12: TypeVector 11(int) 2
13: TypePointer Function 12(ivec2)
15: TypeImage 6(float) 2D multi-sampled sampled format:Unknown
16: TypePointer UniformConstant 15
17(g_tTex2dmsf1): 16(ptr) Variable UniformConstant
20: TypePointer Function 11(int)
22: 11(int) Constant 0
26: 11(int) Constant 1
33(g_tTex2dmsf2): 16(ptr) Variable UniformConstant
43(g_tTex2dmsf3): 16(ptr) Variable UniformConstant
53(g_tTex2dmsf4): 16(ptr) Variable UniformConstant
63: TypeInt 32 1
64: TypeVector 63(int) 2
65: 63(int) Constant 1
66: 63(int) Constant 2
67: 64(ivec2) ConstantComposite 65 66
68: 63(int) Constant 3
73: TypeVector 6(float) 2
79: TypeVector 6(float) 3
86: TypeImage 6(float) 2D sampled format:Unknown
87: TypePointer UniformConstant 86
88(g_tTex2df1): 87(ptr) Variable UniformConstant
90: TypeSampler
91: TypePointer UniformConstant 90
92(g_sSamp): 91(ptr) Variable UniformConstant
94: TypeSampledImage 86
96: 6(float) Constant 1036831949
97: 6(float) Constant 1045220557
98: 73(fvec2) ConstantComposite 96 97
101(g_tTex2df2): 87(ptr) Variable UniformConstant
109(g_tTex2df3): 87(ptr) Variable UniformConstant
118(g_tTex2df4): 87(ptr) Variable UniformConstant
123: 6(float) Constant 0
124: 7(fvec4) ConstantComposite 123 123 123 123
127: TypePointer Output 7(fvec4)
128(@entryPointOutput): 127(ptr) Variable Output
4(main): 2 Function None 3
5: Label
129: 7(fvec4) FunctionCall 9(@main()
Store 128(@entryPointOutput) 129
Return
FunctionEnd
9(@main(): 7(fvec4) Function None 8
10: Label
14(sizeQueryTemp): 13(ptr) Variable Function
21(WidthU): 20(ptr) Variable Function
25(HeightU): 20(ptr) Variable Function
29(NumberOfSamplesU): 20(ptr) Variable Function
32(sizeQueryTemp): 13(ptr) Variable Function
42(sizeQueryTemp): 13(ptr) Variable Function
52(sizeQueryTemp): 13(ptr) Variable Function
18: 15 Load 17(g_tTex2dmsf1)
19: 12(ivec2) ImageQuerySize 18
Store 14(sizeQueryTemp) 19
23: 20(ptr) AccessChain 14(sizeQueryTemp) 22
24: 11(int) Load 23
Store 21(WidthU) 24
27: 20(ptr) AccessChain 14(sizeQueryTemp) 26
28: 11(int) Load 27
Store 25(HeightU) 28
30: 15 Load 17(g_tTex2dmsf1)
31: 11(int) ImageQuerySamples 30
Store 29(NumberOfSamplesU) 31
34: 15 Load 33(g_tTex2dmsf2)
35: 12(ivec2) ImageQuerySize 34
Store 32(sizeQueryTemp) 35
36: 20(ptr) AccessChain 32(sizeQueryTemp) 22
37: 11(int) Load 36
Store 21(WidthU) 37
38: 20(ptr) AccessChain 32(sizeQueryTemp) 26
39: 11(int) Load 38
Store 25(HeightU) 39
40: 15 Load 33(g_tTex2dmsf2)
41: 11(int) ImageQuerySamples 40
Store 29(NumberOfSamplesU) 41
44: 15 Load 43(g_tTex2dmsf3)
45: 12(ivec2) ImageQuerySize 44
Store 42(sizeQueryTemp) 45
46: 20(ptr) AccessChain 42(sizeQueryTemp) 22
47: 11(int) Load 46
Store 21(WidthU) 47
48: 20(ptr) AccessChain 42(sizeQueryTemp) 26
49: 11(int) Load 48
Store 25(HeightU) 49
50: 15 Load 43(g_tTex2dmsf3)
51: 11(int) ImageQuerySamples 50
Store 29(NumberOfSamplesU) 51
54: 15 Load 53(g_tTex2dmsf4)
55: 12(ivec2) ImageQuerySize 54
Store 52(sizeQueryTemp) 55
56: 20(ptr) AccessChain 52(sizeQueryTemp) 22
57: 11(int) Load 56
Store 21(WidthU) 57
58: 20(ptr) AccessChain 52(sizeQueryTemp) 26
59: 11(int) Load 58
Store 25(HeightU) 59
60: 15 Load 53(g_tTex2dmsf4)
61: 11(int) ImageQuerySamples 60
Store 29(NumberOfSamplesU) 61
62: 15 Load 17(g_tTex2dmsf1)
69: 7(fvec4) ImageFetch 62 67 Sample 68
70: 6(float) CompositeExtract 69 0
71: 15 Load 33(g_tTex2dmsf2)
72: 7(fvec4) ImageFetch 71 67 Sample 68
74: 6(float) CompositeExtract 72 0
75: 6(float) CompositeExtract 72 1
76: 73(fvec2) CompositeConstruct 74 75
77: 15 Load 43(g_tTex2dmsf3)
78: 7(fvec4) ImageFetch 77 67 Sample 68
80: 6(float) CompositeExtract 78 0
81: 6(float) CompositeExtract 78 1
82: 6(float) CompositeExtract 78 2
83: 79(fvec3) CompositeConstruct 80 81 82
84: 15 Load 53(g_tTex2dmsf4)
85: 7(fvec4) ImageFetch 84 67 Sample 68
89: 86 Load 88(g_tTex2df1)
93: 90 Load 92(g_sSamp)
95: 94 SampledImage 89 93
99: 7(fvec4) ImageSampleImplicitLod 95 98
100: 6(float) CompositeExtract 99 0
102: 86 Load 101(g_tTex2df2)
103: 90 Load 92(g_sSamp)
104: 94 SampledImage 102 103
105: 7(fvec4) ImageSampleImplicitLod 104 98
106: 6(float) CompositeExtract 105 0
107: 6(float) CompositeExtract 105 1
108: 73(fvec2) CompositeConstruct 106 107
110: 86 Load 109(g_tTex2df3)
111: 90 Load 92(g_sSamp)
112: 94 SampledImage 110 111
113: 7(fvec4) ImageSampleImplicitLod 112 98
114: 6(float) CompositeExtract 113 0
115: 6(float) CompositeExtract 113 1
116: 6(float) CompositeExtract 113 2
117: 79(fvec3) CompositeConstruct 114 115 116
119: 86 Load 118(g_tTex2df4)
120: 90 Load 92(g_sSamp)
121: 94 SampledImage 119 120
122: 7(fvec4) ImageSampleImplicitLod 121 98
ReturnValue 124
FunctionEnd

View File

@ -6,42 +6,70 @@ gl_FragCoord origin is upper left
0:3 Function Parameters:
0:? Sequence
0:4 Sequence
0:4 move second child to first child ( temp mediump float)
0:4 'h0' ( temp mediump float)
0:4 move second child to first child ( temp float)
0:4 'h0' ( temp float)
0:4 Constant:
0:4 0.000000
0:5 Sequence
0:5 move second child to first child ( temp mediump 1-component vector of float)
0:5 'h1' ( temp mediump 1-component vector of float)
0:5 move second child to first child ( temp 1-component vector of float)
0:5 'h1' ( temp 1-component vector of float)
0:5 Constant:
0:5 1.000000
0:6 Sequence
0:6 move second child to first child ( temp mediump 2-component vector of float)
0:6 'h2' ( temp mediump 2-component vector of float)
0:6 move second child to first child ( temp 2-component vector of float)
0:6 'h2' ( temp 2-component vector of float)
0:6 Constant:
0:6 2.000000
0:6 2.000000
0:7 Sequence
0:7 move second child to first child ( temp mediump 3-component vector of float)
0:7 'h3' ( temp mediump 3-component vector of float)
0:7 move second child to first child ( temp 3-component vector of float)
0:7 'h3' ( temp 3-component vector of float)
0:7 Constant:
0:7 3.000000
0:7 3.000000
0:7 3.000000
0:8 Sequence
0:8 move second child to first child ( temp mediump 4-component vector of float)
0:8 'h4' ( temp mediump 4-component vector of float)
0:8 move second child to first child ( temp 4-component vector of float)
0:8 'h4' ( temp 4-component vector of float)
0:8 Constant:
0:8 4.000000
0:8 4.000000
0:8 4.000000
0:8 4.000000
0:10 Branch: Return with expression
0:10 Constant:
0:10 0.000000
0:10 0.000000
0:10 0.000000
0:10 0.000000
0:15 Sequence
0:15 move second child to first child ( temp 2X2 matrix of float)
0:15 'h22' ( temp 2X2 matrix of float)
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
0:16 Sequence
0:16 move second child to first child ( temp 2X3 matrix of float)
0:16 'h23' ( temp 2X3 matrix of float)
0:16 Constant:
0:16 4.900000
0:16 0.000000
0:16 0.000000
0:16 0.000000
0:16 4.900000
0:16 0.000000
0:27 Branch: Return with expression
0:27 Construct vec4 ( temp 4-component vector of float)
0:27 add ( temp float)
0:27 add ( temp float)
0:27 direct index ( temp float)
0:27 direct index ( temp 3-component vector of float)
0:27 'h23' ( temp 2X3 matrix of float)
0:27 Constant:
0:27 0 (const int)
0:27 Constant:
0:27 0 (const int)
0:27 direct index ( temp float)
0:27 'h4' ( temp 4-component vector of float)
0:27 Constant:
0:27 1 (const int)
0:27 'h0' ( temp float)
0:3 Function Definition: main( ( temp void)
0:3 Function Parameters:
0:? Sequence
@ -62,42 +90,70 @@ gl_FragCoord origin is upper left
0:3 Function Parameters:
0:? Sequence
0:4 Sequence
0:4 move second child to first child ( temp mediump float)
0:4 'h0' ( temp mediump float)
0:4 move second child to first child ( temp float)
0:4 'h0' ( temp float)
0:4 Constant:
0:4 0.000000
0:5 Sequence
0:5 move second child to first child ( temp mediump 1-component vector of float)
0:5 'h1' ( temp mediump 1-component vector of float)
0:5 move second child to first child ( temp 1-component vector of float)
0:5 'h1' ( temp 1-component vector of float)
0:5 Constant:
0:5 1.000000
0:6 Sequence
0:6 move second child to first child ( temp mediump 2-component vector of float)
0:6 'h2' ( temp mediump 2-component vector of float)
0:6 move second child to first child ( temp 2-component vector of float)
0:6 'h2' ( temp 2-component vector of float)
0:6 Constant:
0:6 2.000000
0:6 2.000000
0:7 Sequence
0:7 move second child to first child ( temp mediump 3-component vector of float)
0:7 'h3' ( temp mediump 3-component vector of float)
0:7 move second child to first child ( temp 3-component vector of float)
0:7 'h3' ( temp 3-component vector of float)
0:7 Constant:
0:7 3.000000
0:7 3.000000
0:7 3.000000
0:8 Sequence
0:8 move second child to first child ( temp mediump 4-component vector of float)
0:8 'h4' ( temp mediump 4-component vector of float)
0:8 move second child to first child ( temp 4-component vector of float)
0:8 'h4' ( temp 4-component vector of float)
0:8 Constant:
0:8 4.000000
0:8 4.000000
0:8 4.000000
0:8 4.000000
0:10 Branch: Return with expression
0:10 Constant:
0:10 0.000000
0:10 0.000000
0:10 0.000000
0:10 0.000000
0:15 Sequence
0:15 move second child to first child ( temp 2X2 matrix of float)
0:15 'h22' ( temp 2X2 matrix of float)
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
0:16 Sequence
0:16 move second child to first child ( temp 2X3 matrix of float)
0:16 'h23' ( temp 2X3 matrix of float)
0:16 Constant:
0:16 4.900000
0:16 0.000000
0:16 0.000000
0:16 0.000000
0:16 4.900000
0:16 0.000000
0:27 Branch: Return with expression
0:27 Construct vec4 ( temp 4-component vector of float)
0:27 add ( temp float)
0:27 add ( temp float)
0:27 direct index ( temp float)
0:27 direct index ( temp 3-component vector of float)
0:27 'h23' ( temp 2X3 matrix of float)
0:27 Constant:
0:27 0 (const int)
0:27 Constant:
0:27 0 (const int)
0:27 direct index ( temp float)
0:27 'h4' ( temp 4-component vector of float)
0:27 Constant:
0:27 1 (const int)
0:27 'h0' ( temp float)
0:3 Function Definition: main( ( temp void)
0:3 Function Parameters:
0:? Sequence
@ -109,12 +165,12 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 36
// Id's are bound by 61
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 34
EntryPoint Fragment 4 "main" 59
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
@ -124,13 +180,10 @@ gl_FragCoord origin is upper left
Name 18 "h2"
Name 23 "h3"
Name 27 "h4"
Name 34 "@entryPointOutput"
Decorate 12(h0) RelaxedPrecision
Decorate 14(h1) RelaxedPrecision
Decorate 18(h2) RelaxedPrecision
Decorate 23(h3) RelaxedPrecision
Decorate 27(h4) RelaxedPrecision
Decorate 34(@entryPointOutput) Location 0
Name 32 "h22"
Name 38 "h23"
Name 59 "@entryPointOutput"
Decorate 59(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -150,13 +203,28 @@ gl_FragCoord origin is upper left
26: TypePointer Function 7(fvec4)
28: 6(float) Constant 1082130432
29: 7(fvec4) ConstantComposite 28 28 28 28
30: 7(fvec4) ConstantComposite 13 13 13 13
33: TypePointer Output 7(fvec4)
34(@entryPointOutput): 33(ptr) Variable Output
30: TypeMatrix 16(fvec2) 2
31: TypePointer Function 30
33: 16(fvec2) ConstantComposite 15 19
34: 16(fvec2) ConstantComposite 24 28
35: 30 ConstantComposite 33 34
36: TypeMatrix 21(fvec3) 2
37: TypePointer Function 36
39: 6(float) Constant 1084017869
40: 21(fvec3) ConstantComposite 39 13 13
41: 21(fvec3) ConstantComposite 13 39 13
42: 36 ConstantComposite 40 41
43: TypeInt 32 1
44: 43(int) Constant 0
45: TypeInt 32 0
46: 45(int) Constant 0
49: 45(int) Constant 1
58: TypePointer Output 7(fvec4)
59(@entryPointOutput): 58(ptr) Variable Output
4(main): 2 Function None 3
5: Label
35: 7(fvec4) FunctionCall 9(@main()
Store 34(@entryPointOutput) 35
60: 7(fvec4) FunctionCall 9(@main()
Store 59(@entryPointOutput) 60
Return
FunctionEnd
9(@main(): 7(fvec4) Function None 8
@ -166,10 +234,22 @@ gl_FragCoord origin is upper left
18(h2): 17(ptr) Variable Function
23(h3): 22(ptr) Variable Function
27(h4): 26(ptr) Variable Function
32(h22): 31(ptr) Variable Function
38(h23): 37(ptr) Variable Function
Store 12(h0) 13
Store 14(h1) 15
Store 18(h2) 20
Store 23(h3) 25
Store 27(h4) 29
ReturnValue 30
Store 32(h22) 35
Store 38(h23) 42
47: 11(ptr) AccessChain 38(h23) 44 46
48: 6(float) Load 47
50: 11(ptr) AccessChain 27(h4) 49
51: 6(float) Load 50
52: 6(float) FAdd 48 51
53: 6(float) Load 12(h0)
54: 6(float) FAdd 52 53
55: 7(fvec4) CompositeConstruct 54 54 54 54
ReturnValue 55
FunctionEnd

View File

@ -50,8 +50,8 @@ gl_FragCoord origin is upper left
0:15 'min10float' ( temp mediump float)
0:15 'min16float' ( temp mediump float)
0:16 Sequence
0:16 move second child to first child ( temp mediump float)
0:16 'half' ( temp mediump float)
0:16 move second child to first child ( temp float)
0:16 'half' ( temp float)
0:16 Constant:
0:16 0.500000
0:? Sequence
@ -99,9 +99,17 @@ gl_FragCoord origin is upper left
0:25 'float' ( temp mediump float)
0:25 Function Call: fn(f1; ( temp mediump float)
0:25 'float' ( temp mediump float)
0:27 Branch: Return with expression
0:27 Construct vec4 ( temp 4-component vector of float)
0:27 'float' ( temp float)
0:29 Branch: Return with expression
0:29 Construct vec4 ( temp 4-component vector of float)
0:29 add ( temp float)
0:29 'float' ( temp float)
0:29 direct index ( temp float)
0:29 direct index ( temp 3-component vector of float)
0:29 'half2x3' ( temp 2X3 matrix of float)
0:29 Constant:
0:29 0 (const int)
0:29 Constant:
0:29 0 (const int)
0:9 Function Definition: main( ( temp void)
0:9 Function Parameters:
0:? Sequence
@ -166,8 +174,8 @@ gl_FragCoord origin is upper left
0:15 'min10float' ( temp mediump float)
0:15 'min16float' ( temp mediump float)
0:16 Sequence
0:16 move second child to first child ( temp mediump float)
0:16 'half' ( temp mediump float)
0:16 move second child to first child ( temp float)
0:16 'half' ( temp float)
0:16 Constant:
0:16 0.500000
0:? Sequence
@ -215,9 +223,17 @@ gl_FragCoord origin is upper left
0:25 'float' ( temp mediump float)
0:25 Function Call: fn(f1; ( temp mediump float)
0:25 'float' ( temp mediump float)
0:27 Branch: Return with expression
0:27 Construct vec4 ( temp 4-component vector of float)
0:27 'float' ( temp float)
0:29 Branch: Return with expression
0:29 Construct vec4 ( temp 4-component vector of float)
0:29 add ( temp float)
0:29 'float' ( temp float)
0:29 direct index ( temp float)
0:29 direct index ( temp 3-component vector of float)
0:29 'half2x3' ( temp 2X3 matrix of float)
0:29 Constant:
0:29 0 (const int)
0:29 Constant:
0:29 0 (const int)
0:9 Function Definition: main( ( temp void)
0:9 Function Parameters:
0:? Sequence
@ -229,12 +245,12 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 97
// Id's are bound by 105
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 95
EntryPoint Fragment 4 "main" 103
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
@ -252,13 +268,13 @@ gl_FragCoord origin is upper left
MemberName 56(foo_t) 0 "float"
Name 58 "float"
Name 86 "param"
Name 95 "@entryPointOutput"
Name 94 "half2x3"
Name 103 "@entryPointOutput"
Decorate 49(min16float) RelaxedPrecision
Decorate 50 RelaxedPrecision
Decorate 51 RelaxedPrecision
Decorate 52(min10float) RelaxedPrecision
Decorate 53 RelaxedPrecision
Decorate 54(half) RelaxedPrecision
Decorate 64 RelaxedPrecision
Decorate 65 RelaxedPrecision
Decorate 66 RelaxedPrecision
@ -278,7 +294,7 @@ gl_FragCoord origin is upper left
Decorate 87 RelaxedPrecision
Decorate 88 RelaxedPrecision
Decorate 89 RelaxedPrecision
Decorate 95(@entryPointOutput) Location 0
Decorate 103(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -303,12 +319,16 @@ gl_FragCoord origin is upper left
56(foo_t): TypeStruct 6(float)
57: TypePointer Function 56(foo_t)
59: 6(float) Constant 1109917696
94: TypePointer Output 12(fvec4)
95(@entryPointOutput): 94(ptr) Variable Output
91: TypeVector 6(float) 3
92: TypeMatrix 91(fvec3) 2
93: TypePointer Function 92
95: 22(int) Constant 0
102: TypePointer Output 12(fvec4)
103(@entryPointOutput): 102(ptr) Variable Output
4(main): 2 Function None 3
5: Label
96: 12(fvec4) FunctionCall 14(@main()
Store 95(@entryPointOutput) 96
104: 12(fvec4) FunctionCall 14(@main()
Store 103(@entryPointOutput) 104
Return
FunctionEnd
10(fn(f1;): 6(float) Function None 8
@ -329,6 +349,7 @@ gl_FragCoord origin is upper left
58(float): 57(ptr) Variable Function
75: 7(ptr) Variable Function
86(param): 7(ptr) Variable Function
94(half2x3): 93(ptr) Variable Function
Store 19(float) 20
27: 6(float) Load 19(float)
29: 21(bool) FOrdNotEqual 27 28
@ -391,6 +412,9 @@ gl_FragCoord origin is upper left
89: 6(float) FAdd 85 88
Store 19(float) 89
90: 6(float) Load 19(float)
91: 12(fvec4) CompositeConstruct 90 90 90 90
ReturnValue 91
96: 7(ptr) AccessChain 94(half2x3) 40 95
97: 6(float) Load 96
98: 6(float) FAdd 90 97
99: 12(fvec4) CompositeConstruct 98 98 98 98
ReturnValue 99
FunctionEnd

View File

@ -1,6 +1,4 @@
include.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 450
Requested GL_GOOGLE_cpp_style_line_directive
Requested GL_GOOGLE_include_directive

View File

@ -1,6 +1,4 @@
link1.vk.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
@ -14,8 +12,6 @@ gl_FragCoord origin is upper left
0:? 'color' ( out highp 4-component vector of float)
link2.vk.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence

View File

@ -1,6 +1,4 @@
missingBodies.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 450
0:? Sequence
0:4 Function Definition: foo( ( global void)

View File

@ -1,5 +1,4 @@
negativeArraySize.comp
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:9: '' : array size must be a positive integer
ERROR: 1 compilation errors. No code generated.

View File

@ -1,6 +1,4 @@
newTexture.frag
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 430
0:? Sequence
0:36 Function Definition: main( ( global void)

View File

@ -1,5 +1,4 @@
nonVulkan.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:3: 'constant_id' : only allowed when generating SPIR-V
ERROR: 0:4: 'input_attachment_index' : only allowed when using GLSL for Vulkan
ERROR: 0:4: 'input_attachment_index' : can only be used with a subpass

View File

@ -1,5 +1,4 @@
numeral.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:14: '' : octal literal digit too large
ERROR: 0:15: '' : octal literal digit too large
ERROR: 0:16: '' : octal literal digit too large

View File

@ -1,6 +1,4 @@
precise.tesc
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 450
Requested GL_EXT_gpu_shader5
Requested GL_EXT_shader_io_blocks

View File

@ -1,6 +1,4 @@
precise_struct_block.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 450
0:? Sequence
0:11 Function Definition: struct_member( ( global float)

View File

@ -1,2 +0,0 @@
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

View File

@ -1,4 +1,3 @@
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:9: '#error' : This should show up in pp output .
ERROR: 0:14: '#' : invalid directive: def
ERROR: 0:15: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile Y

View File

@ -1,3 +1,2 @@
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
WARNING: 0:6: '#extension' : extension not supported: GL_EXT_shader_texture_image_samples

View File

@ -1,2 +0,0 @@
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

View File

@ -1,2 +0,0 @@
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

View File

@ -1,2 +0,0 @@
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

View File

@ -1,2 +0,0 @@
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

View File

@ -1,6 +1,4 @@
reflection.vert
Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.
Uniform reflection:
image_ui2D: offset -1, type 9063, size 1, index -1, binding -1
sampler_2D: offset -1, type 8b5e, size 1, index -1, binding -1

View File

@ -1,6 +1,4 @@
remap.basic.dcefunc.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 22

View File

@ -1,6 +1,4 @@
remap.basic.everything.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24969

View File

@ -1,6 +1,4 @@
remap.basic.none.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 22

View File

@ -1,6 +1,4 @@
remap.basic.strip.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 22

View File

@ -1,6 +1,4 @@
remap.if.everything.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 22855

View File

@ -1,6 +1,4 @@
remap.if.none.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 25

View File

@ -1,6 +1,4 @@
remap.similar_1a.everything.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24916

View File

@ -1,6 +1,4 @@
remap.similar_1a.none.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 86

View File

@ -1,6 +1,4 @@
remap.similar_1b.everything.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24916

View File

@ -1,6 +1,4 @@
remap.similar_1b.none.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 91

View File

@ -1,6 +1,4 @@
remap.specconst.comp
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 16104

View File

@ -1,5 +1,4 @@
remap.switch.everything.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.:
"precision mediump int; precision highp float;"

View File

@ -1,5 +1,4 @@
remap.switch.none.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.:
"precision mediump int; precision highp float;"

View File

@ -1,5 +1,4 @@
specExamples.frag
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:6: '=' : cannot convert from ' const uint' to ' global int'
ERROR: 0:20: '' : numeric literal too big
ERROR: 0:21: '' : hexadecimal literal too big

View File

@ -1,5 +1,4 @@
specExamples.vert
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:29: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
ERROR: 0:31: 'triangles' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:31: 'invocations' : there is no such layout identifier for this stage taking an assigned value

View File

@ -1,6 +1,4 @@
spv.100ops.frag
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 49

View File

@ -1,6 +1,4 @@
spv.300BuiltIns.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 42

View File

@ -1,6 +1,4 @@
spv.300layout.frag
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 37

View File

@ -1,6 +1,4 @@
spv.300layout.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 163

View File

@ -1,6 +1,4 @@
spv.300layoutp.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 115

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