aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobski <TobyHector@hotmail.com>2020-10-19 21:55:32 +0100
committerGitHub <noreply@github.com>2020-10-19 14:55:32 -0600
commitbe32cb6c8fb0c694d60b4d9772ef6d299738159c (patch)
treef5162adaa62c70895be836111cf76c24069fd6c8
parentc43a43c7cc3af55910b9bec2a71e3e8a622443cf (diff)
downloadSPIRV-Headers-be32cb6c8fb0c694d60b4d9772ef6d299738159c.tar.gz
Added SPV_KHR_fragment_shading_rate (#172)
-rw-r--r--include/spirv/unified1/spirv.core.grammar.json51
-rw-r--r--include/spirv/unified1/spirv.cs20
-rw-r--r--include/spirv/unified1/spirv.h19
-rw-r--r--include/spirv/unified1/spirv.hpp20
-rw-r--r--include/spirv/unified1/spirv.hpp1120
-rw-r--r--include/spirv/unified1/spirv.json14
-rw-r--r--include/spirv/unified1/spirv.lua18
-rw-r--r--include/spirv/unified1/spirv.py18
-rw-r--r--include/spirv/unified1/spv.d20
-rw-r--r--tools/buildHeaders/jsonToSpirv.cpp5
-rw-r--r--tools/buildHeaders/jsonToSpirv.h1
11 files changed, 206 insertions, 0 deletions
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 2044192..cb9c8b3 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -7720,6 +7720,36 @@
]
},
{
+ "category" : "BitEnum",
+ "kind" : "FragmentShadingRate",
+ "enumerants" : [
+ {
+ "enumerant" : "Vertical2Pixels",
+ "value" : "0x0001",
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "Vertical4Pixels",
+ "value" : "0x0002",
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "Horizontal2Pixels",
+ "value" : "0x0004",
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "Horizontal4Pixels",
+ "value" : "0x0008",
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
"category" : "ValueEnum",
"kind" : "SourceLanguage",
"enumerants" : [
@@ -10005,6 +10035,13 @@
"version" : "1.3"
},
{
+ "enumerant" : "PrimitiveShadingRateKHR",
+ "value" : 4432,
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "extensions" : [ "SPV_KHR_fragment_shading_rate" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "DeviceIndex",
"value" : 4438,
"capabilities" : [ "DeviceGroup" ],
@@ -10019,6 +10056,13 @@
"version" : "1.3"
},
{
+ "enumerant" : "ShadingRateKHR",
+ "value" : 4444,
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "extensions" : [ "SPV_KHR_fragment_shading_rate" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "BaryCoordNoPerspAMD",
"value" : 4992,
"extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
@@ -10902,6 +10946,13 @@
"version" : "1.5"
},
{
+ "enumerant" : "FragmentShadingRateKHR",
+ "value" : 4422,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_fragment_shading_rate" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "SubgroupBallotKHR",
"value" : 4423,
"extensions" : [ "SPV_KHR_shader_ballot" ],
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index ce11768..063f9ec 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -556,8 +556,10 @@ namespace Spv
BaseVertex = 4424,
BaseInstance = 4425,
DrawIndex = 4426,
+ PrimitiveShadingRateKHR = 4432,
DeviceIndex = 4438,
ViewIndex = 4440,
+ ShadingRateKHR = 4444,
BaryCoordNoPerspAMD = 4992,
BaryCoordNoPerspCentroidAMD = 4993,
BaryCoordNoPerspSampleAMD = 4994,
@@ -874,6 +876,7 @@ namespace Spv
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
+ FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
SubgroupVoteKHR = 4431,
@@ -1028,6 +1031,23 @@ namespace Spv
RayQueryCandidateIntersectionAABBKHR = 1,
}
+ public enum FragmentShadingRateShift
+ {
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+ }
+
+ public enum FragmentShadingRateMask
+ {
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+ }
+
public enum Op
{
OpNop = 0,
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 8c560da..6b7f078 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -562,8 +562,10 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInBaseVertex = 4424,
SpvBuiltInBaseInstance = 4425,
SpvBuiltInDrawIndex = 4426,
+ SpvBuiltInPrimitiveShadingRateKHR = 4432,
SpvBuiltInDeviceIndex = 4438,
SpvBuiltInViewIndex = 4440,
+ SpvBuiltInShadingRateKHR = 4444,
SpvBuiltInBaryCoordNoPerspAMD = 4992,
SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
@@ -874,6 +876,7 @@ typedef enum SpvCapability_ {
SpvCapabilityGroupNonUniformQuad = 68,
SpvCapabilityShaderLayer = 69,
SpvCapabilityShaderViewportIndex = 70,
+ SpvCapabilityFragmentShadingRateKHR = 4422,
SpvCapabilitySubgroupBallotKHR = 4423,
SpvCapabilityDrawParameters = 4427,
SpvCapabilitySubgroupVoteKHR = 4431,
@@ -1028,6 +1031,22 @@ typedef enum SpvRayQueryCandidateIntersectionType_ {
SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
} SpvRayQueryCandidateIntersectionType;
+typedef enum SpvFragmentShadingRateShift_ {
+ SpvFragmentShadingRateVertical2PixelsShift = 0,
+ SpvFragmentShadingRateVertical4PixelsShift = 1,
+ SpvFragmentShadingRateHorizontal2PixelsShift = 2,
+ SpvFragmentShadingRateHorizontal4PixelsShift = 3,
+ SpvFragmentShadingRateMax = 0x7fffffff,
+} SpvFragmentShadingRateShift;
+
+typedef enum SpvFragmentShadingRateMask_ {
+ SpvFragmentShadingRateMaskNone = 0,
+ SpvFragmentShadingRateVertical2PixelsMask = 0x00000001,
+ SpvFragmentShadingRateVertical4PixelsMask = 0x00000002,
+ SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004,
+ SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
+} SpvFragmentShadingRateMask;
+
typedef enum SpvOp_ {
SpvOpNop = 0,
SpvOpUndef = 1,
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 20cc8eb..0cccd21 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -558,8 +558,10 @@ enum BuiltIn {
BuiltInBaseVertex = 4424,
BuiltInBaseInstance = 4425,
BuiltInDrawIndex = 4426,
+ BuiltInPrimitiveShadingRateKHR = 4432,
BuiltInDeviceIndex = 4438,
BuiltInViewIndex = 4440,
+ BuiltInShadingRateKHR = 4444,
BuiltInBaryCoordNoPerspAMD = 4992,
BuiltInBaryCoordNoPerspCentroidAMD = 4993,
BuiltInBaryCoordNoPerspSampleAMD = 4994,
@@ -870,6 +872,7 @@ enum Capability {
CapabilityGroupNonUniformQuad = 68,
CapabilityShaderLayer = 69,
CapabilityShaderViewportIndex = 70,
+ CapabilityFragmentShadingRateKHR = 4422,
CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427,
CapabilitySubgroupVoteKHR = 4431,
@@ -1024,6 +1027,22 @@ enum RayQueryCandidateIntersectionType {
RayQueryCandidateIntersectionTypeMax = 0x7fffffff,
};
+enum FragmentShadingRateShift {
+ FragmentShadingRateVertical2PixelsShift = 0,
+ FragmentShadingRateVertical4PixelsShift = 1,
+ FragmentShadingRateHorizontal2PixelsShift = 2,
+ FragmentShadingRateHorizontal4PixelsShift = 3,
+ FragmentShadingRateMax = 0x7fffffff,
+};
+
+enum FragmentShadingRateMask {
+ FragmentShadingRateMaskNone = 0,
+ FragmentShadingRateVertical2PixelsMask = 0x00000001,
+ FragmentShadingRateVertical4PixelsMask = 0x00000002,
+ FragmentShadingRateHorizontal2PixelsMask = 0x00000004,
+ FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
+};
+
enum Op {
OpNop = 0,
OpUndef = 1,
@@ -2166,6 +2185,7 @@ inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask
inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
+inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
} // end namespace spv
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index a3322c0..d9fe865 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -558,8 +558,10 @@ enum class BuiltIn : unsigned {
BaseVertex = 4424,
BaseInstance = 4425,
DrawIndex = 4426,
+ PrimitiveShadingRateKHR = 4432,
DeviceIndex = 4438,
ViewIndex = 4440,
+ ShadingRateKHR = 4444,
BaryCoordNoPerspAMD = 4992,
BaryCoordNoPerspCentroidAMD = 4993,
BaryCoordNoPerspSampleAMD = 4994,
@@ -870,6 +872,7 @@ enum class Capability : unsigned {
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
+ FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
SubgroupVoteKHR = 4431,
@@ -1024,6 +1027,22 @@ enum class RayQueryCandidateIntersectionType : unsigned {
Max = 0x7fffffff,
};
+enum class FragmentShadingRateShift : unsigned {
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+ Max = 0x7fffffff,
+};
+
+enum class FragmentShadingRateMask : unsigned {
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+};
+
enum class Op : unsigned {
OpNop = 0,
OpUndef = 1,
@@ -2166,6 +2185,7 @@ inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask
inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
+inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
} // end namespace spv
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 1db1cd6..3a73e87 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -591,8 +591,10 @@
"BaseVertex": 4424,
"BaseInstance": 4425,
"DrawIndex": 4426,
+ "PrimitiveShadingRateKHR": 4432,
"DeviceIndex": 4438,
"ViewIndex": 4440,
+ "ShadingRateKHR": 4444,
"BaryCoordNoPerspAMD": 4992,
"BaryCoordNoPerspCentroidAMD": 4993,
"BaryCoordNoPerspSampleAMD": 4994,
@@ -860,6 +862,7 @@
"GroupNonUniformQuad": 68,
"ShaderLayer": 69,
"ShaderViewportIndex": 70,
+ "FragmentShadingRateKHR": 4422,
"SubgroupBallotKHR": 4423,
"DrawParameters": 4427,
"SubgroupVoteKHR": 4431,
@@ -1012,6 +1015,17 @@
}
},
{
+ "Name": "FragmentShadingRate",
+ "Type": "Bit",
+ "Values":
+ {
+ "Vertical2Pixels": 0,
+ "Vertical4Pixels": 1,
+ "Horizontal2Pixels": 2,
+ "Horizontal4Pixels": 3
+ }
+ },
+ {
"Name": "Op",
"Type": "Value",
"Values":
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 7002ed9..cff8443 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -530,8 +530,10 @@ spv = {
BaseVertex = 4424,
BaseInstance = 4425,
DrawIndex = 4426,
+ PrimitiveShadingRateKHR = 4432,
DeviceIndex = 4438,
ViewIndex = 4440,
+ ShadingRateKHR = 4444,
BaryCoordNoPerspAMD = 4992,
BaryCoordNoPerspCentroidAMD = 4993,
BaryCoordNoPerspSampleAMD = 4994,
@@ -832,6 +834,7 @@ spv = {
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
+ FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
SubgroupVoteKHR = 4431,
@@ -981,6 +984,21 @@ spv = {
RayQueryCandidateIntersectionAABBKHR = 1,
},
+ FragmentShadingRateShift = {
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+ },
+
+ FragmentShadingRateMask = {
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+ },
+
Op = {
OpNop = 0,
OpUndef = 1,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index b2e469d..0d249c4 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -530,8 +530,10 @@ spv = {
'BaseVertex' : 4424,
'BaseInstance' : 4425,
'DrawIndex' : 4426,
+ 'PrimitiveShadingRateKHR' : 4432,
'DeviceIndex' : 4438,
'ViewIndex' : 4440,
+ 'ShadingRateKHR' : 4444,
'BaryCoordNoPerspAMD' : 4992,
'BaryCoordNoPerspCentroidAMD' : 4993,
'BaryCoordNoPerspSampleAMD' : 4994,
@@ -832,6 +834,7 @@ spv = {
'GroupNonUniformQuad' : 68,
'ShaderLayer' : 69,
'ShaderViewportIndex' : 70,
+ 'FragmentShadingRateKHR' : 4422,
'SubgroupBallotKHR' : 4423,
'DrawParameters' : 4427,
'SubgroupVoteKHR' : 4431,
@@ -981,6 +984,21 @@ spv = {
'RayQueryCandidateIntersectionAABBKHR' : 1,
},
+ 'FragmentShadingRateShift' : {
+ 'Vertical2Pixels' : 0,
+ 'Vertical4Pixels' : 1,
+ 'Horizontal2Pixels' : 2,
+ 'Horizontal4Pixels' : 3,
+ },
+
+ 'FragmentShadingRateMask' : {
+ 'MaskNone' : 0,
+ 'Vertical2Pixels' : 0x00000001,
+ 'Vertical4Pixels' : 0x00000002,
+ 'Horizontal2Pixels' : 0x00000004,
+ 'Horizontal4Pixels' : 0x00000008,
+ },
+
'Op' : {
'OpNop' : 0,
'OpUndef' : 1,
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 3a1c6b1..bba9bfc 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -559,8 +559,10 @@ enum BuiltIn : uint
BaseVertex = 4424,
BaseInstance = 4425,
DrawIndex = 4426,
+ PrimitiveShadingRateKHR = 4432,
DeviceIndex = 4438,
ViewIndex = 4440,
+ ShadingRateKHR = 4444,
BaryCoordNoPerspAMD = 4992,
BaryCoordNoPerspCentroidAMD = 4993,
BaryCoordNoPerspSampleAMD = 4994,
@@ -877,6 +879,7 @@ enum Capability : uint
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
+ FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
SubgroupVoteKHR = 4431,
@@ -1031,6 +1034,23 @@ enum RayQueryCandidateIntersectionType : uint
RayQueryCandidateIntersectionAABBKHR = 1,
}
+enum FragmentShadingRateShift : uint
+{
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+}
+
+enum FragmentShadingRateMask : uint
+{
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+}
+
enum Op : uint
{
OpNop = 0,
diff --git a/tools/buildHeaders/jsonToSpirv.cpp b/tools/buildHeaders/jsonToSpirv.cpp
index 5cca0b9..2118678 100644
--- a/tools/buildHeaders/jsonToSpirv.cpp
+++ b/tools/buildHeaders/jsonToSpirv.cpp
@@ -81,6 +81,7 @@ EnumValues RayFlagsParams;
EnumValues RayQueryIntersectionParams;
EnumValues RayQueryCommittedIntersectionTypeParams;
EnumValues RayQueryCandidateIntersectionTypeParams;
+EnumValues FragmentShadingRateParams;
std::pair<bool, std::string> ReadFile(const std::string& path)
{
@@ -215,6 +216,8 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
type = OperandRayQueryCommittedIntersectionType;
} else if (operandKind == "RayQueryCandidateIntersectionType") {
type = OperandRayQueryCandidateIntersectionType;
+ } else if (operandKind == "FragmentShadingRate") {
+ type = OperandFragmentShadingRate;
}
if (type == OperandNone) {
@@ -483,6 +486,8 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
establishOperandClass(enumName, OperandRayQueryCommittedIntersectionType, &RayQueryCommittedIntersectionTypeParams, operandEnum, category);
} else if (enumName == "RayQueryCandidateIntersectionType") {
establishOperandClass(enumName, OperandRayQueryCandidateIntersectionType, &RayQueryCandidateIntersectionTypeParams, operandEnum, category);
+ } else if (enumName == "FragmentShadingRate") {
+ establishOperandClass(enumName, OperandFragmentShadingRate, &FragmentShadingRateParams, operandEnum, category);
}
}
}
diff --git a/tools/buildHeaders/jsonToSpirv.h b/tools/buildHeaders/jsonToSpirv.h
index 732eed5..72c7cde 100644
--- a/tools/buildHeaders/jsonToSpirv.h
+++ b/tools/buildHeaders/jsonToSpirv.h
@@ -88,6 +88,7 @@ enum OperandClass {
OperandRayQueryIntersection,
OperandRayQueryCommittedIntersectionType,
OperandRayQueryCandidateIntersectionType,
+ OperandFragmentShadingRate,
OperandOpcode,