Skip to content

Commit d218c4a

Browse files
Add SPV_EXT_shader_tile_image.
1 parent 29ba249 commit d218c4a

File tree

9 files changed

+192
-1
lines changed

9 files changed

+192
-1
lines changed

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

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4102,6 +4102,46 @@
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+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
4116+
"capabilities" : [ "TileImageColorReadAccessEXT" ],
4117+
"version" : "1.5"
4118+
},
4119+
{
4120+
"opname" : "OpDepthAttachmentReadEXT",
4121+
"class" : "Image",
4122+
"opcode" : 4161,
4123+
"operands" : [
4124+
{ "kind" : "IdResultType" },
4125+
{ "kind" : "IdResult" },
4126+
{ "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" }
4127+
],
4128+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
4129+
"capabilities" : [ "TileImageDepthReadAccessEXT" ],
4130+
"version" : "1.5"
4131+
},
4132+
{
4133+
"opname" : "OpStencilAttachmentReadEXT",
4134+
"class" : "Image",
4135+
"opcode" : 4162,
4136+
"operands" : [
4137+
{ "kind" : "IdResultType" },
4138+
{ "kind" : "IdResult" },
4139+
{ "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" }
4140+
],
4141+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
4142+
"capabilities" : [ "TileImageStencilReadAccessEXT" ],
4143+
"version" : "1.5"
4144+
},
41054145
{
41064146
"opname" : "OpTerminateInvocation",
41074147
"class" : "Control-Flow",
@@ -10473,6 +10513,27 @@
1047310513
],
1047410514
"version" : "1.2"
1047510515
},
10516+
{
10517+
"enumerant" : "NonCoherentColorAttachmentReadEXT",
10518+
"value" : 4169,
10519+
"capabilities" : [ "TileImageColorReadAccessEXT" ],
10520+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
10521+
"version" : "1.5"
10522+
},
10523+
{
10524+
"enumerant" : "NonCoherentDepthAttachmentReadEXT",
10525+
"value" : 4170,
10526+
"capabilities" : [ "TileImageDepthReadAccessEXT" ],
10527+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
10528+
"version" : "1.5"
10529+
},
10530+
{
10531+
"enumerant" : "NonCoherentStencilAttachmentReadEXT",
10532+
"value" : 4171,
10533+
"capabilities" : [ "TileImageStencilReadAccessEXT" ],
10534+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
10535+
"version" : "1.5"
10536+
},
1047610537
{
1047710538
"enumerant" : "SubgroupUniformControlFlowKHR",
1047810539
"value" : 4421,
@@ -10887,6 +10948,13 @@
1088710948
"capabilities" : [ "Shader" ],
1088810949
"version" : "1.3"
1088910950
},
10951+
{
10952+
"enumerant" : "TileImageEXT",
10953+
"value" : 4172,
10954+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
10955+
"capabilities" : [ "TileImageColorReadAccessEXT" ],
10956+
"version" : "1.5"
10957+
},
1089010958
{
1089110959
"enumerant" : "CallableDataNV",
1089210960
"value" : 5328,
@@ -11061,6 +11129,11 @@
1106111129
"enumerant" : "SubpassData",
1106211130
"value" : 6,
1106311131
"capabilities" : [ "InputAttachment" ]
11132+
},
11133+
{
11134+
"enumerant" : "TileImageDataEXT",
11135+
"value" : 4173,
11136+
"capabilities" : [ "TileImageColorReadAccessEXT" ]
1106411137
}
1106511138
]
1106611139
},
@@ -14148,6 +14221,27 @@
1414814221
"extensions" : [ "SPV_KHR_8bit_storage" ],
1414914222
"version" : "1.5"
1415014223
},
14224+
{
14225+
"enumerant" : "TileImageColorReadAccessEXT",
14226+
"value" : 4166,
14227+
"capabilities" : [ "Shader" ],
14228+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
14229+
"version" : "1.5"
14230+
},
14231+
{
14232+
"enumerant" : "TileImageDepthReadAccessEXT",
14233+
"value" : 4167,
14234+
"capabilities" : [ "Shader" ],
14235+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
14236+
"version" : "1.5"
14237+
},
14238+
{
14239+
"enumerant" : "TileImageStencilReadAccessEXT",
14240+
"value" : 4168,
14241+
"capabilities" : [ "Shader" ],
14242+
"extensions" : [ "SPV_EXT_shader_tile_image" ],
14243+
"version" : "1.5"
14244+
},
1415114245
{
1415214246
"enumerant" : "DenormPreserve",
1415314247
"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)