mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 17:10:47 +00:00
Update generated SPIR-V code to SPIR-V 1.5
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -76,10 +76,10 @@ rdcstr DoStringise(const rdcspv::ImageOperands &el)
|
||||
STRINGISE_BITFIELD_CLASS_BIT(ConstOffsets);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(Sample);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MinLod);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MakeTexelAvailableKHR);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MakeTexelVisibleKHR);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(NonPrivateTexelKHR);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(VolatileTexelKHR);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MakeTexelAvailable);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MakeTexelVisible);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(NonPrivateTexel);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(VolatileTexel);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(SignExtend);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(ZeroExtend);
|
||||
}
|
||||
@@ -166,9 +166,9 @@ rdcstr DoStringise(const rdcspv::MemorySemantics &el)
|
||||
STRINGISE_BITFIELD_CLASS_BIT(CrossWorkgroupMemory);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(AtomicCounterMemory);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(ImageMemory);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(OutputMemoryKHR);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MakeAvailableKHR);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MakeVisibleKHR);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(OutputMemory);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MakeAvailable);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MakeVisible);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(Volatile);
|
||||
}
|
||||
END_BITFIELD_STRINGISE();
|
||||
@@ -184,9 +184,9 @@ rdcstr DoStringise(const rdcspv::MemoryAccess &el)
|
||||
STRINGISE_BITFIELD_CLASS_BIT(Volatile);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(Aligned);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(Nontemporal);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MakePointerAvailableKHR);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MakePointerVisibleKHR);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(NonPrivatePointerKHR);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MakePointerAvailable);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(MakePointerVisible);
|
||||
STRINGISE_BITFIELD_CLASS_BIT(NonPrivatePointer);
|
||||
}
|
||||
END_BITFIELD_STRINGISE();
|
||||
}
|
||||
@@ -250,7 +250,7 @@ rdcstr DoStringise(const rdcspv::AddressingModel &el)
|
||||
STRINGISE_ENUM_CLASS(Logical);
|
||||
STRINGISE_ENUM_CLASS(Physical32);
|
||||
STRINGISE_ENUM_CLASS(Physical64);
|
||||
STRINGISE_ENUM_CLASS(PhysicalStorageBuffer64EXT);
|
||||
STRINGISE_ENUM_CLASS(PhysicalStorageBuffer64);
|
||||
}
|
||||
END_ENUM_STRINGISE();
|
||||
}
|
||||
@@ -263,7 +263,7 @@ rdcstr DoStringise(const rdcspv::MemoryModel &el)
|
||||
STRINGISE_ENUM_CLASS(Simple);
|
||||
STRINGISE_ENUM_CLASS(GLSL450);
|
||||
STRINGISE_ENUM_CLASS(OpenCL);
|
||||
STRINGISE_ENUM_CLASS(VulkanKHR);
|
||||
STRINGISE_ENUM_CLASS(Vulkan);
|
||||
}
|
||||
END_ENUM_STRINGISE();
|
||||
}
|
||||
@@ -357,7 +357,7 @@ rdcstr DoStringise(const rdcspv::StorageClass &el)
|
||||
STRINGISE_ENUM_CLASS(HitAttributeNV);
|
||||
STRINGISE_ENUM_CLASS(IncomingRayPayloadNV);
|
||||
STRINGISE_ENUM_CLASS(ShaderRecordBufferNV);
|
||||
STRINGISE_ENUM_CLASS(PhysicalStorageBufferEXT);
|
||||
STRINGISE_ENUM_CLASS(PhysicalStorageBuffer);
|
||||
}
|
||||
END_ENUM_STRINGISE();
|
||||
}
|
||||
@@ -623,9 +623,9 @@ rdcstr DoStringise(const rdcspv::Decoration &el)
|
||||
STRINGISE_ENUM_CLASS(PerViewNV);
|
||||
STRINGISE_ENUM_CLASS(PerTaskNV);
|
||||
STRINGISE_ENUM_CLASS(PerVertexNV);
|
||||
STRINGISE_ENUM_CLASS(NonUniformEXT);
|
||||
STRINGISE_ENUM_CLASS(RestrictPointerEXT);
|
||||
STRINGISE_ENUM_CLASS(AliasedPointerEXT);
|
||||
STRINGISE_ENUM_CLASS(NonUniform);
|
||||
STRINGISE_ENUM_CLASS(RestrictPointer);
|
||||
STRINGISE_ENUM_CLASS(AliasedPointer);
|
||||
STRINGISE_ENUM_CLASS(CounterBuffer);
|
||||
STRINGISE_ENUM_CLASS(UserSemantic);
|
||||
STRINGISE_ENUM_CLASS(UserTypeGOOGLE);
|
||||
@@ -747,7 +747,7 @@ rdcstr DoStringise(const rdcspv::Scope &el)
|
||||
STRINGISE_ENUM_CLASS(Workgroup);
|
||||
STRINGISE_ENUM_CLASS(Subgroup);
|
||||
STRINGISE_ENUM_CLASS(Invocation);
|
||||
STRINGISE_ENUM_CLASS(QueueFamilyKHR);
|
||||
STRINGISE_ENUM_CLASS(QueueFamily);
|
||||
}
|
||||
END_ENUM_STRINGISE();
|
||||
}
|
||||
@@ -852,6 +852,8 @@ rdcstr DoStringise(const rdcspv::Capability &el)
|
||||
STRINGISE_ENUM_CLASS(GroupNonUniformShuffleRelative);
|
||||
STRINGISE_ENUM_CLASS(GroupNonUniformClustered);
|
||||
STRINGISE_ENUM_CLASS(GroupNonUniformQuad);
|
||||
STRINGISE_ENUM_CLASS(ShaderLayer);
|
||||
STRINGISE_ENUM_CLASS(ShaderViewportIndex);
|
||||
STRINGISE_ENUM_CLASS(SubgroupBallotKHR);
|
||||
STRINGISE_ENUM_CLASS(DrawParameters);
|
||||
STRINGISE_ENUM_CLASS(SubgroupVoteKHR);
|
||||
@@ -892,22 +894,22 @@ rdcstr DoStringise(const rdcspv::Capability &el)
|
||||
STRINGISE_ENUM_CLASS(ComputeDerivativeGroupQuadsNV);
|
||||
STRINGISE_ENUM_CLASS(FragmentDensityEXT);
|
||||
STRINGISE_ENUM_CLASS(GroupNonUniformPartitionedNV);
|
||||
STRINGISE_ENUM_CLASS(ShaderNonUniformEXT);
|
||||
STRINGISE_ENUM_CLASS(RuntimeDescriptorArrayEXT);
|
||||
STRINGISE_ENUM_CLASS(InputAttachmentArrayDynamicIndexingEXT);
|
||||
STRINGISE_ENUM_CLASS(UniformTexelBufferArrayDynamicIndexingEXT);
|
||||
STRINGISE_ENUM_CLASS(StorageTexelBufferArrayDynamicIndexingEXT);
|
||||
STRINGISE_ENUM_CLASS(UniformBufferArrayNonUniformIndexingEXT);
|
||||
STRINGISE_ENUM_CLASS(SampledImageArrayNonUniformIndexingEXT);
|
||||
STRINGISE_ENUM_CLASS(StorageBufferArrayNonUniformIndexingEXT);
|
||||
STRINGISE_ENUM_CLASS(StorageImageArrayNonUniformIndexingEXT);
|
||||
STRINGISE_ENUM_CLASS(InputAttachmentArrayNonUniformIndexingEXT);
|
||||
STRINGISE_ENUM_CLASS(UniformTexelBufferArrayNonUniformIndexingEXT);
|
||||
STRINGISE_ENUM_CLASS(StorageTexelBufferArrayNonUniformIndexingEXT);
|
||||
STRINGISE_ENUM_CLASS(ShaderNonUniform);
|
||||
STRINGISE_ENUM_CLASS(RuntimeDescriptorArray);
|
||||
STRINGISE_ENUM_CLASS(InputAttachmentArrayDynamicIndexing);
|
||||
STRINGISE_ENUM_CLASS(UniformTexelBufferArrayDynamicIndexing);
|
||||
STRINGISE_ENUM_CLASS(StorageTexelBufferArrayDynamicIndexing);
|
||||
STRINGISE_ENUM_CLASS(UniformBufferArrayNonUniformIndexing);
|
||||
STRINGISE_ENUM_CLASS(SampledImageArrayNonUniformIndexing);
|
||||
STRINGISE_ENUM_CLASS(StorageBufferArrayNonUniformIndexing);
|
||||
STRINGISE_ENUM_CLASS(StorageImageArrayNonUniformIndexing);
|
||||
STRINGISE_ENUM_CLASS(InputAttachmentArrayNonUniformIndexing);
|
||||
STRINGISE_ENUM_CLASS(UniformTexelBufferArrayNonUniformIndexing);
|
||||
STRINGISE_ENUM_CLASS(StorageTexelBufferArrayNonUniformIndexing);
|
||||
STRINGISE_ENUM_CLASS(RayTracingNV);
|
||||
STRINGISE_ENUM_CLASS(VulkanMemoryModelKHR);
|
||||
STRINGISE_ENUM_CLASS(VulkanMemoryModelDeviceScopeKHR);
|
||||
STRINGISE_ENUM_CLASS(PhysicalStorageBufferAddressesEXT);
|
||||
STRINGISE_ENUM_CLASS(VulkanMemoryModel);
|
||||
STRINGISE_ENUM_CLASS(VulkanMemoryModelDeviceScope);
|
||||
STRINGISE_ENUM_CLASS(PhysicalStorageBufferAddresses);
|
||||
STRINGISE_ENUM_CLASS(ComputeDerivativeGroupLinearNV);
|
||||
STRINGISE_ENUM_CLASS(CooperativeMatrixNV);
|
||||
STRINGISE_ENUM_CLASS(FragmentShaderSampleInterlockEXT);
|
||||
@@ -1515,14 +1517,14 @@ std::string ParamToStr(const std::function<rdcstr(rdcspv::Id)> &idName, const rd
|
||||
ret += "Sample" "(" + idName(el.sample) + ")" ", ";
|
||||
if(el.flags & ImageOperands::MinLod)
|
||||
ret += "MinLod" "(" + idName(el.minLod) + ")" ", ";
|
||||
if(el.flags & ImageOperands::MakeTexelAvailableKHR)
|
||||
ret += "MakeTexelAvailableKHR" "(" + idName(el.makeTexelAvailableKHR) + ")" ", ";
|
||||
if(el.flags & ImageOperands::MakeTexelVisibleKHR)
|
||||
ret += "MakeTexelVisibleKHR" "(" + idName(el.makeTexelVisibleKHR) + ")" ", ";
|
||||
if(el.flags & ImageOperands::NonPrivateTexelKHR)
|
||||
ret += "NonPrivateTexelKHR" ", ";
|
||||
if(el.flags & ImageOperands::VolatileTexelKHR)
|
||||
ret += "VolatileTexelKHR" ", ";
|
||||
if(el.flags & ImageOperands::MakeTexelAvailable)
|
||||
ret += "MakeTexelAvailable" "(" + idName(el.makeTexelAvailable) + ")" ", ";
|
||||
if(el.flags & ImageOperands::MakeTexelVisible)
|
||||
ret += "MakeTexelVisible" "(" + idName(el.makeTexelVisible) + ")" ", ";
|
||||
if(el.flags & ImageOperands::NonPrivateTexel)
|
||||
ret += "NonPrivateTexel" ", ";
|
||||
if(el.flags & ImageOperands::VolatileTexel)
|
||||
ret += "VolatileTexel" ", ";
|
||||
if(el.flags & ImageOperands::SignExtend)
|
||||
ret += "SignExtend" ", ";
|
||||
if(el.flags & ImageOperands::ZeroExtend)
|
||||
@@ -1581,12 +1583,12 @@ std::string ParamToStr(const std::function<rdcstr(rdcspv::Id)> &idName, const rd
|
||||
ret += "Aligned" "(" + ToStr(el.aligned) + ")" ", ";
|
||||
if(el.flags & MemoryAccess::Nontemporal)
|
||||
ret += "Nontemporal" ", ";
|
||||
if(el.flags & MemoryAccess::MakePointerAvailableKHR)
|
||||
ret += "MakePointerAvailableKHR" "(" + idName(el.makePointerAvailableKHR) + ")" ", ";
|
||||
if(el.flags & MemoryAccess::MakePointerVisibleKHR)
|
||||
ret += "MakePointerVisibleKHR" "(" + idName(el.makePointerVisibleKHR) + ")" ", ";
|
||||
if(el.flags & MemoryAccess::NonPrivatePointerKHR)
|
||||
ret += "NonPrivatePointerKHR" ", ";
|
||||
if(el.flags & MemoryAccess::MakePointerAvailable)
|
||||
ret += "MakePointerAvailable" "(" + idName(el.makePointerAvailable) + ")" ", ";
|
||||
if(el.flags & MemoryAccess::MakePointerVisible)
|
||||
ret += "MakePointerVisible" "(" + idName(el.makePointerVisible) + ")" ", ";
|
||||
if(el.flags & MemoryAccess::NonPrivatePointer)
|
||||
ret += "NonPrivatePointer" ", ";
|
||||
|
||||
// remove trailing ", "
|
||||
if(ret.size() > 2)
|
||||
|
||||
@@ -70,9 +70,9 @@ namespace rdcspv
|
||||
{
|
||||
static const uint32_t MagicNumber = 0x07230203;
|
||||
static const uint32_t VersionMajor = 1;
|
||||
static const uint32_t VersionMinor = 4;
|
||||
static const uint32_t VersionMinor = 5;
|
||||
static const uint32_t VersionRevision = 1;
|
||||
static const uint32_t VersionPacked = (1 << 16) | (4 << 8);
|
||||
static const uint32_t VersionPacked = (1 << 16) | (5 << 8);
|
||||
static const uint32_t OpCodeMask = 0xffff;
|
||||
static const uint32_t WordCountShift = 16;
|
||||
static const uint32_t FirstRealWord = 5;
|
||||
@@ -123,9 +123,13 @@ enum class ImageOperands : uint32_t
|
||||
ConstOffsets = 0x0020,
|
||||
Sample = 0x0040,
|
||||
MinLod = 0x0080,
|
||||
MakeTexelAvailable = 0x0100,
|
||||
MakeTexelAvailableKHR = 0x0100,
|
||||
MakeTexelVisible = 0x0200,
|
||||
MakeTexelVisibleKHR = 0x0200,
|
||||
NonPrivateTexel = 0x0400,
|
||||
NonPrivateTexelKHR = 0x0400,
|
||||
VolatileTexel = 0x0800,
|
||||
VolatileTexelKHR = 0x0800,
|
||||
SignExtend = 0x1000,
|
||||
ZeroExtend = 0x2000,
|
||||
@@ -205,8 +209,11 @@ enum class MemorySemantics : uint32_t
|
||||
CrossWorkgroupMemory = 0x0200,
|
||||
AtomicCounterMemory = 0x0400,
|
||||
ImageMemory = 0x0800,
|
||||
OutputMemory = 0x1000,
|
||||
OutputMemoryKHR = 0x1000,
|
||||
MakeAvailable = 0x2000,
|
||||
MakeAvailableKHR = 0x2000,
|
||||
MakeVisible = 0x4000,
|
||||
MakeVisibleKHR = 0x4000,
|
||||
Volatile = 0x8000,
|
||||
Max,
|
||||
@@ -221,8 +228,11 @@ enum class MemoryAccess : uint32_t
|
||||
Volatile = 0x0001,
|
||||
Aligned = 0x0002,
|
||||
Nontemporal = 0x0004,
|
||||
MakePointerAvailable = 0x0008,
|
||||
MakePointerAvailableKHR = 0x0008,
|
||||
MakePointerVisible = 0x0010,
|
||||
MakePointerVisibleKHR = 0x0010,
|
||||
NonPrivatePointer = 0x0020,
|
||||
NonPrivatePointerKHR = 0x0020,
|
||||
Max,
|
||||
Invalid = ~0U,
|
||||
@@ -278,6 +288,7 @@ enum class AddressingModel : uint32_t
|
||||
Logical = 0,
|
||||
Physical32 = 1,
|
||||
Physical64 = 2,
|
||||
PhysicalStorageBuffer64 = 5348,
|
||||
PhysicalStorageBuffer64EXT = 5348,
|
||||
Max,
|
||||
Invalid = ~0U,
|
||||
@@ -288,6 +299,7 @@ enum class MemoryModel : uint32_t
|
||||
Simple = 0,
|
||||
GLSL450 = 1,
|
||||
OpenCL = 2,
|
||||
Vulkan = 3,
|
||||
VulkanKHR = 3,
|
||||
Max,
|
||||
Invalid = ~0U,
|
||||
@@ -376,6 +388,7 @@ enum class StorageClass : uint32_t
|
||||
HitAttributeNV = 5339,
|
||||
IncomingRayPayloadNV = 5342,
|
||||
ShaderRecordBufferNV = 5343,
|
||||
PhysicalStorageBuffer = 5349,
|
||||
PhysicalStorageBufferEXT = 5349,
|
||||
Max,
|
||||
Invalid = ~0U,
|
||||
@@ -609,8 +622,11 @@ enum class Decoration : uint32_t
|
||||
PerViewNV = 5272,
|
||||
PerTaskNV = 5273,
|
||||
PerVertexNV = 5285,
|
||||
NonUniform = 5300,
|
||||
NonUniformEXT = 5300,
|
||||
RestrictPointer = 5355,
|
||||
RestrictPointerEXT = 5355,
|
||||
AliasedPointer = 5356,
|
||||
AliasedPointerEXT = 5356,
|
||||
CounterBuffer = 5634,
|
||||
HlslCounterBufferGOOGLE = 5634,
|
||||
@@ -736,6 +752,7 @@ enum class Scope : uint32_t
|
||||
Workgroup = 2,
|
||||
Subgroup = 3,
|
||||
Invocation = 4,
|
||||
QueueFamily = 5,
|
||||
QueueFamilyKHR = 5,
|
||||
Max,
|
||||
Invalid = ~0U,
|
||||
@@ -832,6 +849,8 @@ enum class Capability : uint32_t
|
||||
GroupNonUniformShuffleRelative = 66,
|
||||
GroupNonUniformClustered = 67,
|
||||
GroupNonUniformQuad = 68,
|
||||
ShaderLayer = 69,
|
||||
ShaderViewportIndex = 70,
|
||||
SubgroupBallotKHR = 4423,
|
||||
DrawParameters = 4427,
|
||||
SubgroupVoteKHR = 4431,
|
||||
@@ -876,21 +895,36 @@ enum class Capability : uint32_t
|
||||
FragmentDensityEXT = 5291,
|
||||
ShadingRateNV = 5291,
|
||||
GroupNonUniformPartitionedNV = 5297,
|
||||
ShaderNonUniform = 5301,
|
||||
ShaderNonUniformEXT = 5301,
|
||||
RuntimeDescriptorArray = 5302,
|
||||
RuntimeDescriptorArrayEXT = 5302,
|
||||
InputAttachmentArrayDynamicIndexing = 5303,
|
||||
InputAttachmentArrayDynamicIndexingEXT = 5303,
|
||||
UniformTexelBufferArrayDynamicIndexing = 5304,
|
||||
UniformTexelBufferArrayDynamicIndexingEXT = 5304,
|
||||
StorageTexelBufferArrayDynamicIndexing = 5305,
|
||||
StorageTexelBufferArrayDynamicIndexingEXT = 5305,
|
||||
UniformBufferArrayNonUniformIndexing = 5306,
|
||||
UniformBufferArrayNonUniformIndexingEXT = 5306,
|
||||
SampledImageArrayNonUniformIndexing = 5307,
|
||||
SampledImageArrayNonUniformIndexingEXT = 5307,
|
||||
StorageBufferArrayNonUniformIndexing = 5308,
|
||||
StorageBufferArrayNonUniformIndexingEXT = 5308,
|
||||
StorageImageArrayNonUniformIndexing = 5309,
|
||||
StorageImageArrayNonUniformIndexingEXT = 5309,
|
||||
InputAttachmentArrayNonUniformIndexing = 5310,
|
||||
InputAttachmentArrayNonUniformIndexingEXT = 5310,
|
||||
UniformTexelBufferArrayNonUniformIndexing = 5311,
|
||||
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||
RayTracingNV = 5340,
|
||||
VulkanMemoryModel = 5345,
|
||||
VulkanMemoryModelKHR = 5345,
|
||||
VulkanMemoryModelDeviceScope = 5346,
|
||||
VulkanMemoryModelDeviceScopeKHR = 5346,
|
||||
PhysicalStorageBufferAddresses = 5347,
|
||||
PhysicalStorageBufferAddressesEXT = 5347,
|
||||
ComputeDerivativeGroupLinearNV = 5350,
|
||||
CooperativeMatrixNV = 5357,
|
||||
@@ -937,7 +971,9 @@ struct ImageOperandsAndParamDatas
|
||||
Id constOffsets;
|
||||
Id sample;
|
||||
Id minLod;
|
||||
IdScope makeTexelAvailable;
|
||||
IdScope makeTexelAvailableKHR;
|
||||
IdScope makeTexelVisible;
|
||||
IdScope makeTexelVisibleKHR;
|
||||
|
||||
operator ImageOperands() const { return flags; }
|
||||
@@ -960,12 +996,20 @@ struct ImageOperandsAndParamDatas
|
||||
void unsetSample() { flags &= ~ImageOperands::Sample; }
|
||||
void setMinLod(Id minLodParam) { flags |= ImageOperands::MinLod; minLod = minLodParam; }
|
||||
void unsetMinLod() { flags &= ~ImageOperands::MinLod; }
|
||||
void setMakeTexelAvailable(IdScope makeTexelAvailableParam) { flags |= ImageOperands::MakeTexelAvailable; makeTexelAvailable = makeTexelAvailableParam; }
|
||||
void unsetMakeTexelAvailable() { flags &= ~ImageOperands::MakeTexelAvailable; }
|
||||
void setMakeTexelAvailableKHR(IdScope makeTexelAvailableKHRParam) { flags |= ImageOperands::MakeTexelAvailableKHR; makeTexelAvailableKHR = makeTexelAvailableKHRParam; }
|
||||
void unsetMakeTexelAvailableKHR() { flags &= ~ImageOperands::MakeTexelAvailableKHR; }
|
||||
void setMakeTexelVisible(IdScope makeTexelVisibleParam) { flags |= ImageOperands::MakeTexelVisible; makeTexelVisible = makeTexelVisibleParam; }
|
||||
void unsetMakeTexelVisible() { flags &= ~ImageOperands::MakeTexelVisible; }
|
||||
void setMakeTexelVisibleKHR(IdScope makeTexelVisibleKHRParam) { flags |= ImageOperands::MakeTexelVisibleKHR; makeTexelVisibleKHR = makeTexelVisibleKHRParam; }
|
||||
void unsetMakeTexelVisibleKHR() { flags &= ~ImageOperands::MakeTexelVisibleKHR; }
|
||||
void setNonPrivateTexel() { flags |= ImageOperands::NonPrivateTexel; }
|
||||
void unsetNonPrivateTexel() { flags &= ~ImageOperands::NonPrivateTexel; }
|
||||
void setNonPrivateTexelKHR() { flags |= ImageOperands::NonPrivateTexelKHR; }
|
||||
void unsetNonPrivateTexelKHR() { flags &= ~ImageOperands::NonPrivateTexelKHR; }
|
||||
void setVolatileTexel() { flags |= ImageOperands::VolatileTexel; }
|
||||
void unsetVolatileTexel() { flags &= ~ImageOperands::VolatileTexel; }
|
||||
void setVolatileTexelKHR() { flags |= ImageOperands::VolatileTexelKHR; }
|
||||
void unsetVolatileTexelKHR() { flags &= ~ImageOperands::VolatileTexelKHR; }
|
||||
void setSignExtend() { flags |= ImageOperands::SignExtend; }
|
||||
@@ -1014,7 +1058,9 @@ struct MemoryAccessAndParamDatas
|
||||
MemoryAccessAndParamDatas(MemoryAccess f = MemoryAccess::None) : flags(f) {}
|
||||
MemoryAccess flags;
|
||||
uint32_t aligned;
|
||||
IdScope makePointerAvailable;
|
||||
IdScope makePointerAvailableKHR;
|
||||
IdScope makePointerVisible;
|
||||
IdScope makePointerVisibleKHR;
|
||||
|
||||
operator MemoryAccess() const { return flags; }
|
||||
@@ -1027,10 +1073,16 @@ struct MemoryAccessAndParamDatas
|
||||
void unsetAligned() { flags &= ~MemoryAccess::Aligned; }
|
||||
void setNontemporal() { flags |= MemoryAccess::Nontemporal; }
|
||||
void unsetNontemporal() { flags &= ~MemoryAccess::Nontemporal; }
|
||||
void setMakePointerAvailable(IdScope makePointerAvailableParam) { flags |= MemoryAccess::MakePointerAvailable; makePointerAvailable = makePointerAvailableParam; }
|
||||
void unsetMakePointerAvailable() { flags &= ~MemoryAccess::MakePointerAvailable; }
|
||||
void setMakePointerAvailableKHR(IdScope makePointerAvailableKHRParam) { flags |= MemoryAccess::MakePointerAvailableKHR; makePointerAvailableKHR = makePointerAvailableKHRParam; }
|
||||
void unsetMakePointerAvailableKHR() { flags &= ~MemoryAccess::MakePointerAvailableKHR; }
|
||||
void setMakePointerVisible(IdScope makePointerVisibleParam) { flags |= MemoryAccess::MakePointerVisible; makePointerVisible = makePointerVisibleParam; }
|
||||
void unsetMakePointerVisible() { flags &= ~MemoryAccess::MakePointerVisible; }
|
||||
void setMakePointerVisibleKHR(IdScope makePointerVisibleKHRParam) { flags |= MemoryAccess::MakePointerVisibleKHR; makePointerVisibleKHR = makePointerVisibleKHRParam; }
|
||||
void unsetMakePointerVisibleKHR() { flags &= ~MemoryAccess::MakePointerVisibleKHR; }
|
||||
void setNonPrivatePointer() { flags |= MemoryAccess::NonPrivatePointer; }
|
||||
void unsetNonPrivatePointer() { flags &= ~MemoryAccess::NonPrivatePointer; }
|
||||
void setNonPrivatePointerKHR() { flags |= MemoryAccess::NonPrivatePointerKHR; }
|
||||
void unsetNonPrivatePointerKHR() { flags &= ~MemoryAccess::NonPrivatePointerKHR; }
|
||||
};
|
||||
|
||||
@@ -220,14 +220,14 @@ inline ImageOperandsAndParamDatas DecodeParam(const ConstIter &it, uint32_t &wor
|
||||
ret.minLod = Id::fromWord(it.word(word));
|
||||
word += 1;
|
||||
}
|
||||
if(ret.flags & ImageOperands::MakeTexelAvailableKHR)
|
||||
if(ret.flags & ImageOperands::MakeTexelAvailable)
|
||||
{
|
||||
ret.makeTexelAvailableKHR = Id::fromWord(it.word(word));
|
||||
ret.makeTexelAvailable = Id::fromWord(it.word(word));
|
||||
word += 1;
|
||||
}
|
||||
if(ret.flags & ImageOperands::MakeTexelVisibleKHR)
|
||||
if(ret.flags & ImageOperands::MakeTexelVisible)
|
||||
{
|
||||
ret.makeTexelVisibleKHR = Id::fromWord(it.word(word));
|
||||
ret.makeTexelVisible = Id::fromWord(it.word(word));
|
||||
word += 1;
|
||||
}
|
||||
return ret;
|
||||
@@ -269,13 +269,13 @@ inline void EncodeParam(std::vector<uint32_t> &words, const ImageOperandsAndPara
|
||||
{
|
||||
words.push_back(param.minLod.value());
|
||||
}
|
||||
if(param.flags & ImageOperands::MakeTexelAvailableKHR)
|
||||
if(param.flags & ImageOperands::MakeTexelAvailable)
|
||||
{
|
||||
words.push_back(param.makeTexelAvailableKHR.value());
|
||||
words.push_back(param.makeTexelAvailable.value());
|
||||
}
|
||||
if(param.flags & ImageOperands::MakeTexelVisibleKHR)
|
||||
if(param.flags & ImageOperands::MakeTexelVisible)
|
||||
{
|
||||
words.push_back(param.makeTexelVisibleKHR.value());
|
||||
words.push_back(param.makeTexelVisible.value());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -291,8 +291,8 @@ inline uint16_t ExtraWordCount(const ImageOperands imageOperands)
|
||||
case ImageOperands::ConstOffsets: return 1;
|
||||
case ImageOperands::Sample: return 1;
|
||||
case ImageOperands::MinLod: return 1;
|
||||
case ImageOperands::MakeTexelAvailableKHR: return 1;
|
||||
case ImageOperands::MakeTexelVisibleKHR: return 1;
|
||||
case ImageOperands::MakeTexelAvailable: return 1;
|
||||
case ImageOperands::MakeTexelVisible: return 1;
|
||||
default: break;
|
||||
}
|
||||
return 0;
|
||||
@@ -394,14 +394,14 @@ inline MemoryAccessAndParamDatas DecodeParam(const ConstIter &it, uint32_t &word
|
||||
ret.aligned = (uint32_t)it.word(word);
|
||||
word += 1;
|
||||
}
|
||||
if(ret.flags & MemoryAccess::MakePointerAvailableKHR)
|
||||
if(ret.flags & MemoryAccess::MakePointerAvailable)
|
||||
{
|
||||
ret.makePointerAvailableKHR = Id::fromWord(it.word(word));
|
||||
ret.makePointerAvailable = Id::fromWord(it.word(word));
|
||||
word += 1;
|
||||
}
|
||||
if(ret.flags & MemoryAccess::MakePointerVisibleKHR)
|
||||
if(ret.flags & MemoryAccess::MakePointerVisible)
|
||||
{
|
||||
ret.makePointerVisibleKHR = Id::fromWord(it.word(word));
|
||||
ret.makePointerVisible = Id::fromWord(it.word(word));
|
||||
word += 1;
|
||||
}
|
||||
return ret;
|
||||
@@ -414,13 +414,13 @@ inline void EncodeParam(std::vector<uint32_t> &words, const MemoryAccessAndParam
|
||||
{
|
||||
words.push_back((uint32_t)param.aligned);
|
||||
}
|
||||
if(param.flags & MemoryAccess::MakePointerAvailableKHR)
|
||||
if(param.flags & MemoryAccess::MakePointerAvailable)
|
||||
{
|
||||
words.push_back(param.makePointerAvailableKHR.value());
|
||||
words.push_back(param.makePointerAvailable.value());
|
||||
}
|
||||
if(param.flags & MemoryAccess::MakePointerVisibleKHR)
|
||||
if(param.flags & MemoryAccess::MakePointerVisible)
|
||||
{
|
||||
words.push_back(param.makePointerVisibleKHR.value());
|
||||
words.push_back(param.makePointerVisible.value());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -429,8 +429,8 @@ inline uint16_t ExtraWordCount(const MemoryAccess memoryAccess)
|
||||
switch(memoryAccess)
|
||||
{
|
||||
case MemoryAccess::Aligned: return 1;
|
||||
case MemoryAccess::MakePointerAvailableKHR: return 1;
|
||||
case MemoryAccess::MakePointerVisibleKHR: return 1;
|
||||
case MemoryAccess::MakePointerAvailable: return 1;
|
||||
case MemoryAccess::MakePointerVisible: return 1;
|
||||
default: break;
|
||||
}
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user