//SPV_NV_cooperative_matrix
const char* const E_SPV_NV_cooperative_matrix = "SPV_NV_cooperative_matrix";
+//SPV_NV_shader_sm_builtins
+const char* const E_SPV_NV_shader_sm_builtins = "SPV_NV_shader_sm_builtins";
+
#endif // #ifndef GLSLextNV_H
case glslang::EbvMeshViewIndicesNV:
return spv::BuiltInMeshViewIndicesNV;
#endif
+
+ // sm builtins
+ case glslang::EbvWarpsPerSM:
+ builder.addExtension(spv::E_SPV_NV_shader_sm_builtins);
+ builder.addCapability(spv::CapabilityShaderSMBuiltinsNV);
+ return spv::BuiltInWarpsPerSMNV;
+ case glslang::EbvSMCount:
+ builder.addExtension(spv::E_SPV_NV_shader_sm_builtins);
+ builder.addCapability(spv::CapabilityShaderSMBuiltinsNV);
+ return spv::BuiltInSMCountNV;
+ case glslang::EbvWarpID:
+ builder.addExtension(spv::E_SPV_NV_shader_sm_builtins);
+ builder.addCapability(spv::CapabilityShaderSMBuiltinsNV);
+ return spv::BuiltInWarpIDNV;
+ case glslang::EbvSMID:
+ builder.addExtension(spv::E_SPV_NV_shader_sm_builtins);
+ builder.addCapability(spv::CapabilityShaderSMBuiltinsNV);
+ return spv::BuiltInSMIDNV;
default:
return spv::BuiltInMax;
}
case BuiltInMeshViewCountNV: return "MeshViewCountNV";
case BuiltInMeshViewIndicesNV: return "MeshViewIndicesNV";
#endif
+ case BuiltInWarpsPerSMNV: return "WarpsPerSMNV";
+ case BuiltInSMCountNV: return "SMCountNV";
+ case BuiltInWarpIDNV: return "WarpIDNV";
+ case BuiltInSMIDNV: return "SMIDNV";
default: return "Bad";
}
case CapabilityVariablePointers: return "VariablePointers";
case CapabilityCooperativeMatrixNV: return "CooperativeMatrixNV";
+ case CapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV";
case CapabilityFragmentShaderSampleInterlockEXT: return "CapabilityFragmentShaderSampleInterlockEXT";
case CapabilityFragmentShaderPixelInterlockEXT: return "CapabilityFragmentShaderPixelInterlockEXT";
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:232: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:233: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:234: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:235: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 450
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:226 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:226 'ballot' ( temp 4-component vector of uint)
0:226 'parti' ( temp 4-component vector of uint)
+0:230 Function Definition: sm_builtins_err( ( global void)
+0:230 Function Parameters:
+0:232 Sequence
+0:232 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV)
+0:233 'gl_SMCountNV' ( flat in uint SMCountNV)
+0:234 'gl_WarpIDNV' ( flat in uint WarpIDNV)
+0:235 'gl_SMIDNV' ( flat in uint SMIDNV)
+0:242 Function Definition: sm_builtins( ( global void)
+0:242 Function Parameters:
+0:244 Sequence
+0:244 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV)
+0:245 'gl_SMCountNV' ( flat in uint SMCountNV)
+0:246 'gl_WarpIDNV' ( flat in uint WarpIDNV)
+0:247 'gl_SMIDNV' ( flat in uint SMIDNV)
0:? Linker Objects
0:? 'data' (layout( location=0) out 4-component vector of uint)
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:105 Function Definition: main( ( global void)
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:238: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:239: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:240: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:241: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 450
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
invocations = -1
max_vertices = 1
0:232 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:232 'ballot' ( temp 4-component vector of uint)
0:232 'parti' ( temp 4-component vector of uint)
+0:236 Function Definition: sm_builtins_err( ( global void)
+0:236 Function Parameters:
+0:238 Sequence
+0:238 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:239 'gl_SMCountNV' ( in uint SMCountNV)
+0:240 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:241 'gl_SMIDNV' ( in uint SMIDNV)
+0:248 Function Definition: sm_builtins( ( global void)
+0:248 Function Parameters:
+0:250 Sequence
+0:250 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:251 'gl_SMCountNV' ( in uint SMCountNV)
+0:252 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:253 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
invocations = 1
max_vertices = 1
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:237: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:238: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:239: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:240: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 450
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
vertices = 1
ERROR: node is still EOpNull!
0:231 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:231 'ballot' ( temp 4-component vector of uint)
0:231 'parti' ( temp 4-component vector of uint)
+0:235 Function Definition: sm_builtins_err( ( global void)
+0:235 Function Parameters:
+0:237 Sequence
+0:237 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:238 'gl_SMCountNV' ( in uint SMCountNV)
+0:239 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:240 'gl_SMIDNV' ( in uint SMIDNV)
+0:247 Function Definition: sm_builtins( ( global void)
+0:247 Function Parameters:
+0:249 Sequence
+0:249 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:250 'gl_SMCountNV' ( in uint SMCountNV)
+0:251 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:252 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
vertices = 1
ERROR: node is still EOpNull!
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:237: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:238: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:239: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:240: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 450
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
input primitive = isolines
vertex spacing = none
0:231 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:231 'ballot' ( temp 4-component vector of uint)
0:231 'parti' ( temp 4-component vector of uint)
+0:235 Function Definition: sm_builtins_err( ( global void)
+0:235 Function Parameters:
+0:237 Sequence
+0:237 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:238 'gl_SMCountNV' ( in uint SMCountNV)
+0:239 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:240 'gl_SMIDNV' ( in uint SMIDNV)
+0:247 Function Definition: sm_builtins( ( global void)
+0:247 Function Parameters:
+0:249 Sequence
+0:249 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:250 'gl_SMCountNV' ( in uint SMCountNV)
+0:251 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:252 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
input primitive = isolines
vertex spacing = equal_spacing
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:236: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:237: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:238: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:239: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 450
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:230 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:230 'ballot' ( temp 4-component vector of uint)
0:230 'parti' ( temp 4-component vector of uint)
+0:234 Function Definition: sm_builtins_err( ( global void)
+0:234 Function Parameters:
+0:236 Sequence
+0:236 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:237 'gl_SMCountNV' ( in uint SMCountNV)
+0:238 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:239 'gl_SMIDNV' ( in uint SMIDNV)
+0:246 Function Definition: sm_builtins( ( global void)
+0:246 Function Parameters:
+0:248 Sequence
+0:248 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:249 'gl_SMCountNV' ( in uint SMCountNV)
+0:250 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:251 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:109 Function Definition: main( ( global void)
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:242: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:243: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:244: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:245: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 450
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
local_size = (8, 8, 1)
ERROR: node is still EOpNull!
0:236 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:236 'ballot' ( temp 4-component vector of uint)
0:236 'parti' ( temp 4-component vector of uint)
+0:240 Function Definition: sm_builtins_err( ( global void)
+0:240 Function Parameters:
+0:242 Sequence
+0:242 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:243 'gl_SMCountNV' ( in uint SMCountNV)
+0:244 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:245 'gl_SMIDNV' ( in uint SMIDNV)
+0:252 Function Definition: sm_builtins( ( global void)
+0:252 Function Parameters:
+0:254 Sequence
+0:254 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:255 'gl_SMCountNV' ( in uint SMCountNV)
+0:256 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:257 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
0:? 8 (const uint)
Requested GL_KHR_shader_subgroup_shuffle
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
local_size = (8, 8, 1)
ERROR: node is still EOpNull!
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:298: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:299: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:300: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:301: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_mesh_shader
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
max_vertices = 81
max_primitives = 32
0:292 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:292 'ballot' ( temp 4-component vector of uint)
0:292 'parti' ( temp 4-component vector of uint)
+0:296 Function Definition: sm_builtins_err( ( global void)
+0:296 Function Parameters:
+0:298 Sequence
+0:298 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:299 'gl_SMCountNV' ( in uint SMCountNV)
+0:300 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:301 'gl_SMIDNV' ( in uint SMIDNV)
+0:308 Function Definition: sm_builtins( ( global void)
+0:308 Function Parameters:
+0:310 Sequence
+0:310 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:311 'gl_SMCountNV' ( in uint SMCountNV)
+0:312 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:313 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
0:? 32 (const uint)
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_mesh_shader
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
max_vertices = 81
max_primitives = 32
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:259: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:260: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:261: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:262: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_ray_tracing
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:253 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:253 'ballot' ( temp 4-component vector of uint)
0:253 'parti' ( temp 4-component vector of uint)
+0:257 Function Definition: sm_builtins_err( ( global void)
+0:257 Function Parameters:
+0:259 Sequence
+0:259 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:260 'gl_SMCountNV' ( in uint SMCountNV)
+0:261 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:262 'gl_SMIDNV' ( in uint SMIDNV)
+0:269 Function Definition: sm_builtins( ( global void)
+0:269 Function Parameters:
+0:271 Sequence
+0:271 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:272 'gl_SMCountNV' ( in uint SMCountNV)
+0:273 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:274 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_ray_tracing
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:106 Function Definition: main( ( global void)
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:247: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:248: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:249: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:250: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_ray_tracing
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:241 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:241 'ballot' ( temp 4-component vector of uint)
0:241 'parti' ( temp 4-component vector of uint)
+0:245 Function Definition: sm_builtins_err( ( global void)
+0:245 Function Parameters:
+0:247 Sequence
+0:247 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:248 'gl_SMCountNV' ( in uint SMCountNV)
+0:249 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:250 'gl_SMIDNV' ( in uint SMIDNV)
+0:257 Function Definition: sm_builtins( ( global void)
+0:257 Function Parameters:
+0:259 Sequence
+0:259 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:260 'gl_SMCountNV' ( in uint SMCountNV)
+0:261 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:262 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'data0' (layout( location=0) callableDataNV 4-component vector of float)
0:? 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_ray_tracing
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:109 Function Definition: main( ( global void)
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:257: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:258: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:259: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:260: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_ray_tracing
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:251 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:251 'ballot' ( temp 4-component vector of uint)
0:251 'parti' ( temp 4-component vector of uint)
+0:255 Function Definition: sm_builtins_err( ( global void)
+0:255 Function Parameters:
+0:257 Sequence
+0:257 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:258 'gl_SMCountNV' ( in uint SMCountNV)
+0:259 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:260 'gl_SMIDNV' ( in uint SMIDNV)
+0:267 Function Definition: sm_builtins( ( global void)
+0:267 Function Parameters:
+0:269 Sequence
+0:269 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:270 'gl_SMCountNV' ( in uint SMCountNV)
+0:271 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:272 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_ray_tracing
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:108 Function Definition: main( ( global void)
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:251: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:252: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:253: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:254: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_ray_tracing
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:245 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:245 'ballot' ( temp 4-component vector of uint)
0:245 'parti' ( temp 4-component vector of uint)
+0:249 Function Definition: sm_builtins_err( ( global void)
+0:249 Function Parameters:
+0:251 Sequence
+0:251 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:252 'gl_SMCountNV' ( in uint SMCountNV)
+0:253 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:254 'gl_SMIDNV' ( in uint SMIDNV)
+0:261 Function Definition: sm_builtins( ( global void)
+0:261 Function Parameters:
+0:263 Sequence
+0:263 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:264 'gl_SMCountNV' ( in uint SMCountNV)
+0:265 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:266 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:? 'accNV1' (layout( set=0 binding=1) uniform accelerationStructureNV)
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_ray_tracing
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:113 Function Definition: main( ( global void)
ERROR: 0:98: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:99: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:100: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:257: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:258: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:259: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:260: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_ray_tracing
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:5 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:251 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:251 'ballot' ( temp 4-component vector of uint)
0:251 'parti' ( temp 4-component vector of uint)
+0:255 Function Definition: sm_builtins_err( ( global void)
+0:255 Function Parameters:
+0:257 Sequence
+0:257 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:258 'gl_SMCountNV' ( in uint SMCountNV)
+0:259 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:260 'gl_SMIDNV' ( in uint SMIDNV)
+0:267 Function Definition: sm_builtins( ( global void)
+0:267 Function Parameters:
+0:269 Sequence
+0:269 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:270 'gl_SMCountNV' ( in uint SMCountNV)
+0:271 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:272 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'iAttr' ( hitAttributeNV 4-component vector of float)
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_ray_tracing
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:108 Function Definition: main( ( global void)
ERROR: 0:98: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:99: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:100: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:251: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:252: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:253: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:254: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_ray_tracing
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:5 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
0:245 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:245 'ballot' ( temp 4-component vector of uint)
0:245 'parti' ( temp 4-component vector of uint)
+0:249 Function Definition: sm_builtins_err( ( global void)
+0:249 Function Parameters:
+0:251 Sequence
+0:251 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:252 'gl_SMCountNV' ( in uint SMCountNV)
+0:253 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:254 'gl_SMIDNV' ( in uint SMIDNV)
+0:261 Function Definition: sm_builtins( ( global void)
+0:261 Function Parameters:
+0:263 Sequence
+0:263 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:264 'gl_SMCountNV' ( in uint SMCountNV)
+0:265 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:266 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_ray_tracing
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
ERROR: node is still EOpNull!
0:109 Function Definition: main( ( global void)
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 86 compilation errors. No code generated.
+ERROR: 0:288: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:289: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:290: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:291: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 90 compilation errors. No code generated.
Shader version: 460
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_mesh_shader
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
local_size = (32, 1, 1)
ERROR: node is still EOpNull!
0:282 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
0:282 'ballot' ( temp 4-component vector of uint)
0:282 'parti' ( temp 4-component vector of uint)
+0:286 Function Definition: sm_builtins_err( ( global void)
+0:286 Function Parameters:
+0:288 Sequence
+0:288 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:289 'gl_SMCountNV' ( in uint SMCountNV)
+0:290 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:291 'gl_SMIDNV' ( in uint SMIDNV)
+0:298 Function Definition: sm_builtins( ( global void)
+0:298 Function Parameters:
+0:300 Sequence
+0:300 'gl_WarpsPerSMNV' ( in uint WarpsPerSMNV)
+0:301 'gl_SMCountNV' ( in uint SMCountNV)
+0:302 'gl_WarpIDNV' ( in uint WarpIDNV)
+0:303 'gl_SMIDNV' ( in uint SMIDNV)
0:? Linker Objects
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
0:? 32 (const uint)
Requested GL_KHR_shader_subgroup_shuffle_relative
Requested GL_KHR_shader_subgroup_vote
Requested GL_NV_mesh_shader
+Requested GL_NV_shader_sm_builtins
Requested GL_NV_shader_subgroup_partitioned
local_size = (32, 1, 1)
ERROR: node is still EOpNull!
--- /dev/null
+spv.smBuiltins.frag
+// Module Version 10000
+// Generated by (magic number): 80007
+// Id's are bound by 20
+
+ Capability Shader
+ Capability ShaderSMBuiltinsNV
+ Extension "SPV_NV_shader_sm_builtins"
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 9 11 13 15 17
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ SourceExtension "GL_NV_shader_sm_builtins"
+ Name 4 "main"
+ Name 9 "data"
+ Name 11 "gl_WarpsPerSMNV"
+ Name 13 "gl_SMCountNV"
+ Name 15 "gl_WarpIDNV"
+ Name 17 "gl_SMIDNV"
+ Decorate 9(data) Location 0
+ Decorate 11(gl_WarpsPerSMNV) Flat
+ Decorate 11(gl_WarpsPerSMNV) BuiltIn WarpsPerSMNV
+ Decorate 13(gl_SMCountNV) Flat
+ Decorate 13(gl_SMCountNV) BuiltIn SMCountNV
+ Decorate 15(gl_WarpIDNV) Flat
+ Decorate 15(gl_WarpIDNV) BuiltIn WarpIDNV
+ Decorate 17(gl_SMIDNV) Flat
+ Decorate 17(gl_SMIDNV) BuiltIn SMIDNV
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: TypeVector 6(int) 4
+ 8: TypePointer Output 7(ivec4)
+ 9(data): 8(ptr) Variable Output
+ 10: TypePointer Input 6(int)
+11(gl_WarpsPerSMNV): 10(ptr) Variable Input
+13(gl_SMCountNV): 10(ptr) Variable Input
+ 15(gl_WarpIDNV): 10(ptr) Variable Input
+ 17(gl_SMIDNV): 10(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 12: 6(int) Load 11(gl_WarpsPerSMNV)
+ 14: 6(int) Load 13(gl_SMCountNV)
+ 16: 6(int) Load 15(gl_WarpIDNV)
+ 18: 6(int) Load 17(gl_SMIDNV)
+ 19: 7(ivec4) CompositeConstruct 12 14 16 18
+ Store 9(data) 19
+ Return
+ FunctionEnd
--- /dev/null
+spv.smBuiltins.vert
+// Module Version 10000
+// Generated by (magic number): 80007
+// Id's are bound by 29
+
+ Capability Shader
+ Capability ShaderSMBuiltinsNV
+ Extension "SPV_NV_shader_sm_builtins"
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 15 18 20 22 24
+ Source GLSL 450
+ SourceExtension "GL_NV_shader_sm_builtins"
+ Name 4 "main"
+ Name 9 "Output"
+ MemberName 9(Output) 0 "result"
+ Name 11 ""
+ Name 15 "gl_VertexIndex"
+ Name 18 "gl_WarpsPerSMNV"
+ Name 20 "gl_SMCountNV"
+ Name 22 "gl_WarpIDNV"
+ Name 24 "gl_SMIDNV"
+ Decorate 8 ArrayStride 16
+ MemberDecorate 9(Output) 0 Offset 0
+ Decorate 9(Output) BufferBlock
+ Decorate 11 DescriptorSet 0
+ Decorate 11 Binding 0
+ Decorate 15(gl_VertexIndex) BuiltIn VertexIndex
+ Decorate 18(gl_WarpsPerSMNV) BuiltIn WarpsPerSMNV
+ Decorate 20(gl_SMCountNV) BuiltIn SMCountNV
+ Decorate 22(gl_WarpIDNV) BuiltIn WarpIDNV
+ Decorate 24(gl_SMIDNV) BuiltIn SMIDNV
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: TypeVector 6(int) 4
+ 8: TypeRuntimeArray 7(ivec4)
+ 9(Output): TypeStruct 8
+ 10: TypePointer Uniform 9(Output)
+ 11: 10(ptr) Variable Uniform
+ 12: TypeInt 32 1
+ 13: 12(int) Constant 0
+ 14: TypePointer Input 12(int)
+15(gl_VertexIndex): 14(ptr) Variable Input
+ 17: TypePointer Input 6(int)
+18(gl_WarpsPerSMNV): 17(ptr) Variable Input
+20(gl_SMCountNV): 17(ptr) Variable Input
+ 22(gl_WarpIDNV): 17(ptr) Variable Input
+ 24(gl_SMIDNV): 17(ptr) Variable Input
+ 27: TypePointer Uniform 7(ivec4)
+ 4(main): 2 Function None 3
+ 5: Label
+ 16: 12(int) Load 15(gl_VertexIndex)
+ 19: 6(int) Load 18(gl_WarpsPerSMNV)
+ 21: 6(int) Load 20(gl_SMCountNV)
+ 23: 6(int) Load 22(gl_WarpIDNV)
+ 25: 6(int) Load 24(gl_SMIDNV)
+ 26: 7(ivec4) CompositeConstruct 19 21 23 25
+ 28: 27(ptr) AccessChain 11 13 16
+ Store 28 26
+ Return
+ FunctionEnd
Source GLSL 400
Name 4 "main"
Name 9 "arraySize"
- Name 14 "foo(vf4[s2765];"
+ Name 14 "foo(vf4[s2769];"
Name 13 "p"
Name 17 "builtin_spec_constant("
Name 20 "color"
Store 20(color) 46
48: 10 Load 22(ucol)
Store 47(param) 48
- 49: 2 FunctionCall 14(foo(vf4[s2765];) 47(param)
+ 49: 2 FunctionCall 14(foo(vf4[s2769];) 47(param)
Return
FunctionEnd
-14(foo(vf4[s2765];): 2 Function None 12
+14(foo(vf4[s2769];): 2 Function None 12
13(p): 11(ptr) FunctionParameter
15: Label
54: 24(ptr) AccessChain 53(dupUcol) 23
subgroupPartitionedExclusiveXorNV(ballot, parti);\r
}\r
\r
+// tests for NV_shader_sm_builtins\r
+void sm_builtins_err()\r
+{\r
+ gl_WarpsPerSMNV; // ERROR, no extension\r
+ gl_SMCountNV; // ERROR, no extension\r
+ gl_WarpIDNV; // ERROR, no extension\r
+ gl_SMIDNV; // ERROR, no extension\r
+}\r
+\r
+#ifdef GL_NV_shader_sm_builtins\r
+#extension GL_NV_shader_sm_builtins : enable\r
+#endif\r
+\r
+void sm_builtins()\r
+{\r
+ gl_WarpsPerSMNV;\r
+ gl_SMCountNV;\r
+ gl_WarpIDNV;\r
+ gl_SMIDNV;\r
+}\r
subgroupPartitionedExclusiveXorNV(ballot, parti);\r
}\r
\r
+// tests for NV_shader_sm_builtins\r
+void sm_builtins_err()\r
+{\r
+ gl_WarpsPerSMNV; // ERROR, no extension\r
+ gl_SMCountNV; // ERROR, no extension\r
+ gl_WarpIDNV; // ERROR, no extension\r
+ gl_SMIDNV; // ERROR, no extension\r
+}\r
+\r
+#ifdef GL_NV_shader_sm_builtins\r
+#extension GL_NV_shader_sm_builtins : enable\r
+#endif\r
+\r
+void sm_builtins()\r
+{\r
+ gl_WarpsPerSMNV;\r
+ gl_SMCountNV;\r
+ gl_WarpIDNV;\r
+ gl_SMIDNV;\r
+}\r
subgroupPartitionedExclusiveXorNV(ballot, parti);\r
}\r
\r
+// tests for NV_shader_sm_builtins\r
+void sm_builtins_err()\r
+{\r
+ gl_WarpsPerSMNV; // ERROR, no extension\r
+ gl_SMCountNV; // ERROR, no extension\r
+ gl_WarpIDNV; // ERROR, no extension\r
+ gl_SMIDNV; // ERROR, no extension\r
+}\r
+\r
+#ifdef GL_NV_shader_sm_builtins\r
+#extension GL_NV_shader_sm_builtins : enable\r
+#endif\r
+\r
+void sm_builtins()\r
+{\r
+ gl_WarpsPerSMNV;\r
+ gl_SMCountNV;\r
+ gl_WarpIDNV;\r
+ gl_SMIDNV;\r
+}\r
subgroupPartitionedExclusiveOrNV(ballot, parti);\r
subgroupPartitionedExclusiveXorNV(ballot, parti);\r
}\r
+\r
+// tests for NV_shader_sm_builtins\r
+void sm_builtins_err()\r
+{\r
+ gl_WarpsPerSMNV; // ERROR, no extension\r
+ gl_SMCountNV; // ERROR, no extension\r
+ gl_WarpIDNV; // ERROR, no extension\r
+ gl_SMIDNV; // ERROR, no extension\r
+}\r
+\r
+#ifdef GL_NV_shader_sm_builtins\r
+#extension GL_NV_shader_sm_builtins : enable\r
+#endif\r
+\r
+void sm_builtins()\r
+{\r
+ gl_WarpsPerSMNV;\r
+ gl_SMCountNV;\r
+ gl_WarpIDNV;\r
+ gl_SMIDNV;\r
+}\r
subgroupPartitionedExclusiveXorNV(ballot, parti);\r
}\r
\r
+// tests for NV_shader_sm_builtins\r
+void sm_builtins_err()\r
+{\r
+ gl_WarpsPerSMNV; // ERROR, no extension\r
+ gl_SMCountNV; // ERROR, no extension\r
+ gl_WarpIDNV; // ERROR, no extension\r
+ gl_SMIDNV; // ERROR, no extension\r
+}\r
+\r
+#ifdef GL_NV_shader_sm_builtins\r
+#extension GL_NV_shader_sm_builtins : enable\r
+#endif\r
+\r
+void sm_builtins()\r
+{\r
+ gl_WarpsPerSMNV;\r
+ gl_SMCountNV;\r
+ gl_WarpIDNV;\r
+ gl_SMIDNV;\r
+}\r
+\r
subgroupPartitionedExclusiveXorNV(ballot, parti);\r
}\r
\r
+// tests for NV_shader_sm_builtins\r
+void sm_builtins_err()\r
+{\r
+ gl_WarpsPerSMNV; // ERROR, no extension\r
+ gl_SMCountNV; // ERROR, no extension\r
+ gl_WarpIDNV; // ERROR, no extension\r
+ gl_SMIDNV; // ERROR, no extension\r
+}\r
+\r
+#ifdef GL_NV_shader_sm_builtins\r
+#extension GL_NV_shader_sm_builtins : enable\r
+#endif\r
+\r
+void sm_builtins()\r
+{\r
+ gl_WarpsPerSMNV;\r
+ gl_SMCountNV;\r
+ gl_WarpIDNV;\r
+ gl_SMIDNV;\r
+}\r
subgroupPartitionedExclusiveOrNV(ballot, parti);
subgroupPartitionedExclusiveXorNV(ballot, parti);
}
+
+// tests for NV_shader_sm_builtins
+void sm_builtins_err()
+{
+ gl_WarpsPerSMNV; // ERROR, no extension
+ gl_SMCountNV; // ERROR, no extension
+ gl_WarpIDNV; // ERROR, no extension
+ gl_SMIDNV; // ERROR, no extension
+}
+
+#ifdef GL_NV_shader_sm_builtins
+#extension GL_NV_shader_sm_builtins : enable
+#endif
+
+void sm_builtins()
+{
+ gl_WarpsPerSMNV;
+ gl_SMCountNV;
+ gl_WarpIDNV;
+ gl_SMIDNV;
+}
subgroupPartitionedExclusiveXorNV(ballot, parti);
}
+// tests for NV_shader_sm_builtins
+void sm_builtins_err()
+{
+ gl_WarpsPerSMNV; // ERROR, no extension
+ gl_SMCountNV; // ERROR, no extension
+ gl_WarpIDNV; // ERROR, no extension
+ gl_SMIDNV; // ERROR, no extension
+}
+
+#ifdef GL_NV_shader_sm_builtins
+#extension GL_NV_shader_sm_builtins : enable
+#endif
+
+void sm_builtins()
+{
+ gl_WarpsPerSMNV;
+ gl_SMCountNV;
+ gl_WarpIDNV;
+ gl_SMIDNV;
+}
subgroupPartitionedExclusiveXorNV(ballot, parti);
}
+// tests for NV_shader_sm_builtins
+void sm_builtins_err()
+{
+ gl_WarpsPerSMNV; // ERROR, no extension
+ gl_SMCountNV; // ERROR, no extension
+ gl_WarpIDNV; // ERROR, no extension
+ gl_SMIDNV; // ERROR, no extension
+}
+
+#ifdef GL_NV_shader_sm_builtins
+#extension GL_NV_shader_sm_builtins : enable
+#endif
+
+void sm_builtins()
+{
+ gl_WarpsPerSMNV;
+ gl_SMCountNV;
+ gl_WarpIDNV;
+ gl_SMIDNV;
+}
subgroupPartitionedExclusiveXorNV(ballot, parti);
}
+// tests for NV_shader_sm_builtins
+void sm_builtins_err()
+{
+ gl_WarpsPerSMNV; // ERROR, no extension
+ gl_SMCountNV; // ERROR, no extension
+ gl_WarpIDNV; // ERROR, no extension
+ gl_SMIDNV; // ERROR, no extension
+}
+
+#ifdef GL_NV_shader_sm_builtins
+#extension GL_NV_shader_sm_builtins : enable
+#endif
+
+void sm_builtins()
+{
+ gl_WarpsPerSMNV;
+ gl_SMCountNV;
+ gl_WarpIDNV;
+ gl_SMIDNV;
+}
subgroupPartitionedExclusiveXorNV(ballot, parti);
}
+// tests for NV_shader_sm_builtins
+void sm_builtins_err()
+{
+ gl_WarpsPerSMNV; // ERROR, no extension
+ gl_SMCountNV; // ERROR, no extension
+ gl_WarpIDNV; // ERROR, no extension
+ gl_SMIDNV; // ERROR, no extension
+}
+
+#ifdef GL_NV_shader_sm_builtins
+#extension GL_NV_shader_sm_builtins : enable
+#endif
+
+void sm_builtins()
+{
+ gl_WarpsPerSMNV;
+ gl_SMCountNV;
+ gl_WarpIDNV;
+ gl_SMIDNV;
+}
subgroupPartitionedExclusiveXorNV(ballot, parti);
}
+// tests for NV_shader_sm_builtins
+void sm_builtins_err()
+{
+ gl_WarpsPerSMNV; // ERROR, no extension
+ gl_SMCountNV; // ERROR, no extension
+ gl_WarpIDNV; // ERROR, no extension
+ gl_SMIDNV; // ERROR, no extension
+}
+
+#ifdef GL_NV_shader_sm_builtins
+#extension GL_NV_shader_sm_builtins : enable
+#endif
+
+void sm_builtins()
+{
+ gl_WarpsPerSMNV;
+ gl_SMCountNV;
+ gl_WarpIDNV;
+ gl_SMIDNV;
+}
subgroupPartitionedExclusiveXorNV(ballot, parti);
}
+// tests for NV_shader_sm_builtins
+void sm_builtins_err()
+{
+ gl_WarpsPerSMNV; // ERROR, no extension
+ gl_SMCountNV; // ERROR, no extension
+ gl_WarpIDNV; // ERROR, no extension
+ gl_SMIDNV; // ERROR, no extension
+}
+
+#ifdef GL_NV_shader_sm_builtins
+#extension GL_NV_shader_sm_builtins : enable
+#endif
+
+void sm_builtins()
+{
+ gl_WarpsPerSMNV;
+ gl_SMCountNV;
+ gl_WarpIDNV;
+ gl_SMIDNV;
+}
subgroupPartitionedExclusiveXorNV(ballot, parti);
}
+// tests for NV_shader_sm_builtins
+void sm_builtins_err()
+{
+ gl_WarpsPerSMNV; // ERROR, no extension
+ gl_SMCountNV; // ERROR, no extension
+ gl_WarpIDNV; // ERROR, no extension
+ gl_SMIDNV; // ERROR, no extension
+}
+
+#ifdef GL_NV_shader_sm_builtins
+#extension GL_NV_shader_sm_builtins : enable
+#endif
+
+void sm_builtins()
+{
+ gl_WarpsPerSMNV;
+ gl_SMCountNV;
+ gl_WarpIDNV;
+ gl_SMIDNV;
+}
--- /dev/null
+#version 450
+#extension GL_NV_shader_sm_builtins: enable
+layout(location = 0) out uvec4 data;
+void main (void)
+{
+ data = uvec4(gl_WarpsPerSMNV, gl_SMCountNV, gl_WarpIDNV, gl_SMIDNV);
+}
--- /dev/null
+#version 450
+#extension GL_NV_shader_sm_builtins: enable
+layout(set = 0, binding = 0, std430) buffer Output
+{
+ uvec4 result[];
+};
+
+void main (void)
+{
+ result[gl_VertexIndex] = uvec4(gl_WarpsPerSMNV, gl_SMCountNV, gl_WarpIDNV, gl_SMIDNV);
+}
EbvMeshViewIndicesNV,
#endif
+ // sm builtins
+ EbvWarpsPerSM,
+ EbvSMCount,
+ EbvWarpID,
+ EbvSMID,
+
// HLSL built-ins that live only temporarily, until they get remapped
// to one of the above.
EbvFragDepthGreater,
case EbvMeshViewIndicesNV: return "MeshViewIndicesNV";
#endif
+ case EbvWarpsPerSM: return "WarpsPerSMNV";
+ case EbvSMCount: return "SMCountNV";
+ case EbvWarpID: return "WarpIDNV";
+ case EbvSMID: return "SMIDNV";
+
default: return "unknown built-in variable";
}
}
const char* semanticName;
TStorageQualifier storage : 6;
- TBuiltInVariable builtIn : 8;
- TBuiltInVariable declaredBuiltIn : 8;
+ TBuiltInVariable builtIn : 9;
+ TBuiltInVariable declaredBuiltIn : 9;
+ static_assert(EbvLast < 256, "need to increase size of TBuiltInVariable bitfields!");
TPrecisionQualifier precision : 3;
bool invariant : 1; // require canonical treatment for cross-shader invariance
bool noContraction: 1; // prevent contraction and reassociation, e.g., for 'precise' keyword, and expressions it affects
"in highp uvec4 gl_SubgroupGtMask;"
"in highp uvec4 gl_SubgroupLeMask;"
"in highp uvec4 gl_SubgroupLtMask;"
+ // GL_NV_shader_sm_builtins
+ "in highp uint gl_WarpsPerSMNV;"
+ "in highp uint gl_SMCountNV;"
+ "in highp uint gl_WarpIDNV;"
+ "in highp uint gl_SMIDNV;"
"\n";
const char* fragmentSubgroupDecls =
"flat in mediump uint gl_SubgroupSize;"
"flat in highp uvec4 gl_SubgroupGtMask;"
"flat in highp uvec4 gl_SubgroupLeMask;"
"flat in highp uvec4 gl_SubgroupLtMask;"
+ // GL_NV_shader_sm_builtins
+ "flat in highp uint gl_WarpsPerSMNV;"
+ "flat in highp uint gl_SMCountNV;"
+ "flat in highp uint gl_WarpIDNV;"
+ "flat in highp uint gl_SMIDNV;"
"\n";
const char* computeSubgroupDecls =
"in highp uint gl_NumSubgroups;"
BuiltInVariable("gl_SubgroupGtMask", EbvSubgroupGtMask2, symbolTable);
BuiltInVariable("gl_SubgroupLeMask", EbvSubgroupLeMask2, symbolTable);
BuiltInVariable("gl_SubgroupLtMask", EbvSubgroupLtMask2, symbolTable);
+
+ // GL_NV_shader_sm_builtins
+ symbolTable.setVariableExtensions("gl_WarpsPerSMNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_SMCountNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_WarpIDNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_SMIDNV", 1, &E_GL_NV_shader_sm_builtins);
+ BuiltInVariable("gl_WarpsPerSMNV", EbvWarpsPerSM, symbolTable);
+ BuiltInVariable("gl_SMCountNV", EbvSMCount, symbolTable);
+ BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable);
+ BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable);
}
break;
symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveXorNV", 1, &E_GL_NV_shader_subgroup_partitioned);
#endif
+ // GL_NV_shader_sm_builtins
+ symbolTable.setVariableExtensions("gl_WarpsPerSMNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_SMCountNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_WarpIDNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_SMIDNV", 1, &E_GL_NV_shader_sm_builtins);
+ BuiltInVariable("gl_WarpsPerSMNV", EbvWarpsPerSM, symbolTable);
+ BuiltInVariable("gl_SMCountNV", EbvSMCount, symbolTable);
+ BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable);
+ BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable);
}
if (profile == EEsProfile) {
BuiltInVariable("gl_SubgroupGtMask", EbvSubgroupGtMask2, symbolTable);
BuiltInVariable("gl_SubgroupLeMask", EbvSubgroupLeMask2, symbolTable);
BuiltInVariable("gl_SubgroupLtMask", EbvSubgroupLtMask2, symbolTable);
+
+ // GL_NV_shader_sm_builtins
+ symbolTable.setVariableExtensions("gl_WarpsPerSMNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_SMCountNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_WarpIDNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_SMIDNV", 1, &E_GL_NV_shader_sm_builtins);
+ BuiltInVariable("gl_WarpsPerSMNV", EbvWarpsPerSM, symbolTable);
+ BuiltInVariable("gl_SMCountNV", EbvSMCount, symbolTable);
+ BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable);
+ BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable);
}
if ((profile != EEsProfile && version >= 140) ||
BuiltInVariable("gl_SubgroupGtMask", EbvSubgroupGtMask2, symbolTable);
BuiltInVariable("gl_SubgroupLeMask", EbvSubgroupLeMask2, symbolTable);
BuiltInVariable("gl_SubgroupLtMask", EbvSubgroupLtMask2, symbolTable);
+
+ // GL_NV_shader_sm_builtins
+ symbolTable.setVariableExtensions("gl_WarpsPerSMNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_SMCountNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_WarpIDNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_SMIDNV", 1, &E_GL_NV_shader_sm_builtins);
+ BuiltInVariable("gl_WarpsPerSMNV", EbvWarpsPerSM, symbolTable);
+ BuiltInVariable("gl_SMCountNV", EbvSMCount, symbolTable);
+ BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable);
+ BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable);
}
break;
BuiltInVariable("gl_SubgroupLtMask", EbvSubgroupLtMask2, symbolTable);
symbolTable.setFunctionExtensions("subgroupMemoryBarrierShared", 1, &E_GL_KHR_shader_subgroup_basic);
+
+ // GL_NV_shader_sm_builtins
+ symbolTable.setVariableExtensions("gl_WarpsPerSMNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_SMCountNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_WarpIDNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_SMIDNV", 1, &E_GL_NV_shader_sm_builtins);
+ BuiltInVariable("gl_WarpsPerSMNV", EbvWarpsPerSM, symbolTable);
+ BuiltInVariable("gl_SMCountNV", EbvSMCount, symbolTable);
+ BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable);
+ BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable);
}
break;
BuiltInVariable("gl_SubgroupLtMask", EbvSubgroupLtMask2, symbolTable);
symbolTable.setFunctionExtensions("subgroupMemoryBarrierShared", 1, &E_GL_KHR_shader_subgroup_basic);
+
+ // GL_NV_shader_sm_builtins
+ symbolTable.setVariableExtensions("gl_WarpsPerSMNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_SMCountNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_WarpIDNV", 1, &E_GL_NV_shader_sm_builtins);
+ symbolTable.setVariableExtensions("gl_SMIDNV", 1, &E_GL_NV_shader_sm_builtins);
+ BuiltInVariable("gl_WarpsPerSMNV", EbvWarpsPerSM, symbolTable);
+ BuiltInVariable("gl_SMCountNV", EbvSMCount, symbolTable);
+ BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable);
+ BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable);
}
break;
#endif
#endif
extensionBehavior[E_GL_NV_cooperative_matrix] = EBhDisable;
+ extensionBehavior[E_GL_NV_shader_sm_builtins] = EBhDisable;
// AEP
extensionBehavior[E_GL_ANDROID_extension_pack_es31a] = EBhDisable;
preamble +=
"#define GL_EXT_device_group 1\n"
"#define GL_EXT_multiview 1\n"
+ "#define GL_NV_shader_sm_builtins 1\n"
;
}
#endif
const char* const E_GL_NV_cooperative_matrix = "GL_NV_cooperative_matrix";
+const char* const E_GL_NV_shader_sm_builtins = "GL_NV_shader_sm_builtins";
// AEP
const char* const E_GL_ANDROID_extension_pack_es31a = "GL_ANDROID_extension_pack_es31a";
"spv.xfb2.vert",
"spv.xfb3.vert",
"spv.samplerlessTextureFunctions.frag",
+ "spv.smBuiltins.vert",
+ "spv.smBuiltins.frag",
})),
FileNameAsCustomTestSuffix
);
"site" : "github",
"subrepo" : "KhronosGroup/SPIRV-Tools",
"subdir" : "External/spirv-tools",
- "commit" : "d01a3c3b4b76e942e1c22adca5a9713197dde901"
+ "commit" : "0755d6ce821cb1ca1e5a5bdf3a8d1d63b08da86d"
},
{
"name" : "spirv-tools/external/spirv-headers",