mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-07 19:58:32 +09:00
[Misc] (3rdparty): Update glslang to 15.4.0
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
*.a filter=lfs diff=lfs merge=lfs -text
|
||||
*.so filter=lfs diff=lfs merge=lfs -text
|
||||
+1
-1
@@ -89,4 +89,4 @@
|
||||
|
||||
#include "MG_Util/Pipelines/Pipeline.hpp"
|
||||
|
||||
#include "MG_Util/Pipelines/Pipelines/Shader/GLSLtoSPIRVPipeline.h"
|
||||
#include "MG_Util/Pipelines/Shader/GLSLtoSPIRVPipeline.h"
|
||||
|
||||
@@ -49,6 +49,9 @@ enum TBasicType {
|
||||
EbtFloat,
|
||||
EbtDouble,
|
||||
EbtFloat16,
|
||||
EbtBFloat16,
|
||||
EbtFloatE5M2,
|
||||
EbtFloatE4M3,
|
||||
EbtInt8,
|
||||
EbtUint8,
|
||||
EbtInt16,
|
||||
@@ -70,6 +73,8 @@ enum TBasicType {
|
||||
EbtFunction,
|
||||
EbtTensorLayoutNV,
|
||||
EbtTensorViewNV,
|
||||
EbtCoopvecNV,
|
||||
EbtTensorARM,
|
||||
// SPIR-V type defined by spirv_type
|
||||
EbtSpirvType,
|
||||
|
||||
@@ -278,6 +283,7 @@ enum TBuiltInVariable {
|
||||
EbvWorldToObject3x4,
|
||||
EbvIncomingRayFlags,
|
||||
EbvCurrentRayTimeNV,
|
||||
EbvClusterIDNV,
|
||||
// barycentrics
|
||||
EbvBaryCoordNV,
|
||||
EbvBaryCoordNoPerspNV,
|
||||
@@ -298,6 +304,13 @@ enum TBuiltInVariable {
|
||||
EbvHitKindFrontFacingMicroTriangleNV,
|
||||
EbvHitKindBackFacingMicroTriangleNV,
|
||||
|
||||
EbvHitIsSphereNV,
|
||||
EbvHitIsLSSNV,
|
||||
EbvHitSpherePositionNV,
|
||||
EbvHitSphereRadiusNV,
|
||||
EbvHitLSSPositionsNV,
|
||||
EbvHitLSSRadiiNV,
|
||||
|
||||
//GL_EXT_mesh_shader
|
||||
EbvPrimitivePointIndicesEXT,
|
||||
EbvPrimitiveLineIndicesEXT,
|
||||
@@ -334,6 +347,11 @@ enum TBuiltInVariable {
|
||||
|
||||
EbvPositionFetch,
|
||||
|
||||
// SPV_QCOM_tile_shading
|
||||
EbvTileOffsetQCOM,
|
||||
EbvTileDimensionQCOM,
|
||||
EbvTileApronSizeQCOM,
|
||||
|
||||
EbvLast
|
||||
};
|
||||
|
||||
@@ -502,6 +520,7 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
|
||||
case EbvObjectToWorld: return "ObjectToWorldNV";
|
||||
case EbvWorldToObject: return "WorldToObjectNV";
|
||||
case EbvCurrentRayTimeNV: return "CurrentRayTimeNV";
|
||||
case EbvClusterIDNV: return "ClusterIDNV";
|
||||
|
||||
case EbvBaryCoordEXT:
|
||||
case EbvBaryCoordNV: return "BaryCoordKHR";
|
||||
@@ -533,6 +552,13 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
|
||||
case EbvHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV";
|
||||
case EbvHitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV";
|
||||
|
||||
case EbvHitIsSphereNV: return "HitIsSphereNV";
|
||||
case EbvHitIsLSSNV: return "HitIsLSSNV";
|
||||
case EbvHitSpherePositionNV: return "HitSpherePositionNV";
|
||||
case EbvHitSphereRadiusNV: return "HitSphereRadiusNV";
|
||||
case EbvHitLSSPositionsNV: return "HitSpherePositionsNV";
|
||||
case EbvHitLSSRadiiNV: return "HitLSSRadiiNV";
|
||||
|
||||
default: return "unknown built-in variable";
|
||||
}
|
||||
}
|
||||
@@ -585,6 +611,9 @@ __inline bool isTypeFloat(TBasicType type)
|
||||
case EbtFloat:
|
||||
case EbtDouble:
|
||||
case EbtFloat16:
|
||||
case EbtBFloat16:
|
||||
case EbtFloatE5M2:
|
||||
case EbtFloatE4M3:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
@@ -596,7 +625,10 @@ __inline uint32_t GetNumBits(TBasicType type)
|
||||
switch (type) {
|
||||
case EbtInt8:
|
||||
case EbtUint8:
|
||||
case EbtFloatE5M2:
|
||||
case EbtFloatE4M3:
|
||||
return 8;
|
||||
case EbtBFloat16:
|
||||
case EbtFloat16:
|
||||
case EbtInt16:
|
||||
case EbtUint16:
|
||||
|
||||
@@ -899,6 +899,17 @@ public:
|
||||
unionArray = new TConstUnionVector(size, val);
|
||||
}
|
||||
|
||||
TConstUnionArray* clone() const
|
||||
{
|
||||
TConstUnionArray *copy = new TConstUnionArray(size());
|
||||
if (unionArray) {
|
||||
for (const auto i : *unionArray) {
|
||||
copy->unionArray->push_back(i);
|
||||
}
|
||||
}
|
||||
return copy;
|
||||
}
|
||||
|
||||
int size() const { return unionArray ? (int)unionArray->size() : 0; }
|
||||
TConstUnion& operator[](size_t index) { return (*unionArray)[index]; }
|
||||
const TConstUnion& operator[](size_t index) const { return (*unionArray)[index]; }
|
||||
|
||||
@@ -61,6 +61,8 @@
|
||||
// class as the allocator (second) template argument.
|
||||
//
|
||||
|
||||
#include "visibility.h"
|
||||
|
||||
#include <cstddef>
|
||||
#include <cstring>
|
||||
#include <vector>
|
||||
@@ -179,6 +181,7 @@ public:
|
||||
// Call allocate() to actually acquire memory. Returns nullptr if no memory
|
||||
// available, otherwise a properly aligned pointer to 'numBytes' of memory.
|
||||
//
|
||||
GLSLANG_EXPORT_FOR_TESTS
|
||||
void* allocate(size_t numBytes);
|
||||
|
||||
//
|
||||
@@ -255,6 +258,7 @@ private:
|
||||
// different times. But a simple use is to have a global pop
|
||||
// with everyone using the same global allocator.
|
||||
//
|
||||
GLSLANG_EXPORT_FOR_TESTS
|
||||
extern TPoolAllocator& GetThreadPoolAllocator();
|
||||
void SetThreadPoolAllocator(TPoolAllocator* poolAllocator);
|
||||
|
||||
@@ -289,6 +293,7 @@ public:
|
||||
template<class Other>
|
||||
pool_allocator(const pool_allocator<Other>& p) : allocator(p.getAllocator()) { }
|
||||
|
||||
GLSLANG_EXPORT_FOR_TESTS
|
||||
pointer allocate(size_type n) {
|
||||
return reinterpret_cast<pointer>(getAllocator().allocate(n * sizeof(T))); }
|
||||
pointer allocate(size_type n, const void*) {
|
||||
|
||||
+169
-25
@@ -85,6 +85,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
||||
bool image : 1; // image, combined should be false
|
||||
bool combined : 1; // true means texture is combined with a sampler, false means texture with no sampler
|
||||
bool sampler : 1; // true means a pure sampler, other fields should be clear()
|
||||
bool tileQCOM : 1; // is tile shading attachment
|
||||
|
||||
unsigned int vectorSize : 3; // vector return type size.
|
||||
// Some languages support structures as sample results. Storing the whole structure in the
|
||||
@@ -127,6 +128,8 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
||||
bool isShadow() const { return shadow; }
|
||||
bool isArrayed() const { return arrayed; }
|
||||
|
||||
bool isTileAttachmentQCOM() const { return tileQCOM; }
|
||||
|
||||
void clear()
|
||||
{
|
||||
type = EbtVoid;
|
||||
@@ -139,6 +142,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
||||
sampler = false;
|
||||
external = false;
|
||||
yuv = false;
|
||||
tileQCOM = false;
|
||||
|
||||
#ifdef ENABLE_HLSL
|
||||
clearReturnStruct();
|
||||
@@ -220,7 +224,8 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
||||
isCombined() == right.isCombined() &&
|
||||
isPureSampler() == right.isPureSampler() &&
|
||||
isExternal() == right.isExternal() &&
|
||||
isYuv() == right.isYuv()
|
||||
isYuv() == right.isYuv() &&
|
||||
isTileAttachmentQCOM() == right.isTileAttachmentQCOM()
|
||||
#ifdef ENABLE_HLSL
|
||||
&& getVectorSize() == right.getVectorSize() &&
|
||||
getStructReturnIndex() == right.getStructReturnIndex()
|
||||
@@ -246,6 +251,9 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
||||
case EbtInt: s.append("i"); break;
|
||||
case EbtUint: s.append("u"); break;
|
||||
case EbtFloat16: s.append("f16"); break;
|
||||
case EbtBFloat16: s.append("bf16"); break;
|
||||
case EbtFloatE5M2: s.append("fe5m2"); break;
|
||||
case EbtFloatE4M3: s.append("fe4m3"); break;
|
||||
case EbtInt8: s.append("i8"); break;
|
||||
case EbtUint16: s.append("u8"); break;
|
||||
case EbtInt16: s.append("i16"); break;
|
||||
@@ -259,6 +267,8 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
||||
s.append("attachmentEXT");
|
||||
else if (isSubpass())
|
||||
s.append("subpass");
|
||||
else if (isTileAttachmentQCOM())
|
||||
s.append("attachmentQCOM");
|
||||
else
|
||||
s.append("image");
|
||||
} else if (isCombined()) {
|
||||
@@ -552,6 +562,7 @@ public:
|
||||
shadercallcoherent = false;
|
||||
nonprivate = false;
|
||||
volatil = false;
|
||||
nontemporal = false;
|
||||
restrict = false;
|
||||
readonly = false;
|
||||
writeonly = false;
|
||||
@@ -589,6 +600,7 @@ public:
|
||||
bool writeonly : 1;
|
||||
bool coherent : 1;
|
||||
bool volatil : 1;
|
||||
bool nontemporal : 1;
|
||||
bool devicecoherent : 1;
|
||||
bool queuefamilycoherent : 1;
|
||||
bool workgroupcoherent : 1;
|
||||
@@ -603,14 +615,15 @@ public:
|
||||
bool isRestrict() const { return restrict; }
|
||||
bool isCoherent() const { return coherent; }
|
||||
bool isVolatile() const { return volatil; }
|
||||
bool isNonTemporal() const { return nontemporal; }
|
||||
bool isSample() const { return sample; }
|
||||
bool isMemory() const
|
||||
{
|
||||
return shadercallcoherent || subgroupcoherent || workgroupcoherent || queuefamilycoherent || devicecoherent || coherent || volatil || restrict || readonly || writeonly || nonprivate;
|
||||
return shadercallcoherent || subgroupcoherent || workgroupcoherent || queuefamilycoherent || devicecoherent || coherent || volatil || nontemporal || restrict || readonly || writeonly || nonprivate;
|
||||
}
|
||||
bool isMemoryQualifierImageAndSSBOOnly() const
|
||||
{
|
||||
return shadercallcoherent || subgroupcoherent || workgroupcoherent || queuefamilycoherent || devicecoherent || coherent || volatil || restrict || readonly || writeonly;
|
||||
return shadercallcoherent || subgroupcoherent || workgroupcoherent || queuefamilycoherent || devicecoherent || coherent || volatil || nontemporal || restrict || readonly || writeonly;
|
||||
}
|
||||
bool bufferReferenceNeedsVulkanMemoryModel() const
|
||||
{
|
||||
@@ -846,6 +859,8 @@ public:
|
||||
layoutBufferReferenceAlign = layoutBufferReferenceAlignEnd;
|
||||
layoutFormat = ElfNone;
|
||||
|
||||
layoutTileAttachmentQCOM = false;
|
||||
|
||||
clearInterstageLayout();
|
||||
|
||||
layoutSpecConstantId = layoutSpecConstantIdEnd;
|
||||
@@ -947,6 +962,8 @@ public:
|
||||
bool layoutBindlessSampler;
|
||||
bool layoutBindlessImage;
|
||||
|
||||
bool layoutTileAttachmentQCOM;
|
||||
|
||||
bool hasUniformLayout() const
|
||||
{
|
||||
return hasMatrix() ||
|
||||
@@ -1065,6 +1082,10 @@ public:
|
||||
{
|
||||
return layoutBindlessImage;
|
||||
}
|
||||
bool isTileAttachmentQCOM() const
|
||||
{
|
||||
return layoutTileAttachmentQCOM;
|
||||
}
|
||||
|
||||
// GL_EXT_spirv_intrinsics
|
||||
bool hasSpirvDecorate() const { return spirvDecorate != nullptr; }
|
||||
@@ -1278,7 +1299,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
// Qualifiers that don't need to be keep per object. They have shader scope, not object scope.
|
||||
// Qualifiers that don't need to be kept per object. They have shader scope, not object scope.
|
||||
// So, they will not be part of TType, TQualifier, etc.
|
||||
struct TShaderQualifiers {
|
||||
TLayoutGeometry geometry; // geometry/tessellation shader in/out primitives
|
||||
@@ -1308,6 +1329,9 @@ struct TShaderQualifiers {
|
||||
bool layoutDerivativeGroupLinear; // true if layout derivative_group_linearNV set
|
||||
int primitives; // mesh shader "max_primitives"DerivativeGroupLinear; // true if layout derivative_group_linearNV set
|
||||
bool layoutPrimitiveCulling; // true if layout primitive_culling set
|
||||
bool layoutNonCoherentTileAttachmentReadQCOM; // fragment shaders -- per object
|
||||
int layoutTileShadingRateQCOM[3]; // compute shader
|
||||
bool layoutTileShadingRateQCOMNotDefault[3]; // compute shader
|
||||
TLayoutDepth getDepth() const { return layoutDepth; }
|
||||
TLayoutStencil getStencil() const { return layoutStencil; }
|
||||
|
||||
@@ -1344,6 +1368,13 @@ struct TShaderQualifiers {
|
||||
layoutDerivativeGroupQuads = false;
|
||||
layoutDerivativeGroupLinear = false;
|
||||
layoutPrimitiveCulling = false;
|
||||
layoutNonCoherentTileAttachmentReadQCOM = false;
|
||||
layoutTileShadingRateQCOM[0] = 0;
|
||||
layoutTileShadingRateQCOM[1] = 0;
|
||||
layoutTileShadingRateQCOM[2] = 0;
|
||||
layoutTileShadingRateQCOMNotDefault[0] = false;
|
||||
layoutTileShadingRateQCOMNotDefault[1] = false;
|
||||
layoutTileShadingRateQCOMNotDefault[2] = false;
|
||||
primitives = TQualifier::layoutNotSet;
|
||||
interlockOrdering = EioNone;
|
||||
}
|
||||
@@ -1413,6 +1444,15 @@ struct TShaderQualifiers {
|
||||
interlockOrdering = src.interlockOrdering;
|
||||
if (src.layoutPrimitiveCulling)
|
||||
layoutPrimitiveCulling = src.layoutPrimitiveCulling;
|
||||
if (src.layoutNonCoherentTileAttachmentReadQCOM)
|
||||
layoutNonCoherentTileAttachmentReadQCOM = src.layoutNonCoherentTileAttachmentReadQCOM;
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
if (src.layoutTileShadingRateQCOM[i] > 1)
|
||||
layoutTileShadingRateQCOM[i] = src.layoutTileShadingRateQCOM[i];
|
||||
}
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
layoutTileShadingRateQCOMNotDefault[i] = src.layoutTileShadingRateQCOMNotDefault[i] || layoutTileShadingRateQCOMNotDefault[i];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1460,6 +1500,9 @@ public:
|
||||
uint32_t matrixRows : 4;
|
||||
bool coopmatNV : 1;
|
||||
bool coopmatKHR : 1;
|
||||
bool coopvecNV : 1;
|
||||
bool tileAttachmentQCOM: 1;
|
||||
uint32_t tensorRankARM : 4;
|
||||
TArraySizes* arraySizes;
|
||||
const TType* userDef;
|
||||
TSourceLoc loc;
|
||||
@@ -1470,6 +1513,9 @@ public:
|
||||
bool isCoopmat() const { return coopmatNV || coopmatKHR; }
|
||||
bool isCoopmatNV() const { return coopmatNV; }
|
||||
bool isCoopmatKHR() const { return coopmatKHR; }
|
||||
bool isCoopvecNV() const { return coopvecNV; }
|
||||
bool isTensorARM() const { return tensorRankARM; }
|
||||
bool hasTypeParameter() const { return isCoopmat() || isCoopvecNV() || isTensorARM(); }
|
||||
|
||||
bool isTensorLayoutNV() const { return basicType == EbtTensorLayoutNV; }
|
||||
bool isTensorViewNV() const { return basicType == EbtTensorViewNV; }
|
||||
@@ -1486,6 +1532,9 @@ public:
|
||||
typeParameters = nullptr;
|
||||
coopmatNV = false;
|
||||
coopmatKHR = false;
|
||||
coopvecNV = false;
|
||||
tileAttachmentQCOM = false;
|
||||
tensorRankARM = 0;
|
||||
spirvType = nullptr;
|
||||
}
|
||||
|
||||
@@ -1545,8 +1594,8 @@ public:
|
||||
// for "empty" type (no args) or simple scalar/vector/matrix
|
||||
explicit TType(TBasicType t = EbtVoid, TStorageQualifier q = EvqTemporary, int vs = 1, int mc = 0, int mr = 0,
|
||||
bool isVector = false) :
|
||||
basicType(t), vectorSize(static_cast<uint32_t>(vs) & 0b1111), matrixCols(static_cast<uint32_t>(mc) & 0b1111), matrixRows(static_cast<uint32_t>(mr) & 0b1111), vector1(isVector && vs == 1), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false),
|
||||
arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr),
|
||||
basicType(t), vectorSize(static_cast<uint32_t>(vs) & 0b1111), matrixCols(static_cast<uint32_t>(mc) & 0b1111), matrixRows(static_cast<uint32_t>(mr) & 0b1111), vector1(isVector && vs == 1), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false), coopvecNV(false),
|
||||
tileAttachmentQCOM(false), tensorRankARM(0), arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr),
|
||||
spirvType(nullptr)
|
||||
{
|
||||
assert(vs >= 0);
|
||||
@@ -1561,8 +1610,8 @@ public:
|
||||
// for explicit precision qualifier
|
||||
TType(TBasicType t, TStorageQualifier q, TPrecisionQualifier p, int vs = 1, int mc = 0, int mr = 0,
|
||||
bool isVector = false) :
|
||||
basicType(t), vectorSize(static_cast<uint32_t>(vs) & 0b1111), matrixCols(static_cast<uint32_t>(mc) & 0b1111), matrixRows(static_cast<uint32_t>(mr) & 0b1111), vector1(isVector && vs == 1), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false),
|
||||
arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr),
|
||||
basicType(t), vectorSize(static_cast<uint32_t>(vs) & 0b1111), matrixCols(static_cast<uint32_t>(mc) & 0b1111), matrixRows(static_cast<uint32_t>(mr) & 0b1111), vector1(isVector && vs == 1), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false), coopvecNV(false),
|
||||
tileAttachmentQCOM(false), tensorRankARM(0), arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr),
|
||||
spirvType(nullptr)
|
||||
{
|
||||
assert(vs >= 0);
|
||||
@@ -1579,8 +1628,8 @@ public:
|
||||
// for turning a TPublicType into a TType, using a shallow copy
|
||||
explicit TType(const TPublicType& p) :
|
||||
basicType(p.basicType),
|
||||
vectorSize(p.vectorSize), matrixCols(p.matrixCols), matrixRows(p.matrixRows), vector1(false), coopmatNV(p.coopmatNV), coopmatKHR(p.coopmatKHR), coopmatKHRuse(0), coopmatKHRUseValid(false),
|
||||
arraySizes(p.arraySizes), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(p.typeParameters),
|
||||
vectorSize(p.vectorSize), matrixCols(p.matrixCols), matrixRows(p.matrixRows), vector1(false), coopmatNV(p.coopmatNV), coopmatKHR(p.coopmatKHR), coopmatKHRuse(0), coopmatKHRUseValid(false), coopvecNV(p.coopvecNV),
|
||||
tileAttachmentQCOM(p.tileAttachmentQCOM), tensorRankARM(p.tensorRankARM), arraySizes(p.arraySizes), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(p.typeParameters),
|
||||
spirvType(p.spirvType)
|
||||
{
|
||||
if (basicType == EbtSampler)
|
||||
@@ -1630,11 +1679,20 @@ public:
|
||||
coopmatKHRUseValid = true;
|
||||
}
|
||||
}
|
||||
if (p.isCoopvecNV() && p.typeParameters) {
|
||||
basicType = p.typeParameters->basicType;
|
||||
}
|
||||
if (p.isTensorARM() && p.typeParameters) {
|
||||
basicType = p.typeParameters->basicType;
|
||||
if (p.typeParameters->arraySizes->getNumDims() > 0) {
|
||||
tensorRankARM = static_cast<uint32_t>(p.typeParameters->arraySizes->getDimSize(0)) & 0b1111;
|
||||
}
|
||||
}
|
||||
}
|
||||
// for construction of sampler types
|
||||
TType(const TSampler& sampler, TStorageQualifier q = EvqUniform, TArraySizes* as = nullptr) :
|
||||
basicType(EbtSampler), vectorSize(1u), matrixCols(0u), matrixRows(0u), vector1(false), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false),
|
||||
arraySizes(as), structure(nullptr), fieldName(nullptr), typeName(nullptr),
|
||||
basicType(EbtSampler), vectorSize(1u), matrixCols(0u), matrixRows(0u), vector1(false), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false), coopvecNV(false),
|
||||
tileAttachmentQCOM(false), tensorRankARM(0), arraySizes(as), structure(nullptr), fieldName(nullptr), typeName(nullptr),
|
||||
sampler(sampler), typeParameters(nullptr), spirvType(nullptr)
|
||||
{
|
||||
qualifier.clear();
|
||||
@@ -1676,19 +1734,23 @@ public:
|
||||
// dereference from vector to scalar
|
||||
vectorSize = 1;
|
||||
vector1 = false;
|
||||
} else if (isCoopMat()) {
|
||||
} else if (isCoopMat() || isCoopVecNV()) {
|
||||
coopmatNV = false;
|
||||
coopmatKHR = false;
|
||||
coopmatKHRuse = 0;
|
||||
coopmatKHRUseValid = false;
|
||||
coopvecNV = false;
|
||||
typeParameters = nullptr;
|
||||
} else if (isTileAttachmentQCOM()) {
|
||||
tileAttachmentQCOM = false;
|
||||
typeParameters = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
// for making structures, ...
|
||||
TType(TTypeList* userDef, const TString& n) :
|
||||
basicType(EbtStruct), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false),
|
||||
arraySizes(nullptr), structure(userDef), fieldName(nullptr), typeParameters(nullptr),
|
||||
basicType(EbtStruct), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false), coopvecNV(false),
|
||||
tileAttachmentQCOM(false), tensorRankARM(0), arraySizes(nullptr), structure(userDef), fieldName(nullptr), typeParameters(nullptr),
|
||||
spirvType(nullptr)
|
||||
{
|
||||
sampler.clear();
|
||||
@@ -1697,8 +1759,8 @@ public:
|
||||
}
|
||||
// For interface blocks
|
||||
TType(TTypeList* userDef, const TString& n, const TQualifier& q) :
|
||||
basicType(EbtBlock), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false),
|
||||
qualifier(q), arraySizes(nullptr), structure(userDef), fieldName(nullptr), typeParameters(nullptr),
|
||||
basicType(EbtBlock), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false), coopvecNV(false),
|
||||
tileAttachmentQCOM(false), tensorRankARM(0), qualifier(q), arraySizes(nullptr), structure(userDef), fieldName(nullptr), typeParameters(nullptr),
|
||||
spirvType(nullptr)
|
||||
{
|
||||
sampler.clear();
|
||||
@@ -1707,7 +1769,7 @@ public:
|
||||
// for block reference (first parameter must be EbtReference)
|
||||
explicit TType(TBasicType t, const TType &p, const TString& n) :
|
||||
basicType(t), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false),
|
||||
arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr),
|
||||
tileAttachmentQCOM(false), tensorRankARM(0), arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr),
|
||||
spirvType(nullptr)
|
||||
{
|
||||
assert(t == EbtReference);
|
||||
@@ -1745,6 +1807,9 @@ public:
|
||||
coopmatKHR = copyOf.isCoopMatKHR();
|
||||
coopmatKHRuse = copyOf.coopmatKHRuse;
|
||||
coopmatKHRUseValid = copyOf.coopmatKHRUseValid;
|
||||
coopvecNV = copyOf.isCoopVecNV();
|
||||
tileAttachmentQCOM = copyOf.tileAttachmentQCOM;
|
||||
tensorRankARM = copyOf.tensorRankARM;
|
||||
}
|
||||
|
||||
// Make complete copy of the whole type graph rooted at 'copyOf'.
|
||||
@@ -1828,7 +1893,7 @@ public:
|
||||
virtual const TTypeParameters* getTypeParameters() const { return typeParameters; }
|
||||
virtual TTypeParameters* getTypeParameters() { return typeParameters; }
|
||||
|
||||
virtual bool isScalar() const { return ! isVector() && ! isMatrix() && ! isStruct() && ! isArray(); }
|
||||
virtual bool isScalar() const { return ! isVector() && ! isMatrix() && ! isStruct() && ! isArray() && ! isCoopVecNV(); }
|
||||
virtual bool isScalarOrVec1() const { return isScalar() || vector1; }
|
||||
virtual bool isScalarOrVector() const { return !isMatrix() && !isStruct() && !isArray(); }
|
||||
virtual bool isVector() const { return vectorSize > 1u || vector1; }
|
||||
@@ -1842,7 +1907,8 @@ public:
|
||||
virtual void updateImplicitArraySize(int size) { assert(isArray()); arraySizes->updateImplicitSize(size); }
|
||||
virtual void setImplicitlySized(bool isImplicitSized) { arraySizes->setImplicitlySized(isImplicitSized); }
|
||||
virtual bool isStruct() const { return basicType == EbtStruct || basicType == EbtBlock; }
|
||||
virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble || basicType == EbtFloat16; }
|
||||
virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble || basicType == EbtFloat16 ||
|
||||
basicType == EbtBFloat16 || basicType == EbtFloatE5M2 || basicType == EbtFloatE4M3; }
|
||||
virtual bool isIntegerDomain() const
|
||||
{
|
||||
switch (basicType) {
|
||||
@@ -1863,7 +1929,9 @@ public:
|
||||
}
|
||||
virtual bool isOpaque() const { return basicType == EbtSampler
|
||||
|| basicType == EbtAtomicUint || basicType == EbtAccStruct || basicType == EbtRayQuery
|
||||
|| basicType == EbtHitObjectNV; }
|
||||
|| basicType == EbtHitObjectNV || isTileAttachmentQCOM()
|
||||
|| isTensorARM();
|
||||
}
|
||||
virtual bool isBuiltIn() const { return getQualifier().builtIn != EbvNone; }
|
||||
|
||||
virtual bool isAttachmentEXT() const { return basicType == EbtSampler && getSampler().isAttachmentEXT(); }
|
||||
@@ -1879,6 +1947,11 @@ public:
|
||||
bool isCoopMat() const { return coopmatNV || coopmatKHR; }
|
||||
bool isCoopMatNV() const { return coopmatNV; }
|
||||
bool isCoopMatKHR() const { return coopmatKHR; }
|
||||
bool isCoopVecNV() const { return coopvecNV; }
|
||||
bool isTileAttachmentQCOM() const { return tileAttachmentQCOM; }
|
||||
bool isTensorARM() const { return tensorRankARM; }
|
||||
bool hasTypeParameter() const { return isCoopMat() || isCoopVecNV() || isTensorARM(); }
|
||||
int getTensorRankARM() const { return static_cast<int>(tensorRankARM); }
|
||||
bool isReference() const { return getBasicType() == EbtReference; }
|
||||
bool isSpirvType() const { return getBasicType() == EbtSpirvType; }
|
||||
int getCoopMatKHRuse() const { return static_cast<int>(coopmatKHRuse); }
|
||||
@@ -1940,12 +2013,20 @@ public:
|
||||
|
||||
virtual bool containsNonOpaque() const
|
||||
{
|
||||
if (isTensorARM()) {
|
||||
// Tensors have a numerical basicType even though it is Opaque
|
||||
return false;
|
||||
}
|
||||
|
||||
const auto nonOpaque = [](const TType* t) {
|
||||
switch (t->basicType) {
|
||||
case EbtVoid:
|
||||
case EbtFloat:
|
||||
case EbtDouble:
|
||||
case EbtFloat16:
|
||||
case EbtBFloat16:
|
||||
case EbtFloatE5M2:
|
||||
case EbtFloatE4M3:
|
||||
case EbtInt8:
|
||||
case EbtUint8:
|
||||
case EbtInt16:
|
||||
@@ -1978,6 +2059,10 @@ public:
|
||||
{
|
||||
return containsBasicType(EbtFloat16);
|
||||
}
|
||||
bool containsBFloat16() const
|
||||
{
|
||||
return containsBasicType(EbtBFloat16);
|
||||
}
|
||||
bool contains64BitInt() const
|
||||
{
|
||||
return containsBasicType(EbtInt64) || containsBasicType(EbtUint64);
|
||||
@@ -1994,6 +2079,10 @@ public:
|
||||
{
|
||||
return contains([](const TType* t) { return t->coopmatNV || t->coopmatKHR; } );
|
||||
}
|
||||
bool containsCoopVec() const
|
||||
{
|
||||
return contains([](const TType* t) { return t->coopvecNV; } );
|
||||
}
|
||||
bool containsReference() const
|
||||
{
|
||||
return containsBasicType(EbtReference);
|
||||
@@ -2095,6 +2184,9 @@ public:
|
||||
case EbtVoid: return "void";
|
||||
case EbtDouble: return "double";
|
||||
case EbtFloat16: return "float16_t";
|
||||
case EbtBFloat16: return "bfloat16_t";
|
||||
case EbtFloatE5M2: return "floate5m2_t";
|
||||
case EbtFloatE4M3: return "floate4m3_t";
|
||||
case EbtInt8: return "int8_t";
|
||||
case EbtUint8: return "uint8_t";
|
||||
case EbtInt16: return "int16_t";
|
||||
@@ -2113,6 +2205,8 @@ public:
|
||||
case EbtCoopmat: return "coopmat";
|
||||
case EbtTensorLayoutNV: return "tensorLayoutNV";
|
||||
case EbtTensorViewNV: return "tensorViewNV";
|
||||
case EbtCoopvecNV: return "coopvecNV";
|
||||
case EbtTensorARM: return "tensorARM";
|
||||
default: return "unknown type";
|
||||
}
|
||||
}
|
||||
@@ -2218,7 +2312,7 @@ public:
|
||||
appendStr(" layoutSecondaryViewportRelativeOffset=");
|
||||
appendInt(qualifier.layoutSecondaryViewportRelativeOffset);
|
||||
}
|
||||
|
||||
|
||||
if (qualifier.layoutShaderRecord)
|
||||
appendStr(" shaderRecordNV");
|
||||
if (qualifier.layoutFullQuads)
|
||||
@@ -2281,6 +2375,8 @@ public:
|
||||
appendStr(" nonprivate");
|
||||
if (qualifier.volatil)
|
||||
appendStr(" volatile");
|
||||
if (qualifier.nontemporal)
|
||||
appendStr(" nontemporal");
|
||||
if (qualifier.restrict)
|
||||
appendStr(" restrict");
|
||||
if (qualifier.readonly)
|
||||
@@ -2431,6 +2527,10 @@ public:
|
||||
appendStr(" ");
|
||||
appendStr("tensorViewNV");
|
||||
}
|
||||
if (isCoopVecNV()) {
|
||||
appendStr(" ");
|
||||
appendStr("coopvecNV");
|
||||
}
|
||||
|
||||
appendStr("<");
|
||||
for (int i = 0; i < (int)typeParameters->arraySizes->getNumDims(); ++i) {
|
||||
@@ -2512,7 +2612,9 @@ public:
|
||||
{
|
||||
uint32_t components = 0;
|
||||
|
||||
if (getBasicType() == EbtStruct || getBasicType() == EbtBlock) {
|
||||
if (isCoopVecNV()) {
|
||||
components = typeParameters->arraySizes->getDimSize(0);
|
||||
} else if (getBasicType() == EbtStruct || getBasicType() == EbtBlock) {
|
||||
for (TTypeList::const_iterator tl = getStruct()->begin(); tl != getStruct()->end(); tl++)
|
||||
components += ((*tl).type)->computeNumComponents();
|
||||
} else if (matrixCols)
|
||||
@@ -2716,6 +2818,8 @@ public:
|
||||
vector1 == right.vector1 &&
|
||||
isCoopMatNV() == right.isCoopMatNV() &&
|
||||
isCoopMatKHR() == right.isCoopMatKHR() &&
|
||||
isCoopVecNV() == right.isCoopVecNV() &&
|
||||
isTensorARM() == right.isTensorARM() &&
|
||||
sameStructType(right, lpidx, rpidx) &&
|
||||
sameReferenceType(right);
|
||||
}
|
||||
@@ -2737,6 +2841,18 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
// See if a cooperative vector type parameter with unspecified parameters is
|
||||
// an OK function parameter
|
||||
bool coopVecParameterOK(const TType& right) const
|
||||
{
|
||||
if (isCoopVecNV() && right.isCoopVecNV()) {
|
||||
return ((getBasicType() == right.getBasicType()) || (getBasicType() == EbtCoopvecNV) ||
|
||||
(right.getBasicType() == EbtCoopvecNV)) &&
|
||||
typeParameters == nullptr && right.typeParameters != nullptr;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool sameCoopMatBaseType(const TType &right) const {
|
||||
bool rv = false;
|
||||
|
||||
@@ -2751,8 +2867,8 @@ public:
|
||||
else
|
||||
rv = false;
|
||||
} else if (isCoopMatKHR() && right.isCoopMatKHR()) {
|
||||
if (getBasicType() == EbtFloat || getBasicType() == EbtFloat16)
|
||||
rv = right.getBasicType() == EbtFloat || right.getBasicType() == EbtFloat16 || right.getBasicType() == EbtCoopmat;
|
||||
if (isFloatingDomain())
|
||||
rv = right.isFloatingDomain() || right.getBasicType() == EbtCoopmat;
|
||||
else if (getBasicType() == EbtUint || getBasicType() == EbtUint8 || getBasicType() == EbtUint16)
|
||||
rv = right.getBasicType() == EbtUint || right.getBasicType() == EbtUint8 || right.getBasicType() == EbtUint16 || right.getBasicType() == EbtCoopmat;
|
||||
else if (getBasicType() == EbtInt || getBasicType() == EbtInt8 || getBasicType() == EbtInt16)
|
||||
@@ -2771,9 +2887,34 @@ public:
|
||||
if (isTensorViewNV()) {
|
||||
return right.isTensorViewNV() && right.typeParameters == nullptr && typeParameters != nullptr;
|
||||
}
|
||||
if (isTensorARM()) {
|
||||
return right.isTensorARM() && right.typeParameters == nullptr && typeParameters != nullptr;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool sameTensorBaseTypeARM(const TType &right) const {
|
||||
return (typeParameters == nullptr || right.typeParameters == nullptr ||
|
||||
(tensorRankARM == right.tensorRankARM && getBasicType() == right.getBasicType()));
|
||||
}
|
||||
|
||||
bool sameCoopVecBaseType(const TType &right) const {
|
||||
bool rv = false;
|
||||
|
||||
if (isCoopVecNV() && right.isCoopVecNV()) {
|
||||
if (getBasicType() == EbtFloat || getBasicType() == EbtFloat16)
|
||||
rv = right.getBasicType() == EbtFloat || right.getBasicType() == EbtFloat16 || right.getBasicType() == EbtCoopvecNV;
|
||||
else if (getBasicType() == EbtUint || getBasicType() == EbtUint8 || getBasicType() == EbtUint16)
|
||||
rv = right.getBasicType() == EbtUint || right.getBasicType() == EbtUint8 || right.getBasicType() == EbtUint16 || right.getBasicType() == EbtCoopvecNV;
|
||||
else if (getBasicType() == EbtInt || getBasicType() == EbtInt8 || getBasicType() == EbtInt16)
|
||||
rv = right.getBasicType() == EbtInt || right.getBasicType() == EbtInt8 || right.getBasicType() == EbtInt16 || right.getBasicType() == EbtCoopvecNV;
|
||||
else
|
||||
rv = false;
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
bool sameCoopMatUse(const TType &right) const {
|
||||
return coopmatKHRuse == right.coopmatKHRuse;
|
||||
}
|
||||
@@ -2903,6 +3044,9 @@ protected:
|
||||
bool coopmatKHR : 1;
|
||||
uint32_t coopmatKHRuse : 3; // Accepts one of three values: 0, 1, 2 (gl_MatrixUseA, gl_MatrixUseB, gl_MatrixUseAccumulator)
|
||||
bool coopmatKHRUseValid : 1; // True if coopmatKHRuse has been set
|
||||
bool coopvecNV : 1;
|
||||
bool tileAttachmentQCOM : 1;
|
||||
uint32_t tensorRankARM : 4; // 0 means not a tensor; non-zero indicates the tensor rank.
|
||||
TQualifier qualifier;
|
||||
|
||||
TArraySizes* arraySizes; // nullptr unless an array; can be shared across types
|
||||
|
||||
@@ -284,7 +284,7 @@ GLSLANG_EXPORT const char* glslang_program_SPIRV_get_messages(glslang_program_t*
|
||||
GLSLANG_EXPORT const char* glslang_program_get_info_log(glslang_program_t* program);
|
||||
GLSLANG_EXPORT const char* glslang_program_get_info_debug_log(glslang_program_t* program);
|
||||
|
||||
GLSLANG_EXPORT glslang_mapper_t* glslang_glsl_mapper_create();
|
||||
GLSLANG_EXPORT glslang_mapper_t* glslang_glsl_mapper_create(void);
|
||||
GLSLANG_EXPORT void glslang_glsl_mapper_delete(glslang_mapper_t* mapper);
|
||||
|
||||
GLSLANG_EXPORT glslang_resolver_t* glslang_glsl_resolver_create(glslang_program_t* program, glslang_stage_t stage);
|
||||
|
||||
@@ -118,8 +118,9 @@ typedef enum {
|
||||
GLSLANG_TARGET_VULKAN_1_1 = (1 << 22) | (1 << 12),
|
||||
GLSLANG_TARGET_VULKAN_1_2 = (1 << 22) | (2 << 12),
|
||||
GLSLANG_TARGET_VULKAN_1_3 = (1 << 22) | (3 << 12),
|
||||
GLSLANG_TARGET_VULKAN_1_4 = (1 << 22) | (4 << 12),
|
||||
GLSLANG_TARGET_OPENGL_450 = 450,
|
||||
LAST_ELEMENT_MARKER(GLSLANG_TARGET_CLIENT_VERSION_COUNT = 5),
|
||||
LAST_ELEMENT_MARKER(GLSLANG_TARGET_CLIENT_VERSION_COUNT = 6),
|
||||
} glslang_target_client_version_t;
|
||||
|
||||
/* SH_TARGET_LanguageVersion counterpart */
|
||||
@@ -177,6 +178,7 @@ typedef enum {
|
||||
GLSLANG_MSG_ABSOLUTE_PATH = (1 << 16),
|
||||
GLSLANG_MSG_DISPLAY_ERROR_COLUMN = (1 << 17),
|
||||
GLSLANG_MSG_LINK_TIME_OPTIMIZATION_BIT = (1 << 18),
|
||||
GLSLANG_MSG_VALIDATE_CROSS_STAGE_IO_BIT = (1 << 19),
|
||||
LAST_ELEMENT_MARKER(GLSLANG_MSG_COUNT),
|
||||
} glslang_messages_t;
|
||||
|
||||
|
||||
@@ -387,6 +387,11 @@ enum TOperator {
|
||||
EOpSubgroupPartitionedExclusiveXor,
|
||||
|
||||
EOpSubgroupGuardStop,
|
||||
|
||||
// Integer dot product
|
||||
EOpDotPackedEXT,
|
||||
EOpDotAccSatEXT,
|
||||
EOpDotPackedAccSatEXT,
|
||||
|
||||
EOpMinInvocations,
|
||||
EOpMaxInvocations,
|
||||
@@ -467,6 +472,17 @@ enum TOperator {
|
||||
EOpTensorViewSetStrideNV,
|
||||
EOpTensorViewSetClipNV,
|
||||
|
||||
EOpCooperativeVectorMatMulNV,
|
||||
EOpCooperativeVectorMatMulAddNV,
|
||||
EOpCooperativeVectorLoadNV,
|
||||
EOpCooperativeVectorStoreNV,
|
||||
EOpCooperativeVectorOuterProductAccumulateNV,
|
||||
EOpCooperativeVectorReduceSumAccumulateNV,
|
||||
|
||||
EOpTensorReadARM,
|
||||
EOpTensorWriteARM,
|
||||
EOpTensorSizeARM,
|
||||
|
||||
EOpBeginInvocationInterlock, // Fragment only
|
||||
EOpEndInvocationInterlock, // Fragment only
|
||||
|
||||
@@ -599,13 +615,27 @@ enum TOperator {
|
||||
EOpConstructF16Mat4x2,
|
||||
EOpConstructF16Mat4x3,
|
||||
EOpConstructF16Mat4x4,
|
||||
EOpConstructBFloat16,
|
||||
EOpConstructBF16Vec2,
|
||||
EOpConstructBF16Vec3,
|
||||
EOpConstructBF16Vec4,
|
||||
EOpConstructFloatE5M2,
|
||||
EOpConstructFloatE5M2Vec2,
|
||||
EOpConstructFloatE5M2Vec3,
|
||||
EOpConstructFloatE5M2Vec4,
|
||||
EOpConstructFloatE4M3,
|
||||
EOpConstructFloatE4M3Vec2,
|
||||
EOpConstructFloatE4M3Vec3,
|
||||
EOpConstructFloatE4M3Vec4,
|
||||
EOpConstructStruct,
|
||||
EOpConstructTextureSampler,
|
||||
EOpConstructNonuniform, // expected to be transformed away, not present in final AST
|
||||
EOpConstructReference,
|
||||
EOpConstructCooperativeMatrixNV,
|
||||
EOpConstructCooperativeMatrixKHR,
|
||||
EOpConstructCooperativeVectorNV,
|
||||
EOpConstructAccStruct,
|
||||
EOpConstructSaturated,
|
||||
EOpConstructGuardEnd,
|
||||
|
||||
//
|
||||
@@ -954,6 +984,25 @@ enum TOperator {
|
||||
EOpImageBlockMatchWindowSADQCOM,
|
||||
EOpImageBlockMatchGatherSSDQCOM,
|
||||
EOpImageBlockMatchGatherSADQCOM,
|
||||
|
||||
// GL_NV_cluster_acceleration_structure
|
||||
EOpRayQueryGetIntersectionClusterIdNV,
|
||||
EOpHitObjectGetClusterIdNV,
|
||||
|
||||
// GL_NV_linear_swept_spheres
|
||||
EOpRayQueryGetIntersectionSpherePositionNV,
|
||||
EOpRayQueryGetIntersectionSphereRadiusNV,
|
||||
EOpRayQueryGetIntersectionLSSHitValueNV,
|
||||
EOpRayQueryGetIntersectionLSSPositionsNV,
|
||||
EOpRayQueryGetIntersectionLSSRadiiNV,
|
||||
EOpRayQueryIsSphereHitNV,
|
||||
EOpRayQueryIsLSSHitNV,
|
||||
EOpHitObjectGetSpherePositionNV,
|
||||
EOpHitObjectGetSphereRadiusNV,
|
||||
EOpHitObjectGetLSSPositionsNV,
|
||||
EOpHitObjectGetLSSRadiiNV,
|
||||
EOpHitObjectIsSphereHitNV,
|
||||
EOpHitObjectIsLSSHitNV,
|
||||
};
|
||||
|
||||
inline bool IsOpNumericConv(const TOperator op) {
|
||||
@@ -1059,6 +1108,7 @@ public:
|
||||
virtual int getVectorSize() const { return type.getVectorSize(); }
|
||||
virtual int getMatrixCols() const { return type.getMatrixCols(); }
|
||||
virtual int getMatrixRows() const { return type.getMatrixRows(); }
|
||||
virtual int getTensorRankARM() const { return type.getTensorRankARM(); }
|
||||
virtual bool isMatrix() const { return type.isMatrix(); }
|
||||
virtual bool isArray() const { return type.isArray(); }
|
||||
virtual bool isVector() const { return type.isVector(); }
|
||||
|
||||
@@ -407,7 +407,7 @@ public:
|
||||
void setDefaultPrecision(const TSourceLoc&, TPublicType&, TPrecisionQualifier);
|
||||
int computeSamplerTypeIndex(TSampler&);
|
||||
TPrecisionQualifier getDefaultPrecision(TPublicType&);
|
||||
void precisionQualifierCheck(const TSourceLoc&, TBasicType, TQualifier&, bool isCoopMatOrVec);
|
||||
void precisionQualifierCheck(const TSourceLoc&, TBasicType, TQualifier&, bool hasTypeParameter);
|
||||
void parameterTypeCheck(const TSourceLoc&, TStorageQualifier qualifier, const TType& type);
|
||||
bool containsFieldWithBasicType(const TType& type ,TBasicType basicType);
|
||||
TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&);
|
||||
@@ -450,6 +450,9 @@ public:
|
||||
TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&);
|
||||
TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&);
|
||||
TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset);
|
||||
void makeVariadic(TFunction *F, const TSourceLoc &loc);
|
||||
TParameter getParamWithDefault(const TPublicType& ty, TString* identifier, TIntermTyped* initializer,
|
||||
const TSourceLoc& loc);
|
||||
void inheritMemoryQualifiers(const TQualifier& from, TQualifier& to);
|
||||
void declareBlock(const TSourceLoc&, TTypeList& typeList, const TString* instanceName = nullptr, TArraySizes* arraySizes = nullptr);
|
||||
void blockStorageRemap(const TSourceLoc&, const TString*, TQualifier&);
|
||||
|
||||
@@ -232,6 +232,13 @@ struct TParameter {
|
||||
name = nullptr;
|
||||
type = param.type->clone();
|
||||
defaultValue = param.defaultValue;
|
||||
if (defaultValue) {
|
||||
// The defaultValue of a builtin is created in a TPoolAllocator that no longer exists
|
||||
// when parsing the user program, so make a deep copy.
|
||||
if (const auto *constUnion = defaultValue->getAsConstantUnion()) {
|
||||
defaultValue = new TIntermConstantUnion(*constUnion->getConstArray().clone(), constUnion->getType());
|
||||
}
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
TBuiltInVariable getDeclaredBuiltIn() const { return type->getQualifier().declaredBuiltIn; }
|
||||
@@ -245,12 +252,12 @@ public:
|
||||
explicit TFunction(TOperator o) :
|
||||
TSymbol(nullptr),
|
||||
op(o),
|
||||
defined(false), prototyped(false), implicitThis(false), illegalImplicitThis(false), defaultParamCount(0) { }
|
||||
defined(false), prototyped(false), implicitThis(false), illegalImplicitThis(false), variadic(false), defaultParamCount(0) { }
|
||||
TFunction(const TString *name, const TType& retType, TOperator tOp = EOpNull) :
|
||||
TSymbol(name),
|
||||
mangledName(*name + '('),
|
||||
op(tOp),
|
||||
defined(false), prototyped(false), implicitThis(false), illegalImplicitThis(false), defaultParamCount(0),
|
||||
defined(false), prototyped(false), implicitThis(false), illegalImplicitThis(false), variadic(false), defaultParamCount(0),
|
||||
linkType(ELinkNone)
|
||||
{
|
||||
returnType.shallowCopy(retType);
|
||||
@@ -268,6 +275,7 @@ public:
|
||||
virtual void addParameter(TParameter& p)
|
||||
{
|
||||
assert(writable);
|
||||
assert(!variadic && "cannot add more parameters if function is marked variadic");
|
||||
parameters.push_back(p);
|
||||
p.type->appendMangledName(mangledName);
|
||||
|
||||
@@ -310,6 +318,13 @@ public:
|
||||
virtual bool hasImplicitThis() const { return implicitThis; }
|
||||
virtual void setIllegalImplicitThis() { assert(writable); illegalImplicitThis = true; }
|
||||
virtual bool hasIllegalImplicitThis() const { return illegalImplicitThis; }
|
||||
virtual void setVariadic() {
|
||||
assert(writable);
|
||||
assert(!variadic && "function was already marked variadic");
|
||||
variadic = true;
|
||||
mangledName += 'z';
|
||||
}
|
||||
virtual bool isVariadic() const { return variadic; }
|
||||
|
||||
// Return total number of parameters
|
||||
virtual int getParamCount() const { return static_cast<int>(parameters.size()); }
|
||||
@@ -352,6 +367,7 @@ protected:
|
||||
// even if it finds member variables in the symbol table.
|
||||
// This is important for a static member function that has member variables in scope,
|
||||
// but is not allowed to use them, or see hidden symbols instead.
|
||||
bool variadic;
|
||||
int defaultParamCount;
|
||||
|
||||
TSpirvInstruction spirvInst; // SPIR-V instruction qualifiers
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
// Copyright (C) 2017, 2022-2024 Arm Limited.
|
||||
// Copyright (C) 2015-2018 Google, Inc.
|
||||
// Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||
// Modifications Copyright (C) 2024 Valve Corporation.
|
||||
//
|
||||
// All rights reserved.
|
||||
//
|
||||
@@ -223,6 +224,8 @@ const char* const E_GL_EXT_maximal_reconvergence = "GL_EXT_maximal_re
|
||||
const char* const E_GL_EXT_expect_assume = "GL_EXT_expect_assume";
|
||||
const char* const E_GL_EXT_control_flow_attributes2 = "GL_EXT_control_flow_attributes2";
|
||||
const char* const E_GL_EXT_spec_constant_composites = "GL_EXT_spec_constant_composites";
|
||||
const char* const E_GL_EXT_texture_offset_non_const = "GL_EXT_texture_offset_non_const";
|
||||
const char* const E_GL_EXT_nontemporal_keyword = "GL_EXT_nontemporal_keyword";
|
||||
|
||||
// Arrays of extensions for the above viewportEXTs duplications
|
||||
|
||||
@@ -283,9 +286,14 @@ const char* const E_GL_EXT_ray_tracing_position_fetch = "GL_EXT_ray_tr
|
||||
const char* const E_GL_NV_displacement_micromap = "GL_NV_displacement_micromap";
|
||||
const char* const E_GL_NV_shader_atomic_fp16_vector = "GL_NV_shader_atomic_fp16_vector";
|
||||
const char* const E_GL_NV_cooperative_matrix2 = "GL_NV_cooperative_matrix2";
|
||||
const char* const E_GL_NV_cooperative_vector = "GL_NV_cooperative_vector";
|
||||
const char* const E_GL_NV_cluster_acceleration_structure = "GL_NV_cluster_acceleration_structure";
|
||||
const char* const E_GL_NV_linear_swept_spheres = "GL_NV_linear_swept_spheres";
|
||||
const char* const E_GL_NV_gpu_shader5 = "GL_NV_gpu_shader5";
|
||||
|
||||
// ARM
|
||||
const char* const E_GL_ARM_shader_core_builtins = "GL_ARM_shader_core_builtins";
|
||||
const char* const E_GL_ARM_tensors = "GL_ARM_tensors";
|
||||
|
||||
// Arrays of extensions for the above viewportEXTs duplications
|
||||
|
||||
@@ -295,6 +303,7 @@ const int Num_viewportEXTs = sizeof(viewportEXTs) / sizeof(viewportEXTs[0]);
|
||||
|
||||
const char* const E_GL_QCOM_image_processing = "GL_QCOM_image_processing";
|
||||
const char* const E_GL_QCOM_image_processing2 = "GL_QCOM_image_processing2";
|
||||
const char* const E_GL_QCOM_tile_shading = "GL_QCOM_tile_shading";
|
||||
|
||||
// AEP
|
||||
const char* const E_GL_ANDROID_extension_pack_es31a = "GL_ANDROID_extension_pack_es31a";
|
||||
@@ -348,6 +357,12 @@ const char* const E_GL_EXT_shader_tile_image = "GL_EXT_shader_tile_image";
|
||||
|
||||
const char* const E_GL_EXT_texture_shadow_lod = "GL_EXT_texture_shadow_lod";
|
||||
|
||||
const char* const E_GL_EXT_integer_dot_product = "GL_EXT_integer_dot_product";
|
||||
|
||||
const char* const E_GL_EXT_bfloat16 = "GL_EXT_bfloat16";
|
||||
const char* const E_GL_EXT_float_e5m2 = "GL_EXT_float_e5m2";
|
||||
const char* const E_GL_EXT_float_e4m3 = "GL_EXT_float_e4m3";
|
||||
|
||||
// Arrays of extensions for the above AEP duplications
|
||||
|
||||
const char* const AEP_geometry_shader[] = { E_GL_EXT_geometry_shader, E_GL_OES_geometry_shader };
|
||||
@@ -359,6 +374,9 @@ const int Num_AEP_geometry_point_size = sizeof(AEP_geometry_point_size)/sizeof(A
|
||||
const char* const AEP_gpu_shader5[] = { E_GL_EXT_gpu_shader5, E_GL_OES_gpu_shader5 };
|
||||
const int Num_AEP_gpu_shader5 = sizeof(AEP_gpu_shader5)/sizeof(AEP_gpu_shader5[0]);
|
||||
|
||||
const char* const AEP_core_gpu_shader5[] = { E_GL_ARB_gpu_shader5, E_GL_NV_gpu_shader5};
|
||||
const int Num_AEP_core_gpu_shader5 = sizeof(AEP_core_gpu_shader5)/sizeof(AEP_core_gpu_shader5[0]);
|
||||
|
||||
const char* const AEP_primitive_bounding_box[] = { E_GL_EXT_primitive_bounding_box, E_GL_OES_primitive_bounding_box };
|
||||
const int Num_AEP_primitive_bounding_box = sizeof(AEP_primitive_bounding_box)/sizeof(AEP_primitive_bounding_box[0]);
|
||||
|
||||
|
||||
@@ -114,417 +114,426 @@ extern int yydebug;
|
||||
UTEXTURE2DARRAY = 315, /* UTEXTURE2DARRAY */
|
||||
ATTRIBUTE = 316, /* ATTRIBUTE */
|
||||
VARYING = 317, /* VARYING */
|
||||
BFLOAT16_T = 318, /* BFLOAT16_T */
|
||||
FLOAT16_T = 319, /* FLOAT16_T */
|
||||
FLOAT32_T = 320, /* FLOAT32_T */
|
||||
DOUBLE = 321, /* DOUBLE */
|
||||
FLOAT64_T = 322, /* FLOAT64_T */
|
||||
INT64_T = 323, /* INT64_T */
|
||||
UINT64_T = 324, /* UINT64_T */
|
||||
INT32_T = 325, /* INT32_T */
|
||||
UINT32_T = 326, /* UINT32_T */
|
||||
INT16_T = 327, /* INT16_T */
|
||||
UINT16_T = 328, /* UINT16_T */
|
||||
INT8_T = 329, /* INT8_T */
|
||||
UINT8_T = 330, /* UINT8_T */
|
||||
I64VEC2 = 331, /* I64VEC2 */
|
||||
I64VEC3 = 332, /* I64VEC3 */
|
||||
I64VEC4 = 333, /* I64VEC4 */
|
||||
U64VEC2 = 334, /* U64VEC2 */
|
||||
U64VEC3 = 335, /* U64VEC3 */
|
||||
U64VEC4 = 336, /* U64VEC4 */
|
||||
I32VEC2 = 337, /* I32VEC2 */
|
||||
I32VEC3 = 338, /* I32VEC3 */
|
||||
I32VEC4 = 339, /* I32VEC4 */
|
||||
U32VEC2 = 340, /* U32VEC2 */
|
||||
U32VEC3 = 341, /* U32VEC3 */
|
||||
U32VEC4 = 342, /* U32VEC4 */
|
||||
I16VEC2 = 343, /* I16VEC2 */
|
||||
I16VEC3 = 344, /* I16VEC3 */
|
||||
I16VEC4 = 345, /* I16VEC4 */
|
||||
U16VEC2 = 346, /* U16VEC2 */
|
||||
U16VEC3 = 347, /* U16VEC3 */
|
||||
U16VEC4 = 348, /* U16VEC4 */
|
||||
I8VEC2 = 349, /* I8VEC2 */
|
||||
I8VEC3 = 350, /* I8VEC3 */
|
||||
I8VEC4 = 351, /* I8VEC4 */
|
||||
U8VEC2 = 352, /* U8VEC2 */
|
||||
U8VEC3 = 353, /* U8VEC3 */
|
||||
U8VEC4 = 354, /* U8VEC4 */
|
||||
DVEC2 = 355, /* DVEC2 */
|
||||
DVEC3 = 356, /* DVEC3 */
|
||||
DVEC4 = 357, /* DVEC4 */
|
||||
DMAT2 = 358, /* DMAT2 */
|
||||
DMAT3 = 359, /* DMAT3 */
|
||||
DMAT4 = 360, /* DMAT4 */
|
||||
BF16VEC2 = 361, /* BF16VEC2 */
|
||||
BF16VEC3 = 362, /* BF16VEC3 */
|
||||
BF16VEC4 = 363, /* BF16VEC4 */
|
||||
F16VEC2 = 364, /* F16VEC2 */
|
||||
F16VEC3 = 365, /* F16VEC3 */
|
||||
F16VEC4 = 366, /* F16VEC4 */
|
||||
F16MAT2 = 367, /* F16MAT2 */
|
||||
F16MAT3 = 368, /* F16MAT3 */
|
||||
F16MAT4 = 369, /* F16MAT4 */
|
||||
F32VEC2 = 370, /* F32VEC2 */
|
||||
F32VEC3 = 371, /* F32VEC3 */
|
||||
F32VEC4 = 372, /* F32VEC4 */
|
||||
F32MAT2 = 373, /* F32MAT2 */
|
||||
F32MAT3 = 374, /* F32MAT3 */
|
||||
F32MAT4 = 375, /* F32MAT4 */
|
||||
F64VEC2 = 376, /* F64VEC2 */
|
||||
F64VEC3 = 377, /* F64VEC3 */
|
||||
F64VEC4 = 378, /* F64VEC4 */
|
||||
F64MAT2 = 379, /* F64MAT2 */
|
||||
F64MAT3 = 380, /* F64MAT3 */
|
||||
F64MAT4 = 381, /* F64MAT4 */
|
||||
DMAT2X2 = 382, /* DMAT2X2 */
|
||||
DMAT2X3 = 383, /* DMAT2X3 */
|
||||
DMAT2X4 = 384, /* DMAT2X4 */
|
||||
DMAT3X2 = 385, /* DMAT3X2 */
|
||||
DMAT3X3 = 386, /* DMAT3X3 */
|
||||
DMAT3X4 = 387, /* DMAT3X4 */
|
||||
DMAT4X2 = 388, /* DMAT4X2 */
|
||||
DMAT4X3 = 389, /* DMAT4X3 */
|
||||
DMAT4X4 = 390, /* DMAT4X4 */
|
||||
F16MAT2X2 = 391, /* F16MAT2X2 */
|
||||
F16MAT2X3 = 392, /* F16MAT2X3 */
|
||||
F16MAT2X4 = 393, /* F16MAT2X4 */
|
||||
F16MAT3X2 = 394, /* F16MAT3X2 */
|
||||
F16MAT3X3 = 395, /* F16MAT3X3 */
|
||||
F16MAT3X4 = 396, /* F16MAT3X4 */
|
||||
F16MAT4X2 = 397, /* F16MAT4X2 */
|
||||
F16MAT4X3 = 398, /* F16MAT4X3 */
|
||||
F16MAT4X4 = 399, /* F16MAT4X4 */
|
||||
F32MAT2X2 = 400, /* F32MAT2X2 */
|
||||
F32MAT2X3 = 401, /* F32MAT2X3 */
|
||||
F32MAT2X4 = 402, /* F32MAT2X4 */
|
||||
F32MAT3X2 = 403, /* F32MAT3X2 */
|
||||
F32MAT3X3 = 404, /* F32MAT3X3 */
|
||||
F32MAT3X4 = 405, /* F32MAT3X4 */
|
||||
F32MAT4X2 = 406, /* F32MAT4X2 */
|
||||
F32MAT4X3 = 407, /* F32MAT4X3 */
|
||||
F32MAT4X4 = 408, /* F32MAT4X4 */
|
||||
F64MAT2X2 = 409, /* F64MAT2X2 */
|
||||
F64MAT2X3 = 410, /* F64MAT2X3 */
|
||||
F64MAT2X4 = 411, /* F64MAT2X4 */
|
||||
F64MAT3X2 = 412, /* F64MAT3X2 */
|
||||
F64MAT3X3 = 413, /* F64MAT3X3 */
|
||||
F64MAT3X4 = 414, /* F64MAT3X4 */
|
||||
F64MAT4X2 = 415, /* F64MAT4X2 */
|
||||
F64MAT4X3 = 416, /* F64MAT4X3 */
|
||||
F64MAT4X4 = 417, /* F64MAT4X4 */
|
||||
ATOMIC_UINT = 418, /* ATOMIC_UINT */
|
||||
ACCSTRUCTNV = 419, /* ACCSTRUCTNV */
|
||||
ACCSTRUCTEXT = 420, /* ACCSTRUCTEXT */
|
||||
RAYQUERYEXT = 421, /* RAYQUERYEXT */
|
||||
FCOOPMATNV = 422, /* FCOOPMATNV */
|
||||
ICOOPMATNV = 423, /* ICOOPMATNV */
|
||||
UCOOPMATNV = 424, /* UCOOPMATNV */
|
||||
COOPMAT = 425, /* COOPMAT */
|
||||
COOPVECNV = 426, /* COOPVECNV */
|
||||
HITOBJECTNV = 427, /* HITOBJECTNV */
|
||||
HITOBJECTATTRNV = 428, /* HITOBJECTATTRNV */
|
||||
TENSORLAYOUTNV = 429, /* TENSORLAYOUTNV */
|
||||
TENSORVIEWNV = 430, /* TENSORVIEWNV */
|
||||
SAMPLERCUBEARRAY = 431, /* SAMPLERCUBEARRAY */
|
||||
SAMPLERCUBEARRAYSHADOW = 432, /* SAMPLERCUBEARRAYSHADOW */
|
||||
ISAMPLERCUBEARRAY = 433, /* ISAMPLERCUBEARRAY */
|
||||
USAMPLERCUBEARRAY = 434, /* USAMPLERCUBEARRAY */
|
||||
SAMPLER1D = 435, /* SAMPLER1D */
|
||||
SAMPLER1DARRAY = 436, /* SAMPLER1DARRAY */
|
||||
SAMPLER1DARRAYSHADOW = 437, /* SAMPLER1DARRAYSHADOW */
|
||||
ISAMPLER1D = 438, /* ISAMPLER1D */
|
||||
SAMPLER1DSHADOW = 439, /* SAMPLER1DSHADOW */
|
||||
SAMPLER2DRECT = 440, /* SAMPLER2DRECT */
|
||||
SAMPLER2DRECTSHADOW = 441, /* SAMPLER2DRECTSHADOW */
|
||||
ISAMPLER2DRECT = 442, /* ISAMPLER2DRECT */
|
||||
USAMPLER2DRECT = 443, /* USAMPLER2DRECT */
|
||||
SAMPLERBUFFER = 444, /* SAMPLERBUFFER */
|
||||
ISAMPLERBUFFER = 445, /* ISAMPLERBUFFER */
|
||||
USAMPLERBUFFER = 446, /* USAMPLERBUFFER */
|
||||
SAMPLER2DMS = 447, /* SAMPLER2DMS */
|
||||
ISAMPLER2DMS = 448, /* ISAMPLER2DMS */
|
||||
USAMPLER2DMS = 449, /* USAMPLER2DMS */
|
||||
SAMPLER2DMSARRAY = 450, /* SAMPLER2DMSARRAY */
|
||||
ISAMPLER2DMSARRAY = 451, /* ISAMPLER2DMSARRAY */
|
||||
USAMPLER2DMSARRAY = 452, /* USAMPLER2DMSARRAY */
|
||||
SAMPLEREXTERNALOES = 453, /* SAMPLEREXTERNALOES */
|
||||
SAMPLEREXTERNAL2DY2YEXT = 454, /* SAMPLEREXTERNAL2DY2YEXT */
|
||||
ISAMPLER1DARRAY = 455, /* ISAMPLER1DARRAY */
|
||||
USAMPLER1D = 456, /* USAMPLER1D */
|
||||
USAMPLER1DARRAY = 457, /* USAMPLER1DARRAY */
|
||||
F16SAMPLER1D = 458, /* F16SAMPLER1D */
|
||||
F16SAMPLER2D = 459, /* F16SAMPLER2D */
|
||||
F16SAMPLER3D = 460, /* F16SAMPLER3D */
|
||||
F16SAMPLER2DRECT = 461, /* F16SAMPLER2DRECT */
|
||||
F16SAMPLERCUBE = 462, /* F16SAMPLERCUBE */
|
||||
F16SAMPLER1DARRAY = 463, /* F16SAMPLER1DARRAY */
|
||||
F16SAMPLER2DARRAY = 464, /* F16SAMPLER2DARRAY */
|
||||
F16SAMPLERCUBEARRAY = 465, /* F16SAMPLERCUBEARRAY */
|
||||
F16SAMPLERBUFFER = 466, /* F16SAMPLERBUFFER */
|
||||
F16SAMPLER2DMS = 467, /* F16SAMPLER2DMS */
|
||||
F16SAMPLER2DMSARRAY = 468, /* F16SAMPLER2DMSARRAY */
|
||||
F16SAMPLER1DSHADOW = 469, /* F16SAMPLER1DSHADOW */
|
||||
F16SAMPLER2DSHADOW = 470, /* F16SAMPLER2DSHADOW */
|
||||
F16SAMPLER1DARRAYSHADOW = 471, /* F16SAMPLER1DARRAYSHADOW */
|
||||
F16SAMPLER2DARRAYSHADOW = 472, /* F16SAMPLER2DARRAYSHADOW */
|
||||
F16SAMPLER2DRECTSHADOW = 473, /* F16SAMPLER2DRECTSHADOW */
|
||||
F16SAMPLERCUBESHADOW = 474, /* F16SAMPLERCUBESHADOW */
|
||||
F16SAMPLERCUBEARRAYSHADOW = 475, /* F16SAMPLERCUBEARRAYSHADOW */
|
||||
IMAGE1D = 476, /* IMAGE1D */
|
||||
IIMAGE1D = 477, /* IIMAGE1D */
|
||||
UIMAGE1D = 478, /* UIMAGE1D */
|
||||
IMAGE2D = 479, /* IMAGE2D */
|
||||
IIMAGE2D = 480, /* IIMAGE2D */
|
||||
UIMAGE2D = 481, /* UIMAGE2D */
|
||||
IMAGE3D = 482, /* IMAGE3D */
|
||||
IIMAGE3D = 483, /* IIMAGE3D */
|
||||
UIMAGE3D = 484, /* UIMAGE3D */
|
||||
IMAGE2DRECT = 485, /* IMAGE2DRECT */
|
||||
IIMAGE2DRECT = 486, /* IIMAGE2DRECT */
|
||||
UIMAGE2DRECT = 487, /* UIMAGE2DRECT */
|
||||
IMAGECUBE = 488, /* IMAGECUBE */
|
||||
IIMAGECUBE = 489, /* IIMAGECUBE */
|
||||
UIMAGECUBE = 490, /* UIMAGECUBE */
|
||||
IMAGEBUFFER = 491, /* IMAGEBUFFER */
|
||||
IIMAGEBUFFER = 492, /* IIMAGEBUFFER */
|
||||
UIMAGEBUFFER = 493, /* UIMAGEBUFFER */
|
||||
IMAGE1DARRAY = 494, /* IMAGE1DARRAY */
|
||||
IIMAGE1DARRAY = 495, /* IIMAGE1DARRAY */
|
||||
UIMAGE1DARRAY = 496, /* UIMAGE1DARRAY */
|
||||
IMAGE2DARRAY = 497, /* IMAGE2DARRAY */
|
||||
IIMAGE2DARRAY = 498, /* IIMAGE2DARRAY */
|
||||
UIMAGE2DARRAY = 499, /* UIMAGE2DARRAY */
|
||||
IMAGECUBEARRAY = 500, /* IMAGECUBEARRAY */
|
||||
IIMAGECUBEARRAY = 501, /* IIMAGECUBEARRAY */
|
||||
UIMAGECUBEARRAY = 502, /* UIMAGECUBEARRAY */
|
||||
IMAGE2DMS = 503, /* IMAGE2DMS */
|
||||
IIMAGE2DMS = 504, /* IIMAGE2DMS */
|
||||
UIMAGE2DMS = 505, /* UIMAGE2DMS */
|
||||
IMAGE2DMSARRAY = 506, /* IMAGE2DMSARRAY */
|
||||
IIMAGE2DMSARRAY = 507, /* IIMAGE2DMSARRAY */
|
||||
UIMAGE2DMSARRAY = 508, /* UIMAGE2DMSARRAY */
|
||||
F16IMAGE1D = 509, /* F16IMAGE1D */
|
||||
F16IMAGE2D = 510, /* F16IMAGE2D */
|
||||
F16IMAGE3D = 511, /* F16IMAGE3D */
|
||||
F16IMAGE2DRECT = 512, /* F16IMAGE2DRECT */
|
||||
F16IMAGECUBE = 513, /* F16IMAGECUBE */
|
||||
F16IMAGE1DARRAY = 514, /* F16IMAGE1DARRAY */
|
||||
F16IMAGE2DARRAY = 515, /* F16IMAGE2DARRAY */
|
||||
F16IMAGECUBEARRAY = 516, /* F16IMAGECUBEARRAY */
|
||||
F16IMAGEBUFFER = 517, /* F16IMAGEBUFFER */
|
||||
F16IMAGE2DMS = 518, /* F16IMAGE2DMS */
|
||||
F16IMAGE2DMSARRAY = 519, /* F16IMAGE2DMSARRAY */
|
||||
I64IMAGE1D = 520, /* I64IMAGE1D */
|
||||
U64IMAGE1D = 521, /* U64IMAGE1D */
|
||||
I64IMAGE2D = 522, /* I64IMAGE2D */
|
||||
U64IMAGE2D = 523, /* U64IMAGE2D */
|
||||
I64IMAGE3D = 524, /* I64IMAGE3D */
|
||||
U64IMAGE3D = 525, /* U64IMAGE3D */
|
||||
I64IMAGE2DRECT = 526, /* I64IMAGE2DRECT */
|
||||
U64IMAGE2DRECT = 527, /* U64IMAGE2DRECT */
|
||||
I64IMAGECUBE = 528, /* I64IMAGECUBE */
|
||||
U64IMAGECUBE = 529, /* U64IMAGECUBE */
|
||||
I64IMAGEBUFFER = 530, /* I64IMAGEBUFFER */
|
||||
U64IMAGEBUFFER = 531, /* U64IMAGEBUFFER */
|
||||
I64IMAGE1DARRAY = 532, /* I64IMAGE1DARRAY */
|
||||
U64IMAGE1DARRAY = 533, /* U64IMAGE1DARRAY */
|
||||
I64IMAGE2DARRAY = 534, /* I64IMAGE2DARRAY */
|
||||
U64IMAGE2DARRAY = 535, /* U64IMAGE2DARRAY */
|
||||
I64IMAGECUBEARRAY = 536, /* I64IMAGECUBEARRAY */
|
||||
U64IMAGECUBEARRAY = 537, /* U64IMAGECUBEARRAY */
|
||||
I64IMAGE2DMS = 538, /* I64IMAGE2DMS */
|
||||
U64IMAGE2DMS = 539, /* U64IMAGE2DMS */
|
||||
I64IMAGE2DMSARRAY = 540, /* I64IMAGE2DMSARRAY */
|
||||
U64IMAGE2DMSARRAY = 541, /* U64IMAGE2DMSARRAY */
|
||||
TEXTURECUBEARRAY = 542, /* TEXTURECUBEARRAY */
|
||||
ITEXTURECUBEARRAY = 543, /* ITEXTURECUBEARRAY */
|
||||
UTEXTURECUBEARRAY = 544, /* UTEXTURECUBEARRAY */
|
||||
TEXTURE1D = 545, /* TEXTURE1D */
|
||||
ITEXTURE1D = 546, /* ITEXTURE1D */
|
||||
UTEXTURE1D = 547, /* UTEXTURE1D */
|
||||
TEXTURE1DARRAY = 548, /* TEXTURE1DARRAY */
|
||||
ITEXTURE1DARRAY = 549, /* ITEXTURE1DARRAY */
|
||||
UTEXTURE1DARRAY = 550, /* UTEXTURE1DARRAY */
|
||||
TEXTURE2DRECT = 551, /* TEXTURE2DRECT */
|
||||
ITEXTURE2DRECT = 552, /* ITEXTURE2DRECT */
|
||||
UTEXTURE2DRECT = 553, /* UTEXTURE2DRECT */
|
||||
TEXTUREBUFFER = 554, /* TEXTUREBUFFER */
|
||||
ITEXTUREBUFFER = 555, /* ITEXTUREBUFFER */
|
||||
UTEXTUREBUFFER = 556, /* UTEXTUREBUFFER */
|
||||
TEXTURE2DMS = 557, /* TEXTURE2DMS */
|
||||
ITEXTURE2DMS = 558, /* ITEXTURE2DMS */
|
||||
UTEXTURE2DMS = 559, /* UTEXTURE2DMS */
|
||||
TEXTURE2DMSARRAY = 560, /* TEXTURE2DMSARRAY */
|
||||
ITEXTURE2DMSARRAY = 561, /* ITEXTURE2DMSARRAY */
|
||||
UTEXTURE2DMSARRAY = 562, /* UTEXTURE2DMSARRAY */
|
||||
F16TEXTURE1D = 563, /* F16TEXTURE1D */
|
||||
F16TEXTURE2D = 564, /* F16TEXTURE2D */
|
||||
F16TEXTURE3D = 565, /* F16TEXTURE3D */
|
||||
F16TEXTURE2DRECT = 566, /* F16TEXTURE2DRECT */
|
||||
F16TEXTURECUBE = 567, /* F16TEXTURECUBE */
|
||||
F16TEXTURE1DARRAY = 568, /* F16TEXTURE1DARRAY */
|
||||
F16TEXTURE2DARRAY = 569, /* F16TEXTURE2DARRAY */
|
||||
F16TEXTURECUBEARRAY = 570, /* F16TEXTURECUBEARRAY */
|
||||
F16TEXTUREBUFFER = 571, /* F16TEXTUREBUFFER */
|
||||
F16TEXTURE2DMS = 572, /* F16TEXTURE2DMS */
|
||||
F16TEXTURE2DMSARRAY = 573, /* F16TEXTURE2DMSARRAY */
|
||||
SUBPASSINPUT = 574, /* SUBPASSINPUT */
|
||||
SUBPASSINPUTMS = 575, /* SUBPASSINPUTMS */
|
||||
ISUBPASSINPUT = 576, /* ISUBPASSINPUT */
|
||||
ISUBPASSINPUTMS = 577, /* ISUBPASSINPUTMS */
|
||||
USUBPASSINPUT = 578, /* USUBPASSINPUT */
|
||||
USUBPASSINPUTMS = 579, /* USUBPASSINPUTMS */
|
||||
F16SUBPASSINPUT = 580, /* F16SUBPASSINPUT */
|
||||
F16SUBPASSINPUTMS = 581, /* F16SUBPASSINPUTMS */
|
||||
SPIRV_INSTRUCTION = 582, /* SPIRV_INSTRUCTION */
|
||||
SPIRV_EXECUTION_MODE = 583, /* SPIRV_EXECUTION_MODE */
|
||||
SPIRV_EXECUTION_MODE_ID = 584, /* SPIRV_EXECUTION_MODE_ID */
|
||||
SPIRV_DECORATE = 585, /* SPIRV_DECORATE */
|
||||
SPIRV_DECORATE_ID = 586, /* SPIRV_DECORATE_ID */
|
||||
SPIRV_DECORATE_STRING = 587, /* SPIRV_DECORATE_STRING */
|
||||
SPIRV_TYPE = 588, /* SPIRV_TYPE */
|
||||
SPIRV_STORAGE_CLASS = 589, /* SPIRV_STORAGE_CLASS */
|
||||
SPIRV_BY_REFERENCE = 590, /* SPIRV_BY_REFERENCE */
|
||||
SPIRV_LITERAL = 591, /* SPIRV_LITERAL */
|
||||
ATTACHMENTEXT = 592, /* ATTACHMENTEXT */
|
||||
IATTACHMENTEXT = 593, /* IATTACHMENTEXT */
|
||||
UATTACHMENTEXT = 594, /* UATTACHMENTEXT */
|
||||
LEFT_OP = 595, /* LEFT_OP */
|
||||
RIGHT_OP = 596, /* RIGHT_OP */
|
||||
INC_OP = 597, /* INC_OP */
|
||||
DEC_OP = 598, /* DEC_OP */
|
||||
LE_OP = 599, /* LE_OP */
|
||||
GE_OP = 600, /* GE_OP */
|
||||
EQ_OP = 601, /* EQ_OP */
|
||||
NE_OP = 602, /* NE_OP */
|
||||
AND_OP = 603, /* AND_OP */
|
||||
OR_OP = 604, /* OR_OP */
|
||||
XOR_OP = 605, /* XOR_OP */
|
||||
MUL_ASSIGN = 606, /* MUL_ASSIGN */
|
||||
DIV_ASSIGN = 607, /* DIV_ASSIGN */
|
||||
ADD_ASSIGN = 608, /* ADD_ASSIGN */
|
||||
MOD_ASSIGN = 609, /* MOD_ASSIGN */
|
||||
LEFT_ASSIGN = 610, /* LEFT_ASSIGN */
|
||||
RIGHT_ASSIGN = 611, /* RIGHT_ASSIGN */
|
||||
AND_ASSIGN = 612, /* AND_ASSIGN */
|
||||
XOR_ASSIGN = 613, /* XOR_ASSIGN */
|
||||
OR_ASSIGN = 614, /* OR_ASSIGN */
|
||||
SUB_ASSIGN = 615, /* SUB_ASSIGN */
|
||||
STRING_LITERAL = 616, /* STRING_LITERAL */
|
||||
LEFT_PAREN = 617, /* LEFT_PAREN */
|
||||
RIGHT_PAREN = 618, /* RIGHT_PAREN */
|
||||
LEFT_BRACKET = 619, /* LEFT_BRACKET */
|
||||
RIGHT_BRACKET = 620, /* RIGHT_BRACKET */
|
||||
LEFT_BRACE = 621, /* LEFT_BRACE */
|
||||
RIGHT_BRACE = 622, /* RIGHT_BRACE */
|
||||
DOT = 623, /* DOT */
|
||||
COMMA = 624, /* COMMA */
|
||||
COLON = 625, /* COLON */
|
||||
EQUAL = 626, /* EQUAL */
|
||||
SEMICOLON = 627, /* SEMICOLON */
|
||||
BANG = 628, /* BANG */
|
||||
DASH = 629, /* DASH */
|
||||
TILDE = 630, /* TILDE */
|
||||
PLUS = 631, /* PLUS */
|
||||
STAR = 632, /* STAR */
|
||||
SLASH = 633, /* SLASH */
|
||||
PERCENT = 634, /* PERCENT */
|
||||
LEFT_ANGLE = 635, /* LEFT_ANGLE */
|
||||
RIGHT_ANGLE = 636, /* RIGHT_ANGLE */
|
||||
VERTICAL_BAR = 637, /* VERTICAL_BAR */
|
||||
CARET = 638, /* CARET */
|
||||
AMPERSAND = 639, /* AMPERSAND */
|
||||
QUESTION = 640, /* QUESTION */
|
||||
INVARIANT = 641, /* INVARIANT */
|
||||
HIGH_PRECISION = 642, /* HIGH_PRECISION */
|
||||
MEDIUM_PRECISION = 643, /* MEDIUM_PRECISION */
|
||||
LOW_PRECISION = 644, /* LOW_PRECISION */
|
||||
PRECISION = 645, /* PRECISION */
|
||||
PACKED = 646, /* PACKED */
|
||||
RESOURCE = 647, /* RESOURCE */
|
||||
SUPERP = 648, /* SUPERP */
|
||||
FLOATCONSTANT = 649, /* FLOATCONSTANT */
|
||||
INTCONSTANT = 650, /* INTCONSTANT */
|
||||
UINTCONSTANT = 651, /* UINTCONSTANT */
|
||||
BOOLCONSTANT = 652, /* BOOLCONSTANT */
|
||||
IDENTIFIER = 653, /* IDENTIFIER */
|
||||
TYPE_NAME = 654, /* TYPE_NAME */
|
||||
CENTROID = 655, /* CENTROID */
|
||||
IN = 656, /* IN */
|
||||
OUT = 657, /* OUT */
|
||||
INOUT = 658, /* INOUT */
|
||||
STRUCT = 659, /* STRUCT */
|
||||
VOID = 660, /* VOID */
|
||||
WHILE = 661, /* WHILE */
|
||||
BREAK = 662, /* BREAK */
|
||||
CONTINUE = 663, /* CONTINUE */
|
||||
DO = 664, /* DO */
|
||||
ELSE = 665, /* ELSE */
|
||||
FOR = 666, /* FOR */
|
||||
IF = 667, /* IF */
|
||||
DISCARD = 668, /* DISCARD */
|
||||
RETURN = 669, /* RETURN */
|
||||
SWITCH = 670, /* SWITCH */
|
||||
CASE = 671, /* CASE */
|
||||
DEFAULT = 672, /* DEFAULT */
|
||||
TERMINATE_INVOCATION = 673, /* TERMINATE_INVOCATION */
|
||||
TERMINATE_RAY = 674, /* TERMINATE_RAY */
|
||||
IGNORE_INTERSECTION = 675, /* IGNORE_INTERSECTION */
|
||||
UNIFORM = 676, /* UNIFORM */
|
||||
SHARED = 677, /* SHARED */
|
||||
BUFFER = 678, /* BUFFER */
|
||||
TILEIMAGEEXT = 679, /* TILEIMAGEEXT */
|
||||
FLAT = 680, /* FLAT */
|
||||
SMOOTH = 681, /* SMOOTH */
|
||||
LAYOUT = 682, /* LAYOUT */
|
||||
DOUBLECONSTANT = 683, /* DOUBLECONSTANT */
|
||||
INT16CONSTANT = 684, /* INT16CONSTANT */
|
||||
UINT16CONSTANT = 685, /* UINT16CONSTANT */
|
||||
FLOAT16CONSTANT = 686, /* FLOAT16CONSTANT */
|
||||
INT32CONSTANT = 687, /* INT32CONSTANT */
|
||||
UINT32CONSTANT = 688, /* UINT32CONSTANT */
|
||||
INT64CONSTANT = 689, /* INT64CONSTANT */
|
||||
UINT64CONSTANT = 690, /* UINT64CONSTANT */
|
||||
SUBROUTINE = 691, /* SUBROUTINE */
|
||||
DEMOTE = 692, /* DEMOTE */
|
||||
FUNCTION = 693, /* FUNCTION */
|
||||
PAYLOADNV = 694, /* PAYLOADNV */
|
||||
PAYLOADINNV = 695, /* PAYLOADINNV */
|
||||
HITATTRNV = 696, /* HITATTRNV */
|
||||
CALLDATANV = 697, /* CALLDATANV */
|
||||
CALLDATAINNV = 698, /* CALLDATAINNV */
|
||||
PAYLOADEXT = 699, /* PAYLOADEXT */
|
||||
PAYLOADINEXT = 700, /* PAYLOADINEXT */
|
||||
HITATTREXT = 701, /* HITATTREXT */
|
||||
CALLDATAEXT = 702, /* CALLDATAEXT */
|
||||
CALLDATAINEXT = 703, /* CALLDATAINEXT */
|
||||
PATCH = 704, /* PATCH */
|
||||
SAMPLE = 705, /* SAMPLE */
|
||||
NONUNIFORM = 706, /* NONUNIFORM */
|
||||
COHERENT = 707, /* COHERENT */
|
||||
VOLATILE = 708, /* VOLATILE */
|
||||
RESTRICT = 709, /* RESTRICT */
|
||||
READONLY = 710, /* READONLY */
|
||||
WRITEONLY = 711, /* WRITEONLY */
|
||||
NONTEMPORAL = 712, /* NONTEMPORAL */
|
||||
DEVICECOHERENT = 713, /* DEVICECOHERENT */
|
||||
QUEUEFAMILYCOHERENT = 714, /* QUEUEFAMILYCOHERENT */
|
||||
WORKGROUPCOHERENT = 715, /* WORKGROUPCOHERENT */
|
||||
SUBGROUPCOHERENT = 716, /* SUBGROUPCOHERENT */
|
||||
NONPRIVATE = 717, /* NONPRIVATE */
|
||||
SHADERCALLCOHERENT = 718, /* SHADERCALLCOHERENT */
|
||||
NOPERSPECTIVE = 719, /* NOPERSPECTIVE */
|
||||
EXPLICITINTERPAMD = 720, /* EXPLICITINTERPAMD */
|
||||
PERVERTEXEXT = 721, /* PERVERTEXEXT */
|
||||
PERVERTEXNV = 722, /* PERVERTEXNV */
|
||||
PERPRIMITIVENV = 723, /* PERPRIMITIVENV */
|
||||
PERVIEWNV = 724, /* PERVIEWNV */
|
||||
PERTASKNV = 725, /* PERTASKNV */
|
||||
PERPRIMITIVEEXT = 726, /* PERPRIMITIVEEXT */
|
||||
TASKPAYLOADWORKGROUPEXT = 727, /* TASKPAYLOADWORKGROUPEXT */
|
||||
PRECISE = 728 /* PRECISE */
|
||||
FLOATE5M2_T = 318, /* FLOATE5M2_T */
|
||||
FLOATE4M3_T = 319, /* FLOATE4M3_T */
|
||||
BFLOAT16_T = 320, /* BFLOAT16_T */
|
||||
FLOAT16_T = 321, /* FLOAT16_T */
|
||||
FLOAT32_T = 322, /* FLOAT32_T */
|
||||
DOUBLE = 323, /* DOUBLE */
|
||||
FLOAT64_T = 324, /* FLOAT64_T */
|
||||
INT64_T = 325, /* INT64_T */
|
||||
UINT64_T = 326, /* UINT64_T */
|
||||
INT32_T = 327, /* INT32_T */
|
||||
UINT32_T = 328, /* UINT32_T */
|
||||
INT16_T = 329, /* INT16_T */
|
||||
UINT16_T = 330, /* UINT16_T */
|
||||
INT8_T = 331, /* INT8_T */
|
||||
UINT8_T = 332, /* UINT8_T */
|
||||
I64VEC2 = 333, /* I64VEC2 */
|
||||
I64VEC3 = 334, /* I64VEC3 */
|
||||
I64VEC4 = 335, /* I64VEC4 */
|
||||
U64VEC2 = 336, /* U64VEC2 */
|
||||
U64VEC3 = 337, /* U64VEC3 */
|
||||
U64VEC4 = 338, /* U64VEC4 */
|
||||
I32VEC2 = 339, /* I32VEC2 */
|
||||
I32VEC3 = 340, /* I32VEC3 */
|
||||
I32VEC4 = 341, /* I32VEC4 */
|
||||
U32VEC2 = 342, /* U32VEC2 */
|
||||
U32VEC3 = 343, /* U32VEC3 */
|
||||
U32VEC4 = 344, /* U32VEC4 */
|
||||
I16VEC2 = 345, /* I16VEC2 */
|
||||
I16VEC3 = 346, /* I16VEC3 */
|
||||
I16VEC4 = 347, /* I16VEC4 */
|
||||
U16VEC2 = 348, /* U16VEC2 */
|
||||
U16VEC3 = 349, /* U16VEC3 */
|
||||
U16VEC4 = 350, /* U16VEC4 */
|
||||
I8VEC2 = 351, /* I8VEC2 */
|
||||
I8VEC3 = 352, /* I8VEC3 */
|
||||
I8VEC4 = 353, /* I8VEC4 */
|
||||
U8VEC2 = 354, /* U8VEC2 */
|
||||
U8VEC3 = 355, /* U8VEC3 */
|
||||
U8VEC4 = 356, /* U8VEC4 */
|
||||
DVEC2 = 357, /* DVEC2 */
|
||||
DVEC3 = 358, /* DVEC3 */
|
||||
DVEC4 = 359, /* DVEC4 */
|
||||
DMAT2 = 360, /* DMAT2 */
|
||||
DMAT3 = 361, /* DMAT3 */
|
||||
DMAT4 = 362, /* DMAT4 */
|
||||
BF16VEC2 = 363, /* BF16VEC2 */
|
||||
BF16VEC3 = 364, /* BF16VEC3 */
|
||||
BF16VEC4 = 365, /* BF16VEC4 */
|
||||
FE5M2VEC2 = 366, /* FE5M2VEC2 */
|
||||
FE5M2VEC3 = 367, /* FE5M2VEC3 */
|
||||
FE5M2VEC4 = 368, /* FE5M2VEC4 */
|
||||
FE4M3VEC2 = 369, /* FE4M3VEC2 */
|
||||
FE4M3VEC3 = 370, /* FE4M3VEC3 */
|
||||
FE4M3VEC4 = 371, /* FE4M3VEC4 */
|
||||
F16VEC2 = 372, /* F16VEC2 */
|
||||
F16VEC3 = 373, /* F16VEC3 */
|
||||
F16VEC4 = 374, /* F16VEC4 */
|
||||
F16MAT2 = 375, /* F16MAT2 */
|
||||
F16MAT3 = 376, /* F16MAT3 */
|
||||
F16MAT4 = 377, /* F16MAT4 */
|
||||
F32VEC2 = 378, /* F32VEC2 */
|
||||
F32VEC3 = 379, /* F32VEC3 */
|
||||
F32VEC4 = 380, /* F32VEC4 */
|
||||
F32MAT2 = 381, /* F32MAT2 */
|
||||
F32MAT3 = 382, /* F32MAT3 */
|
||||
F32MAT4 = 383, /* F32MAT4 */
|
||||
F64VEC2 = 384, /* F64VEC2 */
|
||||
F64VEC3 = 385, /* F64VEC3 */
|
||||
F64VEC4 = 386, /* F64VEC4 */
|
||||
F64MAT2 = 387, /* F64MAT2 */
|
||||
F64MAT3 = 388, /* F64MAT3 */
|
||||
F64MAT4 = 389, /* F64MAT4 */
|
||||
DMAT2X2 = 390, /* DMAT2X2 */
|
||||
DMAT2X3 = 391, /* DMAT2X3 */
|
||||
DMAT2X4 = 392, /* DMAT2X4 */
|
||||
DMAT3X2 = 393, /* DMAT3X2 */
|
||||
DMAT3X3 = 394, /* DMAT3X3 */
|
||||
DMAT3X4 = 395, /* DMAT3X4 */
|
||||
DMAT4X2 = 396, /* DMAT4X2 */
|
||||
DMAT4X3 = 397, /* DMAT4X3 */
|
||||
DMAT4X4 = 398, /* DMAT4X4 */
|
||||
F16MAT2X2 = 399, /* F16MAT2X2 */
|
||||
F16MAT2X3 = 400, /* F16MAT2X3 */
|
||||
F16MAT2X4 = 401, /* F16MAT2X4 */
|
||||
F16MAT3X2 = 402, /* F16MAT3X2 */
|
||||
F16MAT3X3 = 403, /* F16MAT3X3 */
|
||||
F16MAT3X4 = 404, /* F16MAT3X4 */
|
||||
F16MAT4X2 = 405, /* F16MAT4X2 */
|
||||
F16MAT4X3 = 406, /* F16MAT4X3 */
|
||||
F16MAT4X4 = 407, /* F16MAT4X4 */
|
||||
F32MAT2X2 = 408, /* F32MAT2X2 */
|
||||
F32MAT2X3 = 409, /* F32MAT2X3 */
|
||||
F32MAT2X4 = 410, /* F32MAT2X4 */
|
||||
F32MAT3X2 = 411, /* F32MAT3X2 */
|
||||
F32MAT3X3 = 412, /* F32MAT3X3 */
|
||||
F32MAT3X4 = 413, /* F32MAT3X4 */
|
||||
F32MAT4X2 = 414, /* F32MAT4X2 */
|
||||
F32MAT4X3 = 415, /* F32MAT4X3 */
|
||||
F32MAT4X4 = 416, /* F32MAT4X4 */
|
||||
F64MAT2X2 = 417, /* F64MAT2X2 */
|
||||
F64MAT2X3 = 418, /* F64MAT2X3 */
|
||||
F64MAT2X4 = 419, /* F64MAT2X4 */
|
||||
F64MAT3X2 = 420, /* F64MAT3X2 */
|
||||
F64MAT3X3 = 421, /* F64MAT3X3 */
|
||||
F64MAT3X4 = 422, /* F64MAT3X4 */
|
||||
F64MAT4X2 = 423, /* F64MAT4X2 */
|
||||
F64MAT4X3 = 424, /* F64MAT4X3 */
|
||||
F64MAT4X4 = 425, /* F64MAT4X4 */
|
||||
ATOMIC_UINT = 426, /* ATOMIC_UINT */
|
||||
ACCSTRUCTNV = 427, /* ACCSTRUCTNV */
|
||||
ACCSTRUCTEXT = 428, /* ACCSTRUCTEXT */
|
||||
RAYQUERYEXT = 429, /* RAYQUERYEXT */
|
||||
FCOOPMATNV = 430, /* FCOOPMATNV */
|
||||
ICOOPMATNV = 431, /* ICOOPMATNV */
|
||||
UCOOPMATNV = 432, /* UCOOPMATNV */
|
||||
COOPMAT = 433, /* COOPMAT */
|
||||
COOPVECNV = 434, /* COOPVECNV */
|
||||
HITOBJECTNV = 435, /* HITOBJECTNV */
|
||||
HITOBJECTATTRNV = 436, /* HITOBJECTATTRNV */
|
||||
TENSORLAYOUTNV = 437, /* TENSORLAYOUTNV */
|
||||
TENSORVIEWNV = 438, /* TENSORVIEWNV */
|
||||
TENSORARM = 439, /* TENSORARM */
|
||||
SAMPLERCUBEARRAY = 440, /* SAMPLERCUBEARRAY */
|
||||
SAMPLERCUBEARRAYSHADOW = 441, /* SAMPLERCUBEARRAYSHADOW */
|
||||
ISAMPLERCUBEARRAY = 442, /* ISAMPLERCUBEARRAY */
|
||||
USAMPLERCUBEARRAY = 443, /* USAMPLERCUBEARRAY */
|
||||
SAMPLER1D = 444, /* SAMPLER1D */
|
||||
SAMPLER1DARRAY = 445, /* SAMPLER1DARRAY */
|
||||
SAMPLER1DARRAYSHADOW = 446, /* SAMPLER1DARRAYSHADOW */
|
||||
ISAMPLER1D = 447, /* ISAMPLER1D */
|
||||
SAMPLER1DSHADOW = 448, /* SAMPLER1DSHADOW */
|
||||
SAMPLER2DRECT = 449, /* SAMPLER2DRECT */
|
||||
SAMPLER2DRECTSHADOW = 450, /* SAMPLER2DRECTSHADOW */
|
||||
ISAMPLER2DRECT = 451, /* ISAMPLER2DRECT */
|
||||
USAMPLER2DRECT = 452, /* USAMPLER2DRECT */
|
||||
SAMPLERBUFFER = 453, /* SAMPLERBUFFER */
|
||||
ISAMPLERBUFFER = 454, /* ISAMPLERBUFFER */
|
||||
USAMPLERBUFFER = 455, /* USAMPLERBUFFER */
|
||||
SAMPLER2DMS = 456, /* SAMPLER2DMS */
|
||||
ISAMPLER2DMS = 457, /* ISAMPLER2DMS */
|
||||
USAMPLER2DMS = 458, /* USAMPLER2DMS */
|
||||
SAMPLER2DMSARRAY = 459, /* SAMPLER2DMSARRAY */
|
||||
ISAMPLER2DMSARRAY = 460, /* ISAMPLER2DMSARRAY */
|
||||
USAMPLER2DMSARRAY = 461, /* USAMPLER2DMSARRAY */
|
||||
SAMPLEREXTERNALOES = 462, /* SAMPLEREXTERNALOES */
|
||||
SAMPLEREXTERNAL2DY2YEXT = 463, /* SAMPLEREXTERNAL2DY2YEXT */
|
||||
ISAMPLER1DARRAY = 464, /* ISAMPLER1DARRAY */
|
||||
USAMPLER1D = 465, /* USAMPLER1D */
|
||||
USAMPLER1DARRAY = 466, /* USAMPLER1DARRAY */
|
||||
F16SAMPLER1D = 467, /* F16SAMPLER1D */
|
||||
F16SAMPLER2D = 468, /* F16SAMPLER2D */
|
||||
F16SAMPLER3D = 469, /* F16SAMPLER3D */
|
||||
F16SAMPLER2DRECT = 470, /* F16SAMPLER2DRECT */
|
||||
F16SAMPLERCUBE = 471, /* F16SAMPLERCUBE */
|
||||
F16SAMPLER1DARRAY = 472, /* F16SAMPLER1DARRAY */
|
||||
F16SAMPLER2DARRAY = 473, /* F16SAMPLER2DARRAY */
|
||||
F16SAMPLERCUBEARRAY = 474, /* F16SAMPLERCUBEARRAY */
|
||||
F16SAMPLERBUFFER = 475, /* F16SAMPLERBUFFER */
|
||||
F16SAMPLER2DMS = 476, /* F16SAMPLER2DMS */
|
||||
F16SAMPLER2DMSARRAY = 477, /* F16SAMPLER2DMSARRAY */
|
||||
F16SAMPLER1DSHADOW = 478, /* F16SAMPLER1DSHADOW */
|
||||
F16SAMPLER2DSHADOW = 479, /* F16SAMPLER2DSHADOW */
|
||||
F16SAMPLER1DARRAYSHADOW = 480, /* F16SAMPLER1DARRAYSHADOW */
|
||||
F16SAMPLER2DARRAYSHADOW = 481, /* F16SAMPLER2DARRAYSHADOW */
|
||||
F16SAMPLER2DRECTSHADOW = 482, /* F16SAMPLER2DRECTSHADOW */
|
||||
F16SAMPLERCUBESHADOW = 483, /* F16SAMPLERCUBESHADOW */
|
||||
F16SAMPLERCUBEARRAYSHADOW = 484, /* F16SAMPLERCUBEARRAYSHADOW */
|
||||
IMAGE1D = 485, /* IMAGE1D */
|
||||
IIMAGE1D = 486, /* IIMAGE1D */
|
||||
UIMAGE1D = 487, /* UIMAGE1D */
|
||||
IMAGE2D = 488, /* IMAGE2D */
|
||||
IIMAGE2D = 489, /* IIMAGE2D */
|
||||
UIMAGE2D = 490, /* UIMAGE2D */
|
||||
IMAGE3D = 491, /* IMAGE3D */
|
||||
IIMAGE3D = 492, /* IIMAGE3D */
|
||||
UIMAGE3D = 493, /* UIMAGE3D */
|
||||
IMAGE2DRECT = 494, /* IMAGE2DRECT */
|
||||
IIMAGE2DRECT = 495, /* IIMAGE2DRECT */
|
||||
UIMAGE2DRECT = 496, /* UIMAGE2DRECT */
|
||||
IMAGECUBE = 497, /* IMAGECUBE */
|
||||
IIMAGECUBE = 498, /* IIMAGECUBE */
|
||||
UIMAGECUBE = 499, /* UIMAGECUBE */
|
||||
IMAGEBUFFER = 500, /* IMAGEBUFFER */
|
||||
IIMAGEBUFFER = 501, /* IIMAGEBUFFER */
|
||||
UIMAGEBUFFER = 502, /* UIMAGEBUFFER */
|
||||
IMAGE1DARRAY = 503, /* IMAGE1DARRAY */
|
||||
IIMAGE1DARRAY = 504, /* IIMAGE1DARRAY */
|
||||
UIMAGE1DARRAY = 505, /* UIMAGE1DARRAY */
|
||||
IMAGE2DARRAY = 506, /* IMAGE2DARRAY */
|
||||
IIMAGE2DARRAY = 507, /* IIMAGE2DARRAY */
|
||||
UIMAGE2DARRAY = 508, /* UIMAGE2DARRAY */
|
||||
IMAGECUBEARRAY = 509, /* IMAGECUBEARRAY */
|
||||
IIMAGECUBEARRAY = 510, /* IIMAGECUBEARRAY */
|
||||
UIMAGECUBEARRAY = 511, /* UIMAGECUBEARRAY */
|
||||
IMAGE2DMS = 512, /* IMAGE2DMS */
|
||||
IIMAGE2DMS = 513, /* IIMAGE2DMS */
|
||||
UIMAGE2DMS = 514, /* UIMAGE2DMS */
|
||||
IMAGE2DMSARRAY = 515, /* IMAGE2DMSARRAY */
|
||||
IIMAGE2DMSARRAY = 516, /* IIMAGE2DMSARRAY */
|
||||
UIMAGE2DMSARRAY = 517, /* UIMAGE2DMSARRAY */
|
||||
F16IMAGE1D = 518, /* F16IMAGE1D */
|
||||
F16IMAGE2D = 519, /* F16IMAGE2D */
|
||||
F16IMAGE3D = 520, /* F16IMAGE3D */
|
||||
F16IMAGE2DRECT = 521, /* F16IMAGE2DRECT */
|
||||
F16IMAGECUBE = 522, /* F16IMAGECUBE */
|
||||
F16IMAGE1DARRAY = 523, /* F16IMAGE1DARRAY */
|
||||
F16IMAGE2DARRAY = 524, /* F16IMAGE2DARRAY */
|
||||
F16IMAGECUBEARRAY = 525, /* F16IMAGECUBEARRAY */
|
||||
F16IMAGEBUFFER = 526, /* F16IMAGEBUFFER */
|
||||
F16IMAGE2DMS = 527, /* F16IMAGE2DMS */
|
||||
F16IMAGE2DMSARRAY = 528, /* F16IMAGE2DMSARRAY */
|
||||
I64IMAGE1D = 529, /* I64IMAGE1D */
|
||||
U64IMAGE1D = 530, /* U64IMAGE1D */
|
||||
I64IMAGE2D = 531, /* I64IMAGE2D */
|
||||
U64IMAGE2D = 532, /* U64IMAGE2D */
|
||||
I64IMAGE3D = 533, /* I64IMAGE3D */
|
||||
U64IMAGE3D = 534, /* U64IMAGE3D */
|
||||
I64IMAGE2DRECT = 535, /* I64IMAGE2DRECT */
|
||||
U64IMAGE2DRECT = 536, /* U64IMAGE2DRECT */
|
||||
I64IMAGECUBE = 537, /* I64IMAGECUBE */
|
||||
U64IMAGECUBE = 538, /* U64IMAGECUBE */
|
||||
I64IMAGEBUFFER = 539, /* I64IMAGEBUFFER */
|
||||
U64IMAGEBUFFER = 540, /* U64IMAGEBUFFER */
|
||||
I64IMAGE1DARRAY = 541, /* I64IMAGE1DARRAY */
|
||||
U64IMAGE1DARRAY = 542, /* U64IMAGE1DARRAY */
|
||||
I64IMAGE2DARRAY = 543, /* I64IMAGE2DARRAY */
|
||||
U64IMAGE2DARRAY = 544, /* U64IMAGE2DARRAY */
|
||||
I64IMAGECUBEARRAY = 545, /* I64IMAGECUBEARRAY */
|
||||
U64IMAGECUBEARRAY = 546, /* U64IMAGECUBEARRAY */
|
||||
I64IMAGE2DMS = 547, /* I64IMAGE2DMS */
|
||||
U64IMAGE2DMS = 548, /* U64IMAGE2DMS */
|
||||
I64IMAGE2DMSARRAY = 549, /* I64IMAGE2DMSARRAY */
|
||||
U64IMAGE2DMSARRAY = 550, /* U64IMAGE2DMSARRAY */
|
||||
TEXTURECUBEARRAY = 551, /* TEXTURECUBEARRAY */
|
||||
ITEXTURECUBEARRAY = 552, /* ITEXTURECUBEARRAY */
|
||||
UTEXTURECUBEARRAY = 553, /* UTEXTURECUBEARRAY */
|
||||
TEXTURE1D = 554, /* TEXTURE1D */
|
||||
ITEXTURE1D = 555, /* ITEXTURE1D */
|
||||
UTEXTURE1D = 556, /* UTEXTURE1D */
|
||||
TEXTURE1DARRAY = 557, /* TEXTURE1DARRAY */
|
||||
ITEXTURE1DARRAY = 558, /* ITEXTURE1DARRAY */
|
||||
UTEXTURE1DARRAY = 559, /* UTEXTURE1DARRAY */
|
||||
TEXTURE2DRECT = 560, /* TEXTURE2DRECT */
|
||||
ITEXTURE2DRECT = 561, /* ITEXTURE2DRECT */
|
||||
UTEXTURE2DRECT = 562, /* UTEXTURE2DRECT */
|
||||
TEXTUREBUFFER = 563, /* TEXTUREBUFFER */
|
||||
ITEXTUREBUFFER = 564, /* ITEXTUREBUFFER */
|
||||
UTEXTUREBUFFER = 565, /* UTEXTUREBUFFER */
|
||||
TEXTURE2DMS = 566, /* TEXTURE2DMS */
|
||||
ITEXTURE2DMS = 567, /* ITEXTURE2DMS */
|
||||
UTEXTURE2DMS = 568, /* UTEXTURE2DMS */
|
||||
TEXTURE2DMSARRAY = 569, /* TEXTURE2DMSARRAY */
|
||||
ITEXTURE2DMSARRAY = 570, /* ITEXTURE2DMSARRAY */
|
||||
UTEXTURE2DMSARRAY = 571, /* UTEXTURE2DMSARRAY */
|
||||
F16TEXTURE1D = 572, /* F16TEXTURE1D */
|
||||
F16TEXTURE2D = 573, /* F16TEXTURE2D */
|
||||
F16TEXTURE3D = 574, /* F16TEXTURE3D */
|
||||
F16TEXTURE2DRECT = 575, /* F16TEXTURE2DRECT */
|
||||
F16TEXTURECUBE = 576, /* F16TEXTURECUBE */
|
||||
F16TEXTURE1DARRAY = 577, /* F16TEXTURE1DARRAY */
|
||||
F16TEXTURE2DARRAY = 578, /* F16TEXTURE2DARRAY */
|
||||
F16TEXTURECUBEARRAY = 579, /* F16TEXTURECUBEARRAY */
|
||||
F16TEXTUREBUFFER = 580, /* F16TEXTUREBUFFER */
|
||||
F16TEXTURE2DMS = 581, /* F16TEXTURE2DMS */
|
||||
F16TEXTURE2DMSARRAY = 582, /* F16TEXTURE2DMSARRAY */
|
||||
SUBPASSINPUT = 583, /* SUBPASSINPUT */
|
||||
SUBPASSINPUTMS = 584, /* SUBPASSINPUTMS */
|
||||
ISUBPASSINPUT = 585, /* ISUBPASSINPUT */
|
||||
ISUBPASSINPUTMS = 586, /* ISUBPASSINPUTMS */
|
||||
USUBPASSINPUT = 587, /* USUBPASSINPUT */
|
||||
USUBPASSINPUTMS = 588, /* USUBPASSINPUTMS */
|
||||
F16SUBPASSINPUT = 589, /* F16SUBPASSINPUT */
|
||||
F16SUBPASSINPUTMS = 590, /* F16SUBPASSINPUTMS */
|
||||
SPIRV_INSTRUCTION = 591, /* SPIRV_INSTRUCTION */
|
||||
SPIRV_EXECUTION_MODE = 592, /* SPIRV_EXECUTION_MODE */
|
||||
SPIRV_EXECUTION_MODE_ID = 593, /* SPIRV_EXECUTION_MODE_ID */
|
||||
SPIRV_DECORATE = 594, /* SPIRV_DECORATE */
|
||||
SPIRV_DECORATE_ID = 595, /* SPIRV_DECORATE_ID */
|
||||
SPIRV_DECORATE_STRING = 596, /* SPIRV_DECORATE_STRING */
|
||||
SPIRV_TYPE = 597, /* SPIRV_TYPE */
|
||||
SPIRV_STORAGE_CLASS = 598, /* SPIRV_STORAGE_CLASS */
|
||||
SPIRV_BY_REFERENCE = 599, /* SPIRV_BY_REFERENCE */
|
||||
SPIRV_LITERAL = 600, /* SPIRV_LITERAL */
|
||||
ATTACHMENTEXT = 601, /* ATTACHMENTEXT */
|
||||
IATTACHMENTEXT = 602, /* IATTACHMENTEXT */
|
||||
UATTACHMENTEXT = 603, /* UATTACHMENTEXT */
|
||||
LEFT_OP = 604, /* LEFT_OP */
|
||||
RIGHT_OP = 605, /* RIGHT_OP */
|
||||
INC_OP = 606, /* INC_OP */
|
||||
DEC_OP = 607, /* DEC_OP */
|
||||
LE_OP = 608, /* LE_OP */
|
||||
GE_OP = 609, /* GE_OP */
|
||||
EQ_OP = 610, /* EQ_OP */
|
||||
NE_OP = 611, /* NE_OP */
|
||||
AND_OP = 612, /* AND_OP */
|
||||
OR_OP = 613, /* OR_OP */
|
||||
XOR_OP = 614, /* XOR_OP */
|
||||
MUL_ASSIGN = 615, /* MUL_ASSIGN */
|
||||
DIV_ASSIGN = 616, /* DIV_ASSIGN */
|
||||
ADD_ASSIGN = 617, /* ADD_ASSIGN */
|
||||
MOD_ASSIGN = 618, /* MOD_ASSIGN */
|
||||
LEFT_ASSIGN = 619, /* LEFT_ASSIGN */
|
||||
RIGHT_ASSIGN = 620, /* RIGHT_ASSIGN */
|
||||
AND_ASSIGN = 621, /* AND_ASSIGN */
|
||||
XOR_ASSIGN = 622, /* XOR_ASSIGN */
|
||||
OR_ASSIGN = 623, /* OR_ASSIGN */
|
||||
SUB_ASSIGN = 624, /* SUB_ASSIGN */
|
||||
STRING_LITERAL = 625, /* STRING_LITERAL */
|
||||
LEFT_PAREN = 626, /* LEFT_PAREN */
|
||||
RIGHT_PAREN = 627, /* RIGHT_PAREN */
|
||||
LEFT_BRACKET = 628, /* LEFT_BRACKET */
|
||||
RIGHT_BRACKET = 629, /* RIGHT_BRACKET */
|
||||
LEFT_BRACE = 630, /* LEFT_BRACE */
|
||||
RIGHT_BRACE = 631, /* RIGHT_BRACE */
|
||||
DOT = 632, /* DOT */
|
||||
COMMA = 633, /* COMMA */
|
||||
COLON = 634, /* COLON */
|
||||
EQUAL = 635, /* EQUAL */
|
||||
SEMICOLON = 636, /* SEMICOLON */
|
||||
BANG = 637, /* BANG */
|
||||
DASH = 638, /* DASH */
|
||||
TILDE = 639, /* TILDE */
|
||||
PLUS = 640, /* PLUS */
|
||||
STAR = 641, /* STAR */
|
||||
SLASH = 642, /* SLASH */
|
||||
PERCENT = 643, /* PERCENT */
|
||||
LEFT_ANGLE = 644, /* LEFT_ANGLE */
|
||||
RIGHT_ANGLE = 645, /* RIGHT_ANGLE */
|
||||
VERTICAL_BAR = 646, /* VERTICAL_BAR */
|
||||
CARET = 647, /* CARET */
|
||||
AMPERSAND = 648, /* AMPERSAND */
|
||||
QUESTION = 649, /* QUESTION */
|
||||
INVARIANT = 650, /* INVARIANT */
|
||||
HIGH_PRECISION = 651, /* HIGH_PRECISION */
|
||||
MEDIUM_PRECISION = 652, /* MEDIUM_PRECISION */
|
||||
LOW_PRECISION = 653, /* LOW_PRECISION */
|
||||
PRECISION = 654, /* PRECISION */
|
||||
PACKED = 655, /* PACKED */
|
||||
RESOURCE = 656, /* RESOURCE */
|
||||
SUPERP = 657, /* SUPERP */
|
||||
FLOATCONSTANT = 658, /* FLOATCONSTANT */
|
||||
INTCONSTANT = 659, /* INTCONSTANT */
|
||||
UINTCONSTANT = 660, /* UINTCONSTANT */
|
||||
BOOLCONSTANT = 661, /* BOOLCONSTANT */
|
||||
IDENTIFIER = 662, /* IDENTIFIER */
|
||||
TYPE_NAME = 663, /* TYPE_NAME */
|
||||
CENTROID = 664, /* CENTROID */
|
||||
IN = 665, /* IN */
|
||||
OUT = 666, /* OUT */
|
||||
INOUT = 667, /* INOUT */
|
||||
STRUCT = 668, /* STRUCT */
|
||||
VOID = 669, /* VOID */
|
||||
WHILE = 670, /* WHILE */
|
||||
BREAK = 671, /* BREAK */
|
||||
CONTINUE = 672, /* CONTINUE */
|
||||
DO = 673, /* DO */
|
||||
ELSE = 674, /* ELSE */
|
||||
FOR = 675, /* FOR */
|
||||
IF = 676, /* IF */
|
||||
DISCARD = 677, /* DISCARD */
|
||||
RETURN = 678, /* RETURN */
|
||||
SWITCH = 679, /* SWITCH */
|
||||
CASE = 680, /* CASE */
|
||||
DEFAULT = 681, /* DEFAULT */
|
||||
TERMINATE_INVOCATION = 682, /* TERMINATE_INVOCATION */
|
||||
TERMINATE_RAY = 683, /* TERMINATE_RAY */
|
||||
IGNORE_INTERSECTION = 684, /* IGNORE_INTERSECTION */
|
||||
UNIFORM = 685, /* UNIFORM */
|
||||
SHARED = 686, /* SHARED */
|
||||
BUFFER = 687, /* BUFFER */
|
||||
TILEIMAGEEXT = 688, /* TILEIMAGEEXT */
|
||||
FLAT = 689, /* FLAT */
|
||||
SMOOTH = 690, /* SMOOTH */
|
||||
LAYOUT = 691, /* LAYOUT */
|
||||
DOUBLECONSTANT = 692, /* DOUBLECONSTANT */
|
||||
INT16CONSTANT = 693, /* INT16CONSTANT */
|
||||
UINT16CONSTANT = 694, /* UINT16CONSTANT */
|
||||
FLOAT16CONSTANT = 695, /* FLOAT16CONSTANT */
|
||||
INT32CONSTANT = 696, /* INT32CONSTANT */
|
||||
UINT32CONSTANT = 697, /* UINT32CONSTANT */
|
||||
INT64CONSTANT = 698, /* INT64CONSTANT */
|
||||
UINT64CONSTANT = 699, /* UINT64CONSTANT */
|
||||
SUBROUTINE = 700, /* SUBROUTINE */
|
||||
DEMOTE = 701, /* DEMOTE */
|
||||
FUNCTION = 702, /* FUNCTION */
|
||||
PAYLOADNV = 703, /* PAYLOADNV */
|
||||
PAYLOADINNV = 704, /* PAYLOADINNV */
|
||||
HITATTRNV = 705, /* HITATTRNV */
|
||||
CALLDATANV = 706, /* CALLDATANV */
|
||||
CALLDATAINNV = 707, /* CALLDATAINNV */
|
||||
PAYLOADEXT = 708, /* PAYLOADEXT */
|
||||
PAYLOADINEXT = 709, /* PAYLOADINEXT */
|
||||
HITATTREXT = 710, /* HITATTREXT */
|
||||
CALLDATAEXT = 711, /* CALLDATAEXT */
|
||||
CALLDATAINEXT = 712, /* CALLDATAINEXT */
|
||||
PATCH = 713, /* PATCH */
|
||||
SAMPLE = 714, /* SAMPLE */
|
||||
NONUNIFORM = 715, /* NONUNIFORM */
|
||||
COHERENT = 716, /* COHERENT */
|
||||
VOLATILE = 717, /* VOLATILE */
|
||||
RESTRICT = 718, /* RESTRICT */
|
||||
READONLY = 719, /* READONLY */
|
||||
WRITEONLY = 720, /* WRITEONLY */
|
||||
NONTEMPORAL = 721, /* NONTEMPORAL */
|
||||
DEVICECOHERENT = 722, /* DEVICECOHERENT */
|
||||
QUEUEFAMILYCOHERENT = 723, /* QUEUEFAMILYCOHERENT */
|
||||
WORKGROUPCOHERENT = 724, /* WORKGROUPCOHERENT */
|
||||
SUBGROUPCOHERENT = 725, /* SUBGROUPCOHERENT */
|
||||
NONPRIVATE = 726, /* NONPRIVATE */
|
||||
SHADERCALLCOHERENT = 727, /* SHADERCALLCOHERENT */
|
||||
NOPERSPECTIVE = 728, /* NOPERSPECTIVE */
|
||||
EXPLICITINTERPAMD = 729, /* EXPLICITINTERPAMD */
|
||||
PERVERTEXEXT = 730, /* PERVERTEXEXT */
|
||||
PERVERTEXNV = 731, /* PERVERTEXNV */
|
||||
PERPRIMITIVENV = 732, /* PERPRIMITIVENV */
|
||||
PERVIEWNV = 733, /* PERVIEWNV */
|
||||
PERTASKNV = 734, /* PERTASKNV */
|
||||
PERPRIMITIVEEXT = 735, /* PERPRIMITIVEEXT */
|
||||
TASKPAYLOADWORKGROUPEXT = 736, /* TASKPAYLOADWORKGROUPEXT */
|
||||
PRECISE = 737 /* PRECISE */
|
||||
};
|
||||
typedef enum yytokentype yytoken_kind_t;
|
||||
#endif
|
||||
@@ -572,7 +581,7 @@ union YYSTYPE
|
||||
glslang::TTypeParameters* typeParameters;
|
||||
} interm;
|
||||
|
||||
#line 576 "MachineIndependent/glslang_tab.cpp.h"
|
||||
#line 585 "MachineIndependent/glslang_tab.cpp.h"
|
||||
|
||||
};
|
||||
typedef union YYSTYPE YYSTYPE;
|
||||
|
||||
@@ -268,6 +268,7 @@ public:
|
||||
gpu_shader_fp64 = 1 << 9,
|
||||
gpu_shader_int16 = 1 << 10,
|
||||
gpu_shader_half_float = 1 << 11,
|
||||
nv_gpu_shader5_types = 1 << 12,
|
||||
} feature;
|
||||
void insert(feature f) { features |= f; }
|
||||
void erase(feature f) { features &= ~f; }
|
||||
@@ -342,6 +343,7 @@ public:
|
||||
numTaskNVBlocks(0),
|
||||
layoutPrimitiveCulling(false),
|
||||
numTaskEXTPayloads(0),
|
||||
nonCoherentTileAttachmentReadQCOM(false),
|
||||
autoMapBindings(false),
|
||||
autoMapLocations(false),
|
||||
flattenUniformArrays(false),
|
||||
@@ -370,6 +372,12 @@ public:
|
||||
localSizeSpecId[1] = TQualifier::layoutNotSet;
|
||||
localSizeSpecId[2] = TQualifier::layoutNotSet;
|
||||
xfbBuffers.resize(TQualifier::layoutXfbBufferEnd);
|
||||
tileShadingRateQCOM[0] = 0;
|
||||
tileShadingRateQCOM[1] = 0;
|
||||
tileShadingRateQCOM[2] = 0;
|
||||
tileShadingRateQCOMNotDefault[0] = false;
|
||||
tileShadingRateQCOMNotDefault[1] = false;
|
||||
tileShadingRateQCOMNotDefault[2] = false;
|
||||
shiftBinding.fill(0);
|
||||
}
|
||||
|
||||
@@ -650,6 +658,21 @@ public:
|
||||
|
||||
bool isEsProfile() const { return profile == EEsProfile; }
|
||||
|
||||
bool setTileShadingRateQCOM(int dim, int size)
|
||||
{
|
||||
if (tileShadingRateQCOMNotDefault[dim])
|
||||
return size == tileShadingRateQCOM[dim];
|
||||
tileShadingRateQCOMNotDefault[dim] = true;
|
||||
tileShadingRateQCOM[dim] = size;
|
||||
return true;
|
||||
}
|
||||
unsigned int getTileShadingRateQCOM(int dim) const { return tileShadingRateQCOM[dim]; }
|
||||
bool isTileShadingRateQCOMSet() const
|
||||
{
|
||||
// Return true if any component has been set (i.e. any component is not default).
|
||||
return tileShadingRateQCOMNotDefault[0] || tileShadingRateQCOMNotDefault[1] || tileShadingRateQCOMNotDefault[2];
|
||||
}
|
||||
|
||||
void setShiftBinding(TResourceType res, unsigned int shift)
|
||||
{
|
||||
shiftBinding[res] = shift;
|
||||
@@ -895,6 +918,8 @@ public:
|
||||
bool getNonCoherentDepthAttachmentReadEXT() const { return nonCoherentDepthAttachmentReadEXT; }
|
||||
void setNonCoherentStencilAttachmentReadEXT() { nonCoherentStencilAttachmentReadEXT = true; }
|
||||
bool getNonCoherentStencilAttachmentReadEXT() const { return nonCoherentStencilAttachmentReadEXT; }
|
||||
void setNonCoherentTileAttachmentReadQCOM() { nonCoherentTileAttachmentReadQCOM = true; }
|
||||
bool getNonCoherentTileAttachmentReadQCOM() const { return nonCoherentTileAttachmentReadQCOM; }
|
||||
void setPostDepthCoverage() { postDepthCoverage = true; }
|
||||
bool getPostDepthCoverage() const { return postDepthCoverage; }
|
||||
void setEarlyFragmentTests() { earlyFragmentTests = true; }
|
||||
@@ -1107,17 +1132,20 @@ public:
|
||||
// Certain explicit conversions are allowed conditionally
|
||||
bool getArithemeticInt8Enabled() const {
|
||||
return numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types) ||
|
||||
numericFeatures.contains(TNumericFeatures::nv_gpu_shader5_types) ||
|
||||
numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_int8);
|
||||
}
|
||||
bool getArithemeticInt16Enabled() const {
|
||||
return numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types) ||
|
||||
numericFeatures.contains(TNumericFeatures::gpu_shader_int16) ||
|
||||
numericFeatures.contains(TNumericFeatures::nv_gpu_shader5_types) ||
|
||||
numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_int16);
|
||||
}
|
||||
|
||||
bool getArithemeticFloat16Enabled() const {
|
||||
return numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types) ||
|
||||
numericFeatures.contains(TNumericFeatures::gpu_shader_half_float) ||
|
||||
numericFeatures.contains(TNumericFeatures::nv_gpu_shader5_types) ||
|
||||
numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_float16);
|
||||
}
|
||||
void updateNumericFeature(TNumericFeatures::feature f, bool on)
|
||||
@@ -1238,6 +1266,10 @@ protected:
|
||||
bool layoutPrimitiveCulling;
|
||||
int numTaskEXTPayloads;
|
||||
|
||||
bool nonCoherentTileAttachmentReadQCOM;
|
||||
int tileShadingRateQCOM[3];
|
||||
bool tileShadingRateQCOMNotDefault[3];
|
||||
|
||||
// Base shift values
|
||||
std::array<unsigned int, EResCount> shiftBinding;
|
||||
|
||||
|
||||
@@ -104,6 +104,8 @@ public:
|
||||
virtual void float16Check(const TSourceLoc&, const char* op, bool builtIn = false);
|
||||
virtual void float16ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false);
|
||||
virtual void bfloat16ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false);
|
||||
virtual void floate5m2ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false);
|
||||
virtual void floate4m3ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false);
|
||||
virtual bool float16Arithmetic();
|
||||
virtual void requireFloat16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc);
|
||||
virtual void int16ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false);
|
||||
@@ -124,6 +126,8 @@ public:
|
||||
virtual void coopmatCheck(const TSourceLoc&, const char* op, bool builtIn = false);
|
||||
virtual void tensorLayoutViewCheck(const TSourceLoc&, const char* op, bool builtIn = false);
|
||||
virtual void coopvecCheck(const TSourceLoc&, const char* op, bool builtIn = false);
|
||||
virtual void intattachmentCheck(const TSourceLoc&, const char *op, bool builtIn = false);
|
||||
virtual void tensorCheckARM(const TSourceLoc&, const char *op, bool builtIn = false);
|
||||
bool relaxedErrors() const { return (messages & EShMsgRelaxedErrors) != 0; }
|
||||
bool suppressWarnings() const { return (messages & EShMsgSuppressWarnings) != 0; }
|
||||
bool isForwardCompatible() const { return forwardCompatible; }
|
||||
|
||||
@@ -58,8 +58,10 @@ public:
|
||||
TReflection(EShReflectionOptions opts, EShLanguage first, EShLanguage last)
|
||||
: options(opts), firstStage(first), lastStage(last), badReflection(TObjectReflection::badReflection())
|
||||
{
|
||||
for (int dim=0; dim<3; ++dim)
|
||||
for (int dim=0; dim<3; ++dim) {
|
||||
localSize[dim] = 0;
|
||||
tileShadingRateQCOM[dim] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~TReflection() {}
|
||||
@@ -168,6 +170,9 @@ public:
|
||||
// Thread local size
|
||||
unsigned getLocalSize(int dim) const { return dim <= 2 ? localSize[dim] : 0; }
|
||||
|
||||
// Tile shading rate QCOM
|
||||
unsigned getTileShadingRateQCOM(int dim) const { return dim <= 2 ? tileShadingRateQCOM[dim] : 0; }
|
||||
|
||||
void dump();
|
||||
|
||||
protected:
|
||||
@@ -213,6 +218,7 @@ protected:
|
||||
TIndices atomicCounterUniformIndices;
|
||||
|
||||
unsigned int localSize[3];
|
||||
unsigned int tileShadingRateQCOM[3];
|
||||
};
|
||||
|
||||
} // end namespace glslang
|
||||
|
||||
@@ -156,8 +156,9 @@ typedef enum {
|
||||
EShTargetVulkan_1_1 = (1 << 22) | (1 << 12), // Vulkan 1.1
|
||||
EShTargetVulkan_1_2 = (1 << 22) | (2 << 12), // Vulkan 1.2
|
||||
EShTargetVulkan_1_3 = (1 << 22) | (3 << 12), // Vulkan 1.3
|
||||
EShTargetVulkan_1_4 = (1 << 22) | (4 << 12), // Vulkan 1.4
|
||||
EShTargetOpenGL_450 = 450, // OpenGL
|
||||
LAST_ELEMENT_MARKER(EShTargetClientVersionCount = 5),
|
||||
LAST_ELEMENT_MARKER(EShTargetClientVersionCount = 6),
|
||||
} EShTargetClientVersion;
|
||||
|
||||
typedef EShTargetClientVersion EshTargetClientVersion;
|
||||
@@ -272,6 +273,7 @@ enum EShMessages : unsigned {
|
||||
EShMsgAbsolutePath = (1 << 16), // Output Absolute path for messages
|
||||
EShMsgDisplayErrorColumn = (1 << 17), // Display error message column aswell as line
|
||||
EShMsgLinkTimeOptimization = (1 << 18), // perform cross-stage optimizations during linking
|
||||
EShMsgValidateCrossStageIO = (1 << 19), // validate shader inputs have matching outputs in previous stage
|
||||
LAST_ELEMENT_MARKER(EShMsgCount),
|
||||
};
|
||||
|
||||
@@ -893,6 +895,7 @@ public:
|
||||
// call first, to do liveness analysis, index mapping, etc.; returns false on failure
|
||||
GLSLANG_EXPORT bool buildReflection(int opts = EShReflectionDefault);
|
||||
GLSLANG_EXPORT unsigned getLocalSize(int dim) const; // return dim'th local size
|
||||
GLSLANG_EXPORT unsigned getTileShadingRateQCOM(int dim) const; // return dim'th tile shading rate QCOM
|
||||
GLSLANG_EXPORT int getReflectionIndex(const char *name) const;
|
||||
GLSLANG_EXPORT int getReflectionPipeIOIndex(const char* name, const bool inOrOut) const;
|
||||
GLSLANG_EXPORT int getNumUniformVariables() const;
|
||||
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
#include <set>
|
||||
#include <cassert>
|
||||
|
||||
#include "spirv.hpp"
|
||||
#include "spirv.hpp11"
|
||||
|
||||
namespace spv {
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -35,7 +35,7 @@
|
||||
#define GLSLANG_BUILD_INFO
|
||||
|
||||
#define GLSLANG_VERSION_MAJOR 15
|
||||
#define GLSLANG_VERSION_MINOR 0
|
||||
#define GLSLANG_VERSION_MINOR 4
|
||||
#define GLSLANG_VERSION_PATCH 0
|
||||
#define GLSLANG_VERSION_FLAVOR ""
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user