Skip to content

Commit cec3084

Browse files
committed
Implement header definitions for SPV_NV_bindless_texture
1 parent 92f21c9 commit cec3084

File tree

9 files changed

+229
-0
lines changed

9 files changed

+229
-0
lines changed

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

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4944,6 +4944,88 @@
49444944
"extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
49454945
"version" : "None"
49464946
},
4947+
{
4948+
"opname" : "OpConvertUToImageNV",
4949+
"class" : "Reserved",
4950+
"opcode" : 5391,
4951+
"operands" : [
4952+
{ "kind" : "IdResultType" },
4953+
{ "kind" : "IdResult" },
4954+
{ "kind" : "IdRef", "name" : "'Operand'" }
4955+
],
4956+
"capabilities" : [ "BindlessTextureNV" ],
4957+
"version" : "None"
4958+
},
4959+
{
4960+
"opname" : "OpConvertUToSamplerNV",
4961+
"class" : "Reserved",
4962+
"opcode" : 5392,
4963+
"operands" : [
4964+
{ "kind" : "IdResultType" },
4965+
{ "kind" : "IdResult" },
4966+
{ "kind" : "IdRef", "name" : "'Operand'" }
4967+
],
4968+
"capabilities" : [ "BindlessTextureNV" ],
4969+
"version" : "None"
4970+
},
4971+
{
4972+
"opname" : "OpConvertImageToUNV",
4973+
"class" : "Reserved",
4974+
"opcode" : 5393,
4975+
"operands" : [
4976+
{ "kind" : "IdResultType" },
4977+
{ "kind" : "IdResult" },
4978+
{ "kind" : "IdRef", "name" : "'Operand'" }
4979+
],
4980+
"capabilities" : [ "BindlessTextureNV" ],
4981+
"version" : "None"
4982+
},
4983+
{
4984+
"opname" : "OpConvertSamplerToUNV",
4985+
"class" : "Reserved",
4986+
"opcode" : 5394,
4987+
"operands" : [
4988+
{ "kind" : "IdResultType" },
4989+
{ "kind" : "IdResult" },
4990+
{ "kind" : "IdRef", "name" : "'Operand'" }
4991+
],
4992+
"capabilities" : [ "BindlessTextureNV" ],
4993+
"version" : "None"
4994+
},
4995+
{
4996+
"opname" : "OpConvertUToSampledImageNV",
4997+
"class" : "Reserved",
4998+
"opcode" : 5395,
4999+
"operands" : [
5000+
{ "kind" : "IdResultType" },
5001+
{ "kind" : "IdResult" },
5002+
{ "kind" : "IdRef", "name" : "'Operand'" }
5003+
],
5004+
"capabilities" : [ "BindlessTextureNV" ],
5005+
"version" : "None"
5006+
},
5007+
{
5008+
"opname" : "OpConvertSampledImageToUNV",
5009+
"class" : "Reserved",
5010+
"opcode" : 5396,
5011+
"operands" : [
5012+
{ "kind" : "IdResultType" },
5013+
{ "kind" : "IdResult" },
5014+
{ "kind" : "IdRef", "name" : "'Operand'" }
5015+
],
5016+
"capabilities" : [ "BindlessTextureNV" ],
5017+
"version" : "None"
5018+
},
5019+
{
5020+
"opname" : "OpSamplerImageAddressingModeNV",
5021+
"class" : "Reserved",
5022+
"opcode" : 5397,
5023+
"operands" : [
5024+
{ "kind" : "LiteralInteger", "name" : "'Bit Width'" }
5025+
],
5026+
"capabilities" : [ "BindlessTextureNV" ],
5027+
"version" : "None"
5028+
},
49475029
{
49485030
"opname" : "OpSubgroupShuffleINTEL",
49495031
"class" : "Group",
@@ -11080,6 +11162,30 @@
1108011162
"extensions" : [ "SPV_EXT_physical_storage_buffer" ],
1108111163
"version" : "1.5"
1108211164
},
11165+
{
11166+
"enumerant" : "BindlessSamplerNV",
11167+
"value" : 5398,
11168+
"capabilities" : [ "BindlessTextureNV" ],
11169+
"version" : "None"
11170+
},
11171+
{
11172+
"enumerant" : "BindlessImageNV",
11173+
"value" : 5399,
11174+
"capabilities" : [ "BindlessTextureNV" ],
11175+
"version" : "None"
11176+
},
11177+
{
11178+
"enumerant" : "BoundSamplerNV",
11179+
"value" : 5400,
11180+
"capabilities" : [ "BindlessTextureNV" ],
11181+
"version" : "None"
11182+
},
11183+
{
11184+
"enumerant" : "BoundImageNV",
11185+
"value" : 5401,
11186+
"capabilities" : [ "BindlessTextureNV" ],
11187+
"version" : "None"
11188+
},
1108311189
{
1108411190
"enumerant" : "SIMTCallINTEL",
1108511191
"value" : 5599,
@@ -13221,6 +13327,12 @@
1322113327
"extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
1322213328
"version" : "None"
1322313329
},
13330+
{
13331+
"enumerant" : "BindlessTextureNV",
13332+
"value" : 5390,
13333+
"extensions" : [ "SPV_NV_bindless_texture" ],
13334+
"version" : "None"
13335+
},
1322413336
{
1322513337
"enumerant" : "SubgroupShuffleINTEL",
1322613338
"value" : 5568,

include/spirv/unified1/spirv.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,10 @@ public enum Decoration
499499
RestrictPointerEXT = 5355,
500500
AliasedPointer = 5356,
501501
AliasedPointerEXT = 5356,
502+
BindlessSamplerNV = 5398,
503+
BindlessImageNV = 5399,
504+
BoundSamplerNV = 5400,
505+
BoundImageNV = 5401,
502506
SIMTCallINTEL = 5599,
503507
ReferencedIndirectlyINTEL = 5602,
504508
ClobberINTEL = 5607,
@@ -1013,6 +1017,7 @@ public enum Capability
10131017
ShaderSMBuiltinsNV = 5373,
10141018
FragmentShaderPixelInterlockEXT = 5378,
10151019
DemoteToHelperInvocationEXT = 5379,
1020+
BindlessTextureNV = 5390,
10161021
SubgroupShuffleINTEL = 5568,
10171022
SubgroupBufferBlockIOINTEL = 5569,
10181023
SubgroupImageBlockIOINTEL = 5570,
@@ -1570,6 +1575,13 @@ public enum Op
15701575
OpEndInvocationInterlockEXT = 5365,
15711576
OpDemoteToHelperInvocationEXT = 5380,
15721577
OpIsHelperInvocationEXT = 5381,
1578+
OpConvertUToImageNV = 5391,
1579+
OpConvertUToSamplerNV = 5392,
1580+
OpConvertImageToUNV = 5393,
1581+
OpConvertSamplerToUNV = 5394,
1582+
OpConvertUToSampledImageNV = 5395,
1583+
OpConvertSampledImageToUNV = 5396,
1584+
OpSamplerImageAddressingModeNV = 5397,
15731585
OpSubgroupShuffleINTEL = 5571,
15741586
OpSubgroupShuffleDownINTEL = 5572,
15751587
OpSubgroupShuffleUpINTEL = 5573,

include/spirv/unified1/spirv.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,10 @@ typedef enum SpvDecoration_ {
505505
SpvDecorationRestrictPointerEXT = 5355,
506506
SpvDecorationAliasedPointer = 5356,
507507
SpvDecorationAliasedPointerEXT = 5356,
508+
SpvDecorationBindlessSamplerNV = 5398,
509+
SpvDecorationBindlessImageNV = 5399,
510+
SpvDecorationBoundSamplerNV = 5400,
511+
SpvDecorationBoundImageNV = 5401,
508512
SpvDecorationSIMTCallINTEL = 5599,
509513
SpvDecorationReferencedIndirectlyINTEL = 5602,
510514
SpvDecorationClobberINTEL = 5607,
@@ -1013,6 +1017,7 @@ typedef enum SpvCapability_ {
10131017
SpvCapabilityShaderSMBuiltinsNV = 5373,
10141018
SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
10151019
SpvCapabilityDemoteToHelperInvocationEXT = 5379,
1020+
SpvCapabilityBindlessTextureNV = 5390,
10161021
SpvCapabilitySubgroupShuffleINTEL = 5568,
10171022
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
10181023
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1568,6 +1573,13 @@ typedef enum SpvOp_ {
15681573
SpvOpEndInvocationInterlockEXT = 5365,
15691574
SpvOpDemoteToHelperInvocationEXT = 5380,
15701575
SpvOpIsHelperInvocationEXT = 5381,
1576+
SpvOpConvertUToImageNV = 5391,
1577+
SpvOpConvertUToSamplerNV = 5392,
1578+
SpvOpConvertImageToUNV = 5393,
1579+
SpvOpConvertSamplerToUNV = 5394,
1580+
SpvOpConvertUToSampledImageNV = 5395,
1581+
SpvOpConvertSampledImageToUNV = 5396,
1582+
SpvOpSamplerImageAddressingModeNV = 5397,
15711583
SpvOpSubgroupShuffleINTEL = 5571,
15721584
SpvOpSubgroupShuffleDownINTEL = 5572,
15731585
SpvOpSubgroupShuffleUpINTEL = 5573,
@@ -2214,6 +2226,13 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
22142226
case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
22152227
case SpvOpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
22162228
case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
2229+
case SpvOpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
2230+
case SpvOpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
2231+
case SpvOpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
2232+
case SpvOpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
2233+
case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
2234+
case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
2235+
case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
22172236
case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
22182237
case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
22192238
case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;

include/spirv/unified1/spirv.hpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,10 @@ enum Decoration {
501501
DecorationRestrictPointerEXT = 5355,
502502
DecorationAliasedPointer = 5356,
503503
DecorationAliasedPointerEXT = 5356,
504+
DecorationBindlessSamplerNV = 5398,
505+
DecorationBindlessImageNV = 5399,
506+
DecorationBoundSamplerNV = 5400,
507+
DecorationBoundImageNV = 5401,
504508
DecorationSIMTCallINTEL = 5599,
505509
DecorationReferencedIndirectlyINTEL = 5602,
506510
DecorationClobberINTEL = 5607,
@@ -1009,6 +1013,7 @@ enum Capability {
10091013
CapabilityShaderSMBuiltinsNV = 5373,
10101014
CapabilityFragmentShaderPixelInterlockEXT = 5378,
10111015
CapabilityDemoteToHelperInvocationEXT = 5379,
1016+
CapabilityBindlessTextureNV = 5390,
10121017
CapabilitySubgroupShuffleINTEL = 5568,
10131018
CapabilitySubgroupBufferBlockIOINTEL = 5569,
10141019
CapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1564,6 +1569,13 @@ enum Op {
15641569
OpEndInvocationInterlockEXT = 5365,
15651570
OpDemoteToHelperInvocationEXT = 5380,
15661571
OpIsHelperInvocationEXT = 5381,
1572+
OpConvertUToImageNV = 5391,
1573+
OpConvertUToSamplerNV = 5392,
1574+
OpConvertImageToUNV = 5393,
1575+
OpConvertSamplerToUNV = 5394,
1576+
OpConvertUToSampledImageNV = 5395,
1577+
OpConvertSampledImageToUNV = 5396,
1578+
OpSamplerImageAddressingModeNV = 5397,
15671579
OpSubgroupShuffleINTEL = 5571,
15681580
OpSubgroupShuffleDownINTEL = 5572,
15691581
OpSubgroupShuffleUpINTEL = 5573,
@@ -2210,6 +2222,13 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
22102222
case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
22112223
case OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
22122224
case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
2225+
case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
2226+
case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
2227+
case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
2228+
case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
2229+
case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
2230+
case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
2231+
case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
22132232
case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
22142233
case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
22152234
case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;

include/spirv/unified1/spirv.hpp11

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,10 @@ enum class Decoration : unsigned {
501501
RestrictPointerEXT = 5355,
502502
AliasedPointer = 5356,
503503
AliasedPointerEXT = 5356,
504+
BindlessSamplerNV = 5398,
505+
BindlessImageNV = 5399,
506+
BoundSamplerNV = 5400,
507+
BoundImageNV = 5401,
504508
SIMTCallINTEL = 5599,
505509
ReferencedIndirectlyINTEL = 5602,
506510
ClobberINTEL = 5607,
@@ -1009,6 +1013,7 @@ enum class Capability : unsigned {
10091013
ShaderSMBuiltinsNV = 5373,
10101014
FragmentShaderPixelInterlockEXT = 5378,
10111015
DemoteToHelperInvocationEXT = 5379,
1016+
BindlessTextureNV = 5390,
10121017
SubgroupShuffleINTEL = 5568,
10131018
SubgroupBufferBlockIOINTEL = 5569,
10141019
SubgroupImageBlockIOINTEL = 5570,
@@ -1564,6 +1569,13 @@ enum class Op : unsigned {
15641569
OpEndInvocationInterlockEXT = 5365,
15651570
OpDemoteToHelperInvocationEXT = 5380,
15661571
OpIsHelperInvocationEXT = 5381,
1572+
OpConvertUToImageNV = 5391,
1573+
OpConvertUToSamplerNV = 5392,
1574+
OpConvertImageToUNV = 5393,
1575+
OpConvertSamplerToUNV = 5394,
1576+
OpConvertUToSampledImageNV = 5395,
1577+
OpConvertSampledImageToUNV = 5396,
1578+
OpSamplerImageAddressingModeNV = 5397,
15671579
OpSubgroupShuffleINTEL = 5571,
15681580
OpSubgroupShuffleDownINTEL = 5572,
15691581
OpSubgroupShuffleUpINTEL = 5573,
@@ -2210,6 +2222,13 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
22102222
case Op::OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
22112223
case Op::OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
22122224
case Op::OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
2225+
case Op::OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
2226+
case Op::OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
2227+
case Op::OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
2228+
case Op::OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
2229+
case Op::OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
2230+
case Op::OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
2231+
case Op::OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
22132232
case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
22142233
case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
22152234
case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;

include/spirv/unified1/spirv.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -528,6 +528,10 @@
528528
"RestrictPointerEXT": 5355,
529529
"AliasedPointer": 5356,
530530
"AliasedPointerEXT": 5356,
531+
"BindlessSamplerNV": 5398,
532+
"BindlessImageNV": 5399,
533+
"BoundSamplerNV": 5400,
534+
"BoundImageNV": 5401,
531535
"SIMTCallINTEL": 5599,
532536
"ReferencedIndirectlyINTEL": 5602,
533537
"ClobberINTEL": 5607,
@@ -994,6 +998,7 @@
994998
"ShaderSMBuiltinsNV": 5373,
995999
"FragmentShaderPixelInterlockEXT": 5378,
9961000
"DemoteToHelperInvocationEXT": 5379,
1001+
"BindlessTextureNV": 5390,
9971002
"SubgroupShuffleINTEL": 5568,
9981003
"SubgroupBufferBlockIOINTEL": 5569,
9991004
"SubgroupImageBlockIOINTEL": 5570,
@@ -1560,6 +1565,13 @@
15601565
"OpEndInvocationInterlockEXT": 5365,
15611566
"OpDemoteToHelperInvocationEXT": 5380,
15621567
"OpIsHelperInvocationEXT": 5381,
1568+
"OpConvertUToImageNV": 5391,
1569+
"OpConvertUToSamplerNV": 5392,
1570+
"OpConvertImageToUNV": 5393,
1571+
"OpConvertSamplerToUNV": 5394,
1572+
"OpConvertUToSampledImageNV": 5395,
1573+
"OpConvertSampledImageToUNV": 5396,
1574+
"OpSamplerImageAddressingModeNV": 5397,
15631575
"OpSubgroupShuffleINTEL": 5571,
15641576
"OpSubgroupShuffleDownINTEL": 5572,
15651577
"OpSubgroupShuffleUpINTEL": 5573,

include/spirv/unified1/spirv.lua

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,10 @@ spv = {
474474
RestrictPointerEXT = 5355,
475475
AliasedPointer = 5356,
476476
AliasedPointerEXT = 5356,
477+
BindlessSamplerNV = 5398,
478+
BindlessImageNV = 5399,
479+
BoundSamplerNV = 5400,
480+
BoundImageNV = 5401,
477481
SIMTCallINTEL = 5599,
478482
ReferencedIndirectlyINTEL = 5602,
479483
ClobberINTEL = 5607,
@@ -971,6 +975,7 @@ spv = {
971975
ShaderSMBuiltinsNV = 5373,
972976
FragmentShaderPixelInterlockEXT = 5378,
973977
DemoteToHelperInvocationEXT = 5379,
978+
BindlessTextureNV = 5390,
974979
SubgroupShuffleINTEL = 5568,
975980
SubgroupBufferBlockIOINTEL = 5569,
976981
SubgroupImageBlockIOINTEL = 5570,
@@ -1515,6 +1520,13 @@ spv = {
15151520
OpEndInvocationInterlockEXT = 5365,
15161521
OpDemoteToHelperInvocationEXT = 5380,
15171522
OpIsHelperInvocationEXT = 5381,
1523+
OpConvertUToImageNV = 5391,
1524+
OpConvertUToSamplerNV = 5392,
1525+
OpConvertImageToUNV = 5393,
1526+
OpConvertSamplerToUNV = 5394,
1527+
OpConvertUToSampledImageNV = 5395,
1528+
OpConvertSampledImageToUNV = 5396,
1529+
OpSamplerImageAddressingModeNV = 5397,
15181530
OpSubgroupShuffleINTEL = 5571,
15191531
OpSubgroupShuffleDownINTEL = 5572,
15201532
OpSubgroupShuffleUpINTEL = 5573,

0 commit comments

Comments
 (0)