Skip to content

Commit cfbe4fe

Browse files
authored
Merge pull request KhronosGroup#335 from janharaldfredriksen-arm/SPV_EXT_shader_tile_image
Header support for SPV_EXT_shader_tile_image
2 parents 29ba249 + 80cea00 commit cfbe4fe

File tree

9 files changed

+183
-1
lines changed

9 files changed

+183
-1
lines changed

include/spirv/unified1/spirv.core.grammar.json

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4102,6 +4102,43 @@
41024102
"capabilities" : [ "Addresses", "VariablePointers", "VariablePointersStorageBuffer" ],
41034103
"version" : "1.4"
41044104
},
4105+
{
4106+
"opname" : "OpColorAttachmentReadEXT",
4107+
"class" : "Image",
4108+
"opcode" : 4160,
4109+
"operands" : [
4110+
{ "kind" : "IdResultType" },
4111+
{ "kind" : "IdResult" },
4112+
{ "kind" : "IdRef", "name" : "'Attachment'" },
4113+
{ "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" }
4114+
],
4115+
"capabilities": [ "TileImageColorReadAccessEXT" ],
4116+
"version" : "None"
4117+
},
4118+
{
4119+
"opname" : "OpDepthAttachmentReadEXT",
4120+
"class" : "Image",
4121+
"opcode" : 4161,
4122+
"operands" : [
4123+
{ "kind" : "IdResultType" },
4124+
{ "kind" : "IdResult" },
4125+
{ "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" }
4126+
],
4127+
"capabilities" : [ "TileImageDepthReadAccessEXT" ],
4128+
"version" : "None"
4129+
},
4130+
{
4131+
"opname" : "OpStencilAttachmentReadEXT",
4132+
"class" : "Image",
4133+
"opcode" : 4162,
4134+
"operands" : [
4135+
{ "kind" : "IdResultType" },
4136+
{ "kind" : "IdResult" },
4137+
{ "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" }
4138+
],
4139+
"capabilities" : [ "TileImageStencilReadAccessEXT" ],
4140+
"version" : "None"
4141+
},
41054142
{
41064143
"opname" : "OpTerminateInvocation",
41074144
"class" : "Control-Flow",
@@ -10473,6 +10510,24 @@
1047310510
],
1047410511
"version" : "1.2"
1047510512
},
10513+
{
10514+
"enumerant" : "NonCoherentColorAttachmentReadEXT",
10515+
"value" : 4169,
10516+
"capabilities" : [ "TileImageColorReadAccessEXT" ],
10517+
"version" : "None"
10518+
},
10519+
{
10520+
"enumerant" : "NonCoherentDepthAttachmentReadEXT",
10521+
"value" : 4170,
10522+
"capabilities" : [ "TileImageDepthReadAccessEXT" ],
10523+
"version" : "None"
10524+
},
10525+
{
10526+
"enumerant" : "NonCoherentStencilAttachmentReadEXT",
10527+
"value" : 4171,
10528+
"capabilities" : [ "TileImageStencilReadAccessEXT" ],
10529+
"version" : "None"
10530+
},
1047610531
{
1047710532
"enumerant" : "SubgroupUniformControlFlowKHR",
1047810533
"value" : 4421,
@@ -10887,6 +10942,12 @@
1088710942
"capabilities" : [ "Shader" ],
1088810943
"version" : "1.3"
1088910944
},
10945+
{
10946+
"enumerant" : "TileImageEXT",
10947+
"value" : 4172,
10948+
"capabilities" : [ "TileImageColorReadAccessEXT" ],
10949+
"version" : "None"
10950+
},
1089010951
{
1089110952
"enumerant" : "CallableDataNV",
1089210953
"value" : 5328,
@@ -11061,6 +11122,12 @@
1106111122
"enumerant" : "SubpassData",
1106211123
"value" : 6,
1106311124
"capabilities" : [ "InputAttachment" ]
11125+
},
11126+
{
11127+
"enumerant" : "TileImageDataEXT",
11128+
"value" : 4173,
11129+
"capabilities" : [ "TileImageColorReadAccessEXT" ],
11130+
"version" : "None"
1106411131
}
1106511132
]
1106611133
},
@@ -14148,6 +14215,24 @@
1414814215
"extensions" : [ "SPV_KHR_8bit_storage" ],
1414914216
"version" : "1.5"
1415014217
},
14218+
{
14219+
"enumerant" : "TileImageColorReadAccessEXT",
14220+
"value" : 4166,
14221+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
14222+
"version" : "None"
14223+
},
14224+
{
14225+
"enumerant" : "TileImageDepthReadAccessEXT",
14226+
"value" : 4167,
14227+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
14228+
"version" : "None"
14229+
},
14230+
{
14231+
"enumerant" : "TileImageStencilReadAccessEXT",
14232+
"value" : 4168,
14233+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
14234+
"version" : "None"
14235+
},
1415114236
{
1415214237
"enumerant" : "DenormPreserve",
1415314238
"value" : 4464,

include/spirv/unified1/spirv.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,9 @@ public enum ExecutionMode
152152
SubgroupsPerWorkgroupId = 37,
153153
LocalSizeId = 38,
154154
LocalSizeHintId = 39,
155+
NonCoherentColorAttachmentReadEXT = 4169,
156+
NonCoherentDepthAttachmentReadEXT = 4170,
157+
NonCoherentStencilAttachmentReadEXT = 4171,
155158
SubgroupUniformControlFlowKHR = 4421,
156159
PostDepthCoverage = 4446,
157160
DenormPreserve = 4459,
@@ -211,6 +214,7 @@ public enum StorageClass
211214
AtomicCounter = 10,
212215
Image = 11,
213216
StorageBuffer = 12,
217+
TileImageEXT = 4172,
214218
CallableDataKHR = 5328,
215219
CallableDataNV = 5328,
216220
IncomingCallableDataKHR = 5329,
@@ -241,6 +245,7 @@ public enum Dim
241245
Rect = 4,
242246
Buffer = 5,
243247
SubpassData = 6,
248+
TileImageDataEXT = 4173,
244249
}
245250

