Merge pull request #1787 from dgkoch/add_sm_builtins
Support GL_NV_shader_sm_builtins
This commit is contained in:
		
						commit
						9866ad9195
					
				@ -75,4 +75,7 @@ const char* const E_SPV_NV_shading_rate = "SPV_NV_shading_rate";
 | 
				
			|||||||
//SPV_NV_cooperative_matrix
 | 
					//SPV_NV_cooperative_matrix
 | 
				
			||||||
const char* const E_SPV_NV_cooperative_matrix = "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
 | 
					#endif  // #ifndef GLSLextNV_H
 | 
				
			||||||
 | 
				
			|||||||
@ -946,6 +946,24 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
 | 
				
			|||||||
    case glslang::EbvMeshViewIndicesNV:
 | 
					    case glslang::EbvMeshViewIndicesNV:
 | 
				
			||||||
        return spv::BuiltInMeshViewIndicesNV;
 | 
					        return spv::BuiltInMeshViewIndicesNV;
 | 
				
			||||||
#endif
 | 
					#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:
 | 
					    default:
 | 
				
			||||||
        return spv::BuiltInMax;
 | 
					        return spv::BuiltInMax;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -423,6 +423,10 @@ const char* BuiltInString(int builtIn)
 | 
				
			|||||||
    case BuiltInMeshViewCountNV:       return "MeshViewCountNV";
 | 
					    case BuiltInMeshViewCountNV:       return "MeshViewCountNV";
 | 
				
			||||||
    case BuiltInMeshViewIndicesNV:     return "MeshViewIndicesNV";
 | 
					    case BuiltInMeshViewIndicesNV:     return "MeshViewIndicesNV";
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					    case BuiltInWarpsPerSMNV:           return "WarpsPerSMNV";
 | 
				
			||||||
 | 
					    case BuiltInSMCountNV:              return "SMCountNV";
 | 
				
			||||||
 | 
					    case BuiltInWarpIDNV:               return "WarpIDNV";
 | 
				
			||||||
 | 
					    case BuiltInSMIDNV:                 return "SMIDNV";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    default: return "Bad";
 | 
					    default: return "Bad";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -948,6 +952,7 @@ const char* CapabilityString(int info)
 | 
				
			|||||||
    case CapabilityVariablePointers:                    return "VariablePointers";
 | 
					    case CapabilityVariablePointers:                    return "VariablePointers";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case CapabilityCooperativeMatrixNV:     return "CooperativeMatrixNV";
 | 
					    case CapabilityCooperativeMatrixNV:     return "CooperativeMatrixNV";
 | 
				
			||||||
 | 
					    case CapabilityShaderSMBuiltinsNV:      return "ShaderSMBuiltinsNV";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case CapabilityFragmentShaderSampleInterlockEXT:        return "CapabilityFragmentShaderSampleInterlockEXT";
 | 
					    case CapabilityFragmentShaderSampleInterlockEXT:        return "CapabilityFragmentShaderSampleInterlockEXT";
 | 
				
			||||||
    case CapabilityFragmentShaderPixelInterlockEXT:         return "CapabilityFragmentShaderPixelInterlockEXT";
 | 
					    case CapabilityFragmentShaderPixelInterlockEXT:         return "CapabilityFragmentShaderPixelInterlockEXT";
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 450
 | 
				
			||||||
@ -97,6 +101,7 @@ Requested GL_KHR_shader_subgroup_quad
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle
 | 
					Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:3  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
					0:3  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
				
			||||||
