Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Headers.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Kessenich <johnkslang@users.noreply.github.com>2021-10-08 07:22:39 +0300
committerGitHub <noreply@github.com>2021-10-08 07:22:39 +0300
commit19e8350415ed9516c8afffa19ae2c58559495a67 (patch)
treee6efee2ac0a811b9e34064c6497ead6a6d98194b
parent5ea2d62e8c0ddd9e2a7d0ca5e3f2335e09e5f408 (diff)
parente225eb0bec7f20656255041f6ea147584114cbc1 (diff)
Merge pull request #245 from pmistryNV/nonconstoffset
Define a new Image operand bit mask for non constant offsets
-rw-r--r--include/spirv/spir-v.xml20
-rw-r--r--include/spirv/unified1/spirv.core.grammar.json7
-rw-r--r--include/spirv/unified1/spirv.cs2
-rw-r--r--include/spirv/unified1/spirv.h2
-rw-r--r--include/spirv/unified1/spirv.hpp2
-rw-r--r--include/spirv/unified1/spirv.hpp112
-rw-r--r--include/spirv/unified1/spirv.json3
-rw-r--r--include/spirv/unified1/spirv.lua2
-rw-r--r--include/spirv/unified1/spirv.py2
-rw-r--r--include/spirv/unified1/spv.d2
10 files changed, 43 insertions, 1 deletions
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index c6178e4..1d89497 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -252,4 +252,24 @@
<ids type="MemoryOperand" start="18" end="30" comment="Unreserved bits reservable for use by vendors"/>
<ids type="MemoryOperand" start="31" end="31" vendor="Khronos" comment="Reserved MemoryOperand bit, not available to vendors"/>
+ <!-- SECTION: SPIR-V Image Operand Bit Reservations -->
+ <!-- Reserve ranges of bits in the image operands bitfield.
+
+ Each vendor determines the use of values in their own ranges.
+ Vendors are not required to disclose those uses. If the use of a
+ value is included in an extension that is adopted by a Khronos
+ extension or specification, then that value's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+
+ The SPIR Working Group strongly recommends:
+ - Each value is used for only one purpose.
+ - All values in a range should be used before allocating a new range.
+ -->
+
+ <!-- Reserved image operand bits -->
+ <ids type="ImageOperand" start="0" end="15" vendor="Khronos" comment="Reserved ImageOperand bits, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="ImageOperand" start="16" end="16" vendor="Nvidia" comment="Contact pmistry@nvidia.com"/>
+ <ids type="ImageOperand" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
+ <ids type="ImageOperand" start="31" end="31" vendor="Khronos" comment="Reserved ImageOperand bit, not available to vendors"/>
+
</registry>
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 9154496..53aaf35 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -8475,6 +8475,13 @@
"enumerant" : "ZeroExtend",
"value" : "0x2000",
"version" : "1.4"
+ },
+ {
+ "enumerant" : "Offsets",
+ "value" : "0x10000",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
}
]
},
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index b2ca3f0..5927a37 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -349,6 +349,7 @@ namespace Spv
VolatileTexelKHR = 11,
SignExtend = 12,
ZeroExtend = 13,
+ Offsets = 16,
}
public enum ImageOperandsMask
@@ -372,6 +373,7 @@ namespace Spv
VolatileTexelKHR = 0x00000800,
SignExtend = 0x00001000,
ZeroExtend = 0x00002000,
+ Offsets = 0x00010000,
}
public enum FPFastMathModeShift
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 1443963..bb6c68d 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -357,6 +357,7 @@ typedef enum SpvImageOperandsShift_ {
SpvImageOperandsVolatileTexelKHRShift = 11,
SpvImageOperandsSignExtendShift = 12,
SpvImageOperandsZeroExtendShift = 13,
+ SpvImageOperandsOffsetsShift = 16,
SpvImageOperandsMax = 0x7fffffff,
} SpvImageOperandsShift;
@@ -380,6 +381,7 @@ typedef enum SpvImageOperandsMask_ {
SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
SpvImageOperandsSignExtendMask = 0x00001000,
SpvImageOperandsZeroExtendMask = 0x00002000,
+ SpvImageOperandsOffsetsMask = 0x00010000,
} SpvImageOperandsMask;
typedef enum SpvFPFastMathModeShift_ {
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 5180457..6c8d35d 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -353,6 +353,7 @@ enum ImageOperandsShift {
ImageOperandsVolatileTexelKHRShift = 11,
ImageOperandsSignExtendShift = 12,
ImageOperandsZeroExtendShift = 13,
+ ImageOperandsOffsetsShift = 16,
ImageOperandsMax = 0x7fffffff,
};
@@ -376,6 +377,7 @@ enum ImageOperandsMask {
ImageOperandsVolatileTexelKHRMask = 0x00000800,
ImageOperandsSignExtendMask = 0x00001000,
ImageOperandsZeroExtendMask = 0x00002000,
+ ImageOperandsOffsetsMask = 0x00010000,
};
enum FPFastMathModeShift {
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 51e9024..4ba5d25 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -353,6 +353,7 @@ enum class ImageOperandsShift : unsigned {
VolatileTexelKHR = 11,
SignExtend = 12,
ZeroExtend = 13,
+ Offsets = 16,
Max = 0x7fffffff,
};
@@ -376,6 +377,7 @@ enum class ImageOperandsMask : unsigned {
VolatileTexelKHR = 0x00000800,
SignExtend = 0x00001000,
ZeroExtend = 0x00002000,
+ Offsets = 0x00010000,
};
enum class FPFastMathModeShift : unsigned {
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 017b842..39fdc77 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -395,7 +395,8 @@
"VolatileTexel": 11,
"VolatileTexelKHR": 11,
"SignExtend": 12,
- "ZeroExtend": 13
+ "ZeroExtend": 13,
+ "Offsets": 16
}
},
{
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 46665d8..d425d95 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -332,6 +332,7 @@ spv = {
VolatileTexelKHR = 11,
SignExtend = 12,
ZeroExtend = 13,
+ Offsets = 16,
},
ImageOperandsMask = {
@@ -354,6 +355,7 @@ spv = {
VolatileTexelKHR = 0x00000800,
SignExtend = 0x00001000,
ZeroExtend = 0x00002000,
+ Offsets = 0x00010000,
},
FPFastMathModeShift = {
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index a780191..be0afdc 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -332,6 +332,7 @@ spv = {
'VolatileTexelKHR' : 11,
'SignExtend' : 12,
'ZeroExtend' : 13,
+ 'Offsets' : 16,
},
'ImageOperandsMask' : {
@@ -354,6 +355,7 @@ spv = {
'VolatileTexelKHR' : 0x00000800,
'SignExtend' : 0x00001000,
'ZeroExtend' : 0x00002000,
+ 'Offsets' : 0x00010000,
},
'FPFastMathModeShift' : {
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index b85517a..ad07fb3 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -352,6 +352,7 @@ enum ImageOperandsShift : uint
VolatileTexelKHR = 11,
SignExtend = 12,
ZeroExtend = 13,
+ Offsets = 16,
}
enum ImageOperandsMask : uint
@@ -375,6 +376,7 @@ enum ImageOperandsMask : uint
VolatileTexelKHR = 0x00000800,
SignExtend = 0x00001000,
ZeroExtend = 0x00002000,
+ Offsets = 0x00010000,
}
enum FPFastMathModeShift : uint