246251
public enum SamplerAddressingMode
@@ -992,6 +997,9 @@ public enum Capability
992997
ShaderViewportIndex = 70,
993998
UniformDecoration = 71,
994999
CoreBuiltinsARM = 4165,
1000+
TileImageColorReadAccessEXT = 4166,
1001+
TileImageDepthReadAccessEXT = 4167,
1002+
TileImageStencilReadAccessEXT = 4168,
9951003
FragmentShadingRateKHR = 4422,
9961004
SubgroupBallotKHR = 4423,
9971005
DrawParameters = 4427,
@@ -1612,6 +1620,9 @@ public enum Op
16121620
OpPtrEqual = 401,
16131621
OpPtrNotEqual = 402,
16141622
OpPtrDiff = 403,
1623+
OpColorAttachmentReadEXT = 4160,
1624+
OpDepthAttachmentReadEXT = 4161,
1625+
OpStencilAttachmentReadEXT = 4162,
16151626
OpTerminateInvocation = 4416,
16161627
OpSubgroupBallotKHR = 4421,
16171628
OpSubgroupFirstInvocationKHR = 4422,

include/spirv/unified1/spirv.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,9 @@ typedef enum SpvExecutionMode_ {
160160
SpvExecutionModeSubgroupsPerWorkgroupId = 37,
161161
SpvExecutionModeLocalSizeId = 38,
162162
SpvExecutionModeLocalSizeHintId = 39,
163+
SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
164+
SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
165+
SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
163166
SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
164167
SpvExecutionModePostDepthCoverage = 4446,
165168
SpvExecutionModeDenormPreserve = 4459,
@@ -219,6 +222,7 @@ typedef enum SpvStorageClass_ {
219222
SpvStorageClassAtomicCounter = 10,
220223
SpvStorageClassImage = 11,
221224
SpvStorageClassStorageBuffer = 12,
225+
SpvStorageClassTileImageEXT = 4172,
222226
SpvStorageClassCallableDataKHR = 5328,
223227
SpvStorageClassCallableDataNV = 5328,
224228
SpvStorageClassIncomingCallableDataKHR = 5329,
@@ -249,6 +253,7 @@ typedef enum SpvDim_ {
249253
SpvDimRect = 4,
250254
SpvDimBuffer = 5,
251255
SpvDimSubpassData = 6,
256+
SpvDimTileImageDataEXT = 4173,
252257
SpvDimMax = 0x7fffffff,
253258
} SpvDim;
254259

@@ -992,6 +997,9 @@ typedef enum SpvCapability_ {
992997
SpvCapabilityShaderViewportIndex = 70,
993998
SpvCapabilityUniformDecoration = 71,
994999
SpvCapabilityCoreBuiltinsARM = 4165,
1000+
SpvCapabilityTileImageColorReadAccessEXT = 4166,
1001+
SpvCapabilityTileImageDepthReadAccessEXT = 4167,
1002+
SpvCapabilityTileImageStencilReadAccessEXT = 4168,
9951003
SpvCapabilityFragmentShadingRateKHR = 4422,
9961004
SpvCapabilitySubgroupBallotKHR = 4423,
9971005
SpvCapabilityDrawParameters = 4427,
@@ -1610,6 +1618,9 @@ typedef enum SpvOp_ {
16101618
SpvOpPtrEqual = 401,
16111619
SpvOpPtrNotEqual = 402,
16121620
SpvOpPtrDiff = 403,
1621+
SpvOpColorAttachmentReadEXT = 4160,
1622+
SpvOpDepthAttachmentReadEXT = 4161,
1623+
SpvOpStencilAttachmentReadEXT = 4162,
16131624
SpvOpTerminateInvocation = 4416,
16141625
SpvOpSubgroupBallotKHR = 4421,
16151626
SpvOpSubgroupFirstInvocationKHR = 4422,
@@ -2330,6 +2341,9 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
23302341
case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
23312342
case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
23322343
case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
2344+
case SpvOpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2345+
case SpvOpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2346+
case SpvOpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
23332347
case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
23342348
case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
23352349
case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;

include/spirv/unified1/spirv.hpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ enum ExecutionMode {
156156
ExecutionModeSubgroupsPerWorkgroupId = 37,
157157
ExecutionModeLocalSizeId = 38,
158158
ExecutionModeLocalSizeHintId = 39,
159+
ExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
160+
ExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
161+
ExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
159162
ExecutionModeSubgroupUniformControlFlowKHR = 4421,
160163
ExecutionModePostDepthCoverage = 4446,
161164
ExecutionModeDenormPreserve = 4459,
@@ -215,6 +218,7 @@ enum StorageClass {
215218
StorageClassAtomicCounter = 10,
216219
StorageClassImage = 11,
217220
StorageClassStorageBuffer = 12,
221+
StorageClassTileImageEXT = 4172,
218222
StorageClassCallableDataKHR = 5328,
219223
StorageClassCallableDataNV = 5328,
220224
StorageClassIncomingCallableDataKHR = 5329,
@@ -245,6 +249,7 @@ enum Dim {
245249
DimRect = 4,
246250
DimBuffer = 5,
247251
DimSubpassData = 6,
252+
DimTileImageDataEXT = 4173,
248253
DimMax = 0x7fffffff,
249254
};
250255

@@ -988,6 +993,9 @@ enum Capability {
988993
CapabilityShaderViewportIndex = 70,
989994
CapabilityUniformDecoration = 71,
990995
CapabilityCoreBuiltinsARM = 4165,
996+
CapabilityTileImageColorReadAccessEXT = 4166,
997+
CapabilityTileImageDepthReadAccessEXT = 4167,
998+
CapabilityTileImageStencilReadAccessEXT = 4168,
991999
CapabilityFragmentShadingRateKHR = 4422,
9921000
CapabilitySubgroupBallotKHR = 4423,
9931001
CapabilityDrawParameters = 4427,
@@ -1606,6 +1614,9 @@ enum Op {
16061614
OpPtrEqual = 401,
16071615
OpPtrNotEqual = 402,
16081616
OpPtrDiff = 403,
1617+
OpColorAttachmentReadEXT = 4160,
1618+
OpDepthAttachmentReadEXT = 4161,
1619+
OpStencilAttachmentReadEXT = 4162,
16091620
OpTerminateInvocation = 4416,
16101621
OpSubgroupBallotKHR = 4421,
16111622
OpSubgroupFirstInvocationKHR = 4422,
@@ -2326,6 +2337,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
23262337
case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
23272338
case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
23282339
case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
2340+
case OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2341+
case OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2342+
case OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
23292343
case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
23302344
case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
23312345
case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;

include/spirv/unified1/spirv.hpp11

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ enum class ExecutionMode : unsigned {
156156
SubgroupsPerWorkgroupId = 37,
157157
LocalSizeId = 38,
158158
LocalSizeHintId = 39,
159+
NonCoherentColorAttachmentReadEXT = 4169,
160+
NonCoherentDepthAttachmentReadEXT = 4170,
161+
NonCoherentStencilAttachmentReadEXT = 4171,
159162
SubgroupUniformControlFlowKHR = 4421,
160163
PostDepthCoverage = 4446,
161164
DenormPreserve = 4459,
@@ -215,6 +218,7 @@ enum class StorageClass : unsigned {
215218
AtomicCounter = 10,
216219
Image = 11,
217220
StorageBuffer = 12,
221+
TileImageEXT = 4172,
218222
CallableDataKHR = 5328,
219223
CallableDataNV = 5328,
220224
IncomingCallableDataKHR = 5329,
@@ -245,6 +249,7 @@ enum class Dim : unsigned {
245249
Rect = 4,
246250
Buffer = 5,
247251
SubpassData = 6,
252+
TileImageDataEXT = 4173,
248253
Max = 0x7fffffff,
249254
};
250255

@@ -988,6 +993,9 @@ enum class Capability : unsigned {
988993
ShaderViewportIndex = 70,
989994
UniformDecoration = 71,
990995
CoreBuiltinsARM = 4165,
996+
TileImageColorReadAccessEXT = 4166,
997+
TileImageDepthReadAccessEXT = 4167,
998+
TileImageStencilReadAccessEXT = 4168,
991999
FragmentShadingRateKHR = 4422,
9921000
SubgroupBallotKHR = 4423,
9931001
DrawParameters = 4427,
@@ -1606,6 +1614,9 @@ enum class Op : unsigned {
16061614
OpPtrEqual = 401,
16071615
OpPtrNotEqual = 402,
16081616
OpPtrDiff = 403,
1617+
OpColorAttachmentReadEXT = 4160,
1618+
OpDepthAttachmentReadEXT = 4161,
1619+
OpStencilAttachmentReadEXT = 4162,
16091620
OpTerminateInvocation = 4416,
16101621
OpSubgroupBallotKHR = 4421,
16111622
OpSubgroupFirstInvocationKHR = 4422,
@@ -2326,6 +2337,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
23262337
case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break;
23272338
case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
23282339
case Op::OpPtrDiff: *hasResult = true; *hasResultType = true; break;
2340+
case Op::OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2341+
case Op::OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2342+
case Op::OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
23292343
case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
23302344
case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
23312345
case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;

include/spirv/unified1/spirv.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,9 @@
175175
"SubgroupsPerWorkgroupId": 37,
176176
"LocalSizeId": 38,
177177
"LocalSizeHintId": 39,
178+
"NonCoherentColorAttachmentReadEXT": 4169,
179+
"NonCoherentDepthAttachmentReadEXT": 4170,
180+
"NonCoherentStencilAttachmentReadEXT": 4171,
178181
"SubgroupUniformControlFlowKHR": 4421,
179182
"PostDepthCoverage": 4446,
180183
"DenormPreserve": 4459,
@@ -237,6 +240,7 @@
237240
"AtomicCounter": 10,
238241
"Image": 11,
239242
"StorageBuffer": 12,
243+
"TileImageEXT": 4172,
240244
"CallableDataKHR": 5328,
241245
"CallableDataNV": 5328,
242246
"IncomingCallableDataKHR": 5329,
@@ -269,7 +273,8 @@
269273
"Cube": 3,
270274
"Rect": 4,
271275
"Buffer": 5,
272-
"SubpassData": 6
276+
"SubpassData": 6,
277+
"TileImageDataEXT": 4173
273278
}
274279
},
275280
{
@@ -968,6 +973,9 @@
968973
"ShaderViewportIndex": 70,
969974
"UniformDecoration": 71,
970975
"CoreBuiltinsARM": 4165,
976+
"TileImageColorReadAccessEXT": 4166,
977+
"TileImageDepthReadAccessEXT": 4167,
978+
"TileImageStencilReadAccessEXT": 4168,
971979
"FragmentShadingRateKHR": 4422,
972980
"SubgroupBallotKHR": 4423,
973981
"DrawParameters": 4427,
@@ -1596,6 +1604,9 @@
15961604
"OpPtrEqual": 401,
15971605
"OpPtrNotEqual": 402,
15981606
"OpPtrDiff": 403,
1607+
"OpColorAttachmentReadEXT": 4160,
1608+
"OpDepthAttachmentReadEXT": 4161,
1609+
"OpStencilAttachmentReadEXT": 4162,
15991610
"OpTerminateInvocation": 4416,
16001611
"OpSubgroupBallotKHR": 4421,
16011612
"OpSubgroupFirstInvocationKHR": 4422,

0 commit comments

Comments
 (0)