@ -597,6 +602,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:226      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:226      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:226        'ballot' ( temp 4-component vector of uint)
 | 
					0:226        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:226        'parti' ( 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:?   Linker Objects
 | 
				
			||||||
0:?     'data' (layout( location=0) out 4-component vector of uint)
 | 
					0:?     'data' (layout( location=0) out 4-component vector of uint)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -613,6 +632,7 @@ Requested GL_KHR_shader_subgroup_quad
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle
 | 
					Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:105  Function Definition: main( ( global void)
 | 
					0:105  Function Definition: main( ( global void)
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 450
 | 
				
			||||||
@ -97,6 +101,7 @@ Requested GL_KHR_shader_subgroup_quad
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle
 | 
					Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
invocations = -1
 | 
					invocations = -1
 | 
				
			||||||
max_vertices = 1
 | 
					max_vertices = 1
 | 
				
			||||||
@ -606,6 +611,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:232      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:232      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:232        'ballot' ( temp 4-component vector of uint)
 | 
					0:232        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:232        'parti' ( 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:?   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:?     '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})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -622,6 +641,7 @@ Requested GL_KHR_shader_subgroup_quad
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle
 | 
					Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
invocations = 1
 | 
					invocations = 1
 | 
				
			||||||
max_vertices = 1
 | 
					max_vertices = 1
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 450
 | 
				
			||||||
@ -97,6 +101,7 @@ Requested GL_KHR_shader_subgroup_quad
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle
 | 
					Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
vertices = 1
 | 
					vertices = 1
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
@ -603,6 +608,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:231      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:231      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:231        'ballot' ( temp 4-component vector of uint)
 | 
					0:231        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:231        'parti' ( 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:?   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:?     '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})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -619,6 +638,7 @@ Requested GL_KHR_shader_subgroup_quad
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle
 | 
					Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
vertices = 1
 | 
					vertices = 1
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 450
 | 
				
			||||||
@ -97,6 +101,7 @@ Requested GL_KHR_shader_subgroup_quad
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle
 | 
					Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
input primitive = isolines
 | 
					input primitive = isolines
 | 
				
			||||||
vertex spacing = none
 | 
					vertex spacing = none
 | 
				
			||||||
@ -605,6 +610,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:231      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:231      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:231        'ballot' ( temp 4-component vector of uint)
 | 
					0:231        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:231        'parti' ( 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:?   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:?     '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})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -621,6 +640,7 @@ Requested GL_KHR_shader_subgroup_quad
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle
 | 
					Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
input primitive = isolines
 | 
					input primitive = isolines
 | 
				
			||||||
vertex spacing = equal_spacing
 | 
					vertex spacing = equal_spacing
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 450
 | 
				
			||||||
@ -97,6 +101,7 @@ Requested GL_KHR_shader_subgroup_quad
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle
 | 
					Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:3  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
					0:3  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
				
			||||||
@ -602,6 +607,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:230      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:230      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:230        'ballot' ( temp 4-component vector of uint)
 | 
					0:230        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:230        'parti' ( 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:?   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:?     '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)
 | 
					0:?     'gl_VertexID' ( gl_VertexId int VertexId)
 | 
				
			||||||
@ -620,6 +639,7 @@ Requested GL_KHR_shader_subgroup_quad
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle
 | 
					Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:109  Function Definition: main( ( global void)
 | 
					0:109  Function Definition: main( ( global void)
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 450
 | 
				
			||||||
@ -97,6 +101,7 @@ Requested GL_KHR_shader_subgroup_quad
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle
 | 
					Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
local_size = (8, 8, 1)
 | 
					local_size = (8, 8, 1)
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
@ -631,6 +636,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:236      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:236      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:236        'ballot' ( temp 4-component vector of uint)
 | 
					0:236        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:236        'parti' ( 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:?   Linker Objects
 | 
				
			||||||
0:?     'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
 | 
					0:?     'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
 | 
				
			||||||
0:?       8 (const uint)
 | 
					0:?       8 (const uint)
 | 
				
			||||||
@ -651,6 +670,7 @@ Requested GL_KHR_shader_subgroup_quad
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle
 | 
					Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
local_size = (8, 8, 1)
 | 
					local_size = (8, 8, 1)
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 460
 | 
				
			||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_mesh_shader
 | 
					Requested GL_NV_mesh_shader
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
max_vertices = 81
 | 
					max_vertices = 81
 | 
				
			||||||
max_primitives = 32
 | 
					max_primitives = 32
 | 
				
			||||||
@ -887,6 +892,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:292      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:292      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:292        'ballot' ( temp 4-component vector of uint)
 | 
					0:292        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:292        'parti' ( 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:?   Linker Objects
 | 
				
			||||||
0:?     'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
 | 
					0:?     'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
 | 
				
			||||||
0:?       32 (const uint)
 | 
					0:?       32 (const uint)
 | 
				
			||||||
@ -910,6 +929,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_mesh_shader
 | 
					Requested GL_NV_mesh_shader
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
max_vertices = 81
 | 
					max_vertices = 81
 | 
				
			||||||
max_primitives = 32
 | 
					max_primitives = 32
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 460
 | 
				
			||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_ray_tracing
 | 
					Requested GL_NV_ray_tracing
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:4  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
					0:4  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
				
			||||||
@ -671,6 +676,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:253      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:253      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:253        'ballot' ( temp 4-component vector of uint)
 | 
					0:253        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:253        'parti' ( 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:?   Linker Objects
 | 
				
			||||||
0:?     'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
 | 
					0:?     'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -688,6 +707,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_ray_tracing
 | 
					Requested GL_NV_ray_tracing
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:106  Function Definition: main( ( global void)
 | 
					0:106  Function Definition: main( ( global void)
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 460
 | 
				
			||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_ray_tracing
 | 
					Requested GL_NV_ray_tracing
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:4  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
					0:4  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
				
			||||||
@ -614,6 +619,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:241      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:241      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:241        'ballot' ( temp 4-component vector of uint)
 | 
					0:241        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:241        'parti' ( 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:?   Linker Objects
 | 
				
			||||||
0:?     'data0' (layout( location=0) callableDataNV 4-component vector of float)
 | 
					0:?     'data0' (layout( location=0) callableDataNV 4-component vector of float)
 | 
				
			||||||
0:?     'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})
 | 
					0:?     'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})
 | 
				
			||||||
@ -632,6 +651,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_ray_tracing
 | 
					Requested GL_NV_ray_tracing
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:109  Function Definition: main( ( global void)
 | 
					0:109  Function Definition: main( ( global void)
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 460
 | 
				
			||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_ray_tracing
 | 
					Requested GL_NV_ray_tracing
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:4  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
					0:4  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
				
			||||||
@ -680,6 +685,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:251      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:251      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:251        'ballot' ( temp 4-component vector of uint)
 | 
					0:251        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:251        'parti' ( 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:?   Linker Objects
 | 
				
			||||||
0:?     'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
 | 
					0:?     'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
 | 
				
			||||||
0:?     'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
 | 
					0:?     'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
 | 
				
			||||||
@ -699,6 +718,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_ray_tracing
 | 
					Requested GL_NV_ray_tracing
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:108  Function Definition: main( ( global void)
 | 
					0:108  Function Definition: main( ( global void)
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:97: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 460
 | 
				
			||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_ray_tracing
 | 
					Requested GL_NV_ray_tracing
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:4  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
					0:4  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
				
			||||||
@ -644,6 +649,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:245      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:245      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:245        'ballot' ( temp 4-component vector of uint)
 | 
					0:245        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:245        'parti' ( 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:?   Linker Objects
 | 
				
			||||||
0:?     'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
 | 
					0:?     'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
 | 
				
			||||||
0:?     'accNV1' (layout( set=0 binding=1) uniform accelerationStructureNV)
 | 
					0:?     'accNV1' (layout( set=0 binding=1) uniform accelerationStructureNV)
 | 
				
			||||||
@ -664,6 +683,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_ray_tracing
 | 
					Requested GL_NV_ray_tracing
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:113  Function Definition: main( ( global void)
 | 
					0:113  Function Definition: main( ( global void)
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:97: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 460
 | 
				
			||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_ray_tracing
 | 
					Requested GL_NV_ray_tracing
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:5  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
					0:5  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
				
			||||||
@ -658,6 +663,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:251      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:251      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:251        'ballot' ( temp 4-component vector of uint)
 | 
					0:251        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:251        'parti' ( 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:?   Linker Objects
 | 
				
			||||||
0:?     'iAttr' ( hitAttributeNV 4-component vector of float)
 | 
					0:?     'iAttr' ( hitAttributeNV 4-component vector of float)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -675,6 +694,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_ray_tracing
 | 
					Requested GL_NV_ray_tracing
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:108  Function Definition: main( ( global void)
 | 
					0:108  Function Definition: main( ( global void)
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:97: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:98: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 460
 | 
				
			||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_ray_tracing
 | 
					Requested GL_NV_ray_tracing
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:5  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
					0:5  Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
 | 
				
			||||||
@ -652,6 +657,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:245      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:245      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:245        'ballot' ( temp 4-component vector of uint)
 | 
					0:245        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:245        'parti' ( 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:?   Linker Objects
 | 
				
			||||||
0:?     'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
 | 
					0:?     'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
 | 
				
			||||||
0:?     'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
 | 
					0:?     'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
 | 
				
			||||||
@ -671,6 +690,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_ray_tracing
 | 
					Requested GL_NV_ray_tracing
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
0:109  Function Definition: main( ( global void)
 | 
					0:109  Function Definition: main( ( global void)
 | 
				
			||||||
 | 
				
			|||||||
@ -85,7 +85,11 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
 | 
				
			|||||||
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
 | 
					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: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: 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
 | 
					Shader version: 460
 | 
				
			||||||
@ -98,6 +102,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_mesh_shader
 | 
					Requested GL_NV_mesh_shader
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
local_size = (32, 1, 1)
 | 
					local_size = (32, 1, 1)
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
@ -729,6 +734,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:282      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
					0:282      subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
 | 
				
			||||||
0:282        'ballot' ( temp 4-component vector of uint)
 | 
					0:282        'ballot' ( temp 4-component vector of uint)
 | 
				
			||||||
0:282        'parti' ( 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:?   Linker Objects
 | 
				
			||||||
0:?     'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
 | 
					0:?     'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
 | 
				
			||||||
0:?       32 (const uint)
 | 
					0:?       32 (const uint)
 | 
				
			||||||
@ -753,6 +772,7 @@ Requested GL_KHR_shader_subgroup_shuffle
 | 
				
			|||||||
Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
					Requested GL_KHR_shader_subgroup_shuffle_relative
 | 
				
			||||||
Requested GL_KHR_shader_subgroup_vote
 | 
					Requested GL_KHR_shader_subgroup_vote
 | 
				
			||||||
Requested GL_NV_mesh_shader
 | 
					Requested GL_NV_mesh_shader
 | 
				
			||||||
 | 
					Requested GL_NV_shader_sm_builtins
 | 
				
			||||||
Requested GL_NV_shader_subgroup_partitioned
 | 
					Requested GL_NV_shader_subgroup_partitioned
 | 
				
			||||||
local_size = (32, 1, 1)
 | 
					local_size = (32, 1, 1)
 | 
				
			||||||
ERROR: node is still EOpNull!
 | 
					ERROR: node is still EOpNull!
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										50
									
								
								Test/baseResults/spv.smBuiltins.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								Test/baseResults/spv.smBuiltins.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					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
 | 
				
			||||||
							
								
								
									
										62
									
								
								Test/baseResults/spv.smBuiltins.vert.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								Test/baseResults/spv.smBuiltins.vert.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					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
 | 
				
			||||||
@ -11,7 +11,7 @@ spv.specConstant.vert
 | 
				
			|||||||
                              Source GLSL 400
 | 
					                              Source GLSL 400
 | 
				
			||||||
                              Name 4  "main"
 | 
					                              Name 4  "main"
 | 
				
			||||||
                              Name 9  "arraySize"
 | 
					                              Name 9  "arraySize"
 | 
				
			||||||
                              Name 14  "foo(vf4[s2765];"
 | 
					                              Name 14  "foo(vf4[s2769];"
 | 
				
			||||||
                              Name 13  "p"
 | 
					                              Name 13  "p"
 | 
				
			||||||
                              Name 17  "builtin_spec_constant("
 | 
					                              Name 17  "builtin_spec_constant("
 | 
				
			||||||
                              Name 20  "color"
 | 
					                              Name 20  "color"
 | 
				
			||||||
@ -102,10 +102,10 @@ spv.specConstant.vert
 | 
				
			|||||||
                              Store 20(color) 46
 | 
					                              Store 20(color) 46
 | 
				
			||||||
              48:          10 Load 22(ucol)
 | 
					              48:          10 Load 22(ucol)
 | 
				
			||||||
                              Store 47(param) 48
 | 
					                              Store 47(param) 48
 | 
				
			||||||
              49:           2 FunctionCall 14(foo(vf4[s2765];) 47(param)
 | 
					              49:           2 FunctionCall 14(foo(vf4[s2769];) 47(param)
 | 
				
			||||||
                              Return
 | 
					                              Return
 | 
				
			||||||
                              FunctionEnd
 | 
					                              FunctionEnd
 | 
				
			||||||
14(foo(vf4[s2765];):           2 Function None 12
 | 
					14(foo(vf4[s2769];):           2 Function None 12
 | 
				
			||||||
           13(p):     11(ptr) FunctionParameter
 | 
					           13(p):     11(ptr) FunctionParameter
 | 
				
			||||||
              15:             Label
 | 
					              15:             Label
 | 
				
			||||||
              54:     24(ptr) AccessChain 53(dupUcol) 23
 | 
					              54:     24(ptr) AccessChain 53(dupUcol) 23
 | 
				
			||||||
 | 
				
			|||||||
@ -226,3 +226,23 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -232,3 +232,23 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -231,3 +231,23 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -230,3 +230,24 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveOrNV(ballot, parti);
 | 
					  subgroupPartitionedExclusiveOrNV(ballot, parti);
 | 
				
			||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -230,3 +230,24 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -236,3 +236,23 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -291,3 +291,24 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveOrNV(ballot, parti);
 | 
					  subgroupPartitionedExclusiveOrNV(ballot, parti);
 | 
				
			||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -253,3 +253,23 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -241,3 +241,23 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -251,3 +251,23 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -245,3 +245,23 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -251,3 +251,23 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -245,3 +245,23 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -282,3 +282,23 @@ void partitioned_works(vec4 f4)
 | 
				
			|||||||
  subgroupPartitionedExclusiveXorNV(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										7
									
								
								Test/spv.smBuiltins.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Test/spv.smBuiltins.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					#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);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										11
									
								
								Test/spv.smBuiltins.vert
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Test/spv.smBuiltins.vert
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					#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);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -275,6 +275,12 @@ enum TBuiltInVariable {
 | 
				
			|||||||
    EbvMeshViewIndicesNV,
 | 
					    EbvMeshViewIndicesNV,
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // sm builtins
 | 
				
			||||||
 | 
					    EbvWarpsPerSM,
 | 
				
			||||||
 | 
					    EbvSMCount,
 | 
				
			||||||
 | 
					    EbvWarpID,
 | 
				
			||||||
 | 
					    EbvSMID,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // HLSL built-ins that live only temporarily, until they get remapped
 | 
					    // HLSL built-ins that live only temporarily, until they get remapped
 | 
				
			||||||
    // to one of the above.
 | 
					    // to one of the above.
 | 
				
			||||||
    EbvFragDepthGreater,
 | 
					    EbvFragDepthGreater,
 | 
				
			||||||
@ -460,6 +466,11 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
 | 
				
			|||||||
    case EbvMeshViewIndicesNV:          return "MeshViewIndicesNV";
 | 
					    case EbvMeshViewIndicesNV:          return "MeshViewIndicesNV";
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EbvWarpsPerSM:                 return "WarpsPerSMNV";
 | 
				
			||||||
 | 
					    case EbvSMCount:                    return "SMCountNV";
 | 
				
			||||||
 | 
					    case EbvWarpID:                     return "WarpIDNV";
 | 
				
			||||||
 | 
					    case EbvSMID:                       return "SMIDNV";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    default:                      return "unknown built-in variable";
 | 
					    default:                      return "unknown built-in variable";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -514,8 +514,9 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    const char*         semanticName;
 | 
					    const char*         semanticName;
 | 
				
			||||||
    TStorageQualifier   storage   : 6;
 | 
					    TStorageQualifier   storage   : 6;
 | 
				
			||||||
    TBuiltInVariable    builtIn   : 8;
 | 
					    TBuiltInVariable    builtIn   : 9;
 | 
				
			||||||
    TBuiltInVariable    declaredBuiltIn : 8;
 | 
					    TBuiltInVariable    declaredBuiltIn : 9;
 | 
				
			||||||
 | 
					    static_assert(EbvLast < 256, "need to increase size of TBuiltInVariable bitfields!");
 | 
				
			||||||
    TPrecisionQualifier precision : 3;
 | 
					    TPrecisionQualifier precision : 3;
 | 
				
			||||||
    bool invariant    : 1; // require canonical treatment for cross-shader invariance
 | 
					    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
 | 
					    bool noContraction: 1; // prevent contraction and reassociation, e.g., for 'precise' keyword, and expressions it affects
 | 
				
			||||||
 | 
				
			|||||||
@ -6141,6 +6141,11 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
 | 
				
			|||||||
            "in highp   uvec4 gl_SubgroupGtMask;"
 | 
					            "in highp   uvec4 gl_SubgroupGtMask;"
 | 
				
			||||||
            "in highp   uvec4 gl_SubgroupLeMask;"
 | 
					            "in highp   uvec4 gl_SubgroupLeMask;"
 | 
				
			||||||
            "in highp   uvec4 gl_SubgroupLtMask;"
 | 
					            "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";
 | 
					            "\n";
 | 
				
			||||||
        const char* fragmentSubgroupDecls =
 | 
					        const char* fragmentSubgroupDecls =
 | 
				
			||||||
            "flat in mediump uint  gl_SubgroupSize;"
 | 
					            "flat in mediump uint  gl_SubgroupSize;"
 | 
				
			||||||
@ -6150,6 +6155,11 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
 | 
				
			|||||||
            "flat in highp   uvec4 gl_SubgroupGtMask;"
 | 
					            "flat in highp   uvec4 gl_SubgroupGtMask;"
 | 
				
			||||||
            "flat in highp   uvec4 gl_SubgroupLeMask;"
 | 
					            "flat in highp   uvec4 gl_SubgroupLeMask;"
 | 
				
			||||||
            "flat in highp   uvec4 gl_SubgroupLtMask;"
 | 
					            "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";
 | 
					            "\n";
 | 
				
			||||||
        const char* computeSubgroupDecls =
 | 
					        const char* computeSubgroupDecls =
 | 
				
			||||||
            "in highp   uint  gl_NumSubgroups;"
 | 
					            "in highp   uint  gl_NumSubgroups;"
 | 
				
			||||||
@ -8181,6 +8191,16 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
 | 
				
			|||||||
            BuiltInVariable("gl_SubgroupGtMask",       EbvSubgroupGtMask2,     symbolTable);
 | 
					            BuiltInVariable("gl_SubgroupGtMask",       EbvSubgroupGtMask2,     symbolTable);
 | 
				
			||||||
            BuiltInVariable("gl_SubgroupLeMask",       EbvSubgroupLeMask2,     symbolTable);
 | 
					            BuiltInVariable("gl_SubgroupLeMask",       EbvSubgroupLeMask2,     symbolTable);
 | 
				
			||||||
            BuiltInVariable("gl_SubgroupLtMask",       EbvSubgroupLtMask2,     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;
 | 
					        break;
 | 
				
			||||||
@ -8582,6 +8602,15 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
 | 
				
			|||||||
            symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveXorNV",            1, &E_GL_NV_shader_subgroup_partitioned);
 | 
					            symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveXorNV",            1, &E_GL_NV_shader_subgroup_partitioned);
 | 
				
			||||||
#endif
 | 
					#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) {
 | 
					        if (profile == EEsProfile) {
 | 
				
			||||||
@ -8686,6 +8715,16 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
 | 
				
			|||||||
            BuiltInVariable("gl_SubgroupGtMask",       EbvSubgroupGtMask2,     symbolTable);
 | 
					            BuiltInVariable("gl_SubgroupGtMask",       EbvSubgroupGtMask2,     symbolTable);
 | 
				
			||||||
            BuiltInVariable("gl_SubgroupLeMask",       EbvSubgroupLeMask2,     symbolTable);
 | 
					            BuiltInVariable("gl_SubgroupLeMask",       EbvSubgroupLeMask2,     symbolTable);
 | 
				
			||||||
            BuiltInVariable("gl_SubgroupLtMask",       EbvSubgroupLtMask2,     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) ||
 | 
					        if ((profile != EEsProfile && version >= 140) ||
 | 
				
			||||||
@ -8800,6 +8839,16 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
 | 
				
			|||||||
            BuiltInVariable("gl_SubgroupGtMask",       EbvSubgroupGtMask2,     symbolTable);
 | 
					            BuiltInVariable("gl_SubgroupGtMask",       EbvSubgroupGtMask2,     symbolTable);
 | 
				
			||||||
            BuiltInVariable("gl_SubgroupLeMask",       EbvSubgroupLeMask2,     symbolTable);
 | 
					            BuiltInVariable("gl_SubgroupLeMask",       EbvSubgroupLeMask2,     symbolTable);
 | 
				
			||||||
            BuiltInVariable("gl_SubgroupLtMask",       EbvSubgroupLtMask2,     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;
 | 
					        break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -8934,6 +8983,16 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
 | 
				
			|||||||
            BuiltInVariable("gl_SubgroupLtMask",       EbvSubgroupLtMask2,     symbolTable);
 | 
					            BuiltInVariable("gl_SubgroupLtMask",       EbvSubgroupLtMask2,     symbolTable);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            symbolTable.setFunctionExtensions("subgroupMemoryBarrierShared", 1, &E_GL_KHR_shader_subgroup_basic);
 | 
					            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;
 | 
					        break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -9024,6 +9083,16 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
 | 
				
			|||||||
            BuiltInVariable("gl_SubgroupLtMask",       EbvSubgroupLtMask2,     symbolTable);
 | 
					            BuiltInVariable("gl_SubgroupLtMask",       EbvSubgroupLtMask2,     symbolTable);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            symbolTable.setFunctionExtensions("subgroupMemoryBarrierShared", 1, &E_GL_KHR_shader_subgroup_basic);
 | 
					            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;
 | 
					        break;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
@ -251,6 +251,7 @@ void TParseVersions::initializeExtensionBehavior()
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    extensionBehavior[E_GL_NV_cooperative_matrix]                    = EBhDisable;
 | 
					    extensionBehavior[E_GL_NV_cooperative_matrix]                    = EBhDisable;
 | 
				
			||||||
 | 
					    extensionBehavior[E_GL_NV_shader_sm_builtins]                    = EBhDisable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // AEP
 | 
					    // AEP
 | 
				
			||||||
    extensionBehavior[E_GL_ANDROID_extension_pack_es31a]             = EBhDisable;
 | 
					    extensionBehavior[E_GL_ANDROID_extension_pack_es31a]             = EBhDisable;
 | 
				
			||||||
@ -459,6 +460,7 @@ void TParseVersions::getPreamble(std::string& preamble)
 | 
				
			|||||||
        preamble +=
 | 
					        preamble +=
 | 
				
			||||||
            "#define GL_EXT_device_group 1\n"
 | 
					            "#define GL_EXT_device_group 1\n"
 | 
				
			||||||
            "#define GL_EXT_multiview 1\n"
 | 
					            "#define GL_EXT_multiview 1\n"
 | 
				
			||||||
 | 
					            "#define GL_NV_shader_sm_builtins 1\n"
 | 
				
			||||||
            ;
 | 
					            ;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -228,6 +228,7 @@ const int Num_viewportEXTs = sizeof(viewportEXTs) / sizeof(viewportEXTs[0]);
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char* const E_GL_NV_cooperative_matrix                    = "GL_NV_cooperative_matrix";
 | 
					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
 | 
					// AEP
 | 
				
			||||||
const char* const E_GL_ANDROID_extension_pack_es31a             = "GL_ANDROID_extension_pack_es31a";
 | 
					const char* const E_GL_ANDROID_extension_pack_es31a             = "GL_ANDROID_extension_pack_es31a";
 | 
				
			||||||
 | 
				
			|||||||
@ -410,6 +410,8 @@ INSTANTIATE_TEST_CASE_P(
 | 
				
			|||||||
        "spv.xfb2.vert",
 | 
					        "spv.xfb2.vert",
 | 
				
			||||||
        "spv.xfb3.vert",
 | 
					        "spv.xfb3.vert",
 | 
				
			||||||
        "spv.samplerlessTextureFunctions.frag",
 | 
					        "spv.samplerlessTextureFunctions.frag",
 | 
				
			||||||
 | 
					        "spv.smBuiltins.vert",
 | 
				
			||||||
 | 
					        "spv.smBuiltins.frag",
 | 
				
			||||||
    })),
 | 
					    })),
 | 
				
			||||||
    FileNameAsCustomTestSuffix
 | 
					    FileNameAsCustomTestSuffix
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@
 | 
				
			|||||||
      "site" : "github",
 | 
					      "site" : "github",
 | 
				
			||||||
      "subrepo" : "KhronosGroup/SPIRV-Tools",
 | 
					      "subrepo" : "KhronosGroup/SPIRV-Tools",
 | 
				
			||||||
      "subdir" : "External/spirv-tools",
 | 
					      "subdir" : "External/spirv-tools",
 | 
				
			||||||
      "commit" : "d01a3c3b4b76e942e1c22adca5a9713197dde901"
 | 
					      "commit" : "0755d6ce821cb1ca1e5a5bdf3a8d1d63b08da86d"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "name" : "spirv-tools/external/spirv-headers",
 | 
					      "name" : "spirv-tools/external/spirv-headers",
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user