Merge pull request #3 from KhronosGroup/master
Merge code form KhronosGroup/glslang
This commit is contained in:
1
BUILD.gn
1
BUILD.gn
@@ -106,7 +106,6 @@ source_set("glslang_sources") {
|
||||
"glslang/MachineIndependent/attribute.cpp",
|
||||
"glslang/MachineIndependent/attribute.h",
|
||||
"glslang/MachineIndependent/gl_types.h",
|
||||
"glslang/MachineIndependent/glslang.y",
|
||||
"glslang/MachineIndependent/glslang_tab.cpp",
|
||||
"glslang/MachineIndependent/glslang_tab.cpp.h",
|
||||
"glslang/MachineIndependent/intermOut.cpp",
|
||||
|
||||
@@ -41,5 +41,6 @@ static const char* const E_SPV_KHR_storage_buffer_storage_class = "SPV_KHR_stora
|
||||
static const char* const E_SPV_KHR_post_depth_coverage = "SPV_KHR_post_depth_coverage";
|
||||
static const char* const E_SPV_KHR_vulkan_memory_model = "SPV_KHR_vulkan_memory_model";
|
||||
static const char* const E_SPV_EXT_physical_storage_buffer = "SPV_EXT_physical_storage_buffer";
|
||||
static const char* const E_SPV_EXT_fragment_shader_interlock = "SPV_EXT_fragment_shader_interlock";
|
||||
|
||||
#endif // #ifndef GLSLextKHR_H
|
||||
|
||||
@@ -888,7 +888,7 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
builder.addCapability(spv::CapabilityShadingRateNV);
|
||||
return spv::BuiltInInvocationsPerPixelNV;
|
||||
|
||||
// raytracing
|
||||
// ray tracing
|
||||
case glslang::EbvLaunchIdNV:
|
||||
return spv::BuiltInLaunchIdNV;
|
||||
case glslang::EbvLaunchSizeNV:
|
||||
@@ -917,6 +917,8 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
return spv::BuiltInWorldToObjectNV;
|
||||
case glslang::EbvIncomingRayFlagsNV:
|
||||
return spv::BuiltInIncomingRayFlagsNV;
|
||||
|
||||
// barycentrics
|
||||
case glslang::EbvBaryCoordNV:
|
||||
builder.addExtension(spv::E_SPV_NV_fragment_shader_barycentric);
|
||||
builder.addCapability(spv::CapabilityFragmentBarycentricNV);
|
||||
@@ -925,23 +927,25 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
||||
builder.addExtension(spv::E_SPV_NV_fragment_shader_barycentric);
|
||||
builder.addCapability(spv::CapabilityFragmentBarycentricNV);
|
||||
return spv::BuiltInBaryCoordNoPerspNV;
|
||||
case glslang::EbvTaskCountNV:
|
||||
|
||||
// mesh shaders
|
||||
case glslang::EbvTaskCountNV:
|
||||
return spv::BuiltInTaskCountNV;
|
||||
case glslang::EbvPrimitiveCountNV:
|
||||
case glslang::EbvPrimitiveCountNV:
|
||||
return spv::BuiltInPrimitiveCountNV;
|
||||
case glslang::EbvPrimitiveIndicesNV:
|
||||
case glslang::EbvPrimitiveIndicesNV:
|
||||
return spv::BuiltInPrimitiveIndicesNV;
|
||||
case glslang::EbvClipDistancePerViewNV:
|
||||
case glslang::EbvClipDistancePerViewNV:
|
||||
return spv::BuiltInClipDistancePerViewNV;
|
||||
case glslang::EbvCullDistancePerViewNV:
|
||||
case glslang::EbvCullDistancePerViewNV:
|
||||
return spv::BuiltInCullDistancePerViewNV;
|
||||
case glslang::EbvLayerPerViewNV:
|
||||
case glslang::EbvLayerPerViewNV:
|
||||
return spv::BuiltInLayerPerViewNV;
|
||||
case glslang::EbvMeshViewCountNV:
|
||||
case glslang::EbvMeshViewCountNV:
|
||||
return spv::BuiltInMeshViewCountNV;
|
||||
case glslang::EbvMeshViewIndicesNV:
|
||||
case glslang::EbvMeshViewIndicesNV:
|
||||
return spv::BuiltInMeshViewIndicesNV;
|
||||
#endif
|
||||
#endif
|
||||
default:
|
||||
return spv::BuiltInMax;
|
||||
}
|
||||
@@ -1465,6 +1469,30 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl
|
||||
|
||||
if (glslangIntermediate->getDepth() != glslang::EldUnchanged && glslangIntermediate->isDepthReplacing())
|
||||
builder.addExecutionMode(shaderEntry, spv::ExecutionModeDepthReplacing);
|
||||
|
||||
switch (glslangIntermediate->getInterlockOrdering()) {
|
||||
case glslang::EioPixelInterlockOrdered: mode = spv::ExecutionModePixelInterlockOrderedEXT; break;
|
||||
case glslang::EioPixelInterlockUnordered: mode = spv::ExecutionModePixelInterlockUnorderedEXT; break;
|
||||
case glslang::EioSampleInterlockOrdered: mode = spv::ExecutionModeSampleInterlockOrderedEXT; break;
|
||||
case glslang::EioSampleInterlockUnordered: mode = spv::ExecutionModeSampleInterlockUnorderedEXT; break;
|
||||
case glslang::EioShadingRateInterlockOrdered: mode = spv::ExecutionModeShadingRateInterlockOrderedEXT; break;
|
||||
case glslang::EioShadingRateInterlockUnordered: mode = spv::ExecutionModeShadingRateInterlockUnorderedEXT; break;
|
||||
default: mode = spv::ExecutionModeMax; break;
|
||||
}
|
||||
if (mode != spv::ExecutionModeMax) {
|
||||
builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode);
|
||||
if (mode == spv::ExecutionModeShadingRateInterlockOrderedEXT ||
|
||||
mode == spv::ExecutionModeShadingRateInterlockUnorderedEXT) {
|
||||
builder.addCapability(spv::CapabilityFragmentShaderShadingRateInterlockEXT);
|
||||
} else if (mode == spv::ExecutionModePixelInterlockOrderedEXT ||
|
||||
mode == spv::ExecutionModePixelInterlockUnorderedEXT) {
|
||||
builder.addCapability(spv::CapabilityFragmentShaderPixelInterlockEXT);
|
||||
} else {
|
||||
builder.addCapability(spv::CapabilityFragmentShaderSampleInterlockEXT);
|
||||
}
|
||||
builder.addExtension(spv::E_SPV_EXT_fragment_shader_interlock);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case EShLangCompute:
|
||||
@@ -2392,6 +2420,11 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
||||
case glslang::EOpCooperativeMatrixStore:
|
||||
noReturnValue = true;
|
||||
break;
|
||||
case glslang::EOpBeginInvocationInterlock:
|
||||
case glslang::EOpEndInvocationInterlock:
|
||||
builder.addExtension(spv::E_SPV_EXT_fragment_shader_interlock);
|
||||
noReturnValue = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
@@ -7425,6 +7458,14 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv:
|
||||
builder.createNoResultOp(spv::OpTerminateRayNV);
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
case glslang::EOpBeginInvocationInterlock:
|
||||
builder.createNoResultOp(spv::OpBeginInvocationInterlockEXT);
|
||||
return 0;
|
||||
case glslang::EOpEndInvocationInterlock:
|
||||
builder.createNoResultOp(spv::OpEndInvocationInterlockEXT);
|
||||
return 0;
|
||||
|
||||
default:
|
||||
logger->missingFunctionality("unknown operation with no arguments");
|
||||
return 0;
|
||||
|
||||
@@ -701,9 +701,10 @@ static const char* GLSLextNVGetDebugNames(const char* name, unsigned entrypoint)
|
||||
strcmp(name, spv::E_SPV_NV_geometry_shader_passthrough) == 0 ||
|
||||
strcmp(name, spv::E_ARB_shader_viewport_layer_array) == 0 ||
|
||||
strcmp(name, spv::E_SPV_NV_viewport_array2) == 0 ||
|
||||
strcmp(spv::E_SPV_NVX_multiview_per_view_attributes, name) == 0 ||
|
||||
strcmp(spv::E_SPV_NV_fragment_shader_barycentric, name) == 0 ||
|
||||
strcmp(name, spv::E_SPV_NV_mesh_shader) == 0) {
|
||||
strcmp(name, spv::E_SPV_NVX_multiview_per_view_attributes) == 0 ||
|
||||
strcmp(name, spv::E_SPV_NV_fragment_shader_barycentric) == 0 ||
|
||||
strcmp(name, spv::E_SPV_NV_mesh_shader) == 0 ||
|
||||
strcmp(name, spv::E_SPV_NV_shader_image_footprint) == 0) {
|
||||
switch (entrypoint) {
|
||||
// NV builtins
|
||||
case BuiltInViewportMaskNV: return "ViewportMaskNV";
|
||||
@@ -729,6 +730,7 @@ static const char* GLSLextNVGetDebugNames(const char* name, unsigned entrypoint)
|
||||
case CapabilityPerViewAttributesNV: return "PerViewAttributesNV";
|
||||
case CapabilityFragmentBarycentricNV: return "FragmentBarycentricNV";
|
||||
case CapabilityMeshShadingNV: return "MeshShadingNV";
|
||||
case CapabilityImageFootprintNV: return "ImageFootprintNV";
|
||||
|
||||
// NV Decorations
|
||||
case DecorationOverrideCoverageNV: return "OverrideCoverageNV";
|
||||
|
||||
@@ -191,6 +191,13 @@ const char* ExecutionModeString(int mode)
|
||||
case ExecutionModeDerivativeGroupLinearNV: return "DerivativeGroupLinearNV";
|
||||
#endif
|
||||
|
||||
case ExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT";
|
||||
case ExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT";
|
||||
case ExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT";
|
||||
case ExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT";
|
||||
case ExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT";
|
||||
case ExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT";
|
||||
|
||||
case ExecutionModeCeiling:
|
||||
default: return "Bad";
|
||||
}
|
||||
@@ -882,9 +889,9 @@ const char* CapabilityString(int info)
|
||||
case CapabilityStoragePushConstant16: return "StoragePushConstant16";
|
||||
case CapabilityStorageInputOutput16: return "StorageInputOutput16";
|
||||
|
||||
case CapabilityStorageBuffer8BitAccess: return "CapabilityStorageBuffer8BitAccess";
|
||||
case CapabilityUniformAndStorageBuffer8BitAccess: return "CapabilityUniformAndStorageBuffer8BitAccess";
|
||||
case CapabilityStoragePushConstant8: return "CapabilityStoragePushConstant8";
|
||||
case CapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess";
|
||||
case CapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess";
|
||||
case CapabilityStoragePushConstant8: return "StoragePushConstant8";
|
||||
|
||||
case CapabilityDeviceGroup: return "DeviceGroup";
|
||||
case CapabilityMultiView: return "MultiView";
|
||||
@@ -913,33 +920,38 @@ const char* CapabilityString(int info)
|
||||
case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV";
|
||||
case CapabilityFragmentBarycentricNV: return "FragmentBarycentricNV";
|
||||
case CapabilityMeshShadingNV: return "MeshShadingNV";
|
||||
// case CapabilityShadingRateNV: return "ShadingRateNV"; // superseded by CapabilityFragmentDensityEXT
|
||||
case CapabilityImageFootprintNV: return "ImageFootprintNV";
|
||||
// case CapabilityShadingRateNV: return "ShadingRateNV"; // superseded by FragmentDensityEXT
|
||||
#endif
|
||||
case CapabilityFragmentDensityEXT: return "FragmentDensityEXT";
|
||||
|
||||
case CapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT";
|
||||
|
||||
case CapabilityShaderNonUniformEXT: return "CapabilityShaderNonUniformEXT";
|
||||
case CapabilityRuntimeDescriptorArrayEXT: return "CapabilityRuntimeDescriptorArrayEXT";
|
||||
case CapabilityInputAttachmentArrayDynamicIndexingEXT: return "CapabilityInputAttachmentArrayDynamicIndexingEXT";
|
||||
case CapabilityUniformTexelBufferArrayDynamicIndexingEXT: return "CapabilityUniformTexelBufferArrayDynamicIndexingEXT";
|
||||
case CapabilityStorageTexelBufferArrayDynamicIndexingEXT: return "CapabilityStorageTexelBufferArrayDynamicIndexingEXT";
|
||||
case CapabilityUniformBufferArrayNonUniformIndexingEXT: return "CapabilityUniformBufferArrayNonUniformIndexingEXT";
|
||||
case CapabilitySampledImageArrayNonUniformIndexingEXT: return "CapabilitySampledImageArrayNonUniformIndexingEXT";
|
||||
case CapabilityStorageBufferArrayNonUniformIndexingEXT: return "CapabilityStorageBufferArrayNonUniformIndexingEXT";
|
||||
case CapabilityStorageImageArrayNonUniformIndexingEXT: return "CapabilityStorageImageArrayNonUniformIndexingEXT";
|
||||
case CapabilityInputAttachmentArrayNonUniformIndexingEXT: return "CapabilityInputAttachmentArrayNonUniformIndexingEXT";
|
||||
case CapabilityUniformTexelBufferArrayNonUniformIndexingEXT: return "CapabilityUniformTexelBufferArrayNonUniformIndexingEXT";
|
||||
case CapabilityStorageTexelBufferArrayNonUniformIndexingEXT: return "CapabilityStorageTexelBufferArrayNonUniformIndexingEXT";
|
||||
case CapabilityShaderNonUniformEXT: return "ShaderNonUniformEXT";
|
||||
case CapabilityRuntimeDescriptorArrayEXT: return "RuntimeDescriptorArrayEXT";
|
||||
case CapabilityInputAttachmentArrayDynamicIndexingEXT: return "InputAttachmentArrayDynamicIndexingEXT";
|
||||
case CapabilityUniformTexelBufferArrayDynamicIndexingEXT: return "UniformTexelBufferArrayDynamicIndexingEXT";
|
||||
case CapabilityStorageTexelBufferArrayDynamicIndexingEXT: return "StorageTexelBufferArrayDynamicIndexingEXT";
|
||||
case CapabilityUniformBufferArrayNonUniformIndexingEXT: return "UniformBufferArrayNonUniformIndexingEXT";
|
||||
case CapabilitySampledImageArrayNonUniformIndexingEXT: return "SampledImageArrayNonUniformIndexingEXT";
|
||||
case CapabilityStorageBufferArrayNonUniformIndexingEXT: return "StorageBufferArrayNonUniformIndexingEXT";
|
||||
case CapabilityStorageImageArrayNonUniformIndexingEXT: return "StorageImageArrayNonUniformIndexingEXT";
|
||||
case CapabilityInputAttachmentArrayNonUniformIndexingEXT: return "InputAttachmentArrayNonUniformIndexingEXT";
|
||||
case CapabilityUniformTexelBufferArrayNonUniformIndexingEXT: return "UniformTexelBufferArrayNonUniformIndexingEXT";
|
||||
case CapabilityStorageTexelBufferArrayNonUniformIndexingEXT: return "StorageTexelBufferArrayNonUniformIndexingEXT";
|
||||
|
||||
case CapabilityVulkanMemoryModelKHR: return "CapabilityVulkanMemoryModelKHR";
|
||||
case CapabilityVulkanMemoryModelDeviceScopeKHR: return "CapabilityVulkanMemoryModelDeviceScopeKHR";
|
||||
case CapabilityVulkanMemoryModelKHR: return "VulkanMemoryModelKHR";
|
||||
case CapabilityVulkanMemoryModelDeviceScopeKHR: return "VulkanMemoryModelDeviceScopeKHR";
|
||||
|
||||
case CapabilityPhysicalStorageBufferAddressesEXT: return "CapabilityPhysicalStorageBufferAddressesEXT";
|
||||
case CapabilityPhysicalStorageBufferAddressesEXT: return "PhysicalStorageBufferAddressesEXT";
|
||||
|
||||
case CapabilityVariablePointers: return "CapabilityVariablePointers";
|
||||
case CapabilityVariablePointers: return "VariablePointers";
|
||||
|
||||
case CapabilityCooperativeMatrixNV: return "CapabilityCooperativeMatrixNV";
|
||||
case CapabilityCooperativeMatrixNV: return "CooperativeMatrixNV";
|
||||
|
||||
case CapabilityFragmentShaderSampleInterlockEXT: return "CapabilityFragmentShaderSampleInterlockEXT";
|
||||
case CapabilityFragmentShaderPixelInterlockEXT: return "CapabilityFragmentShaderPixelInterlockEXT";
|
||||
case CapabilityFragmentShaderShadingRateInterlockEXT: return "CapabilityFragmentShaderShadingRateInterlockEXT";
|
||||
|
||||
default: return "Bad";
|
||||
}
|
||||
@@ -1351,6 +1363,9 @@ const char* OpcodeString(int op)
|
||||
case OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV";
|
||||
case OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV";
|
||||
|
||||
case OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT";
|
||||
case OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT";
|
||||
|
||||
default:
|
||||
return "Bad";
|
||||
}
|
||||
@@ -1464,6 +1479,8 @@ void Parameterize()
|
||||
InstructionDesc[OpModuleProcessed].setResultAndType(false, false);
|
||||
InstructionDesc[OpTypeCooperativeMatrixNV].setResultAndType(true, false);
|
||||
InstructionDesc[OpCooperativeMatrixStoreNV].setResultAndType(false, false);
|
||||
InstructionDesc[OpBeginInvocationInterlockEXT].setResultAndType(false, false);
|
||||
InstructionDesc[OpEndInvocationInterlockEXT].setResultAndType(false, false);
|
||||
|
||||
// Specific additional context-dependent operands
|
||||
|
||||
|
||||
@@ -154,6 +154,12 @@ enum ExecutionMode {
|
||||
ExecutionModeDerivativeGroupQuadsNV = 5289,
|
||||
ExecutionModeDerivativeGroupLinearNV = 5290,
|
||||
ExecutionModeOutputTrianglesNV = 5298,
|
||||
ExecutionModePixelInterlockOrderedEXT = 5366,
|
||||
ExecutionModePixelInterlockUnorderedEXT = 5367,
|
||||
ExecutionModeSampleInterlockOrderedEXT = 5368,
|
||||
ExecutionModeSampleInterlockUnorderedEXT = 5369,
|
||||
ExecutionModeShadingRateInterlockOrderedEXT = 5370,
|
||||
ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
|
||||
ExecutionModeMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -551,6 +557,10 @@ enum BuiltIn {
|
||||
BuiltInHitTNV = 5332,
|
||||
BuiltInHitKindNV = 5333,
|
||||
BuiltInIncomingRayFlagsNV = 5351,
|
||||
BuiltInWarpsPerSMNV = 5374,
|
||||
BuiltInSMCountNV = 5375,
|
||||
BuiltInWarpIDNV = 5376,
|
||||
BuiltInSMIDNV = 5377,
|
||||
BuiltInMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -829,10 +839,15 @@ enum Capability {
|
||||
CapabilityPhysicalStorageBufferAddressesEXT = 5347,
|
||||
CapabilityComputeDerivativeGroupLinearNV = 5350,
|
||||
CapabilityCooperativeMatrixNV = 5357,
|
||||
CapabilityFragmentShaderSampleInterlockEXT = 5363,
|
||||
CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
|
||||
CapabilityShaderSMBuiltinsNV = 5373,
|
||||
CapabilityFragmentShaderPixelInterlockEXT = 5378,
|
||||
CapabilitySubgroupShuffleINTEL = 5568,
|
||||
CapabilitySubgroupBufferBlockIOINTEL = 5569,
|
||||
CapabilitySubgroupImageBlockIOINTEL = 5570,
|
||||
CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
|
||||
CapabilityIntegerFunctions2INTEL = 5584,
|
||||
CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
|
||||
CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
|
||||
CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
|
||||
@@ -1214,6 +1229,8 @@ enum Op {
|
||||
OpCooperativeMatrixStoreNV = 5360,
|
||||
OpCooperativeMatrixMulAddNV = 5361,
|
||||
OpCooperativeMatrixLengthNV = 5362,
|
||||
OpBeginInvocationInterlockEXT = 5364,
|
||||
OpEndInvocationInterlockEXT = 5365,
|
||||
OpSubgroupShuffleINTEL = 5571,
|
||||
OpSubgroupShuffleDownINTEL = 5572,
|
||||
OpSubgroupShuffleUpINTEL = 5573,
|
||||
@@ -1224,6 +1241,20 @@ enum Op {
|
||||
OpSubgroupImageBlockWriteINTEL = 5578,
|
||||
OpSubgroupImageMediaBlockReadINTEL = 5580,
|
||||
OpSubgroupImageMediaBlockWriteINTEL = 5581,
|
||||
OpUCountLeadingZerosINTEL = 5585,
|
||||
OpUCountTrailingZerosINTEL = 5586,
|
||||
OpAbsISubINTEL = 5587,
|
||||
OpAbsUSubINTEL = 5588,
|
||||
OpIAddSatINTEL = 5589,
|
||||
OpUAddSatINTEL = 5590,
|
||||
OpIAverageINTEL = 5591,
|
||||
OpUAverageINTEL = 5592,
|
||||
OpIAverageRoundedINTEL = 5593,
|
||||
OpUAverageRoundedINTEL = 5594,
|
||||
OpISubSatINTEL = 5595,
|
||||
OpUSubSatINTEL = 5596,
|
||||
OpIMul32x16INTEL = 5597,
|
||||
OpUMul32x16INTEL = 5598,
|
||||
OpDecorateString = 5632,
|
||||
OpDecorateStringGOOGLE = 5632,
|
||||
OpMemberDecorateString = 5633,
|
||||
@@ -1738,10 +1769,22 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
||||
case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpDecorateString: *hasResult = false; *hasResultType = false; break;
|
||||
case OpDecorateStringGOOGLE: *hasResult = false; *hasResultType = false; break;
|
||||
case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
|
||||
case OpMemberDecorateStringGOOGLE: *hasResult = false; *hasResultType = false; break;
|
||||
case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
@@ -1860,6 +1903,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
||||
case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
|
||||
case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
|
||||
}
|
||||
}
|
||||
#endif /* SPV_ENABLE_UTILITY_CODE */
|
||||
|
||||
@@ -68,7 +68,7 @@ void devi()
|
||||
#extension GL_EXT_device_group : enable
|
||||
#endif
|
||||
|
||||
#ifdef GL_EXT_device_group
|
||||
#ifdef GL_EXT_multiview
|
||||
#extension GL_EXT_multiview : enable
|
||||
#endif
|
||||
|
||||
|
||||
@@ -440,7 +440,7 @@ void devi()
|
||||
#extension GL_EXT_device_group : enable
|
||||
#endif
|
||||
|
||||
#ifdef GL_EXT_device_group
|
||||
#ifdef GL_EXT_multiview
|
||||
#extension GL_EXT_multiview : enable
|
||||
#endif
|
||||
|
||||
|
||||
@@ -114,7 +114,7 @@ void devi()
|
||||
#extension GL_EXT_device_group : enable
|
||||
#endif
|
||||
|
||||
#ifdef GL_EXT_device_group
|
||||
#ifdef GL_EXT_multiview
|
||||
#extension GL_EXT_multiview : enable
|
||||
#endif
|
||||
|
||||
|
||||
@@ -114,7 +114,7 @@ void devi()
|
||||
#extension GL_EXT_device_group : enable
|
||||
#endif
|
||||
|
||||
#ifdef GL_EXT_device_group
|
||||
#ifdef GL_EXT_multiview
|
||||
#extension GL_EXT_multiview : enable
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,19 +1,602 @@
|
||||
glsl.450.subgroup.frag
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : 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:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:4 Function Definition: main( ( global void)
|
||||
0:4 Function Parameters:
|
||||
0:6 Sequence
|
||||
0:6 move second child to first child ( temp 4-component vector of uint)
|
||||
0:6 'data' (layout( location=0) out 4-component vector of uint)
|
||||
0:6 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:6 'gl_SubgroupSize' ( flat in uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in uint unknown built-in variable)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( flat in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( flat in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( temp float)
|
||||
0:14 'gl_SubgroupID' ( temp float)
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( flat in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( flat in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( flat in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( flat in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( flat in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:80 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:83 'ballot' ( temp 4-component vector of uint)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:86 'f4' ( in 4-component vector of float)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:90 'ballot' ( temp 4-component vector of uint)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:93 'f4' ( in 4-component vector of float)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:97 'ballot' ( temp 4-component vector of uint)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:105 Function Definition: main( ( global void)
|
||||
0:105 Function Parameters:
|
||||
0:107 Sequence
|
||||
0:107 move second child to first child ( temp 4-component vector of uint)
|
||||
0:107 'data' (layout( location=0) out 4-component vector of uint)
|
||||
0:107 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:107 'gl_SubgroupSize' ( flat in uint SubgroupSize)
|
||||
0:107 'gl_SubgroupInvocationID' ( flat in uint SubgroupInvocationID)
|
||||
0:107 Constant:
|
||||
0:107 0 (const uint)
|
||||
0:107 Constant:
|
||||
0:107 0 (const uint)
|
||||
0:108 subgroupBarrier ( global void)
|
||||
0:109 subgroupMemoryBarrier ( global void)
|
||||
0:110 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:111 subgroupMemoryBarrierImage ( global void)
|
||||
0:112 subgroupElect ( global bool)
|
||||
0:116 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:116 Function Parameters:
|
||||
0:116 'f4' ( in 4-component vector of float)
|
||||
0:117 Sequence
|
||||
0:117 'gl_SubgroupEqMask' ( flat in 4-component vector of uint SubgroupEqMask)
|
||||
0:118 'gl_SubgroupGeMask' ( flat in 4-component vector of uint SubgroupGeMask)
|
||||
0:119 'gl_SubgroupGtMask' ( flat in 4-component vector of uint SubgroupGtMask)
|
||||
0:120 'gl_SubgroupLeMask' ( flat in 4-component vector of uint SubgroupLeMask)
|
||||
0:121 'gl_SubgroupLtMask' ( flat in 4-component vector of uint SubgroupLtMask)
|
||||
0:122 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:122 'f4' ( in 4-component vector of float)
|
||||
0:122 Constant:
|
||||
0:122 0 (const uint)
|
||||
0:123 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:123 'f4' ( in 4-component vector of float)
|
||||
0:124 Sequence
|
||||
0:124 move second child to first child ( temp 4-component vector of uint)
|
||||
0:124 'ballot' ( temp 4-component vector of uint)
|
||||
0:124 subgroupBallot ( global 4-component vector of uint)
|
||||
0:124 Constant:
|
||||
0:124 false (const bool)
|
||||
0:125 subgroupInverseBallot ( global bool)
|
||||
0:125 Constant:
|
||||
0:125 1 (const uint)
|
||||
0:125 1 (const uint)
|
||||
0:125 1 (const uint)
|
||||
0:125 1 (const uint)
|
||||
0:126 subgroupBallotBitExtract ( global bool)
|
||||
0:126 'ballot' ( temp 4-component vector of uint)
|
||||
0:126 Constant:
|
||||
0:126 0 (const uint)
|
||||
0:127 subgroupBallotBitCount ( global uint)
|
||||
0:127 'ballot' ( temp 4-component vector of uint)
|
||||
0:128 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:128 'ballot' ( temp 4-component vector of uint)
|
||||
0:129 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:129 'ballot' ( temp 4-component vector of uint)
|
||||
0:130 subgroupBallotFindLSB ( global uint)
|
||||
0:130 'ballot' ( temp 4-component vector of uint)
|
||||
0:131 subgroupBallotFindMSB ( global uint)
|
||||
0:131 'ballot' ( temp 4-component vector of uint)
|
||||
0:135 Function Definition: vote_works(vf4; ( global void)
|
||||
0:135 Function Parameters:
|
||||
0:135 'f4' ( in 4-component vector of float)
|
||||
0:137 Sequence
|
||||
0:137 subgroupAll ( global bool)
|
||||
0:137 Constant:
|
||||
0:137 true (const bool)
|
||||
0:138 subgroupAny ( global bool)
|
||||
0:138 Constant:
|
||||
0:138 false (const bool)
|
||||
0:139 subgroupAllEqual ( global bool)
|
||||
0:139 'f4' ( in 4-component vector of float)
|
||||
0:144 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:144 Function Parameters:
|
||||
0:144 'f4' ( in 4-component vector of float)
|
||||
0:146 Sequence
|
||||
0:146 subgroupShuffle ( global 4-component vector of float)
|
||||
0:146 'f4' ( in 4-component vector of float)
|
||||
0:146 Constant:
|
||||
0:146 0 (const uint)
|
||||
0:147 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:147 'f4' ( in 4-component vector of float)
|
||||
0:147 Constant:
|
||||
0:147 1 (const uint)
|
||||
0:148 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:148 'f4' ( in 4-component vector of float)
|
||||
0:148 Constant:
|
||||
0:148 1 (const uint)
|
||||
0:149 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:149 'f4' ( in 4-component vector of float)
|
||||
0:149 Constant:
|
||||
0:149 1 (const uint)
|
||||
0:153 Function Definition: arith_works(vf4; ( global void)
|
||||
0:153 Function Parameters:
|
||||
0:153 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:156 subgroupAdd ( global 4-component vector of float)
|
||||
0:156 'f4' ( in 4-component vector of float)
|
||||
0:157 subgroupMul ( global 4-component vector of float)
|
||||
0:157 'f4' ( in 4-component vector of float)
|
||||
0:158 subgroupMin ( global 4-component vector of float)
|
||||
0:158 'f4' ( in 4-component vector of float)
|
||||
0:159 subgroupMax ( global 4-component vector of float)
|
||||
0:159 'f4' ( in 4-component vector of float)
|
||||
0:160 subgroupAnd ( global 4-component vector of uint)
|
||||
0:160 'ballot' ( temp 4-component vector of uint)
|
||||
0:161 subgroupOr ( global 4-component vector of uint)
|
||||
0:161 'ballot' ( temp 4-component vector of uint)
|
||||
0:162 subgroupXor ( global 4-component vector of uint)
|
||||
0:162 'ballot' ( temp 4-component vector of uint)
|
||||
0:163 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:164 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:164 'f4' ( in 4-component vector of float)
|
||||
0:165 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:165 'f4' ( in 4-component vector of float)
|
||||
0:166 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:166 'f4' ( in 4-component vector of float)
|
||||
0:167 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:167 'ballot' ( temp 4-component vector of uint)
|
||||
0:168 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:168 'ballot' ( temp 4-component vector of uint)
|
||||
0:169 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:169 'ballot' ( temp 4-component vector of uint)
|
||||
0:170 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:170 'f4' ( in 4-component vector of float)
|
||||
0:171 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:172 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:172 'f4' ( in 4-component vector of float)
|
||||
0:173 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:173 'f4' ( in 4-component vector of float)
|
||||
0:174 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:174 'ballot' ( temp 4-component vector of uint)
|
||||
0:175 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:175 'ballot' ( temp 4-component vector of uint)
|
||||
0:176 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:176 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:180 Function Parameters:
|
||||
0:180 'f4' ( in 4-component vector of float)
|
||||
0:182 Sequence
|
||||
0:182 Sequence
|
||||
0:182 move second child to first child ( temp 4-component vector of uint)
|
||||
0:182 'ballot' ( temp 4-component vector of uint)
|
||||
0:182 Constant:
|
||||
0:182 85 (const uint)
|
||||
0:182 0 (const uint)
|
||||
0:182 0 (const uint)
|
||||
0:182 0 (const uint)
|
||||
0:183 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:183 'f4' ( in 4-component vector of float)
|
||||
0:183 Constant:
|
||||
0:183 2 (const uint)
|
||||
0:184 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:184 'f4' ( in 4-component vector of float)
|
||||
0:184 Constant:
|
||||
0:184 2 (const uint)
|
||||
0:185 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:185 'f4' ( in 4-component vector of float)
|
||||
0:185 Constant:
|
||||
0:185 2 (const uint)
|
||||
0:186 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:186 'f4' ( in 4-component vector of float)
|
||||
0:186 Constant:
|
||||
0:186 2 (const uint)
|
||||
0:187 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 Constant:
|
||||
0:187 2 (const uint)
|
||||
0:188 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:188 'ballot' ( temp 4-component vector of uint)
|
||||
0:188 Constant:
|
||||
0:188 2 (const uint)
|
||||
0:189 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:189 'ballot' ( temp 4-component vector of uint)
|
||||
0:189 Constant:
|
||||
0:189 2 (const uint)
|
||||
0:193 Function Definition: quad_works(vf4; ( global void)
|
||||
0:193 Function Parameters:
|
||||
0:193 'f4' ( in 4-component vector of float)
|
||||
0:195 Sequence
|
||||
0:195 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:195 'f4' ( in 4-component vector of float)
|
||||
0:195 Constant:
|
||||
0:195 0 (const uint)
|
||||
0:196 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:196 'f4' ( in 4-component vector of float)
|
||||
0:197 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:197 'f4' ( in 4-component vector of float)
|
||||
0:198 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:198 'f4' ( in 4-component vector of float)
|
||||
0:202 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:202 Function Parameters:
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:204 Sequence
|
||||
0:204 Sequence
|
||||
0:204 move second child to first child ( temp 4-component vector of uint)
|
||||
0:204 'parti' ( temp 4-component vector of uint)
|
||||
0:204 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:204 'f4' ( in 4-component vector of float)
|
||||
0:205 Sequence
|
||||
0:205 move second child to first child ( temp 4-component vector of uint)
|
||||
0:205 'ballot' ( temp 4-component vector of uint)
|
||||
0:205 Constant:
|
||||
0:205 85 (const uint)
|
||||
0:205 0 (const uint)
|
||||
0:205 0 (const uint)
|
||||
0:205 0 (const uint)
|
||||
0:206 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:206 'f4' ( in 4-component vector of float)
|
||||
0:206 'parti' ( temp 4-component vector of uint)
|
||||
0:207 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:207 'f4' ( in 4-component vector of float)
|
||||
0:207 'parti' ( temp 4-component vector of uint)
|
||||
0:208 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:208 'parti' ( temp 4-component vector of uint)
|
||||
0:209 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:209 'f4' ( in 4-component vector of float)
|
||||
0:209 'parti' ( temp 4-component vector of uint)
|
||||
0:210 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:210 'ballot' ( temp 4-component vector of uint)
|
||||
0:210 'parti' ( temp 4-component vector of uint)
|
||||
0:211 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:211 'ballot' ( temp 4-component vector of uint)
|
||||
0:211 'parti' ( temp 4-component vector of uint)
|
||||
0:212 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:212 'ballot' ( temp 4-component vector of uint)
|
||||
0:212 'parti' ( temp 4-component vector of uint)
|
||||
0:213 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:213 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:215 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:215 'f4' ( in 4-component vector of float)
|
||||
0:215 'parti' ( temp 4-component vector of uint)
|
||||
0:216 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:216 'f4' ( in 4-component vector of float)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:217 'ballot' ( temp 4-component vector of uint)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:218 'ballot' ( temp 4-component vector of uint)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:219 'ballot' ( temp 4-component vector of uint)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:221 'f4' ( in 4-component vector of float)
|
||||
0:221 'parti' ( temp 4-component vector of uint)
|
||||
0:222 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:222 'f4' ( in 4-component vector of float)
|
||||
0:222 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:223 'f4' ( in 4-component vector of float)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 'parti' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:225 'ballot' ( temp 4-component vector of uint)
|
||||
0:225 'parti' ( temp 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 'parti' ( temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'data' (layout( location=0) out 4-component vector of uint)
|
||||
|
||||
@@ -22,20 +605,33 @@ Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:4 Function Definition: main( ( global void)
|
||||
0:4 Function Parameters:
|
||||
0:6 Sequence
|
||||
0:6 move second child to first child ( temp 4-component vector of uint)
|
||||
0:6 'data' (layout( location=0) out 4-component vector of uint)
|
||||
0:6 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:6 'gl_SubgroupSize' ( flat in uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in uint unknown built-in variable)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:105 Function Definition: main( ( global void)
|
||||
0:105 Function Parameters:
|
||||
0:107 Sequence
|
||||
0:107 move second child to first child ( temp 4-component vector of uint)
|
||||
0:107 'data' (layout( location=0) out 4-component vector of uint)
|
||||
0:107 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:107 'gl_SubgroupSize' ( flat in uint SubgroupSize)
|
||||
0:107 'gl_SubgroupInvocationID' ( flat in uint SubgroupInvocationID)
|
||||
0:107 Constant:
|
||||
0:107 0 (const uint)
|
||||
0:107 Constant:
|
||||
0:107 0 (const uint)
|
||||
0:108 subgroupBarrier ( global void)
|
||||
0:109 subgroupMemoryBarrier ( global void)
|
||||
0:110 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:111 subgroupMemoryBarrierImage ( global void)
|
||||
0:112 subgroupElect ( global bool)
|
||||
0:? Linker Objects
|
||||
0:? 'data' (layout( location=0) out 4-component vector of uint)
|
||||
|
||||
|
||||
@@ -1,28 +1,611 @@
|
||||
glsl.450.subgroup.geom
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : 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:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
invocations = -1
|
||||
max_vertices = 1
|
||||
input primitive = points
|
||||
output primitive = points
|
||||
0:? Sequence
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp 4-component vector of uint)
|
||||
0:12 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:12 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:12 '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:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 'gl_PrimitiveIDIn' ( in int PrimitiveID)
|
||||
0:12 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:12 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( temp float)
|
||||
0:14 'gl_SubgroupID' ( temp float)
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:80 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:83 'ballot' ( temp 4-component vector of uint)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:86 'f4' ( in 4-component vector of float)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:90 'ballot' ( temp 4-component vector of uint)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:93 'f4' ( in 4-component vector of float)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:97 'ballot' ( temp 4-component vector of uint)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:111 Function Definition: main( ( global void)
|
||||
0:111 Function Parameters:
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp 4-component vector of uint)
|
||||
0:113 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:113 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:113 '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:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:113 'gl_PrimitiveIDIn' ( in int PrimitiveID)
|
||||
0:113 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:113 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:113 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:114 subgroupBarrier ( global void)
|
||||
0:115 subgroupMemoryBarrier ( global void)
|
||||
0:116 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:117 subgroupMemoryBarrierImage ( global void)
|
||||
0:118 subgroupElect ( global bool)
|
||||
0:122 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:122 Function Parameters:
|
||||
0:122 'f4' ( in 4-component vector of float)
|
||||
0:123 Sequence
|
||||
0:123 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:124 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:125 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:126 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:127 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:128 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:128 'f4' ( in 4-component vector of float)
|
||||
0:128 Constant:
|
||||
0:128 0 (const uint)
|
||||
0:129 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:129 'f4' ( in 4-component vector of float)
|
||||
0:130 Sequence
|
||||
0:130 move second child to first child ( temp 4-component vector of uint)
|
||||
0:130 'ballot' ( temp 4-component vector of uint)
|
||||
0:130 subgroupBallot ( global 4-component vector of uint)
|
||||
0:130 Constant:
|
||||
0:130 false (const bool)
|
||||
0:131 subgroupInverseBallot ( global bool)
|
||||
0:131 Constant:
|
||||
0:131 1 (const uint)
|
||||
0:131 1 (const uint)
|
||||
0:131 1 (const uint)
|
||||
0:131 1 (const uint)
|
||||
0:132 subgroupBallotBitExtract ( global bool)
|
||||
0:132 'ballot' ( temp 4-component vector of uint)
|
||||
0:132 Constant:
|
||||
0:132 0 (const uint)
|
||||
0:133 subgroupBallotBitCount ( global uint)
|
||||
0:133 'ballot' ( temp 4-component vector of uint)
|
||||
0:134 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:134 'ballot' ( temp 4-component vector of uint)
|
||||
0:135 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:135 'ballot' ( temp 4-component vector of uint)
|
||||
0:136 subgroupBallotFindLSB ( global uint)
|
||||
0:136 'ballot' ( temp 4-component vector of uint)
|
||||
0:137 subgroupBallotFindMSB ( global uint)
|
||||
0:137 'ballot' ( temp 4-component vector of uint)
|
||||
0:141 Function Definition: vote_works(vf4; ( global void)
|
||||
0:141 Function Parameters:
|
||||
0:141 'f4' ( in 4-component vector of float)
|
||||
0:143 Sequence
|
||||
0:143 subgroupAll ( global bool)
|
||||
0:143 Constant:
|
||||
0:143 true (const bool)
|
||||
0:144 subgroupAny ( global bool)
|
||||
0:144 Constant:
|
||||
0:144 false (const bool)
|
||||
0:145 subgroupAllEqual ( global bool)
|
||||
0:145 'f4' ( in 4-component vector of float)
|
||||
0:150 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:150 Function Parameters:
|
||||
0:150 'f4' ( in 4-component vector of float)
|
||||
0:152 Sequence
|
||||
0:152 subgroupShuffle ( global 4-component vector of float)
|
||||
0:152 'f4' ( in 4-component vector of float)
|
||||
0:152 Constant:
|
||||
0:152 0 (const uint)
|
||||
0:153 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:153 'f4' ( in 4-component vector of float)
|
||||
0:153 Constant:
|
||||
0:153 1 (const uint)
|
||||
0:154 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:154 'f4' ( in 4-component vector of float)
|
||||
0:154 Constant:
|
||||
0:154 1 (const uint)
|
||||
0:155 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:155 'f4' ( in 4-component vector of float)
|
||||
0:155 Constant:
|
||||
0:155 1 (const uint)
|
||||
0:159 Function Definition: arith_works(vf4; ( global void)
|
||||
0:159 Function Parameters:
|
||||
0:159 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:162 subgroupAdd ( global 4-component vector of float)
|
||||
0:162 'f4' ( in 4-component vector of float)
|
||||
0:163 subgroupMul ( global 4-component vector of float)
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:164 subgroupMin ( global 4-component vector of float)
|
||||
0:164 'f4' ( in 4-component vector of float)
|
||||
0:165 subgroupMax ( global 4-component vector of float)
|
||||
0:165 'f4' ( in 4-component vector of float)
|
||||
0:166 subgroupAnd ( global 4-component vector of uint)
|
||||
0:166 'ballot' ( temp 4-component vector of uint)
|
||||
0:167 subgroupOr ( global 4-component vector of uint)
|
||||
0:167 'ballot' ( temp 4-component vector of uint)
|
||||
0:168 subgroupXor ( global 4-component vector of uint)
|
||||
0:168 'ballot' ( temp 4-component vector of uint)
|
||||
0:169 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:169 'f4' ( in 4-component vector of float)
|
||||
0:170 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:170 'f4' ( in 4-component vector of float)
|
||||
0:171 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:172 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:172 'f4' ( in 4-component vector of float)
|
||||
0:173 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:173 'ballot' ( temp 4-component vector of uint)
|
||||
0:174 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:174 'ballot' ( temp 4-component vector of uint)
|
||||
0:175 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:175 'ballot' ( temp 4-component vector of uint)
|
||||
0:176 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:177 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:177 'f4' ( in 4-component vector of float)
|
||||
0:178 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:179 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:179 'f4' ( in 4-component vector of float)
|
||||
0:180 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:180 'ballot' ( temp 4-component vector of uint)
|
||||
0:181 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:181 'ballot' ( temp 4-component vector of uint)
|
||||
0:182 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:182 'ballot' ( temp 4-component vector of uint)
|
||||
0:186 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:186 Function Parameters:
|
||||
0:186 'f4' ( in 4-component vector of float)
|
||||
0:188 Sequence
|
||||
0:188 Sequence
|
||||
0:188 move second child to first child ( temp 4-component vector of uint)
|
||||
0:188 'ballot' ( temp 4-component vector of uint)
|
||||
0:188 Constant:
|
||||
0:188 85 (const uint)
|
||||
0:188 0 (const uint)
|
||||
0:188 0 (const uint)
|
||||
0:188 0 (const uint)
|
||||
0:189 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:189 'f4' ( in 4-component vector of float)
|
||||
0:189 Constant:
|
||||
0:189 2 (const uint)
|
||||
0:190 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:190 Constant:
|
||||
0:190 2 (const uint)
|
||||
0:191 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:191 Constant:
|
||||
0:191 2 (const uint)
|
||||
0:192 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:192 'f4' ( in 4-component vector of float)
|
||||
0:192 Constant:
|
||||
0:192 2 (const uint)
|
||||
0:193 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:193 'ballot' ( temp 4-component vector of uint)
|
||||
0:193 Constant:
|
||||
0:193 2 (const uint)
|
||||
0:194 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:194 'ballot' ( temp 4-component vector of uint)
|
||||
0:194 Constant:
|
||||
0:194 2 (const uint)
|
||||
0:195 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:195 'ballot' ( temp 4-component vector of uint)
|
||||
0:195 Constant:
|
||||
0:195 2 (const uint)
|
||||
0:199 Function Definition: quad_works(vf4; ( global void)
|
||||
0:199 Function Parameters:
|
||||
0:199 'f4' ( in 4-component vector of float)
|
||||
0:201 Sequence
|
||||
0:201 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:201 'f4' ( in 4-component vector of float)
|
||||
0:201 Constant:
|
||||
0:201 0 (const uint)
|
||||
0:202 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:203 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:203 'f4' ( in 4-component vector of float)
|
||||
0:204 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:204 'f4' ( in 4-component vector of float)
|
||||
0:208 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:208 Function Parameters:
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:210 Sequence
|
||||
0:210 Sequence
|
||||
0:210 move second child to first child ( temp 4-component vector of uint)
|
||||
0:210 'parti' ( temp 4-component vector of uint)
|
||||
0:210 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:210 'f4' ( in 4-component vector of float)
|
||||
0:211 Sequence
|
||||
0:211 move second child to first child ( temp 4-component vector of uint)
|
||||
0:211 'ballot' ( temp 4-component vector of uint)
|
||||
0:211 Constant:
|
||||
0:211 85 (const uint)
|
||||
0:211 0 (const uint)
|
||||
0:211 0 (const uint)
|
||||
0:211 0 (const uint)
|
||||
0:212 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:212 'parti' ( temp 4-component vector of uint)
|
||||
0:213 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:213 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:215 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:215 'f4' ( in 4-component vector of float)
|
||||
0:215 'parti' ( temp 4-component vector of uint)
|
||||
0:216 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:216 'ballot' ( temp 4-component vector of uint)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:217 'ballot' ( temp 4-component vector of uint)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:218 'ballot' ( temp 4-component vector of uint)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:221 'f4' ( in 4-component vector of float)
|
||||
0:221 'parti' ( temp 4-component vector of uint)
|
||||
0:222 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:222 'f4' ( in 4-component vector of float)
|
||||
0:222 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:223 'ballot' ( temp 4-component vector of uint)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 'parti' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:225 'ballot' ( temp 4-component vector of uint)
|
||||
0:225 'parti' ( temp 4-component vector of uint)
|
||||
0:226 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:226 'f4' ( in 4-component vector of float)
|
||||
0:226 'parti' ( temp 4-component vector of uint)
|
||||
0:227 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:227 'f4' ( in 4-component vector of float)
|
||||
0:227 'parti' ( temp 4-component vector of uint)
|
||||
0:228 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:228 'f4' ( in 4-component vector of float)
|
||||
0:228 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:229 'f4' ( in 4-component vector of float)
|
||||
0:229 'parti' ( temp 4-component vector of uint)
|
||||
0:230 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:230 'ballot' ( temp 4-component vector of uint)
|
||||
0:230 'parti' ( temp 4-component vector of uint)
|
||||
0:231 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:231 'ballot' ( temp 4-component vector of uint)
|
||||
0:231 'parti' ( temp 4-component vector of uint)
|
||||
0:232 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:232 'ballot' ( temp 4-component vector of uint)
|
||||
0:232 'parti' ( temp 4-component vector of uint)
|
||||
0:? 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})
|
||||
|
||||
@@ -31,29 +614,42 @@ Linked geometry stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
invocations = 1
|
||||
max_vertices = 1
|
||||
input primitive = points
|
||||
output primitive = points
|
||||
0:? Sequence
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp 4-component vector of uint)
|
||||
0:12 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:12 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:12 '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:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 'gl_PrimitiveIDIn' ( in int PrimitiveID)
|
||||
0:12 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:12 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
ERROR: node is still EOpNull!
|
||||
0:111 Function Definition: main( ( global void)
|
||||
0:111 Function Parameters:
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp 4-component vector of uint)
|
||||
0:113 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:113 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:113 '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:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:113 'gl_PrimitiveIDIn' ( in int PrimitiveID)
|
||||
0:113 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:113 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:113 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:114 subgroupBarrier ( global void)
|
||||
0:115 subgroupMemoryBarrier ( global void)
|
||||
0:116 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:117 subgroupMemoryBarrierImage ( global void)
|
||||
0:118 subgroupElect ( global bool)
|
||||
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})
|
||||
|
||||
|
||||
@@ -1,25 +1,608 @@
|
||||
glsl.450.subgroup.tesc
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : 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:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
vertices = 1
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:11 '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:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( temp float)
|
||||
0:14 'gl_SubgroupID' ( temp float)
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:80 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:83 'ballot' ( temp 4-component vector of uint)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:86 'f4' ( in 4-component vector of float)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:90 'ballot' ( temp 4-component vector of uint)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:93 'f4' ( in 4-component vector of float)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:97 'ballot' ( temp 4-component vector of uint)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:110 Function Definition: main( ( global void)
|
||||
0:110 Function Parameters:
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp 4-component vector of uint)
|
||||
0:112 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:112 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:112 '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:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:112 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:112 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:112 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:113 subgroupBarrier ( global void)
|
||||
0:114 subgroupMemoryBarrier ( global void)
|
||||
0:115 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:116 subgroupMemoryBarrierImage ( global void)
|
||||
0:117 subgroupElect ( global bool)
|
||||
0:121 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:121 Function Parameters:
|
||||
0:121 'f4' ( in 4-component vector of float)
|
||||
0:122 Sequence
|
||||
0:122 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:123 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:124 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:125 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:126 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:127 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:127 'f4' ( in 4-component vector of float)
|
||||
0:127 Constant:
|
||||
0:127 0 (const uint)
|
||||
0:128 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:128 'f4' ( in 4-component vector of float)
|
||||
0:129 Sequence
|
||||
0:129 move second child to first child ( temp 4-component vector of uint)
|
||||
0:129 'ballot' ( temp 4-component vector of uint)
|
||||
0:129 subgroupBallot ( global 4-component vector of uint)
|
||||
0:129 Constant:
|
||||
0:129 false (const bool)
|
||||
0:130 subgroupInverseBallot ( global bool)
|
||||
0:130 Constant:
|
||||
0:130 1 (const uint)
|
||||
0:130 1 (const uint)
|
||||
0:130 1 (const uint)
|
||||
0:130 1 (const uint)
|
||||
0:131 subgroupBallotBitExtract ( global bool)
|
||||
0:131 'ballot' ( temp 4-component vector of uint)
|
||||
0:131 Constant:
|
||||
0:131 0 (const uint)
|
||||
0:132 subgroupBallotBitCount ( global uint)
|
||||
0:132 'ballot' ( temp 4-component vector of uint)
|
||||
0:133 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:133 'ballot' ( temp 4-component vector of uint)
|
||||
0:134 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:134 'ballot' ( temp 4-component vector of uint)
|
||||
0:135 subgroupBallotFindLSB ( global uint)
|
||||
0:135 'ballot' ( temp 4-component vector of uint)
|
||||
0:136 subgroupBallotFindMSB ( global uint)
|
||||
0:136 'ballot' ( temp 4-component vector of uint)
|
||||
0:140 Function Definition: vote_works(vf4; ( global void)
|
||||
0:140 Function Parameters:
|
||||
0:140 'f4' ( in 4-component vector of float)
|
||||
0:142 Sequence
|
||||
0:142 subgroupAll ( global bool)
|
||||
0:142 Constant:
|
||||
0:142 true (const bool)
|
||||
0:143 subgroupAny ( global bool)
|
||||
0:143 Constant:
|
||||
0:143 false (const bool)
|
||||
0:144 subgroupAllEqual ( global bool)
|
||||
0:144 'f4' ( in 4-component vector of float)
|
||||
0:149 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:149 Function Parameters:
|
||||
0:149 'f4' ( in 4-component vector of float)
|
||||
0:151 Sequence
|
||||
0:151 subgroupShuffle ( global 4-component vector of float)
|
||||
0:151 'f4' ( in 4-component vector of float)
|
||||
0:151 Constant:
|
||||
0:151 0 (const uint)
|
||||
0:152 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:152 'f4' ( in 4-component vector of float)
|
||||
0:152 Constant:
|
||||
0:152 1 (const uint)
|
||||
0:153 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:153 'f4' ( in 4-component vector of float)
|
||||
0:153 Constant:
|
||||
0:153 1 (const uint)
|
||||
0:154 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:154 'f4' ( in 4-component vector of float)
|
||||
0:154 Constant:
|
||||
0:154 1 (const uint)
|
||||
0:158 Function Definition: arith_works(vf4; ( global void)
|
||||
0:158 Function Parameters:
|
||||
0:158 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:161 subgroupAdd ( global 4-component vector of float)
|
||||
0:161 'f4' ( in 4-component vector of float)
|
||||
0:162 subgroupMul ( global 4-component vector of float)
|
||||
0:162 'f4' ( in 4-component vector of float)
|
||||
0:163 subgroupMin ( global 4-component vector of float)
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:164 subgroupMax ( global 4-component vector of float)
|
||||
0:164 'f4' ( in 4-component vector of float)
|
||||
0:165 subgroupAnd ( global 4-component vector of uint)
|
||||
0:165 'ballot' ( temp 4-component vector of uint)
|
||||
0:166 subgroupOr ( global 4-component vector of uint)
|
||||
0:166 'ballot' ( temp 4-component vector of uint)
|
||||
0:167 subgroupXor ( global 4-component vector of uint)
|
||||
0:167 'ballot' ( temp 4-component vector of uint)
|
||||
0:168 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:168 'f4' ( in 4-component vector of float)
|
||||
0:169 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:169 'f4' ( in 4-component vector of float)
|
||||
0:170 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:170 'f4' ( in 4-component vector of float)
|
||||
0:171 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:172 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:172 'ballot' ( temp 4-component vector of uint)
|
||||
0:173 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:173 'ballot' ( temp 4-component vector of uint)
|
||||
0:174 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:174 'ballot' ( temp 4-component vector of uint)
|
||||
0:175 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:175 'f4' ( in 4-component vector of float)
|
||||
0:176 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:177 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:177 'f4' ( in 4-component vector of float)
|
||||
0:178 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:179 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:179 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:180 'ballot' ( temp 4-component vector of uint)
|
||||
0:181 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:181 'ballot' ( temp 4-component vector of uint)
|
||||
0:185 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:185 Function Parameters:
|
||||
0:185 'f4' ( in 4-component vector of float)
|
||||
0:187 Sequence
|
||||
0:187 Sequence
|
||||
0:187 move second child to first child ( temp 4-component vector of uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 Constant:
|
||||
0:187 85 (const uint)
|
||||
0:187 0 (const uint)
|
||||
0:187 0 (const uint)
|
||||
0:187 0 (const uint)
|
||||
0:188 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:188 'f4' ( in 4-component vector of float)
|
||||
0:188 Constant:
|
||||
0:188 2 (const uint)
|
||||
0:189 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:189 'f4' ( in 4-component vector of float)
|
||||
0:189 Constant:
|
||||
0:189 2 (const uint)
|
||||
0:190 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:190 Constant:
|
||||
0:190 2 (const uint)
|
||||
0:191 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:191 Constant:
|
||||
0:191 2 (const uint)
|
||||
0:192 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:192 'ballot' ( temp 4-component vector of uint)
|
||||
0:192 Constant:
|
||||
0:192 2 (const uint)
|
||||
0:193 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:193 'ballot' ( temp 4-component vector of uint)
|
||||
0:193 Constant:
|
||||
0:193 2 (const uint)
|
||||
0:194 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:194 'ballot' ( temp 4-component vector of uint)
|
||||
0:194 Constant:
|
||||
0:194 2 (const uint)
|
||||
0:198 Function Definition: quad_works(vf4; ( global void)
|
||||
0:198 Function Parameters:
|
||||
0:198 'f4' ( in 4-component vector of float)
|
||||
0:200 Sequence
|
||||
0:200 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:200 'f4' ( in 4-component vector of float)
|
||||
0:200 Constant:
|
||||
0:200 0 (const uint)
|
||||
0:201 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:201 'f4' ( in 4-component vector of float)
|
||||
0:202 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:203 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:203 'f4' ( in 4-component vector of float)
|
||||
0:207 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:207 Function Parameters:
|
||||
0:207 'f4' ( in 4-component vector of float)
|
||||
0:209 Sequence
|
||||
0:209 Sequence
|
||||
0:209 move second child to first child ( temp 4-component vector of uint)
|
||||
0:209 'parti' ( temp 4-component vector of uint)
|
||||
0:209 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:209 'f4' ( in 4-component vector of float)
|
||||
0:210 Sequence
|
||||
0:210 move second child to first child ( temp 4-component vector of uint)
|
||||
0:210 'ballot' ( temp 4-component vector of uint)
|
||||
0:210 Constant:
|
||||
0:210 85 (const uint)
|
||||
0:210 0 (const uint)
|
||||
0:210 0 (const uint)
|
||||
0:210 0 (const uint)
|
||||
0:211 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:211 'f4' ( in 4-component vector of float)
|
||||
0:211 'parti' ( temp 4-component vector of uint)
|
||||
0:212 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:212 'parti' ( temp 4-component vector of uint)
|
||||
0:213 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:213 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:215 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:215 'ballot' ( temp 4-component vector of uint)
|
||||
0:215 'parti' ( temp 4-component vector of uint)
|
||||
0:216 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:216 'ballot' ( temp 4-component vector of uint)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:217 'ballot' ( temp 4-component vector of uint)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:218 'f4' ( in 4-component vector of float)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:221 'f4' ( in 4-component vector of float)
|
||||
0:221 'parti' ( temp 4-component vector of uint)
|
||||
0:222 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:222 'ballot' ( temp 4-component vector of uint)
|
||||
0:222 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:223 'ballot' ( temp 4-component vector of uint)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 'parti' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:225 'f4' ( in 4-component vector of float)
|
||||
0:225 'parti' ( temp 4-component vector of uint)
|
||||
0:226 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:226 'f4' ( in 4-component vector of float)
|
||||
0:226 'parti' ( temp 4-component vector of uint)
|
||||
0:227 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:227 'f4' ( in 4-component vector of float)
|
||||
0:227 'parti' ( temp 4-component vector of uint)
|
||||
0:228 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:228 'f4' ( in 4-component vector of float)
|
||||
0:228 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:229 'ballot' ( temp 4-component vector of uint)
|
||||
0:229 'parti' ( temp 4-component vector of uint)
|
||||
0:230 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:230 'ballot' ( temp 4-component vector of uint)
|
||||
0:230 'parti' ( temp 4-component vector of uint)
|
||||
0:231 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:231 'ballot' ( temp 4-component vector of uint)
|
||||
0:231 'parti' ( temp 4-component vector of uint)
|
||||
0:? 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})
|
||||
|
||||
@@ -28,26 +611,39 @@ Linked tessellation control stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
vertices = 1
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:11 '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:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
ERROR: node is still EOpNull!
|
||||
0:110 Function Definition: main( ( global void)
|
||||
0:110 Function Parameters:
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp 4-component vector of uint)
|
||||
0:112 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:112 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:112 '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:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:112 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:112 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:112 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:113 subgroupBarrier ( global void)
|
||||
0:114 subgroupMemoryBarrier ( global void)
|
||||
0:115 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:116 subgroupMemoryBarrierImage ( global void)
|
||||
0:117 subgroupElect ( global bool)
|
||||
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})
|
||||
|
||||
|
||||
@@ -1,27 +1,610 @@
|
||||
glsl.450.subgroup.tese
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : 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:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
input primitive = isolines
|
||||
vertex spacing = none
|
||||
triangle order = none
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:11 '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:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( temp float)
|
||||
0:14 'gl_SubgroupID' ( temp float)
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:80 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:83 'ballot' ( temp 4-component vector of uint)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:86 'f4' ( in 4-component vector of float)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:90 'ballot' ( temp 4-component vector of uint)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:93 'f4' ( in 4-component vector of float)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:97 'ballot' ( temp 4-component vector of uint)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:110 Function Definition: main( ( global void)
|
||||
0:110 Function Parameters:
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp 4-component vector of uint)
|
||||
0:112 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:112 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:112 '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:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:112 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:112 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:112 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:113 subgroupBarrier ( global void)
|
||||
0:114 subgroupMemoryBarrier ( global void)
|
||||
0:115 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:116 subgroupMemoryBarrierImage ( global void)
|
||||
0:117 subgroupElect ( global bool)
|
||||
0:121 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:121 Function Parameters:
|
||||
0:121 'f4' ( in 4-component vector of float)
|
||||
0:122 Sequence
|
||||
0:122 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:123 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:124 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:125 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:126 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:127 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:127 'f4' ( in 4-component vector of float)
|
||||
0:127 Constant:
|
||||
0:127 0 (const uint)
|
||||
0:128 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:128 'f4' ( in 4-component vector of float)
|
||||
0:129 Sequence
|
||||
0:129 move second child to first child ( temp 4-component vector of uint)
|
||||
0:129 'ballot' ( temp 4-component vector of uint)
|
||||
0:129 subgroupBallot ( global 4-component vector of uint)
|
||||
0:129 Constant:
|
||||
0:129 false (const bool)
|
||||
0:130 subgroupInverseBallot ( global bool)
|
||||
0:130 Constant:
|
||||
0:130 1 (const uint)
|
||||
0:130 1 (const uint)
|
||||
0:130 1 (const uint)
|
||||
0:130 1 (const uint)
|
||||
0:131 subgroupBallotBitExtract ( global bool)
|
||||
0:131 'ballot' ( temp 4-component vector of uint)
|
||||
0:131 Constant:
|
||||
0:131 0 (const uint)
|
||||
0:132 subgroupBallotBitCount ( global uint)
|
||||
0:132 'ballot' ( temp 4-component vector of uint)
|
||||
0:133 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:133 'ballot' ( temp 4-component vector of uint)
|
||||
0:134 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:134 'ballot' ( temp 4-component vector of uint)
|
||||
0:135 subgroupBallotFindLSB ( global uint)
|
||||
0:135 'ballot' ( temp 4-component vector of uint)
|
||||
0:136 subgroupBallotFindMSB ( global uint)
|
||||
0:136 'ballot' ( temp 4-component vector of uint)
|
||||
0:140 Function Definition: vote_works(vf4; ( global void)
|
||||
0:140 Function Parameters:
|
||||
0:140 'f4' ( in 4-component vector of float)
|
||||
0:142 Sequence
|
||||
0:142 subgroupAll ( global bool)
|
||||
0:142 Constant:
|
||||
0:142 true (const bool)
|
||||
0:143 subgroupAny ( global bool)
|
||||
0:143 Constant:
|
||||
0:143 false (const bool)
|
||||
0:144 subgroupAllEqual ( global bool)
|
||||
0:144 'f4' ( in 4-component vector of float)
|
||||
0:149 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:149 Function Parameters:
|
||||
0:149 'f4' ( in 4-component vector of float)
|
||||
0:151 Sequence
|
||||
0:151 subgroupShuffle ( global 4-component vector of float)
|
||||
0:151 'f4' ( in 4-component vector of float)
|
||||
0:151 Constant:
|
||||
0:151 0 (const uint)
|
||||
0:152 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:152 'f4' ( in 4-component vector of float)
|
||||
0:152 Constant:
|
||||
0:152 1 (const uint)
|
||||
0:153 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:153 'f4' ( in 4-component vector of float)
|
||||
0:153 Constant:
|
||||
0:153 1 (const uint)
|
||||
0:154 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:154 'f4' ( in 4-component vector of float)
|
||||
0:154 Constant:
|
||||
0:154 1 (const uint)
|
||||
0:158 Function Definition: arith_works(vf4; ( global void)
|
||||
0:158 Function Parameters:
|
||||
0:158 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:161 subgroupAdd ( global 4-component vector of float)
|
||||
0:161 'f4' ( in 4-component vector of float)
|
||||
0:162 subgroupMul ( global 4-component vector of float)
|
||||
0:162 'f4' ( in 4-component vector of float)
|
||||
0:163 subgroupMin ( global 4-component vector of float)
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:164 subgroupMax ( global 4-component vector of float)
|
||||
0:164 'f4' ( in 4-component vector of float)
|
||||
0:165 subgroupAnd ( global 4-component vector of uint)
|
||||
0:165 'ballot' ( temp 4-component vector of uint)
|
||||
0:166 subgroupOr ( global 4-component vector of uint)
|
||||
0:166 'ballot' ( temp 4-component vector of uint)
|
||||
0:167 subgroupXor ( global 4-component vector of uint)
|
||||
0:167 'ballot' ( temp 4-component vector of uint)
|
||||
0:168 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:168 'f4' ( in 4-component vector of float)
|
||||
0:169 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:169 'f4' ( in 4-component vector of float)
|
||||
0:170 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:170 'f4' ( in 4-component vector of float)
|
||||
0:171 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:172 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:172 'ballot' ( temp 4-component vector of uint)
|
||||
0:173 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:173 'ballot' ( temp 4-component vector of uint)
|
||||
0:174 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:174 'ballot' ( temp 4-component vector of uint)
|
||||
0:175 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:175 'f4' ( in 4-component vector of float)
|
||||
0:176 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:177 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:177 'f4' ( in 4-component vector of float)
|
||||
0:178 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:179 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:179 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:180 'ballot' ( temp 4-component vector of uint)
|
||||
0:181 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:181 'ballot' ( temp 4-component vector of uint)
|
||||
0:185 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:185 Function Parameters:
|
||||
0:185 'f4' ( in 4-component vector of float)
|
||||
0:187 Sequence
|
||||
0:187 Sequence
|
||||
0:187 move second child to first child ( temp 4-component vector of uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 Constant:
|
||||
0:187 85 (const uint)
|
||||
0:187 0 (const uint)
|
||||
0:187 0 (const uint)
|
||||
0:187 0 (const uint)
|
||||
0:188 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:188 'f4' ( in 4-component vector of float)
|
||||
0:188 Constant:
|
||||
0:188 2 (const uint)
|
||||
0:189 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:189 'f4' ( in 4-component vector of float)
|
||||
0:189 Constant:
|
||||
0:189 2 (const uint)
|
||||
0:190 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:190 Constant:
|
||||
0:190 2 (const uint)
|
||||
0:191 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:191 Constant:
|
||||
0:191 2 (const uint)
|
||||
0:192 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:192 'ballot' ( temp 4-component vector of uint)
|
||||
0:192 Constant:
|
||||
0:192 2 (const uint)
|
||||
0:193 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:193 'ballot' ( temp 4-component vector of uint)
|
||||
0:193 Constant:
|
||||
0:193 2 (const uint)
|
||||
0:194 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:194 'ballot' ( temp 4-component vector of uint)
|
||||
0:194 Constant:
|
||||
0:194 2 (const uint)
|
||||
0:198 Function Definition: quad_works(vf4; ( global void)
|
||||
0:198 Function Parameters:
|
||||
0:198 'f4' ( in 4-component vector of float)
|
||||
0:200 Sequence
|
||||
0:200 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:200 'f4' ( in 4-component vector of float)
|
||||
0:200 Constant:
|
||||
0:200 0 (const uint)
|
||||
0:201 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:201 'f4' ( in 4-component vector of float)
|
||||
0:202 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:203 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:203 'f4' ( in 4-component vector of float)
|
||||
0:207 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:207 Function Parameters:
|
||||
0:207 'f4' ( in 4-component vector of float)
|
||||
0:209 Sequence
|
||||
0:209 Sequence
|
||||
0:209 move second child to first child ( temp 4-component vector of uint)
|
||||
0:209 'parti' ( temp 4-component vector of uint)
|
||||
0:209 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:209 'f4' ( in 4-component vector of float)
|
||||
0:210 Sequence
|
||||
0:210 move second child to first child ( temp 4-component vector of uint)
|
||||
0:210 'ballot' ( temp 4-component vector of uint)
|
||||
0:210 Constant:
|
||||
0:210 85 (const uint)
|
||||
0:210 0 (const uint)
|
||||
0:210 0 (const uint)
|
||||
0:210 0 (const uint)
|
||||
0:211 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:211 'f4' ( in 4-component vector of float)
|
||||
0:211 'parti' ( temp 4-component vector of uint)
|
||||
0:212 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:212 'parti' ( temp 4-component vector of uint)
|
||||
0:213 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:213 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:215 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:215 'ballot' ( temp 4-component vector of uint)
|
||||
0:215 'parti' ( temp 4-component vector of uint)
|
||||
0:216 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:216 'ballot' ( temp 4-component vector of uint)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:217 'ballot' ( temp 4-component vector of uint)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:218 'f4' ( in 4-component vector of float)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:221 'f4' ( in 4-component vector of float)
|
||||
0:221 'parti' ( temp 4-component vector of uint)
|
||||
0:222 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:222 'ballot' ( temp 4-component vector of uint)
|
||||
0:222 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:223 'ballot' ( temp 4-component vector of uint)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 'parti' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:225 'f4' ( in 4-component vector of float)
|
||||
0:225 'parti' ( temp 4-component vector of uint)
|
||||
0:226 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:226 'f4' ( in 4-component vector of float)
|
||||
0:226 'parti' ( temp 4-component vector of uint)
|
||||
0:227 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:227 'f4' ( in 4-component vector of float)
|
||||
0:227 'parti' ( temp 4-component vector of uint)
|
||||
0:228 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:228 'f4' ( in 4-component vector of float)
|
||||
0:228 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:229 'ballot' ( temp 4-component vector of uint)
|
||||
0:229 'parti' ( temp 4-component vector of uint)
|
||||
0:230 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:230 'ballot' ( temp 4-component vector of uint)
|
||||
0:230 'parti' ( temp 4-component vector of uint)
|
||||
0:231 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:231 'ballot' ( temp 4-component vector of uint)
|
||||
0:231 'parti' ( temp 4-component vector of uint)
|
||||
0:? 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})
|
||||
|
||||
@@ -30,28 +613,41 @@ Linked tessellation evaluation stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
input primitive = isolines
|
||||
vertex spacing = equal_spacing
|
||||
triangle order = ccw
|
||||
0:? Sequence
|
||||
0:9 Function Definition: main( ( global void)
|
||||
0:9 Function Parameters:
|
||||
0:11 Sequence
|
||||
0:11 move second child to first child ( temp 4-component vector of uint)
|
||||
0:11 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:11 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:11 '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:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
ERROR: node is still EOpNull!
|
||||
0:110 Function Definition: main( ( global void)
|
||||
0:110 Function Parameters:
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp 4-component vector of uint)
|
||||
0:112 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:112 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:112 '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:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:112 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:112 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:112 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:112 Constant:
|
||||
0:112 0 (const uint)
|
||||
0:113 subgroupBarrier ( global void)
|
||||
0:114 subgroupMemoryBarrier ( global void)
|
||||
0:115 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:116 subgroupMemoryBarrierImage ( global void)
|
||||
0:117 subgroupElect ( global bool)
|
||||
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})
|
||||
|
||||
|
||||
@@ -1,24 +1,607 @@
|
||||
glsl.450.subgroup.vert
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:14: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : 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:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:8 Function Definition: main( ( global void)
|
||||
0:8 Function Parameters:
|
||||
0:10 Sequence
|
||||
0:10 move second child to first child ( temp 4-component vector of uint)
|
||||
0:10 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:10 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:10 '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:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
0:10 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:10 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( temp float)
|
||||
0:14 'gl_SubgroupID' ( temp float)
|
||||
0:15 Constant:
|
||||
0:15 0.000000
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:80 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:83 'ballot' ( temp 4-component vector of uint)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:86 'f4' ( in 4-component vector of float)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:90 'ballot' ( temp 4-component vector of uint)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:93 'f4' ( in 4-component vector of float)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:97 'ballot' ( temp 4-component vector of uint)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:109 Function Definition: main( ( global void)
|
||||
0:109 Function Parameters:
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp 4-component vector of uint)
|
||||
0:111 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:111 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:111 '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:111 Constant:
|
||||
0:111 0 (const uint)
|
||||
0:111 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
0:111 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:111 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:111 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:111 Constant:
|
||||
0:111 0 (const uint)
|
||||
0:111 Constant:
|
||||
0:111 0 (const uint)
|
||||
0:112 subgroupBarrier ( global void)
|
||||
0:113 subgroupMemoryBarrier ( global void)
|
||||
0:114 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:115 subgroupMemoryBarrierImage ( global void)
|
||||
0:116 subgroupElect ( global bool)
|
||||
0:120 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:120 Function Parameters:
|
||||
0:120 'f4' ( in 4-component vector of float)
|
||||
0:121 Sequence
|
||||
0:121 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:122 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:123 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:124 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:125 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:126 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:126 'f4' ( in 4-component vector of float)
|
||||
0:126 Constant:
|
||||
0:126 0 (const uint)
|
||||
0:127 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:127 'f4' ( in 4-component vector of float)
|
||||
0:128 Sequence
|
||||
0:128 move second child to first child ( temp 4-component vector of uint)
|
||||
0:128 'ballot' ( temp 4-component vector of uint)
|
||||
0:128 subgroupBallot ( global 4-component vector of uint)
|
||||
0:128 Constant:
|
||||
0:128 false (const bool)
|
||||
0:129 subgroupInverseBallot ( global bool)
|
||||
0:129 Constant:
|
||||
0:129 1 (const uint)
|
||||
0:129 1 (const uint)
|
||||
0:129 1 (const uint)
|
||||
0:129 1 (const uint)
|
||||
0:130 subgroupBallotBitExtract ( global bool)
|
||||
0:130 'ballot' ( temp 4-component vector of uint)
|
||||
0:130 Constant:
|
||||
0:130 0 (const uint)
|
||||
0:131 subgroupBallotBitCount ( global uint)
|
||||
0:131 'ballot' ( temp 4-component vector of uint)
|
||||
0:132 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:132 'ballot' ( temp 4-component vector of uint)
|
||||
0:133 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:133 'ballot' ( temp 4-component vector of uint)
|
||||
0:134 subgroupBallotFindLSB ( global uint)
|
||||
0:134 'ballot' ( temp 4-component vector of uint)
|
||||
0:135 subgroupBallotFindMSB ( global uint)
|
||||
0:135 'ballot' ( temp 4-component vector of uint)
|
||||
0:139 Function Definition: vote_works(vf4; ( global void)
|
||||
0:139 Function Parameters:
|
||||
0:139 'f4' ( in 4-component vector of float)
|
||||
0:141 Sequence
|
||||
0:141 subgroupAll ( global bool)
|
||||
0:141 Constant:
|
||||
0:141 true (const bool)
|
||||
0:142 subgroupAny ( global bool)
|
||||
0:142 Constant:
|
||||
0:142 false (const bool)
|
||||
0:143 subgroupAllEqual ( global bool)
|
||||
0:143 'f4' ( in 4-component vector of float)
|
||||
0:148 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:148 Function Parameters:
|
||||
0:148 'f4' ( in 4-component vector of float)
|
||||
0:150 Sequence
|
||||
0:150 subgroupShuffle ( global 4-component vector of float)
|
||||
0:150 'f4' ( in 4-component vector of float)
|
||||
0:150 Constant:
|
||||
0:150 0 (const uint)
|
||||
0:151 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:151 'f4' ( in 4-component vector of float)
|
||||
0:151 Constant:
|
||||
0:151 1 (const uint)
|
||||
0:152 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:152 'f4' ( in 4-component vector of float)
|
||||
0:152 Constant:
|
||||
0:152 1 (const uint)
|
||||
0:153 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:153 'f4' ( in 4-component vector of float)
|
||||
0:153 Constant:
|
||||
0:153 1 (const uint)
|
||||
0:157 Function Definition: arith_works(vf4; ( global void)
|
||||
0:157 Function Parameters:
|
||||
0:157 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:160 subgroupAdd ( global 4-component vector of float)
|
||||
0:160 'f4' ( in 4-component vector of float)
|
||||
0:161 subgroupMul ( global 4-component vector of float)
|
||||
0:161 'f4' ( in 4-component vector of float)
|
||||
0:162 subgroupMin ( global 4-component vector of float)
|
||||
0:162 'f4' ( in 4-component vector of float)
|
||||
0:163 subgroupMax ( global 4-component vector of float)
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:164 subgroupAnd ( global 4-component vector of uint)
|
||||
0:164 'ballot' ( temp 4-component vector of uint)
|
||||
0:165 subgroupOr ( global 4-component vector of uint)
|
||||
0:165 'ballot' ( temp 4-component vector of uint)
|
||||
0:166 subgroupXor ( global 4-component vector of uint)
|
||||
0:166 'ballot' ( temp 4-component vector of uint)
|
||||
0:167 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:167 'f4' ( in 4-component vector of float)
|
||||
0:168 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:168 'f4' ( in 4-component vector of float)
|
||||
0:169 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:169 'f4' ( in 4-component vector of float)
|
||||
0:170 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:170 'f4' ( in 4-component vector of float)
|
||||
0:171 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:171 'ballot' ( temp 4-component vector of uint)
|
||||
0:172 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:172 'ballot' ( temp 4-component vector of uint)
|
||||
0:173 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:173 'ballot' ( temp 4-component vector of uint)
|
||||
0:174 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:174 'f4' ( in 4-component vector of float)
|
||||
0:175 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:175 'f4' ( in 4-component vector of float)
|
||||
0:176 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:177 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:177 'f4' ( in 4-component vector of float)
|
||||
0:178 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:178 'ballot' ( temp 4-component vector of uint)
|
||||
0:179 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:179 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:180 'ballot' ( temp 4-component vector of uint)
|
||||
0:184 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:184 Function Parameters:
|
||||
0:184 'f4' ( in 4-component vector of float)
|
||||
0:186 Sequence
|
||||
0:186 Sequence
|
||||
0:186 move second child to first child ( temp 4-component vector of uint)
|
||||
0:186 'ballot' ( temp 4-component vector of uint)
|
||||
0:186 Constant:
|
||||
0:186 85 (const uint)
|
||||
0:186 0 (const uint)
|
||||
0:186 0 (const uint)
|
||||
0:186 0 (const uint)
|
||||
0:187 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:187 'f4' ( in 4-component vector of float)
|
||||
0:187 Constant:
|
||||
0:187 2 (const uint)
|
||||
0:188 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:188 'f4' ( in 4-component vector of float)
|
||||
0:188 Constant:
|
||||
0:188 2 (const uint)
|
||||
0:189 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:189 'f4' ( in 4-component vector of float)
|
||||
0:189 Constant:
|
||||
0:189 2 (const uint)
|
||||
0:190 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:190 Constant:
|
||||
0:190 2 (const uint)
|
||||
0:191 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:191 'ballot' ( temp 4-component vector of uint)
|
||||
0:191 Constant:
|
||||
0:191 2 (const uint)
|
||||
0:192 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:192 'ballot' ( temp 4-component vector of uint)
|
||||
0:192 Constant:
|
||||
0:192 2 (const uint)
|
||||
0:193 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:193 'ballot' ( temp 4-component vector of uint)
|
||||
0:193 Constant:
|
||||
0:193 2 (const uint)
|
||||
0:197 Function Definition: quad_works(vf4; ( global void)
|
||||
0:197 Function Parameters:
|
||||
0:197 'f4' ( in 4-component vector of float)
|
||||
0:199 Sequence
|
||||
0:199 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:199 'f4' ( in 4-component vector of float)
|
||||
0:199 Constant:
|
||||
0:199 0 (const uint)
|
||||
0:200 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:200 'f4' ( in 4-component vector of float)
|
||||
0:201 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:201 'f4' ( in 4-component vector of float)
|
||||
0:202 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:206 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:206 Function Parameters:
|
||||
0:206 'f4' ( in 4-component vector of float)
|
||||
0:208 Sequence
|
||||
0:208 Sequence
|
||||
0:208 move second child to first child ( temp 4-component vector of uint)
|
||||
0:208 'parti' ( temp 4-component vector of uint)
|
||||
0:208 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:209 Sequence
|
||||
0:209 move second child to first child ( temp 4-component vector of uint)
|
||||
0:209 'ballot' ( temp 4-component vector of uint)
|
||||
0:209 Constant:
|
||||
0:209 85 (const uint)
|
||||
0:209 0 (const uint)
|
||||
0:209 0 (const uint)
|
||||
0:209 0 (const uint)
|
||||
0:210 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:210 'f4' ( in 4-component vector of float)
|
||||
0:210 'parti' ( temp 4-component vector of uint)
|
||||
0:211 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:211 'f4' ( in 4-component vector of float)
|
||||
0:211 'parti' ( temp 4-component vector of uint)
|
||||
0:212 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:212 'parti' ( temp 4-component vector of uint)
|
||||
0:213 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:213 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:214 'ballot' ( temp 4-component vector of uint)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:215 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:215 'ballot' ( temp 4-component vector of uint)
|
||||
0:215 'parti' ( temp 4-component vector of uint)
|
||||
0:216 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:216 'ballot' ( temp 4-component vector of uint)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:217 'f4' ( in 4-component vector of float)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:218 'f4' ( in 4-component vector of float)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:221 'ballot' ( temp 4-component vector of uint)
|
||||
0:221 'parti' ( temp 4-component vector of uint)
|
||||
0:222 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:222 'ballot' ( temp 4-component vector of uint)
|
||||
0:222 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:223 'ballot' ( temp 4-component vector of uint)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:224 'f4' ( in 4-component vector of float)
|
||||
0:224 'parti' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:225 'f4' ( in 4-component vector of float)
|
||||
0:225 'parti' ( temp 4-component vector of uint)
|
||||
0:226 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:226 'f4' ( in 4-component vector of float)
|
||||
0:226 'parti' ( temp 4-component vector of uint)
|
||||
0:227 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:227 'f4' ( in 4-component vector of float)
|
||||
0:227 'parti' ( temp 4-component vector of uint)
|
||||
0:228 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:228 'ballot' ( temp 4-component vector of uint)
|
||||
0:228 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:229 'ballot' ( temp 4-component vector of uint)
|
||||
0:229 'parti' ( temp 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 'parti' ( temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
@@ -29,25 +612,38 @@ Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
0:? Sequence
|
||||
0:8 Function Definition: main( ( global void)
|
||||
0:8 Function Parameters:
|
||||
0:10 Sequence
|
||||
0:10 move second child to first child ( temp 4-component vector of uint)
|
||||
0:10 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:10 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:10 '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:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
0:10 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:10 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:109 Function Definition: main( ( global void)
|
||||
0:109 Function Parameters:
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp 4-component vector of uint)
|
||||
0:111 indirect index (layout( column_major std430 offset=0) temp 4-component vector of uint)
|
||||
0:111 result: direct index for structure (layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint)
|
||||
0:111 '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:111 Constant:
|
||||
0:111 0 (const uint)
|
||||
0:111 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
0:111 Construct uvec4 ( temp 4-component vector of uint)
|
||||
0:111 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:111 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:111 Constant:
|
||||
0:111 0 (const uint)
|
||||
0:111 Constant:
|
||||
0:111 0 (const uint)
|
||||
0:112 subgroupBarrier ( global void)
|
||||
0:113 subgroupMemoryBarrier ( global void)
|
||||
0:114 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:115 subgroupMemoryBarrierImage ( global void)
|
||||
0:116 subgroupElect ( global bool)
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (layout( set=0 binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer runtime-sized array of 4-component vector of uint result})
|
||||
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||
|
||||
@@ -12,8 +12,8 @@ local_size = (8, 1, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
@@ -7288,8 +7288,8 @@ local_size = (8, 1, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
|
||||
@@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Sequence
|
||||
@@ -23,11 +23,11 @@ local_size = (8, 8, 1)
|
||||
0:21 add ( temp 4-component vector of uint)
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp 4-component vector of uint)
|
||||
0:25 'result' ( temp 4-component vector of uint)
|
||||
@@ -1165,8 +1165,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Sequence
|
||||
@@ -1176,11 +1176,11 @@ local_size = (8, 8, 1)
|
||||
0:21 add ( temp 4-component vector of uint)
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp 4-component vector of uint)
|
||||
0:25 'result' ( temp 4-component vector of uint)
|
||||
|
||||
@@ -16,8 +16,8 @@ ERROR: node is still EOpNull!
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Sequence
|
||||
@@ -27,11 +27,11 @@ ERROR: node is still EOpNull!
|
||||
0:21 add ( temp 4-component vector of uint)
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp 4-component vector of uint)
|
||||
0:25 'result' ( temp 4-component vector of uint)
|
||||
@@ -149,8 +149,8 @@ ERROR: node is still EOpNull!
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Sequence
|
||||
@@ -160,11 +160,11 @@ ERROR: node is still EOpNull!
|
||||
0:21 add ( temp 4-component vector of uint)
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:20 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:21 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:22 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:23 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child ( temp 4-component vector of uint)
|
||||
0:25 'result' ( temp 4-component vector of uint)
|
||||
|
||||
@@ -1,59 +1,636 @@
|
||||
glsl.450.subgroupBasic.comp
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:14: 'gl_SubgroupID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : 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:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
local_size = (8, 8, 1)
|
||||
0:? Sequence
|
||||
0:12 Function Definition: main( ( global void)
|
||||
0:12 Function Parameters:
|
||||
0:14 Sequence
|
||||
0:14 move second child to first child ( temp int)
|
||||
0:14 indirect index (layout( column_major shared) temp int)
|
||||
0:14 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:15 move second child to first child ( temp int)
|
||||
0:15 indirect index (layout( column_major shared) temp int)
|
||||
0:15 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:16 move second child to first child ( temp int)
|
||||
0:16 indirect index (layout( column_major shared) temp int)
|
||||
0:16 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:16 'gl_NumSubgroups' ( in uint unknown built-in variable)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:17 move second child to first child ( temp int)
|
||||
0:17 indirect index (layout( column_major shared) temp int)
|
||||
0:17 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 'gl_SubgroupID' ( in uint unknown built-in variable)
|
||||
0:17 Test condition and select ( temp int)
|
||||
0:17 Condition
|
||||
0:17 subgroupElect ( global bool)
|
||||
0:17 true case
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:17 false case
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:18 subgroupBarrier ( global void)
|
||||
0:19 subgroupMemoryBarrier ( global void)
|
||||
0:20 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:21 subgroupMemoryBarrierShared ( global void)
|
||||
0:22 subgroupMemoryBarrierImage ( global void)
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( in uint NumSubgroups)
|
||||
0:14 'gl_SubgroupID' ( in uint SubgroupID)
|
||||
0:15 subgroupMemoryBarrierShared ( global void)
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:80 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:83 'ballot' ( temp 4-component vector of uint)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:86 'f4' ( in 4-component vector of float)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:90 'ballot' ( temp 4-component vector of uint)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:93 'f4' ( in 4-component vector of float)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:97 'ballot' ( temp 4-component vector of uint)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:112 Function Definition: main( ( global void)
|
||||
0:112 Function Parameters:
|
||||
0:114 Sequence
|
||||
0:114 move second child to first child ( temp int)
|
||||
0:114 indirect index (layout( column_major shared) temp int)
|
||||
0:114 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:114 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:114 Constant:
|
||||
0:114 0 (const int)
|
||||
0:114 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:114 Constant:
|
||||
0:114 1 (const int)
|
||||
0:115 move second child to first child ( temp int)
|
||||
0:115 indirect index (layout( column_major shared) temp int)
|
||||
0:115 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:115 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:115 Constant:
|
||||
0:115 0 (const int)
|
||||
0:115 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:115 Constant:
|
||||
0:115 1 (const int)
|
||||
0:116 move second child to first child ( temp int)
|
||||
0:116 indirect index (layout( column_major shared) temp int)
|
||||
0:116 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:116 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:116 Constant:
|
||||
0:116 0 (const int)
|
||||
0:116 'gl_NumSubgroups' ( in uint NumSubgroups)
|
||||
0:116 Constant:
|
||||
0:116 1 (const int)
|
||||
0:117 move second child to first child ( temp int)
|
||||
0:117 indirect index (layout( column_major shared) temp int)
|
||||
0:117 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:117 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:117 Constant:
|
||||
0:117 0 (const int)
|
||||
0:117 'gl_SubgroupID' ( in uint SubgroupID)
|
||||
0:117 Test condition and select ( temp int)
|
||||
0:117 Condition
|
||||
0:117 subgroupElect ( global bool)
|
||||
0:117 true case
|
||||
0:117 Constant:
|
||||
0:117 1 (const int)
|
||||
0:117 false case
|
||||
0:117 Constant:
|
||||
0:117 0 (const int)
|
||||
0:118 subgroupBarrier ( global void)
|
||||
0:119 subgroupMemoryBarrier ( global void)
|
||||
0:120 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:121 subgroupMemoryBarrierShared ( global void)
|
||||
0:122 subgroupMemoryBarrierImage ( global void)
|
||||
0:126 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:126 Function Parameters:
|
||||
0:126 'f4' ( in 4-component vector of float)
|
||||
0:127 Sequence
|
||||
0:127 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:128 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:129 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:130 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:131 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:132 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:132 'f4' ( in 4-component vector of float)
|
||||
0:132 Constant:
|
||||
0:132 0 (const uint)
|
||||
0:133 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:133 'f4' ( in 4-component vector of float)
|
||||
0:134 Sequence
|
||||
0:134 move second child to first child ( temp 4-component vector of uint)
|
||||
0:134 'ballot' ( temp 4-component vector of uint)
|
||||
0:134 subgroupBallot ( global 4-component vector of uint)
|
||||
0:134 Constant:
|
||||
0:134 false (const bool)
|
||||
0:135 subgroupInverseBallot ( global bool)
|
||||
0:135 Constant:
|
||||
0:135 1 (const uint)
|
||||
0:135 1 (const uint)
|
||||
0:135 1 (const uint)
|
||||
0:135 1 (const uint)
|
||||
0:136 subgroupBallotBitExtract ( global bool)
|
||||
0:136 'ballot' ( temp 4-component vector of uint)
|
||||
0:136 Constant:
|
||||
0:136 0 (const uint)
|
||||
0:137 subgroupBallotBitCount ( global uint)
|
||||
0:137 'ballot' ( temp 4-component vector of uint)
|
||||
0:138 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:138 'ballot' ( temp 4-component vector of uint)
|
||||
0:139 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:139 'ballot' ( temp 4-component vector of uint)
|
||||
0:140 subgroupBallotFindLSB ( global uint)
|
||||
0:140 'ballot' ( temp 4-component vector of uint)
|
||||
0:141 subgroupBallotFindMSB ( global uint)
|
||||
0:141 'ballot' ( temp 4-component vector of uint)
|
||||
0:145 Function Definition: vote_works(vf4; ( global void)
|
||||
0:145 Function Parameters:
|
||||
0:145 'f4' ( in 4-component vector of float)
|
||||
0:147 Sequence
|
||||
0:147 subgroupAll ( global bool)
|
||||
0:147 Constant:
|
||||
0:147 true (const bool)
|
||||
0:148 subgroupAny ( global bool)
|
||||
0:148 Constant:
|
||||
0:148 false (const bool)
|
||||
0:149 subgroupAllEqual ( global bool)
|
||||
0:149 'f4' ( in 4-component vector of float)
|
||||
0:154 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:154 Function Parameters:
|
||||
0:154 'f4' ( in 4-component vector of float)
|
||||
0:156 Sequence
|
||||
0:156 subgroupShuffle ( global 4-component vector of float)
|
||||
0:156 'f4' ( in 4-component vector of float)
|
||||
0:156 Constant:
|
||||
0:156 0 (const uint)
|
||||
0:157 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:157 'f4' ( in 4-component vector of float)
|
||||
0:157 Constant:
|
||||
0:157 1 (const uint)
|
||||
0:158 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:158 'f4' ( in 4-component vector of float)
|
||||
0:158 Constant:
|
||||
0:158 1 (const uint)
|
||||
0:159 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:159 'f4' ( in 4-component vector of float)
|
||||
0:159 Constant:
|
||||
0:159 1 (const uint)
|
||||
0:163 Function Definition: arith_works(vf4; ( global void)
|
||||
0:163 Function Parameters:
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:166 subgroupAdd ( global 4-component vector of float)
|
||||
0:166 'f4' ( in 4-component vector of float)
|
||||
0:167 subgroupMul ( global 4-component vector of float)
|
||||
0:167 'f4' ( in 4-component vector of float)
|
||||
0:168 subgroupMin ( global 4-component vector of float)
|
||||
0:168 'f4' ( in 4-component vector of float)
|
||||
0:169 subgroupMax ( global 4-component vector of float)
|
||||
0:169 'f4' ( in 4-component vector of float)
|
||||
0:170 subgroupAnd ( global 4-component vector of uint)
|
||||
0:170 'ballot' ( temp 4-component vector of uint)
|
||||
0:171 subgroupOr ( global 4-component vector of uint)
|
||||
0:171 'ballot' ( temp 4-component vector of uint)
|
||||
0:172 subgroupXor ( global 4-component vector of uint)
|
||||
0:172 'ballot' ( temp 4-component vector of uint)
|
||||
0:173 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:173 'f4' ( in 4-component vector of float)
|
||||
0:174 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:174 'f4' ( in 4-component vector of float)
|
||||
0:175 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:175 'f4' ( in 4-component vector of float)
|
||||
0:176 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:177 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:177 'ballot' ( temp 4-component vector of uint)
|
||||
0:178 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:178 'ballot' ( temp 4-component vector of uint)
|
||||
0:179 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:179 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:180 'f4' ( in 4-component vector of float)
|
||||
0:181 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:181 'f4' ( in 4-component vector of float)
|
||||
0:182 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:182 'f4' ( in 4-component vector of float)
|
||||
0:183 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:183 'f4' ( in 4-component vector of float)
|
||||
0:184 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:184 'ballot' ( temp 4-component vector of uint)
|
||||
0:185 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:185 'ballot' ( temp 4-component vector of uint)
|
||||
0:186 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:186 'ballot' ( temp 4-component vector of uint)
|
||||
0:190 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:190 Function Parameters:
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:192 Sequence
|
||||
0:192 Sequence
|
||||
0:192 move second child to first child ( temp 4-component vector of uint)
|
||||
0:192 'ballot' ( temp 4-component vector of uint)
|
||||
0:192 Constant:
|
||||
0:192 85 (const uint)
|
||||
0:192 0 (const uint)
|
||||
0:192 0 (const uint)
|
||||
0:192 0 (const uint)
|
||||
0:193 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:193 'f4' ( in 4-component vector of float)
|
||||
0:193 Constant:
|
||||
0:193 2 (const uint)
|
||||
0:194 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:194 'f4' ( in 4-component vector of float)
|
||||
0:194 Constant:
|
||||
0:194 2 (const uint)
|
||||
0:195 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:195 'f4' ( in 4-component vector of float)
|
||||
0:195 Constant:
|
||||
0:195 2 (const uint)
|
||||
0:196 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:196 'f4' ( in 4-component vector of float)
|
||||
0:196 Constant:
|
||||
0:196 2 (const uint)
|
||||
0:197 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:197 'ballot' ( temp 4-component vector of uint)
|
||||
0:197 Constant:
|
||||
0:197 2 (const uint)
|
||||
0:198 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:198 'ballot' ( temp 4-component vector of uint)
|
||||
0:198 Constant:
|
||||
0:198 2 (const uint)
|
||||
0:199 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:199 'ballot' ( temp 4-component vector of uint)
|
||||
0:199 Constant:
|
||||
0:199 2 (const uint)
|
||||
0:203 Function Definition: quad_works(vf4; ( global void)
|
||||
0:203 Function Parameters:
|
||||
0:203 'f4' ( in 4-component vector of float)
|
||||
0:205 Sequence
|
||||
0:205 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:205 'f4' ( in 4-component vector of float)
|
||||
0:205 Constant:
|
||||
0:205 0 (const uint)
|
||||
0:206 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:206 'f4' ( in 4-component vector of float)
|
||||
0:207 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:207 'f4' ( in 4-component vector of float)
|
||||
0:208 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:212 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:212 Function Parameters:
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:214 Sequence
|
||||
0:214 Sequence
|
||||
0:214 move second child to first child ( temp 4-component vector of uint)
|
||||
0:214 'parti' ( temp 4-component vector of uint)
|
||||
0:214 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:215 Sequence
|
||||
0:215 move second child to first child ( temp 4-component vector of uint)
|
||||
0:215 'ballot' ( temp 4-component vector of uint)
|
||||
0:215 Constant:
|
||||
0:215 85 (const uint)
|
||||
0:215 0 (const uint)
|
||||
0:215 0 (const uint)
|
||||
0:215 0 (const uint)
|
||||
0:216 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:216 'f4' ( in 4-component vector of float)
|
||||
0:216 'parti' ( temp 4-component vector of uint)
|
||||
0:217 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:217 'f4' ( in 4-component vector of float)
|
||||
0:217 'parti' ( temp 4-component vector of uint)
|
||||
0:218 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:218 'f4' ( in 4-component vector of float)
|
||||
0:218 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:220 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:220 'ballot' ( temp 4-component vector of uint)
|
||||
0:220 'parti' ( temp 4-component vector of uint)
|
||||
0:221 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:221 'ballot' ( temp 4-component vector of uint)
|
||||
0:221 'parti' ( temp 4-component vector of uint)
|
||||
0:222 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:222 'ballot' ( temp 4-component vector of uint)
|
||||
0:222 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:223 'f4' ( in 4-component vector of float)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:224 'f4' ( in 4-component vector of float)
|
||||
0:224 'parti' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:225 'f4' ( in 4-component vector of float)
|
||||
0:225 'parti' ( temp 4-component vector of uint)
|
||||
0:226 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:226 'f4' ( in 4-component vector of float)
|
||||
0:226 'parti' ( temp 4-component vector of uint)
|
||||
0:227 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:227 'ballot' ( temp 4-component vector of uint)
|
||||
0:227 'parti' ( temp 4-component vector of uint)
|
||||
0:228 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:228 'ballot' ( temp 4-component vector of uint)
|
||||
0:228 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:229 'ballot' ( temp 4-component vector of uint)
|
||||
0:229 'parti' ( temp 4-component vector of uint)
|
||||
0:230 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:230 'f4' ( in 4-component vector of float)
|
||||
0:230 'parti' ( temp 4-component vector of uint)
|
||||
0:231 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:231 'f4' ( in 4-component vector of float)
|
||||
0:231 'parti' ( temp 4-component vector of uint)
|
||||
0:232 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:232 'f4' ( in 4-component vector of float)
|
||||
0:232 'parti' ( temp 4-component vector of uint)
|
||||
0:233 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:233 'f4' ( in 4-component vector of float)
|
||||
0:233 'parti' ( temp 4-component vector of uint)
|
||||
0:234 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:234 'ballot' ( temp 4-component vector of uint)
|
||||
0:234 'parti' ( temp 4-component vector of uint)
|
||||
0:235 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:235 'ballot' ( temp 4-component vector of uint)
|
||||
0:235 'parti' ( temp 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 'parti' ( temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
@@ -66,60 +643,68 @@ Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
local_size = (8, 8, 1)
|
||||
0:? Sequence
|
||||
0:12 Function Definition: main( ( global void)
|
||||
0:12 Function Parameters:
|
||||
0:14 Sequence
|
||||
0:14 move second child to first child ( temp int)
|
||||
0:14 indirect index (layout( column_major shared) temp int)
|
||||
0:14 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:15 move second child to first child ( temp int)
|
||||
0:15 indirect index (layout( column_major shared) temp int)
|
||||
0:15 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:16 move second child to first child ( temp int)
|
||||
0:16 indirect index (layout( column_major shared) temp int)
|
||||
0:16 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:16 'gl_NumSubgroups' ( in uint unknown built-in variable)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:17 move second child to first child ( temp int)
|
||||
0:17 indirect index (layout( column_major shared) temp int)
|
||||
0:17 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 'gl_SubgroupID' ( in uint unknown built-in variable)
|
||||
0:17 Test condition and select ( temp int)
|
||||
0:17 Condition
|
||||
0:17 subgroupElect ( global bool)
|
||||
0:17 true case
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:17 false case
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:18 subgroupBarrier ( global void)
|
||||
0:19 subgroupMemoryBarrier ( global void)
|
||||
0:20 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:21 subgroupMemoryBarrierShared ( global void)
|
||||
0:22 subgroupMemoryBarrierImage ( global void)
|
||||
ERROR: node is still EOpNull!
|
||||
0:112 Function Definition: main( ( global void)
|
||||
0:112 Function Parameters:
|
||||
0:114 Sequence
|
||||
0:114 move second child to first child ( temp int)
|
||||
0:114 indirect index (layout( column_major shared) temp int)
|
||||
0:114 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:114 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:114 Constant:
|
||||
0:114 0 (const int)
|
||||
0:114 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:114 Constant:
|
||||
0:114 1 (const int)
|
||||
0:115 move second child to first child ( temp int)
|
||||
0:115 indirect index (layout( column_major shared) temp int)
|
||||
0:115 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:115 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:115 Constant:
|
||||
0:115 0 (const int)
|
||||
0:115 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:115 Constant:
|
||||
0:115 1 (const int)
|
||||
0:116 move second child to first child ( temp int)
|
||||
0:116 indirect index (layout( column_major shared) temp int)
|
||||
0:116 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:116 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:116 Constant:
|
||||
0:116 0 (const int)
|
||||
0:116 'gl_NumSubgroups' ( in uint NumSubgroups)
|
||||
0:116 Constant:
|
||||
0:116 1 (const int)
|
||||
0:117 move second child to first child ( temp int)
|
||||
0:117 indirect index (layout( column_major shared) temp int)
|
||||
0:117 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
|
||||
0:117 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a})
|
||||
0:117 Constant:
|
||||
0:117 0 (const int)
|
||||
0:117 'gl_SubgroupID' ( in uint SubgroupID)
|
||||
0:117 Test condition and select ( temp int)
|
||||
0:117 Condition
|
||||
0:117 subgroupElect ( global bool)
|
||||
0:117 true case
|
||||
0:117 Constant:
|
||||
0:117 1 (const int)
|
||||
0:117 false case
|
||||
0:117 Constant:
|
||||
0:117 0 (const int)
|
||||
0:118 subgroupBarrier ( global void)
|
||||
0:119 subgroupMemoryBarrier ( global void)
|
||||
0:120 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:121 subgroupMemoryBarrierShared ( global void)
|
||||
0:122 subgroupMemoryBarrierImage ( global void)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 8 (const uint)
|
||||
|
||||
@@ -12,8 +12,8 @@ local_size = (8, 1, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
@@ -2656,8 +2656,8 @@ local_size = (8, 1, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
|
||||
@@ -28,8 +28,8 @@ ERROR: node is still EOpNull!
|
||||
0:20 'invocation' ( temp uint)
|
||||
0:20 mod ( temp uint)
|
||||
0:20 add ( temp uint)
|
||||
0:20 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:20 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:20 Constant:
|
||||
0:20 4 (const uint)
|
||||
0:22 move second child to first child ( temp 2-component vector of float)
|
||||
@@ -358,8 +358,8 @@ ERROR: node is still EOpNull!
|
||||
0:20 'invocation' ( temp uint)
|
||||
0:20 mod ( temp uint)
|
||||
0:20 add ( temp uint)
|
||||
0:20 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:20 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:20 Constant:
|
||||
0:20 4 (const uint)
|
||||
0:22 move second child to first child ( temp 2-component vector of float)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,8 +12,8 @@ local_size = (8, 1, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
@@ -2048,8 +2048,8 @@ local_size = (8, 1, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
|
||||
@@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
@@ -1064,8 +1064,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
|
||||
@@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
@@ -1064,8 +1064,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp uint)
|
||||
0:17 mod ( temp uint)
|
||||
0:17 add ( temp uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 move second child to first child ( temp float)
|
||||
|
||||
@@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:18 'invocation' ( temp uint)
|
||||
0:18 mod ( temp uint)
|
||||
0:18 add ( temp uint)
|
||||
0:18 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:18 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:18 Constant:
|
||||
0:18 4 (const uint)
|
||||
0:20 Test condition and select ( temp void)
|
||||
@@ -499,8 +499,8 @@ local_size = (8, 8, 1)
|
||||
0:18 'invocation' ( temp uint)
|
||||
0:18 mod ( temp uint)
|
||||
0:18 add ( temp uint)
|
||||
0:18 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:18 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:18 Constant:
|
||||
0:18 4 (const uint)
|
||||
0:20 Test condition and select ( temp void)
|
||||
|
||||
1217
Test/baseResults/glsl.460.subgroup.mesh.out
Normal file
1217
Test/baseResults/glsl.460.subgroup.mesh.out
Normal file
File diff suppressed because it is too large
Load Diff
775
Test/baseResults/glsl.460.subgroup.rahit.out
Normal file
775
Test/baseResults/glsl.460.subgroup.rahit.out
Normal file
@@ -0,0 +1,775 @@
|
||||
glsl.460.subgroup.rahit
|
||||
ERROR: 0:7: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:14: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:15: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:16: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:18: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:20: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:22: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:36: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:38: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:40: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:41: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:43: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:63: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:65: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:71: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:73: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:76: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:78: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : 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:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_ray_tracing
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:4 Function Parameters:
|
||||
0:4 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:7 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:8 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:9 subgroupBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrier ( global void)
|
||||
0:11 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:12 subgroupMemoryBarrierImage ( global void)
|
||||
0:13 subgroupElect ( global bool)
|
||||
0:14 'gl_NumSubgroups' ( temp float)
|
||||
0:15 'gl_SubgroupID' ( temp float)
|
||||
0:16 Constant:
|
||||
0:16 0.000000
|
||||
0:18 subgroupAll ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 true (const bool)
|
||||
0:19 subgroupAny ( global bool)
|
||||
0:19 Constant:
|
||||
0:19 false (const bool)
|
||||
0:20 subgroupAllEqual ( global bool)
|
||||
0:20 'f4' ( in 4-component vector of float)
|
||||
0:22 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:23 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:24 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:25 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:26 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:27 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:27 Constant:
|
||||
0:27 0 (const uint)
|
||||
0:28 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:28 'f4' ( in 4-component vector of float)
|
||||
0:29 Sequence
|
||||
0:29 move second child to first child ( temp 4-component vector of uint)
|
||||
0:29 'ballot' ( temp 4-component vector of uint)
|
||||
0:29 subgroupBallot ( global 4-component vector of uint)
|
||||
0:29 Constant:
|
||||
0:29 false (const bool)
|
||||
0:30 subgroupInverseBallot ( global bool)
|
||||
0:30 Constant:
|
||||
0:30 1 (const uint)
|
||||
0:30 1 (const uint)
|
||||
0:30 1 (const uint)
|
||||
0:30 1 (const uint)
|
||||
0:31 subgroupBallotBitExtract ( global bool)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:31 Constant:
|
||||
0:31 0 (const uint)
|
||||
0:32 subgroupBallotBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindLSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:36 subgroupBallotFindMSB ( global uint)
|
||||
0:36 'ballot' ( temp 4-component vector of uint)
|
||||
0:38 subgroupShuffle ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 0 (const uint)
|
||||
0:39 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:41 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:41 'f4' ( in 4-component vector of float)
|
||||
0:41 Constant:
|
||||
0:41 1 (const uint)
|
||||
0:43 move second child to first child ( temp 4-component vector of float)
|
||||
0:43 'result' ( temp 4-component vector of float)
|
||||
0:43 subgroupAdd ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMul ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMin ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupMax ( global 4-component vector of float)
|
||||
0:46 'f4' ( in 4-component vector of float)
|
||||
0:47 subgroupAnd ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupOr ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupXor ( global 4-component vector of uint)
|
||||
0:49 'ballot' ( temp 4-component vector of uint)
|
||||
0:50 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:53 'f4' ( in 4-component vector of float)
|
||||
0:54 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:56 'ballot' ( temp 4-component vector of uint)
|
||||
0:57 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:60 'f4' ( in 4-component vector of float)
|
||||
0:61 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:63 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:63 'ballot' ( temp 4-component vector of uint)
|
||||
0:65 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:68 'f4' ( in 4-component vector of float)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:71 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:71 'ballot' ( temp 4-component vector of uint)
|
||||
0:71 Constant:
|
||||
0:71 2 (const uint)
|
||||
0:73 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:73 Constant:
|
||||
0:73 0 (const uint)
|
||||
0:74 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:76 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:76 'f4' ( in 4-component vector of float)
|
||||
0:78 Sequence
|
||||
0:78 move second child to first child ( temp 4-component vector of uint)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:78 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:79 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:80 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:82 'f4' ( in 4-component vector of float)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:83 'ballot' ( temp 4-component vector of uint)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:85 'ballot' ( temp 4-component vector of uint)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:86 'f4' ( in 4-component vector of float)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:89 'f4' ( in 4-component vector of float)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:90 'ballot' ( temp 4-component vector of uint)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:92 'ballot' ( temp 4-component vector of uint)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:93 'f4' ( in 4-component vector of float)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:96 'f4' ( in 4-component vector of float)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:97 'ballot' ( temp 4-component vector of uint)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:99 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:99 'ballot' ( temp 4-component vector of uint)
|
||||
0:99 'parti' ( temp 4-component vector of uint)
|
||||
0:101 Branch: Return with expression
|
||||
0:101 'result' ( temp 4-component vector of float)
|
||||
0:106 Function Definition: main( ( global void)
|
||||
0:106 Function Parameters:
|
||||
0:108 Sequence
|
||||
0:108 Sequence
|
||||
0:108 move second child to first child ( temp 3-component vector of uint)
|
||||
0:108 'v0' ( temp 3-component vector of uint)
|
||||
0:108 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:109 Sequence
|
||||
0:109 move second child to first child ( temp 3-component vector of uint)
|
||||
0:109 'v1' ( temp 3-component vector of uint)
|
||||
0:109 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:110 Sequence
|
||||
0:110 move second child to first child ( temp int)
|
||||
0:110 'v2' ( temp int)
|
||||
0:110 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp int)
|
||||
0:111 'v3' ( temp int)
|
||||
0:111 'gl_InstanceID' ( in int InstanceId)
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp int)
|
||||
0:112 'v4' ( temp int)
|
||||
0:112 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV)
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp 3-component vector of float)
|
||||
0:113 'v5' ( temp 3-component vector of float)
|
||||
0:113 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
|
||||
0:114 Sequence
|
||||
0:114 move second child to first child ( temp 3-component vector of float)
|
||||
0:114 'v6' ( temp 3-component vector of float)
|
||||
0:114 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
|
||||
0:115 Sequence
|
||||
0:115 move second child to first child ( temp 3-component vector of float)
|
||||
0:115 'v7' ( temp 3-component vector of float)
|
||||
0:115 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
|
||||
0:116 Sequence
|
||||
0:116 move second child to first child ( temp 3-component vector of float)
|
||||
0:116 'v8' ( temp 3-component vector of float)
|
||||
0:116 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
|
||||
0:117 Sequence
|
||||
0:117 move second child to first child ( temp float)
|
||||
0:117 'v9' ( temp float)
|
||||
0:117 'gl_RayTminNV' ( in float ObjectRayTminNV)
|
||||
0:118 Sequence
|
||||
0:118 move second child to first child ( temp float)
|
||||
0:118 'v10' ( temp float)
|
||||
0:118 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
|
||||
0:119 Sequence
|
||||
0:119 move second child to first child ( temp float)
|
||||
0:119 'v11' ( temp float)
|
||||
0:119 'gl_HitTNV' ( in float HitTNV)
|
||||
0:120 Sequence
|
||||
0:120 move second child to first child ( temp uint)
|
||||
0:120 'v12' ( temp uint)
|
||||
0:120 'gl_HitKindNV' ( in uint HitKindNV)
|
||||
0:121 Sequence
|
||||
0:121 move second child to first child ( temp 4X3 matrix of float)
|
||||
0:121 'v13' ( temp 4X3 matrix of float)
|
||||
0:121 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV)
|
||||
0:122 Sequence
|
||||
0:122 move second child to first child ( temp 4X3 matrix of float)
|
||||
0:122 'v14' ( temp 4X3 matrix of float)
|
||||
0:122 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV)
|
||||
0:123 move second child to first child ( temp 4-component vector of float)
|
||||
0:123 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
|
||||
0:123 Constant:
|
||||
0:123 0.500000
|
||||
0:123 0.500000
|
||||
0:123 0.500000
|
||||
0:123 0.500000
|
||||
0:124 Test condition and select ( temp void)
|
||||
0:124 Condition
|
||||
0:124 Compare Equal ( temp bool)
|
||||
0:124 'v2' ( temp int)
|
||||
0:124 Constant:
|
||||
0:124 1 (const int)
|
||||
0:124 true case
|
||||
0:125 ignoreIntersectionNV ( global void)
|
||||
0:124 false case
|
||||
0:127 terminateRayNV ( global void)
|
||||
0:131 Function Definition: basic_works( ( global void)
|
||||
0:131 Function Parameters:
|
||||
0:133 Sequence
|
||||
0:133 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:134 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:135 subgroupBarrier ( global void)
|
||||
0:136 subgroupMemoryBarrier ( global void)
|
||||
0:137 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:138 subgroupMemoryBarrierImage ( global void)
|
||||
0:139 subgroupElect ( global bool)
|
||||
0:143 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:143 Function Parameters:
|
||||
0:143 'f4' ( in 4-component vector of float)
|
||||
0:144 Sequence
|
||||
0:144 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:145 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:146 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:147 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:148 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:149 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:149 'f4' ( in 4-component vector of float)
|
||||
0:149 Constant:
|
||||
0:149 0 (const uint)
|
||||
0:150 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:150 'f4' ( in 4-component vector of float)
|
||||
0:151 Sequence
|
||||
0:151 move second child to first child ( temp 4-component vector of uint)
|
||||
0:151 'ballot' ( temp 4-component vector of uint)
|
||||
0:151 subgroupBallot ( global 4-component vector of uint)
|
||||
0:151 Constant:
|
||||
0:151 false (const bool)
|
||||
0:152 subgroupInverseBallot ( global bool)
|
||||
0:152 Constant:
|
||||
0:152 1 (const uint)
|
||||
0:152 1 (const uint)
|
||||
0:152 1 (const uint)
|
||||
0:152 1 (const uint)
|
||||
0:153 subgroupBallotBitExtract ( global bool)
|
||||
0:153 'ballot' ( temp 4-component vector of uint)
|
||||
0:153 Constant:
|
||||
0:153 0 (const uint)
|
||||
0:154 subgroupBallotBitCount ( global uint)
|
||||
0:154 'ballot' ( temp 4-component vector of uint)
|
||||
0:155 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:155 'ballot' ( temp 4-component vector of uint)
|
||||
0:156 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:156 'ballot' ( temp 4-component vector of uint)
|
||||
0:157 subgroupBallotFindLSB ( global uint)
|
||||
0:157 'ballot' ( temp 4-component vector of uint)
|
||||
0:158 subgroupBallotFindMSB ( global uint)
|
||||
0:158 'ballot' ( temp 4-component vector of uint)
|
||||
0:162 Function Definition: vote_works(vf4; ( global void)
|
||||
0:162 Function Parameters:
|
||||
0:162 'f4' ( in 4-component vector of float)
|
||||
0:164 Sequence
|
||||
0:164 subgroupAll ( global bool)
|
||||
0:164 Constant:
|
||||
0:164 true (const bool)
|
||||
0:165 subgroupAny ( global bool)
|
||||
0:165 Constant:
|
||||
0:165 false (const bool)
|
||||
0:166 subgroupAllEqual ( global bool)
|
||||
0:166 'f4' ( in 4-component vector of float)
|
||||
0:171 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:171 Function Parameters:
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:173 Sequence
|
||||
0:173 subgroupShuffle ( global 4-component vector of float)
|
||||
0:173 'f4' ( in 4-component vector of float)
|
||||
0:173 Constant:
|
||||
0:173 0 (const uint)
|
||||
0:174 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:174 'f4' ( in 4-component vector of float)
|
||||
0:174 Constant:
|
||||
0:174 1 (const uint)
|
||||
0:175 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:175 'f4' ( in 4-component vector of float)
|
||||
0:175 Constant:
|
||||
0:175 1 (const uint)
|
||||
0:176 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:176 Constant:
|
||||
0:176 1 (const uint)
|
||||
0:180 Function Definition: arith_works(vf4; ( global void)
|
||||
0:180 Function Parameters:
|
||||
0:180 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:183 subgroupAdd ( global 4-component vector of float)
|
||||
0:183 'f4' ( in 4-component vector of float)
|
||||
0:184 subgroupMul ( global 4-component vector of float)
|
||||
0:184 'f4' ( in 4-component vector of float)
|
||||
0:185 subgroupMin ( global 4-component vector of float)
|
||||
0:185 'f4' ( in 4-component vector of float)
|
||||
0:186 subgroupMax ( global 4-component vector of float)
|
||||
0:186 'f4' ( in 4-component vector of float)
|
||||
0:187 subgroupAnd ( global 4-component vector of uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:188 subgroupOr ( global 4-component vector of uint)
|
||||
0:188 'ballot' ( temp 4-component vector of uint)
|
||||
0:189 subgroupXor ( global 4-component vector of uint)
|
||||
0:189 'ballot' ( temp 4-component vector of uint)
|
||||
0:190 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:191 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:192 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:192 'f4' ( in 4-component vector of float)
|
||||
0:193 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:193 'f4' ( in 4-component vector of float)
|
||||
0:194 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:194 'ballot' ( temp 4-component vector of uint)
|
||||
0:195 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:195 'ballot' ( temp 4-component vector of uint)
|
||||
0:196 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:196 'ballot' ( temp 4-component vector of uint)
|
||||
0:197 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:197 'f4' ( in 4-component vector of float)
|
||||
0:198 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:198 'f4' ( in 4-component vector of float)
|
||||
0:199 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:199 'f4' ( in 4-component vector of float)
|
||||
0:200 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:200 'f4' ( in 4-component vector of float)
|
||||
0:201 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:201 'ballot' ( temp 4-component vector of uint)
|
||||
0:202 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:202 'ballot' ( temp 4-component vector of uint)
|
||||
0:203 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:203 'ballot' ( temp 4-component vector of uint)
|
||||
0:207 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:207 Function Parameters:
|
||||
0:207 'f4' ( in 4-component vector of float)
|
||||
0:209 Sequence
|
||||
0:209 Sequence
|
||||
0:209 move second child to first child ( temp 4-component vector of uint)
|
||||
0:209 'ballot' ( temp 4-component vector of uint)
|
||||
0:209 Constant:
|
||||
0:209 85 (const uint)
|
||||
0:209 0 (const uint)
|
||||
0:209 0 (const uint)
|
||||
0:209 0 (const uint)
|
||||
0:210 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:210 'f4' ( in 4-component vector of float)
|
||||
0:210 Constant:
|
||||
0:210 2 (const uint)
|
||||
0:211 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:211 'f4' ( in 4-component vector of float)
|
||||
0:211 Constant:
|
||||
0:211 2 (const uint)
|
||||
0:212 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:212 Constant:
|
||||
0:212 2 (const uint)
|
||||
0:213 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:213 Constant:
|
||||
0:213 2 (const uint)
|
||||
0:214 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:214 'ballot' ( temp 4-component vector of uint)
|
||||
0:214 Constant:
|
||||
0:214 2 (const uint)
|
||||
0:215 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:215 'ballot' ( temp 4-component vector of uint)
|
||||
0:215 Constant:
|
||||
0:215 2 (const uint)
|
||||
0:216 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:216 'ballot' ( temp 4-component vector of uint)
|
||||
0:216 Constant:
|
||||
0:216 2 (const uint)
|
||||
0:220 Function Definition: quad_works(vf4; ( global void)
|
||||
0:220 Function Parameters:
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:222 Sequence
|
||||
0:222 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:222 'f4' ( in 4-component vector of float)
|
||||
0:222 Constant:
|
||||
0:222 0 (const uint)
|
||||
0:223 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:223 'f4' ( in 4-component vector of float)
|
||||
0:224 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:224 'f4' ( in 4-component vector of float)
|
||||
0:225 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:225 'f4' ( in 4-component vector of float)
|
||||
0:229 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:229 Function Parameters:
|
||||
0:229 'f4' ( in 4-component vector of float)
|
||||
0:231 Sequence
|
||||
0:231 Sequence
|
||||
0:231 move second child to first child ( temp 4-component vector of uint)
|
||||
0:231 'parti' ( temp 4-component vector of uint)
|
||||
0:231 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:231 'f4' ( in 4-component vector of float)
|
||||
0:232 Sequence
|
||||
0:232 move second child to first child ( temp 4-component vector of uint)
|
||||
0:232 'ballot' ( temp 4-component vector of uint)
|
||||
0:232 Constant:
|
||||
0:232 85 (const uint)
|
||||
0:232 0 (const uint)
|
||||
0:232 0 (const uint)
|
||||
0:232 0 (const uint)
|
||||
0:233 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:233 'f4' ( in 4-component vector of float)
|
||||
0:233 'parti' ( temp 4-component vector of uint)
|
||||
0:234 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:234 'f4' ( in 4-component vector of float)
|
||||
0:234 'parti' ( temp 4-component vector of uint)
|
||||
0:235 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:235 'f4' ( in 4-component vector of float)
|
||||
0:235 'parti' ( temp 4-component vector of uint)
|
||||
0:236 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:236 'f4' ( in 4-component vector of float)
|
||||
0:236 'parti' ( temp 4-component vector of uint)
|
||||
0:237 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:237 'ballot' ( temp 4-component vector of uint)
|
||||
0:237 'parti' ( temp 4-component vector of uint)
|
||||
0:238 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:238 'ballot' ( temp 4-component vector of uint)
|
||||
0:238 'parti' ( temp 4-component vector of uint)
|
||||
0:239 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:239 'ballot' ( temp 4-component vector of uint)
|
||||
0:239 'parti' ( temp 4-component vector of uint)
|
||||
0:240 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:240 'f4' ( in 4-component vector of float)
|
||||
0:240 'parti' ( temp 4-component vector of uint)
|
||||
0:241 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:241 'f4' ( in 4-component vector of float)
|
||||
0:241 'parti' ( temp 4-component vector of uint)
|
||||
0:242 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:242 'f4' ( in 4-component vector of float)
|
||||
0:242 'parti' ( temp 4-component vector of uint)
|
||||
0:243 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:243 'f4' ( in 4-component vector of float)
|
||||
0:243 'parti' ( temp 4-component vector of uint)
|
||||
0:244 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:244 'ballot' ( temp 4-component vector of uint)
|
||||
0:244 'parti' ( temp 4-component vector of uint)
|
||||
0:245 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:245 'ballot' ( temp 4-component vector of uint)
|
||||
0:245 'parti' ( temp 4-component vector of uint)
|
||||
0:246 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:246 'ballot' ( temp 4-component vector of uint)
|
||||
0:246 'parti' ( temp 4-component vector of uint)
|
||||
0:247 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:247 'f4' ( in 4-component vector of float)
|
||||
0:247 'parti' ( temp 4-component vector of uint)
|
||||
0:248 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:248 'f4' ( in 4-component vector of float)
|
||||
0:248 'parti' ( temp 4-component vector of uint)
|
||||
0:249 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:249 'f4' ( in 4-component vector of float)
|
||||
0:249 'parti' ( temp 4-component vector of uint)
|
||||
0:250 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:250 'f4' ( in 4-component vector of float)
|
||||
0:250 'parti' ( temp 4-component vector of uint)
|
||||
0:251 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:251 'ballot' ( temp 4-component vector of uint)
|
||||
0:251 'parti' ( temp 4-component vector of uint)
|
||||
0:252 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:252 'ballot' ( temp 4-component vector of uint)
|
||||
0:252 'parti' ( temp 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 'parti' ( temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
|
||||
|
||||
|
||||
Linked any-hit stage:
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_ray_tracing
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:106 Function Definition: main( ( global void)
|
||||
0:106 Function Parameters:
|
||||
0:108 Sequence
|
||||
0:108 Sequence
|
||||
0:108 move second child to first child ( temp 3-component vector of uint)
|
||||
0:108 'v0' ( temp 3-component vector of uint)
|
||||
0:108 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:109 Sequence
|
||||
0:109 move second child to first child ( temp 3-component vector of uint)
|
||||
0:109 'v1' ( temp 3-component vector of uint)
|
||||
0:109 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:110 Sequence
|
||||
0:110 move second child to first child ( temp int)
|
||||
0:110 'v2' ( temp int)
|
||||
0:110 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp int)
|
||||
0:111 'v3' ( temp int)
|
||||
0:111 'gl_InstanceID' ( in int InstanceId)
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp int)
|
||||
0:112 'v4' ( temp int)
|
||||
0:112 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV)
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp 3-component vector of float)
|
||||
0:113 'v5' ( temp 3-component vector of float)
|
||||
0:113 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
|
||||
0:114 Sequence
|
||||
0:114 move second child to first child ( temp 3-component vector of float)
|
||||
0:114 'v6' ( temp 3-component vector of float)
|
||||
0:114 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
|
||||
0:115 Sequence
|
||||
0:115 move second child to first child ( temp 3-component vector of float)
|
||||
0:115 'v7' ( temp 3-component vector of float)
|
||||
0:115 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
|
||||
0:116 Sequence
|
||||
0:116 move second child to first child ( temp 3-component vector of float)
|
||||
0:116 'v8' ( temp 3-component vector of float)
|
||||
0:116 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
|
||||
0:117 Sequence
|
||||
0:117 move second child to first child ( temp float)
|
||||
0:117 'v9' ( temp float)
|
||||
0:117 'gl_RayTminNV' ( in float ObjectRayTminNV)
|
||||
0:118 Sequence
|
||||
0:118 move second child to first child ( temp float)
|
||||
0:118 'v10' ( temp float)
|
||||
0:118 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
|
||||
0:119 Sequence
|
||||
0:119 move second child to first child ( temp float)
|
||||
0:119 'v11' ( temp float)
|
||||
0:119 'gl_HitTNV' ( in float HitTNV)
|
||||
0:120 Sequence
|
||||
0:120 move second child to first child ( temp uint)
|
||||
0:120 'v12' ( temp uint)
|
||||
0:120 'gl_HitKindNV' ( in uint HitKindNV)
|
||||
0:121 Sequence
|
||||
0:121 move second child to first child ( temp 4X3 matrix of float)
|
||||
0:121 'v13' ( temp 4X3 matrix of float)
|
||||
0:121 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV)
|
||||
0:122 Sequence
|
||||
0:122 move second child to first child ( temp 4X3 matrix of float)
|
||||
0:122 'v14' ( temp 4X3 matrix of float)
|
||||
0:122 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV)
|
||||
0:123 move second child to first child ( temp 4-component vector of float)
|
||||
0:123 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
|
||||
0:123 Constant:
|
||||
0:123 0.500000
|
||||
0:123 0.500000
|
||||
0:123 0.500000
|
||||
0:123 0.500000
|
||||
0:124 Test condition and select ( temp void)
|
||||
0:124 Condition
|
||||
0:124 Compare Equal ( temp bool)
|
||||
0:124 'v2' ( temp int)
|
||||
0:124 Constant:
|
||||
0:124 1 (const int)
|
||||
0:124 true case
|
||||
0:125 ignoreIntersectionNV ( global void)
|
||||
0:124 false case
|
||||
0:127 terminateRayNV ( global void)
|
||||
0:? Linker Objects
|
||||
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
|
||||
|
||||
663
Test/baseResults/glsl.460.subgroup.rcall.out
Normal file
663
Test/baseResults/glsl.460.subgroup.rcall.out
Normal file
@@ -0,0 +1,663 @@
|
||||
glsl.460.subgroup.rcall
|
||||
ERROR: 0:7: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:14: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:15: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:16: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:18: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:20: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:22: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:36: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:38: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:40: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:41: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:43: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:63: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:65: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:71: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:73: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:76: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:78: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : 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:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_ray_tracing
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:4 Function Parameters:
|
||||
0:4 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:7 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:8 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:9 subgroupBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrier ( global void)
|
||||
0:11 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:12 subgroupMemoryBarrierImage ( global void)
|
||||
0:13 subgroupElect ( global bool)
|
||||
0:14 'gl_NumSubgroups' ( temp float)
|
||||
0:15 'gl_SubgroupID' ( temp float)
|
||||
0:16 Constant:
|
||||
0:16 0.000000
|
||||
0:18 subgroupAll ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 true (const bool)
|
||||
0:19 subgroupAny ( global bool)
|
||||
0:19 Constant:
|
||||
0:19 false (const bool)
|
||||
0:20 subgroupAllEqual ( global bool)
|
||||
0:20 'f4' ( in 4-component vector of float)
|
||||
0:22 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:23 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:24 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:25 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:26 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:27 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:27 Constant:
|
||||
0:27 0 (const uint)
|
||||
0:28 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:28 'f4' ( in 4-component vector of float)
|
||||
0:29 Sequence
|
||||
0:29 move second child to first child ( temp 4-component vector of uint)
|
||||
0:29 'ballot' ( temp 4-component vector of uint)
|
||||
0:29 subgroupBallot ( global 4-component vector of uint)
|
||||
0:29 Constant:
|
||||
0:29 false (const bool)
|
||||
0:30 subgroupInverseBallot ( global bool)
|
||||
0:30 Constant:
|
||||
0:30 1 (const uint)
|
||||
0:30 1 (const uint)
|
||||
0:30 1 (const uint)
|
||||
0:30 1 (const uint)
|
||||
0:31 subgroupBallotBitExtract ( global bool)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:31 Constant:
|
||||
0:31 0 (const uint)
|
||||
0:32 subgroupBallotBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindLSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:36 subgroupBallotFindMSB ( global uint)
|
||||
0:36 'ballot' ( temp 4-component vector of uint)
|
||||
0:38 subgroupShuffle ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 0 (const uint)
|
||||
0:39 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:41 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:41 'f4' ( in 4-component vector of float)
|
||||
0:41 Constant:
|
||||
0:41 1 (const uint)
|
||||
0:43 move second child to first child ( temp 4-component vector of float)
|
||||
0:43 'result' ( temp 4-component vector of float)
|
||||
0:43 subgroupAdd ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMul ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMin ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupMax ( global 4-component vector of float)
|
||||
0:46 'f4' ( in 4-component vector of float)
|
||||
0:47 subgroupAnd ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupOr ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupXor ( global 4-component vector of uint)
|
||||
0:49 'ballot' ( temp 4-component vector of uint)
|
||||
0:50 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:53 'f4' ( in 4-component vector of float)
|
||||
0:54 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:56 'ballot' ( temp 4-component vector of uint)
|
||||
0:57 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:60 'f4' ( in 4-component vector of float)
|
||||
0:61 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:63 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:63 'ballot' ( temp 4-component vector of uint)
|
||||
0:65 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:68 'f4' ( in 4-component vector of float)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:71 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:71 'ballot' ( temp 4-component vector of uint)
|
||||
0:71 Constant:
|
||||
0:71 2 (const uint)
|
||||
0:73 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:73 Constant:
|
||||
0:73 0 (const uint)
|
||||
0:74 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:76 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:76 'f4' ( in 4-component vector of float)
|
||||
0:78 Sequence
|
||||
0:78 move second child to first child ( temp 4-component vector of uint)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:78 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:79 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:80 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:82 'f4' ( in 4-component vector of float)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:83 'ballot' ( temp 4-component vector of uint)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:85 'ballot' ( temp 4-component vector of uint)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:86 'f4' ( in 4-component vector of float)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:89 'f4' ( in 4-component vector of float)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:90 'ballot' ( temp 4-component vector of uint)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:92 'ballot' ( temp 4-component vector of uint)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:93 'f4' ( in 4-component vector of float)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:96 'f4' ( in 4-component vector of float)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:97 'ballot' ( temp 4-component vector of uint)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:99 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:99 'ballot' ( temp 4-component vector of uint)
|
||||
0:99 'parti' ( temp 4-component vector of uint)
|
||||
0:101 Branch: Return with expression
|
||||
0:101 'result' ( temp 4-component vector of float)
|
||||
0:109 Function Definition: main( ( global void)
|
||||
0:109 Function Parameters:
|
||||
0:111 Sequence
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp 3-component vector of uint)
|
||||
0:111 'id' ( temp 3-component vector of uint)
|
||||
0:111 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp 3-component vector of uint)
|
||||
0:112 'size' ( temp 3-component vector of uint)
|
||||
0:112 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:113 move second child to first child ( temp uint)
|
||||
0:113 data1: direct index for structure ( callableDataInNV uint)
|
||||
0:113 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})
|
||||
0:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:113 Constant:
|
||||
0:113 256 (const uint)
|
||||
0:114 executeCallableNV ( global void)
|
||||
0:114 Constant:
|
||||
0:114 2 (const uint)
|
||||
0:114 Constant:
|
||||
0:114 1 (const int)
|
||||
0:119 Function Definition: basic_works( ( global void)
|
||||
0:119 Function Parameters:
|
||||
0:121 Sequence
|
||||
0:121 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:122 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:123 subgroupBarrier ( global void)
|
||||
0:124 subgroupMemoryBarrier ( global void)
|
||||
0:125 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:126 subgroupMemoryBarrierImage ( global void)
|
||||
0:127 subgroupElect ( global bool)
|
||||
0:131 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:131 Function Parameters:
|
||||
0:131 'f4' ( in 4-component vector of float)
|
||||
0:132 Sequence
|
||||
0:132 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:133 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:134 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:135 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:136 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:137 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:137 'f4' ( in 4-component vector of float)
|
||||
0:137 Constant:
|
||||
0:137 0 (const uint)
|
||||
0:138 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:138 'f4' ( in 4-component vector of float)
|
||||
0:139 Sequence
|
||||
0:139 move second child to first child ( temp 4-component vector of uint)
|
||||
0:139 'ballot' ( temp 4-component vector of uint)
|
||||
0:139 subgroupBallot ( global 4-component vector of uint)
|
||||
0:139 Constant:
|
||||
0:139 false (const bool)
|
||||
0:140 subgroupInverseBallot ( global bool)
|
||||
0:140 Constant:
|
||||
0:140 1 (const uint)
|
||||
0:140 1 (const uint)
|
||||
0:140 1 (const uint)
|
||||
0:140 1 (const uint)
|
||||
0:141 subgroupBallotBitExtract ( global bool)
|
||||
0:141 'ballot' ( temp 4-component vector of uint)
|
||||
0:141 Constant:
|
||||
0:141 0 (const uint)
|
||||
0:142 subgroupBallotBitCount ( global uint)
|
||||
0:142 'ballot' ( temp 4-component vector of uint)
|
||||
0:143 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:143 'ballot' ( temp 4-component vector of uint)
|
||||
0:144 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:144 'ballot' ( temp 4-component vector of uint)
|
||||
0:145 subgroupBallotFindLSB ( global uint)
|
||||
0:145 'ballot' ( temp 4-component vector of uint)
|
||||
0:146 subgroupBallotFindMSB ( global uint)
|
||||
0:146 'ballot' ( temp 4-component vector of uint)
|
||||
0:150 Function Definition: vote_works(vf4; ( global void)
|
||||
0:150 Function Parameters:
|
||||
0:150 'f4' ( in 4-component vector of float)
|
||||
0:152 Sequence
|
||||
0:152 subgroupAll ( global bool)
|
||||
0:152 Constant:
|
||||
0:152 true (const bool)
|
||||
0:153 subgroupAny ( global bool)
|
||||
0:153 Constant:
|
||||
0:153 false (const bool)
|
||||
0:154 subgroupAllEqual ( global bool)
|
||||
0:154 'f4' ( in 4-component vector of float)
|
||||
0:159 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:159 Function Parameters:
|
||||
0:159 'f4' ( in 4-component vector of float)
|
||||
0:161 Sequence
|
||||
0:161 subgroupShuffle ( global 4-component vector of float)
|
||||
0:161 'f4' ( in 4-component vector of float)
|
||||
0:161 Constant:
|
||||
0:161 0 (const uint)
|
||||
0:162 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:162 'f4' ( in 4-component vector of float)
|
||||
0:162 Constant:
|
||||
0:162 1 (const uint)
|
||||
0:163 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:163 Constant:
|
||||
0:163 1 (const uint)
|
||||
0:164 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:164 'f4' ( in 4-component vector of float)
|
||||
0:164 Constant:
|
||||
0:164 1 (const uint)
|
||||
0:168 Function Definition: arith_works(vf4; ( global void)
|
||||
0:168 Function Parameters:
|
||||
0:168 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:171 subgroupAdd ( global 4-component vector of float)
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:172 subgroupMul ( global 4-component vector of float)
|
||||
0:172 'f4' ( in 4-component vector of float)
|
||||
0:173 subgroupMin ( global 4-component vector of float)
|
||||
0:173 'f4' ( in 4-component vector of float)
|
||||
0:174 subgroupMax ( global 4-component vector of float)
|
||||
0:174 'f4' ( in 4-component vector of float)
|
||||
0:175 subgroupAnd ( global 4-component vector of uint)
|
||||
0:175 'ballot' ( temp 4-component vector of uint)
|
||||
0:176 subgroupOr ( global 4-component vector of uint)
|
||||
0:176 'ballot' ( temp 4-component vector of uint)
|
||||
0:177 subgroupXor ( global 4-component vector of uint)
|
||||
0:177 'ballot' ( temp 4-component vector of uint)
|
||||
0:178 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:179 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:179 'f4' ( in 4-component vector of float)
|
||||
0:180 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:180 'f4' ( in 4-component vector of float)
|
||||
0:181 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:181 'f4' ( in 4-component vector of float)
|
||||
0:182 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:182 'ballot' ( temp 4-component vector of uint)
|
||||
0:183 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:183 'ballot' ( temp 4-component vector of uint)
|
||||
0:184 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:184 'ballot' ( temp 4-component vector of uint)
|
||||
0:185 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:185 'f4' ( in 4-component vector of float)
|
||||
0:186 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:186 'f4' ( in 4-component vector of float)
|
||||
0:187 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:187 'f4' ( in 4-component vector of float)
|
||||
0:188 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:188 'f4' ( in 4-component vector of float)
|
||||
0:189 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:189 'ballot' ( temp 4-component vector of uint)
|
||||
0:190 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:190 'ballot' ( temp 4-component vector of uint)
|
||||
0:191 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:191 'ballot' ( temp 4-component vector of uint)
|
||||
0:195 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:195 Function Parameters:
|
||||
0:195 'f4' ( in 4-component vector of float)
|
||||
0:197 Sequence
|
||||
0:197 Sequence
|
||||
0:197 move second child to first child ( temp 4-component vector of uint)
|
||||
0:197 'ballot' ( temp 4-component vector of uint)
|
||||
0:197 Constant:
|
||||
0:197 85 (const uint)
|
||||
0:197 0 (const uint)
|
||||
0:197 0 (const uint)
|
||||
0:197 0 (const uint)
|
||||
0:198 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:198 'f4' ( in 4-component vector of float)
|
||||
0:198 Constant:
|
||||
0:198 2 (const uint)
|
||||
0:199 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:199 'f4' ( in 4-component vector of float)
|
||||
0:199 Constant:
|
||||
0:199 2 (const uint)
|
||||
0:200 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:200 'f4' ( in 4-component vector of float)
|
||||
0:200 Constant:
|
||||
0:200 2 (const uint)
|
||||
0:201 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:201 'f4' ( in 4-component vector of float)
|
||||
0:201 Constant:
|
||||
0:201 2 (const uint)
|
||||
0:202 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:202 'ballot' ( temp 4-component vector of uint)
|
||||
0:202 Constant:
|
||||
0:202 2 (const uint)
|
||||
0:203 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:203 'ballot' ( temp 4-component vector of uint)
|
||||
0:203 Constant:
|
||||
0:203 2 (const uint)
|
||||
0:204 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:204 'ballot' ( temp 4-component vector of uint)
|
||||
0:204 Constant:
|
||||
0:204 2 (const uint)
|
||||
0:208 Function Definition: quad_works(vf4; ( global void)
|
||||
0:208 Function Parameters:
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:210 Sequence
|
||||
0:210 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:210 'f4' ( in 4-component vector of float)
|
||||
0:210 Constant:
|
||||
0:210 0 (const uint)
|
||||
0:211 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:211 'f4' ( in 4-component vector of float)
|
||||
0:212 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:213 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:217 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:217 Function Parameters:
|
||||
0:217 'f4' ( in 4-component vector of float)
|
||||
0:219 Sequence
|
||||
0:219 Sequence
|
||||
0:219 move second child to first child ( temp 4-component vector of uint)
|
||||
0:219 'parti' ( temp 4-component vector of uint)
|
||||
0:219 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:220 Sequence
|
||||
0:220 move second child to first child ( temp 4-component vector of uint)
|
||||
0:220 'ballot' ( temp 4-component vector of uint)
|
||||
0:220 Constant:
|
||||
0:220 85 (const uint)
|
||||
0:220 0 (const uint)
|
||||
0:220 0 (const uint)
|
||||
0:220 0 (const uint)
|
||||
0:221 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:221 'f4' ( in 4-component vector of float)
|
||||
0:221 'parti' ( temp 4-component vector of uint)
|
||||
0:222 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:222 'f4' ( in 4-component vector of float)
|
||||
0:222 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:223 'f4' ( in 4-component vector of float)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:224 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:224 'f4' ( in 4-component vector of float)
|
||||
0:224 'parti' ( temp 4-component vector of uint)
|
||||
0:225 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:225 'ballot' ( temp 4-component vector of uint)
|
||||
0:225 'parti' ( temp 4-component vector of uint)
|
||||
0:226 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:226 'ballot' ( temp 4-component vector of uint)
|
||||
0:226 'parti' ( temp 4-component vector of uint)
|
||||
0:227 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:227 'ballot' ( temp 4-component vector of uint)
|
||||
0:227 'parti' ( temp 4-component vector of uint)
|
||||
0:228 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:228 'f4' ( in 4-component vector of float)
|
||||
0:228 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:229 'f4' ( in 4-component vector of float)
|
||||
0:229 'parti' ( temp 4-component vector of uint)
|
||||
0:230 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:230 'f4' ( in 4-component vector of float)
|
||||
0:230 'parti' ( temp 4-component vector of uint)
|
||||
0:231 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:231 'f4' ( in 4-component vector of float)
|
||||
0:231 'parti' ( temp 4-component vector of uint)
|
||||
0:232 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:232 'ballot' ( temp 4-component vector of uint)
|
||||
0:232 'parti' ( temp 4-component vector of uint)
|
||||
0:233 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:233 'ballot' ( temp 4-component vector of uint)
|
||||
0:233 'parti' ( temp 4-component vector of uint)
|
||||
0:234 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:234 'ballot' ( temp 4-component vector of uint)
|
||||
0:234 'parti' ( temp 4-component vector of uint)
|
||||
0:235 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:235 'f4' ( in 4-component vector of float)
|
||||
0:235 'parti' ( temp 4-component vector of uint)
|
||||
0:236 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:236 'f4' ( in 4-component vector of float)
|
||||
0:236 'parti' ( temp 4-component vector of uint)
|
||||
0:237 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:237 'f4' ( in 4-component vector of float)
|
||||
0:237 'parti' ( temp 4-component vector of uint)
|
||||
0:238 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:238 'f4' ( in 4-component vector of float)
|
||||
0:238 'parti' ( temp 4-component vector of uint)
|
||||
0:239 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:239 'ballot' ( temp 4-component vector of uint)
|
||||
0:239 'parti' ( temp 4-component vector of uint)
|
||||
0:240 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:240 'ballot' ( temp 4-component vector of uint)
|
||||
0:240 'parti' ( temp 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 'parti' ( temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'data0' (layout( location=0) callableDataNV 4-component vector of float)
|
||||
0:? 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})
|
||||
|
||||
|
||||
Linked callable stage:
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_ray_tracing
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:109 Function Definition: main( ( global void)
|
||||
0:109 Function Parameters:
|
||||
0:111 Sequence
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp 3-component vector of uint)
|
||||
0:111 'id' ( temp 3-component vector of uint)
|
||||
0:111 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp 3-component vector of uint)
|
||||
0:112 'size' ( temp 3-component vector of uint)
|
||||
0:112 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:113 move second child to first child ( temp uint)
|
||||
0:113 data1: direct index for structure ( callableDataInNV uint)
|
||||
0:113 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})
|
||||
0:113 Constant:
|
||||
0:113 0 (const uint)
|
||||
0:113 Constant:
|
||||
0:113 256 (const uint)
|
||||
0:114 executeCallableNV ( global void)
|
||||
0:114 Constant:
|
||||
0:114 2 (const uint)
|
||||
0:114 Constant:
|
||||
0:114 1 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'data0' (layout( location=0) callableDataNV 4-component vector of float)
|
||||
0:? 'anon@0' (layout( location=1) callableDataInNV block{ callableDataInNV uint data1})
|
||||
|
||||
797
Test/baseResults/glsl.460.subgroup.rchit.out
Normal file
797
Test/baseResults/glsl.460.subgroup.rchit.out
Normal file
@@ -0,0 +1,797 @@
|
||||
glsl.460.subgroup.rchit
|
||||
ERROR: 0:7: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:14: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:15: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:16: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:18: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:20: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:22: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:36: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:38: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:40: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:41: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:43: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:63: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:65: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:71: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:73: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:76: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:78: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : 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:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_ray_tracing
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:4 Function Parameters:
|
||||
0:4 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:7 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:8 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:9 subgroupBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrier ( global void)
|
||||
0:11 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:12 subgroupMemoryBarrierImage ( global void)
|
||||
0:13 subgroupElect ( global bool)
|
||||
0:14 'gl_NumSubgroups' ( temp float)
|
||||
0:15 'gl_SubgroupID' ( temp float)
|
||||
0:16 Constant:
|
||||
0:16 0.000000
|
||||
0:18 subgroupAll ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 true (const bool)
|
||||
0:19 subgroupAny ( global bool)
|
||||
0:19 Constant:
|
||||
0:19 false (const bool)
|
||||
0:20 subgroupAllEqual ( global bool)
|
||||
0:20 'f4' ( in 4-component vector of float)
|
||||
0:22 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:23 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:24 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:25 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:26 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:27 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:27 Constant:
|
||||
0:27 0 (const uint)
|
||||
0:28 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:28 'f4' ( in 4-component vector of float)
|
||||
0:29 Sequence
|
||||
0:29 move second child to first child ( temp 4-component vector of uint)
|
||||
0:29 'ballot' ( temp 4-component vector of uint)
|
||||
0:29 subgroupBallot ( global 4-component vector of uint)
|
||||
0:29 Constant:
|
||||
0:29 false (const bool)
|
||||
0:30 subgroupInverseBallot ( global bool)
|
||||
0:30 Constant:
|
||||
0:30 1 (const uint)
|
||||
0:30 1 (const uint)
|
||||
0:30 1 (const uint)
|
||||
0:30 1 (const uint)
|
||||
0:31 subgroupBallotBitExtract ( global bool)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:31 Constant:
|
||||
0:31 0 (const uint)
|
||||
0:32 subgroupBallotBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindLSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:36 subgroupBallotFindMSB ( global uint)
|
||||
0:36 'ballot' ( temp 4-component vector of uint)
|
||||
0:38 subgroupShuffle ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 0 (const uint)
|
||||
0:39 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:41 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:41 'f4' ( in 4-component vector of float)
|
||||
0:41 Constant:
|
||||
0:41 1 (const uint)
|
||||
0:43 move second child to first child ( temp 4-component vector of float)
|
||||
0:43 'result' ( temp 4-component vector of float)
|
||||
0:43 subgroupAdd ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMul ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMin ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupMax ( global 4-component vector of float)
|
||||
0:46 'f4' ( in 4-component vector of float)
|
||||
0:47 subgroupAnd ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupOr ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupXor ( global 4-component vector of uint)
|
||||
0:49 'ballot' ( temp 4-component vector of uint)
|
||||
0:50 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:53 'f4' ( in 4-component vector of float)
|
||||
0:54 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:56 'ballot' ( temp 4-component vector of uint)
|
||||
0:57 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:60 'f4' ( in 4-component vector of float)
|
||||
0:61 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:63 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:63 'ballot' ( temp 4-component vector of uint)
|
||||
0:65 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:68 'f4' ( in 4-component vector of float)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:71 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:71 'ballot' ( temp 4-component vector of uint)
|
||||
0:71 Constant:
|
||||
0:71 2 (const uint)
|
||||
0:73 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:73 Constant:
|
||||
0:73 0 (const uint)
|
||||
0:74 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:76 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:76 'f4' ( in 4-component vector of float)
|
||||
0:78 Sequence
|
||||
0:78 move second child to first child ( temp 4-component vector of uint)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:78 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:79 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:80 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:82 'f4' ( in 4-component vector of float)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:83 'ballot' ( temp 4-component vector of uint)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:85 'ballot' ( temp 4-component vector of uint)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:86 'f4' ( in 4-component vector of float)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:89 'f4' ( in 4-component vector of float)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:90 'ballot' ( temp 4-component vector of uint)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:92 'ballot' ( temp 4-component vector of uint)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:93 'f4' ( in 4-component vector of float)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:96 'f4' ( in 4-component vector of float)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:97 'ballot' ( temp 4-component vector of uint)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:99 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:99 'ballot' ( temp 4-component vector of uint)
|
||||
0:99 'parti' ( temp 4-component vector of uint)
|
||||
0:101 Branch: Return with expression
|
||||
0:101 'result' ( temp 4-component vector of float)
|
||||
0:108 Function Definition: main( ( global void)
|
||||
0:108 Function Parameters:
|
||||
0:110 Sequence
|
||||
0:110 Sequence
|
||||
0:110 move second child to first child ( temp 3-component vector of uint)
|
||||
0:110 'v0' ( temp 3-component vector of uint)
|
||||
0:110 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp 3-component vector of uint)
|
||||
0:111 'v1' ( temp 3-component vector of uint)
|
||||
0:111 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp int)
|
||||
0:112 'v2' ( temp int)
|
||||
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp int)
|
||||
0:113 'v3' ( temp int)
|
||||
0:113 'gl_InstanceID' ( in int InstanceId)
|
||||
0:114 Sequence
|
||||
0:114 move second child to first child ( temp int)
|
||||
0:114 'v4' ( temp int)
|
||||
0:114 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV)
|
||||
0:115 Sequence
|
||||
0:115 move second child to first child ( temp 3-component vector of float)
|
||||
0:115 'v5' ( temp 3-component vector of float)
|
||||
0:115 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
|
||||
0:116 Sequence
|
||||
0:116 move second child to first child ( temp 3-component vector of float)
|
||||
0:116 'v6' ( temp 3-component vector of float)
|
||||
0:116 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
|
||||
0:117 Sequence
|
||||
0:117 move second child to first child ( temp 3-component vector of float)
|
||||
0:117 'v7' ( temp 3-component vector of float)
|
||||
0:117 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
|
||||
0:118 Sequence
|
||||
0:118 move second child to first child ( temp 3-component vector of float)
|
||||
0:118 'v8' ( temp 3-component vector of float)
|
||||
0:118 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
|
||||
0:119 Sequence
|
||||
0:119 move second child to first child ( temp float)
|
||||
0:119 'v9' ( temp float)
|
||||
0:119 'gl_RayTminNV' ( in float ObjectRayTminNV)
|
||||
0:120 Sequence
|
||||
0:120 move second child to first child ( temp float)
|
||||
0:120 'v10' ( temp float)
|
||||
0:120 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
|
||||
0:121 Sequence
|
||||
0:121 move second child to first child ( temp float)
|
||||
0:121 'v11' ( temp float)
|
||||
0:121 'gl_HitTNV' ( in float HitTNV)
|
||||
0:122 Sequence
|
||||
0:122 move second child to first child ( temp uint)
|
||||
0:122 'v12' ( temp uint)
|
||||
0:122 'gl_HitKindNV' ( in uint HitKindNV)
|
||||
0:123 Sequence
|
||||
0:123 move second child to first child ( temp 4X3 matrix of float)
|
||||
0:123 'v13' ( temp 4X3 matrix of float)
|
||||
0:123 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV)
|
||||
0:124 Sequence
|
||||
0:124 move second child to first child ( temp 4X3 matrix of float)
|
||||
0:124 'v14' ( temp 4X3 matrix of float)
|
||||
0:124 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV)
|
||||
0:125 traceNV ( global void)
|
||||
0:125 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||
0:125 Constant:
|
||||
0:125 0 (const uint)
|
||||
0:125 Constant:
|
||||
0:125 1 (const uint)
|
||||
0:125 Constant:
|
||||
0:125 2 (const uint)
|
||||
0:125 Constant:
|
||||
0:125 3 (const uint)
|
||||
0:125 Constant:
|
||||
0:125 0 (const uint)
|
||||
0:125 Constant:
|
||||
0:125 0.500000
|
||||
0:125 0.500000
|
||||
0:125 0.500000
|
||||
0:125 Constant:
|
||||
0:125 0.500000
|
||||
0:125 Constant:
|
||||
0:125 1.000000
|
||||
0:125 1.000000
|
||||
0:125 1.000000
|
||||
0:125 Constant:
|
||||
0:125 0.750000
|
||||
0:125 Constant:
|
||||
0:125 1 (const int)
|
||||
0:129 Function Definition: basic_works( ( global void)
|
||||
0:129 Function Parameters:
|
||||
0:131 Sequence
|
||||
0:131 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:132 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:133 subgroupBarrier ( global void)
|
||||
0:134 subgroupMemoryBarrier ( global void)
|
||||
0:135 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:136 subgroupMemoryBarrierImage ( global void)
|
||||
0:137 subgroupElect ( global bool)
|
||||
0:141 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:141 Function Parameters:
|
||||
0:141 'f4' ( in 4-component vector of float)
|
||||
0:142 Sequence
|
||||
0:142 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:143 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:144 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:145 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:146 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:147 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:147 'f4' ( in 4-component vector of float)
|
||||
0:147 Constant:
|
||||
0:147 0 (const uint)
|
||||
0:148 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:148 'f4' ( in 4-component vector of float)
|
||||
0:149 Sequence
|
||||
0:149 move second child to first child ( temp 4-component vector of uint)
|
||||
0:149 'ballot' ( temp 4-component vector of uint)
|
||||
0:149 subgroupBallot ( global 4-component vector of uint)
|
||||
0:149 Constant:
|
||||
0:149 false (const bool)
|
||||
0:150 subgroupInverseBallot ( global bool)
|
||||
0:150 Constant:
|
||||
0:150 1 (const uint)
|
||||
0:150 1 (const uint)
|
||||
0:150 1 (const uint)
|
||||
0:150 1 (const uint)
|
||||
0:151 subgroupBallotBitExtract ( global bool)
|
||||
0:151 'ballot' ( temp 4-component vector of uint)
|
||||
0:151 Constant:
|
||||
0:151 0 (const uint)
|
||||
0:152 subgroupBallotBitCount ( global uint)
|
||||
0:152 'ballot' ( temp 4-component vector of uint)
|
||||
0:153 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:153 'ballot' ( temp 4-component vector of uint)
|
||||
0:154 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:154 'ballot' ( temp 4-component vector of uint)
|
||||
0:155 subgroupBallotFindLSB ( global uint)
|
||||
0:155 'ballot' ( temp 4-component vector of uint)
|
||||
0:156 subgroupBallotFindMSB ( global uint)
|
||||
0:156 'ballot' ( temp 4-component vector of uint)
|
||||
0:160 Function Definition: vote_works(vf4; ( global void)
|
||||
0:160 Function Parameters:
|
||||
0:160 'f4' ( in 4-component vector of float)
|
||||
0:162 Sequence
|
||||
0:162 subgroupAll ( global bool)
|
||||
0:162 Constant:
|
||||
0:162 true (const bool)
|
||||
0:163 subgroupAny ( global bool)
|
||||
0:163 Constant:
|
||||
0:163 false (const bool)
|
||||
0:164 subgroupAllEqual ( global bool)
|
||||
0:164 'f4' ( in 4-component vector of float)
|
||||
0:169 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:169 Function Parameters:
|
||||
0:169 'f4' ( in 4-component vector of float)
|
||||
0:171 Sequence
|
||||
0:171 subgroupShuffle ( global 4-component vector of float)
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:171 Constant:
|
||||
0:171 0 (const uint)
|
||||
0:172 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:172 'f4' ( in 4-component vector of float)
|
||||
0:172 Constant:
|
||||
0:172 1 (const uint)
|
||||
0:173 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:173 'f4' ( in 4-component vector of float)
|
||||
0:173 Constant:
|
||||
0:173 1 (const uint)
|
||||
0:174 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:174 'f4' ( in 4-component vector of float)
|
||||
0:174 Constant:
|
||||
0:174 1 (const uint)
|
||||
0:178 Function Definition: arith_works(vf4; ( global void)
|
||||
0:178 Function Parameters:
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:181 subgroupAdd ( global 4-component vector of float)
|
||||
0:181 'f4' ( in 4-component vector of float)
|
||||
0:182 subgroupMul ( global 4-component vector of float)
|
||||
0:182 'f4' ( in 4-component vector of float)
|
||||
0:183 subgroupMin ( global 4-component vector of float)
|
||||
0:183 'f4' ( in 4-component vector of float)
|
||||
0:184 subgroupMax ( global 4-component vector of float)
|
||||
0:184 'f4' ( in 4-component vector of float)
|
||||
0:185 subgroupAnd ( global 4-component vector of uint)
|
||||
0:185 'ballot' ( temp 4-component vector of uint)
|
||||
0:186 subgroupOr ( global 4-component vector of uint)
|
||||
0:186 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 subgroupXor ( global 4-component vector of uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:188 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:188 'f4' ( in 4-component vector of float)
|
||||
0:189 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:189 'f4' ( in 4-component vector of float)
|
||||
0:190 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:191 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:192 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:192 'ballot' ( temp 4-component vector of uint)
|
||||
0:193 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:193 'ballot' ( temp 4-component vector of uint)
|
||||
0:194 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:194 'ballot' ( temp 4-component vector of uint)
|
||||
0:195 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:195 'f4' ( in 4-component vector of float)
|
||||
0:196 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:196 'f4' ( in 4-component vector of float)
|
||||
0:197 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:197 'f4' ( in 4-component vector of float)
|
||||
0:198 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:198 'f4' ( in 4-component vector of float)
|
||||
0:199 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:199 'ballot' ( temp 4-component vector of uint)
|
||||
0:200 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:200 'ballot' ( temp 4-component vector of uint)
|
||||
0:201 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:201 'ballot' ( temp 4-component vector of uint)
|
||||
0:205 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:205 Function Parameters:
|
||||
0:205 'f4' ( in 4-component vector of float)
|
||||
0:207 Sequence
|
||||
0:207 Sequence
|
||||
0:207 move second child to first child ( temp 4-component vector of uint)
|
||||
0:207 'ballot' ( temp 4-component vector of uint)
|
||||
0:207 Constant:
|
||||
0:207 85 (const uint)
|
||||
0:207 0 (const uint)
|
||||
0:207 0 (const uint)
|
||||
0:207 0 (const uint)
|
||||
0:208 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:208 Constant:
|
||||
0:208 2 (const uint)
|
||||
0:209 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:209 'f4' ( in 4-component vector of float)
|
||||
0:209 Constant:
|
||||
0:209 2 (const uint)
|
||||
0:210 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:210 'f4' ( in 4-component vector of float)
|
||||
0:210 Constant:
|
||||
0:210 2 (const uint)
|
||||
0:211 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:211 'f4' ( in 4-component vector of float)
|
||||
0:211 Constant:
|
||||
0:211 2 (const uint)
|
||||
0:212 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:212 'ballot' ( temp 4-component vector of uint)
|
||||
0:212 Constant:
|
||||
0:212 2 (const uint)
|
||||
0:213 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:213 'ballot' ( temp 4-component vector of uint)
|
||||
0:213 Constant:
|
||||
0:213 2 (const uint)
|
||||
0:214 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:214 'ballot' ( temp 4-component vector of uint)
|
||||
0:214 Constant:
|
||||
0:214 2 (const uint)
|
||||
0:218 Function Definition: quad_works(vf4; ( global void)
|
||||
0:218 Function Parameters:
|
||||
0:218 'f4' ( in 4-component vector of float)
|
||||
0:220 Sequence
|
||||
0:220 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 Constant:
|
||||
0:220 0 (const uint)
|
||||
0:221 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:221 'f4' ( in 4-component vector of float)
|
||||
0:222 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:222 'f4' ( in 4-component vector of float)
|
||||
0:223 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:223 'f4' ( in 4-component vector of float)
|
||||
0:227 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:227 Function Parameters:
|
||||
0:227 'f4' ( in 4-component vector of float)
|
||||
0:229 Sequence
|
||||
0:229 Sequence
|
||||
0:229 move second child to first child ( temp 4-component vector of uint)
|
||||
0:229 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:229 'f4' ( in 4-component vector of float)
|
||||
0:230 Sequence
|
||||
0:230 move second child to first child ( temp 4-component vector of uint)
|
||||
0:230 'ballot' ( temp 4-component vector of uint)
|
||||
0:230 Constant:
|
||||
0:230 85 (const uint)
|
||||
0:230 0 (const uint)
|
||||
0:230 0 (const uint)
|
||||
0:230 0 (const uint)
|
||||
0:231 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:231 'f4' ( in 4-component vector of float)
|
||||
0:231 'parti' ( temp 4-component vector of uint)
|
||||
0:232 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:232 'f4' ( in 4-component vector of float)
|
||||
0:232 'parti' ( temp 4-component vector of uint)
|
||||
0:233 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:233 'f4' ( in 4-component vector of float)
|
||||
0:233 'parti' ( temp 4-component vector of uint)
|
||||
0:234 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:234 'f4' ( in 4-component vector of float)
|
||||
0:234 'parti' ( temp 4-component vector of uint)
|
||||
0:235 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:235 'ballot' ( temp 4-component vector of uint)
|
||||
0:235 'parti' ( temp 4-component vector of uint)
|
||||
0:236 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:236 'ballot' ( temp 4-component vector of uint)
|
||||
0:236 'parti' ( temp 4-component vector of uint)
|
||||
0:237 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:237 'ballot' ( temp 4-component vector of uint)
|
||||
0:237 'parti' ( temp 4-component vector of uint)
|
||||
0:238 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:238 'f4' ( in 4-component vector of float)
|
||||
0:238 'parti' ( temp 4-component vector of uint)
|
||||
0:239 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:239 'f4' ( in 4-component vector of float)
|
||||
0:239 'parti' ( temp 4-component vector of uint)
|
||||
0:240 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:240 'f4' ( in 4-component vector of float)
|
||||
0:240 'parti' ( temp 4-component vector of uint)
|
||||
0:241 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:241 'f4' ( in 4-component vector of float)
|
||||
0:241 'parti' ( temp 4-component vector of uint)
|
||||
0:242 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:242 'ballot' ( temp 4-component vector of uint)
|
||||
0:242 'parti' ( temp 4-component vector of uint)
|
||||
0:243 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:243 'ballot' ( temp 4-component vector of uint)
|
||||
0:243 'parti' ( temp 4-component vector of uint)
|
||||
0:244 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:244 'ballot' ( temp 4-component vector of uint)
|
||||
0:244 'parti' ( temp 4-component vector of uint)
|
||||
0:245 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:245 'f4' ( in 4-component vector of float)
|
||||
0:245 'parti' ( temp 4-component vector of uint)
|
||||
0:246 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:246 'f4' ( in 4-component vector of float)
|
||||
0:246 'parti' ( temp 4-component vector of uint)
|
||||
0:247 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:247 'f4' ( in 4-component vector of float)
|
||||
0:247 'parti' ( temp 4-component vector of uint)
|
||||
0:248 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:248 'f4' ( in 4-component vector of float)
|
||||
0:248 'parti' ( temp 4-component vector of uint)
|
||||
0:249 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:249 'ballot' ( temp 4-component vector of uint)
|
||||
0:249 'parti' ( temp 4-component vector of uint)
|
||||
0:250 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:250 'ballot' ( temp 4-component vector of uint)
|
||||
0:250 'parti' ( temp 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 'parti' ( temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
|
||||
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
|
||||
|
||||
|
||||
Linked closest-hit stage:
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_ray_tracing
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:108 Function Definition: main( ( global void)
|
||||
0:108 Function Parameters:
|
||||
0:110 Sequence
|
||||
0:110 Sequence
|
||||
0:110 move second child to first child ( temp 3-component vector of uint)
|
||||
0:110 'v0' ( temp 3-component vector of uint)
|
||||
0:110 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp 3-component vector of uint)
|
||||
0:111 'v1' ( temp 3-component vector of uint)
|
||||
0:111 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp int)
|
||||
0:112 'v2' ( temp int)
|
||||
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp int)
|
||||
0:113 'v3' ( temp int)
|
||||
0:113 'gl_InstanceID' ( in int InstanceId)
|
||||
0:114 Sequence
|
||||
0:114 move second child to first child ( temp int)
|
||||
0:114 'v4' ( temp int)
|
||||
0:114 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV)
|
||||
0:115 Sequence
|
||||
0:115 move second child to first child ( temp 3-component vector of float)
|
||||
0:115 'v5' ( temp 3-component vector of float)
|
||||
0:115 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
|
||||
0:116 Sequence
|
||||
0:116 move second child to first child ( temp 3-component vector of float)
|
||||
0:116 'v6' ( temp 3-component vector of float)
|
||||
0:116 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
|
||||
0:117 Sequence
|
||||
0:117 move second child to first child ( temp 3-component vector of float)
|
||||
0:117 'v7' ( temp 3-component vector of float)
|
||||
0:117 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
|
||||
0:118 Sequence
|
||||
0:118 move second child to first child ( temp 3-component vector of float)
|
||||
0:118 'v8' ( temp 3-component vector of float)
|
||||
0:118 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
|
||||
0:119 Sequence
|
||||
0:119 move second child to first child ( temp float)
|
||||
0:119 'v9' ( temp float)
|
||||
0:119 'gl_RayTminNV' ( in float ObjectRayTminNV)
|
||||
0:120 Sequence
|
||||
0:120 move second child to first child ( temp float)
|
||||
0:120 'v10' ( temp float)
|
||||
0:120 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
|
||||
0:121 Sequence
|
||||
0:121 move second child to first child ( temp float)
|
||||
0:121 'v11' ( temp float)
|
||||
0:121 'gl_HitTNV' ( in float HitTNV)
|
||||
0:122 Sequence
|
||||
0:122 move second child to first child ( temp uint)
|
||||
0:122 'v12' ( temp uint)
|
||||
0:122 'gl_HitKindNV' ( in uint HitKindNV)
|
||||
0:123 Sequence
|
||||
0:123 move second child to first child ( temp 4X3 matrix of float)
|
||||
0:123 'v13' ( temp 4X3 matrix of float)
|
||||
0:123 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV)
|
||||
0:124 Sequence
|
||||
0:124 move second child to first child ( temp 4X3 matrix of float)
|
||||
0:124 'v14' ( temp 4X3 matrix of float)
|
||||
0:124 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV)
|
||||
0:125 traceNV ( global void)
|
||||
0:125 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||
0:125 Constant:
|
||||
0:125 0 (const uint)
|
||||
0:125 Constant:
|
||||
0:125 1 (const uint)
|
||||
0:125 Constant:
|
||||
0:125 2 (const uint)
|
||||
0:125 Constant:
|
||||
0:125 3 (const uint)
|
||||
0:125 Constant:
|
||||
0:125 0 (const uint)
|
||||
0:125 Constant:
|
||||
0:125 0.500000
|
||||
0:125 0.500000
|
||||
0:125 0.500000
|
||||
0:125 Constant:
|
||||
0:125 0.500000
|
||||
0:125 Constant:
|
||||
0:125 1.000000
|
||||
0:125 1.000000
|
||||
0:125 1.000000
|
||||
0:125 Constant:
|
||||
0:125 0.750000
|
||||
0:125 Constant:
|
||||
0:125 1 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
|
||||
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
|
||||
|
||||
727
Test/baseResults/glsl.460.subgroup.rgen.out
Normal file
727
Test/baseResults/glsl.460.subgroup.rgen.out
Normal file
@@ -0,0 +1,727 @@
|
||||
glsl.460.subgroup.rgen
|
||||
ERROR: 0:7: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:14: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:15: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:16: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:18: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:20: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:22: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:36: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:38: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:40: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:41: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:43: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:63: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:65: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:71: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:73: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:76: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:78: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveMaxNV' : 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:99: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_ray_tracing
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:4 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:4 Function Parameters:
|
||||
0:4 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:7 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:8 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:9 subgroupBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrier ( global void)
|
||||
0:11 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:12 subgroupMemoryBarrierImage ( global void)
|
||||
0:13 subgroupElect ( global bool)
|
||||
0:14 'gl_NumSubgroups' ( temp float)
|
||||
0:15 'gl_SubgroupID' ( temp float)
|
||||
0:16 Constant:
|
||||
0:16 0.000000
|
||||
0:18 subgroupAll ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 true (const bool)
|
||||
0:19 subgroupAny ( global bool)
|
||||
0:19 Constant:
|
||||
0:19 false (const bool)
|
||||
0:20 subgroupAllEqual ( global bool)
|
||||
0:20 'f4' ( in 4-component vector of float)
|
||||
0:22 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:23 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:24 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:25 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:26 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:27 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:27 Constant:
|
||||
0:27 0 (const uint)
|
||||
0:28 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:28 'f4' ( in 4-component vector of float)
|
||||
0:29 Sequence
|
||||
0:29 move second child to first child ( temp 4-component vector of uint)
|
||||
0:29 'ballot' ( temp 4-component vector of uint)
|
||||
0:29 subgroupBallot ( global 4-component vector of uint)
|
||||
0:29 Constant:
|
||||
0:29 false (const bool)
|
||||
0:30 subgroupInverseBallot ( global bool)
|
||||
0:30 Constant:
|
||||
0:30 1 (const uint)
|
||||
0:30 1 (const uint)
|
||||
0:30 1 (const uint)
|
||||
0:30 1 (const uint)
|
||||
0:31 subgroupBallotBitExtract ( global bool)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:31 Constant:
|
||||
0:31 0 (const uint)
|
||||
0:32 subgroupBallotBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindLSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:36 subgroupBallotFindMSB ( global uint)
|
||||
0:36 'ballot' ( temp 4-component vector of uint)
|
||||
0:38 subgroupShuffle ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 0 (const uint)
|
||||
0:39 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:41 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:41 'f4' ( in 4-component vector of float)
|
||||
0:41 Constant:
|
||||
0:41 1 (const uint)
|
||||
0:43 move second child to first child ( temp 4-component vector of float)
|
||||
0:43 'result' ( temp 4-component vector of float)
|
||||
0:43 subgroupAdd ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMul ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMin ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupMax ( global 4-component vector of float)
|
||||
0:46 'f4' ( in 4-component vector of float)
|
||||
0:47 subgroupAnd ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupOr ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupXor ( global 4-component vector of uint)
|
||||
0:49 'ballot' ( temp 4-component vector of uint)
|
||||
0:50 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:53 'f4' ( in 4-component vector of float)
|
||||
0:54 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:56 'ballot' ( temp 4-component vector of uint)
|
||||
0:57 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:60 'f4' ( in 4-component vector of float)
|
||||
0:61 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:63 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:63 'ballot' ( temp 4-component vector of uint)
|
||||
0:65 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:68 'f4' ( in 4-component vector of float)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:71 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:71 'ballot' ( temp 4-component vector of uint)
|
||||
0:71 Constant:
|
||||
0:71 2 (const uint)
|
||||
0:73 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:73 Constant:
|
||||
0:73 0 (const uint)
|
||||
0:74 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:76 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:76 'f4' ( in 4-component vector of float)
|
||||
0:78 Sequence
|
||||
0:78 move second child to first child ( temp 4-component vector of uint)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:78 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:79 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:80 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:82 'f4' ( in 4-component vector of float)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:83 'ballot' ( temp 4-component vector of uint)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:85 'ballot' ( temp 4-component vector of uint)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:86 'f4' ( in 4-component vector of float)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:89 'f4' ( in 4-component vector of float)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:90 'ballot' ( temp 4-component vector of uint)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:92 'ballot' ( temp 4-component vector of uint)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:93 'f4' ( in 4-component vector of float)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:96 'f4' ( in 4-component vector of float)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:97 'ballot' ( temp 4-component vector of uint)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:99 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:99 'ballot' ( temp 4-component vector of uint)
|
||||
0:99 'parti' ( temp 4-component vector of uint)
|
||||
0:101 Branch: Return with expression
|
||||
0:101 'result' ( temp 4-component vector of float)
|
||||
0:113 Function Definition: main( ( global void)
|
||||
0:113 Function Parameters:
|
||||
0:115 Sequence
|
||||
0:115 Sequence
|
||||
0:115 move second child to first child ( temp uint)
|
||||
0:115 'lx' ( temp uint)
|
||||
0:115 direct index ( temp uint)
|
||||
0:115 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:115 Constant:
|
||||
0:115 0 (const int)
|
||||
0:116 Sequence
|
||||
0:116 move second child to first child ( temp uint)
|
||||
0:116 'ly' ( temp uint)
|
||||
0:116 direct index ( temp uint)
|
||||
0:116 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:116 Constant:
|
||||
0:116 1 (const int)
|
||||
0:117 Sequence
|
||||
0:117 move second child to first child ( temp uint)
|
||||
0:117 'sx' ( temp uint)
|
||||
0:117 direct index ( temp uint)
|
||||
0:117 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:117 Constant:
|
||||
0:117 0 (const int)
|
||||
0:118 Sequence
|
||||
0:118 move second child to first child ( temp uint)
|
||||
0:118 'sy' ( temp uint)
|
||||
0:118 direct index ( temp uint)
|
||||
0:118 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:118 Constant:
|
||||
0:118 1 (const int)
|
||||
0:119 traceNV ( global void)
|
||||
0:119 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||
0:119 'lx' ( temp uint)
|
||||
0:119 'ly' ( temp uint)
|
||||
0:119 'sx' ( temp uint)
|
||||
0:119 'sy' ( temp uint)
|
||||
0:119 Constant:
|
||||
0:119 0 (const uint)
|
||||
0:119 origin: direct index for structure (layout( column_major std430 offset=16) buffer 3-component vector of float)
|
||||
0:119 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin})
|
||||
0:119 Constant:
|
||||
0:119 1 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 0.500000
|
||||
0:119 dir: direct index for structure (layout( column_major std430 offset=0) buffer 3-component vector of float)
|
||||
0:119 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin})
|
||||
0:119 Constant:
|
||||
0:119 0 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 0.750000
|
||||
0:119 Constant:
|
||||
0:119 1 (const int)
|
||||
0:123 Function Definition: basic_works( ( global void)
|
||||
0:123 Function Parameters:
|
||||
0:125 Sequence
|
||||
0:125 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:126 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:127 subgroupBarrier ( global void)
|
||||
0:128 subgroupMemoryBarrier ( global void)
|
||||
0:129 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:130 subgroupMemoryBarrierImage ( global void)
|
||||
0:131 subgroupElect ( global bool)
|
||||
0:135 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:135 Function Parameters:
|
||||
0:135 'f4' ( in 4-component vector of float)
|
||||
0:136 Sequence
|
||||
0:136 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:137 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:138 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:139 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:140 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:141 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:141 'f4' ( in 4-component vector of float)
|
||||
0:141 Constant:
|
||||
0:141 0 (const uint)
|
||||
0:142 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:142 'f4' ( in 4-component vector of float)
|
||||
0:143 Sequence
|
||||
0:143 move second child to first child ( temp 4-component vector of uint)
|
||||
0:143 'ballot' ( temp 4-component vector of uint)
|
||||
0:143 subgroupBallot ( global 4-component vector of uint)
|
||||
0:143 Constant:
|
||||
0:143 false (const bool)
|
||||
0:144 subgroupInverseBallot ( global bool)
|
||||
0:144 Constant:
|
||||
0:144 1 (const uint)
|
||||
0:144 1 (const uint)
|
||||
0:144 1 (const uint)
|
||||
0:144 1 (const uint)
|
||||
0:145 subgroupBallotBitExtract ( global bool)
|
||||
0:145 'ballot' ( temp 4-component vector of uint)
|
||||
0:145 Constant:
|
||||
0:145 0 (const uint)
|
||||
0:146 subgroupBallotBitCount ( global uint)
|
||||
0:146 'ballot' ( temp 4-component vector of uint)
|
||||
0:147 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:147 'ballot' ( temp 4-component vector of uint)
|
||||
0:148 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:148 'ballot' ( temp 4-component vector of uint)
|
||||
0:149 subgroupBallotFindLSB ( global uint)
|
||||
0:149 'ballot' ( temp 4-component vector of uint)
|
||||
0:150 subgroupBallotFindMSB ( global uint)
|
||||
0:150 'ballot' ( temp 4-component vector of uint)
|
||||
0:154 Function Definition: vote_works(vf4; ( global void)
|
||||
0:154 Function Parameters:
|
||||
0:154 'f4' ( in 4-component vector of float)
|
||||
0:156 Sequence
|
||||
0:156 subgroupAll ( global bool)
|
||||
0:156 Constant:
|
||||
0:156 true (const bool)
|
||||
0:157 subgroupAny ( global bool)
|
||||
0:157 Constant:
|
||||
0:157 false (const bool)
|
||||
0:158 subgroupAllEqual ( global bool)
|
||||
0:158 'f4' ( in 4-component vector of float)
|
||||
0:163 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:163 Function Parameters:
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:165 Sequence
|
||||
0:165 subgroupShuffle ( global 4-component vector of float)
|
||||
0:165 'f4' ( in 4-component vector of float)
|
||||
0:165 Constant:
|
||||
0:165 0 (const uint)
|
||||
0:166 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:166 'f4' ( in 4-component vector of float)
|
||||
0:166 Constant:
|
||||
0:166 1 (const uint)
|
||||
0:167 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:167 'f4' ( in 4-component vector of float)
|
||||
0:167 Constant:
|
||||
0:167 1 (const uint)
|
||||
0:168 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:168 'f4' ( in 4-component vector of float)
|
||||
0:168 Constant:
|
||||
0:168 1 (const uint)
|
||||
0:172 Function Definition: arith_works(vf4; ( global void)
|
||||
0:172 Function Parameters:
|
||||
0:172 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:175 subgroupAdd ( global 4-component vector of float)
|
||||
0:175 'f4' ( in 4-component vector of float)
|
||||
0:176 subgroupMul ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:177 subgroupMin ( global 4-component vector of float)
|
||||
0:177 'f4' ( in 4-component vector of float)
|
||||
0:178 subgroupMax ( global 4-component vector of float)
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:179 subgroupAnd ( global 4-component vector of uint)
|
||||
0:179 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 subgroupOr ( global 4-component vector of uint)
|
||||
0:180 'ballot' ( temp 4-component vector of uint)
|
||||
0:181 subgroupXor ( global 4-component vector of uint)
|
||||
0:181 'ballot' ( temp 4-component vector of uint)
|
||||
0:182 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:182 'f4' ( in 4-component vector of float)
|
||||
0:183 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:183 'f4' ( in 4-component vector of float)
|
||||
0:184 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:184 'f4' ( in 4-component vector of float)
|
||||
0:185 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:185 'f4' ( in 4-component vector of float)
|
||||
0:186 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:186 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:188 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:188 'ballot' ( temp 4-component vector of uint)
|
||||
0:189 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:189 'f4' ( in 4-component vector of float)
|
||||
0:190 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:191 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:192 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:192 'f4' ( in 4-component vector of float)
|
||||
0:193 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:193 'ballot' ( temp 4-component vector of uint)
|
||||
0:194 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:194 'ballot' ( temp 4-component vector of uint)
|
||||
0:195 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:195 'ballot' ( temp 4-component vector of uint)
|
||||
0:199 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:199 Function Parameters:
|
||||
0:199 'f4' ( in 4-component vector of float)
|
||||
0:201 Sequence
|
||||
0:201 Sequence
|
||||
0:201 move second child to first child ( temp 4-component vector of uint)
|
||||
0:201 'ballot' ( temp 4-component vector of uint)
|
||||
0:201 Constant:
|
||||
0:201 85 (const uint)
|
||||
0:201 0 (const uint)
|
||||
0:201 0 (const uint)
|
||||
0:201 0 (const uint)
|
||||
0:202 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:202 Constant:
|
||||
0:202 2 (const uint)
|
||||
0:203 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:203 'f4' ( in 4-component vector of float)
|
||||
0:203 Constant:
|
||||
0:203 2 (const uint)
|
||||
0:204 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:204 'f4' ( in 4-component vector of float)
|
||||
0:204 Constant:
|
||||
0:204 2 (const uint)
|
||||
0:205 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:205 'f4' ( in 4-component vector of float)
|
||||
0:205 Constant:
|
||||
0:205 2 (const uint)
|
||||
0:206 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:206 'ballot' ( temp 4-component vector of uint)
|
||||
0:206 Constant:
|
||||
0:206 2 (const uint)
|
||||
0:207 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:207 'ballot' ( temp 4-component vector of uint)
|
||||
0:207 Constant:
|
||||
0:207 2 (const uint)
|
||||
0:208 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:208 'ballot' ( temp 4-component vector of uint)
|
||||
0:208 Constant:
|
||||
0:208 2 (const uint)
|
||||
0:212 Function Definition: quad_works(vf4; ( global void)
|
||||
0:212 Function Parameters:
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:214 Sequence
|
||||
0:214 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:214 Constant:
|
||||
0:214 0 (const uint)
|
||||
0:215 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:215 'f4' ( in 4-component vector of float)
|
||||
0:216 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:216 'f4' ( in 4-component vector of float)
|
||||
0:217 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:217 'f4' ( in 4-component vector of float)
|
||||
0:221 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:221 Function Parameters:
|
||||
0:221 'f4' ( in 4-component vector of float)
|
||||
0:223 Sequence
|
||||
0:223 Sequence
|
||||
0:223 move second child to first child ( temp 4-component vector of uint)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:223 'f4' ( in 4-component vector of float)
|
||||
0:224 Sequence
|
||||
0:224 move second child to first child ( temp 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 Constant:
|
||||
0:224 85 (const uint)
|
||||
0:224 0 (const uint)
|
||||
0:224 0 (const uint)
|
||||
0:224 0 (const uint)
|
||||
0:225 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:225 'f4' ( in 4-component vector of float)
|
||||
0:225 'parti' ( temp 4-component vector of uint)
|
||||
0:226 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:226 'f4' ( in 4-component vector of float)
|
||||
0:226 'parti' ( temp 4-component vector of uint)
|
||||
0:227 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:227 'f4' ( in 4-component vector of float)
|
||||
0:227 'parti' ( temp 4-component vector of uint)
|
||||
0:228 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:228 'f4' ( in 4-component vector of float)
|
||||
0:228 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:229 'ballot' ( temp 4-component vector of uint)
|
||||
0:229 'parti' ( temp 4-component vector of uint)
|
||||
0:230 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:230 'ballot' ( temp 4-component vector of uint)
|
||||
0:230 'parti' ( temp 4-component vector of uint)
|
||||
0:231 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:231 'ballot' ( temp 4-component vector of uint)
|
||||
0:231 'parti' ( temp 4-component vector of uint)
|
||||
0:232 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:232 'f4' ( in 4-component vector of float)
|
||||
0:232 'parti' ( temp 4-component vector of uint)
|
||||
0:233 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:233 'f4' ( in 4-component vector of float)
|
||||
0:233 'parti' ( temp 4-component vector of uint)
|
||||
0:234 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:234 'f4' ( in 4-component vector of float)
|
||||
0:234 'parti' ( temp 4-component vector of uint)
|
||||
0:235 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:235 'f4' ( in 4-component vector of float)
|
||||
0:235 'parti' ( temp 4-component vector of uint)
|
||||
0:236 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:236 'ballot' ( temp 4-component vector of uint)
|
||||
0:236 'parti' ( temp 4-component vector of uint)
|
||||
0:237 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:237 'ballot' ( temp 4-component vector of uint)
|
||||
0:237 'parti' ( temp 4-component vector of uint)
|
||||
0:238 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:238 'ballot' ( temp 4-component vector of uint)
|
||||
0:238 'parti' ( temp 4-component vector of uint)
|
||||
0:239 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:239 'f4' ( in 4-component vector of float)
|
||||
0:239 'parti' ( temp 4-component vector of uint)
|
||||
0:240 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:240 'f4' ( in 4-component vector of float)
|
||||
0:240 'parti' ( temp 4-component vector of uint)
|
||||
0:241 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:241 'f4' ( in 4-component vector of float)
|
||||
0:241 'parti' ( temp 4-component vector of uint)
|
||||
0:242 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:242 'f4' ( in 4-component vector of float)
|
||||
0:242 'parti' ( temp 4-component vector of uint)
|
||||
0:243 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:243 'ballot' ( temp 4-component vector of uint)
|
||||
0:243 'parti' ( temp 4-component vector of uint)
|
||||
0:244 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:244 'ballot' ( temp 4-component vector of uint)
|
||||
0:244 'parti' ( temp 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 'parti' ( temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||
0:? 'accNV1' (layout( set=0 binding=1) uniform accelerationStructureNV)
|
||||
0:? 'payload' (layout( location=0) rayPayloadNV 4-component vector of float)
|
||||
0:? 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin})
|
||||
|
||||
|
||||
Linked ray-generation stage:
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_ray_tracing
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:113 Function Definition: main( ( global void)
|
||||
0:113 Function Parameters:
|
||||
0:115 Sequence
|
||||
0:115 Sequence
|
||||
0:115 move second child to first child ( temp uint)
|
||||
0:115 'lx' ( temp uint)
|
||||
0:115 direct index ( temp uint)
|
||||
0:115 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:115 Constant:
|
||||
0:115 0 (const int)
|
||||
0:116 Sequence
|
||||
0:116 move second child to first child ( temp uint)
|
||||
0:116 'ly' ( temp uint)
|
||||
0:116 direct index ( temp uint)
|
||||
0:116 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:116 Constant:
|
||||
0:116 1 (const int)
|
||||
0:117 Sequence
|
||||
0:117 move second child to first child ( temp uint)
|
||||
0:117 'sx' ( temp uint)
|
||||
0:117 direct index ( temp uint)
|
||||
0:117 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:117 Constant:
|
||||
0:117 0 (const int)
|
||||
0:118 Sequence
|
||||
0:118 move second child to first child ( temp uint)
|
||||
0:118 'sy' ( temp uint)
|
||||
0:118 direct index ( temp uint)
|
||||
0:118 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:118 Constant:
|
||||
0:118 1 (const int)
|
||||
0:119 traceNV ( global void)
|
||||
0:119 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||
0:119 'lx' ( temp uint)
|
||||
0:119 'ly' ( temp uint)
|
||||
0:119 'sx' ( temp uint)
|
||||
0:119 'sy' ( temp uint)
|
||||
0:119 Constant:
|
||||
0:119 0 (const uint)
|
||||
0:119 origin: direct index for structure (layout( column_major std430 offset=16) buffer 3-component vector of float)
|
||||
0:119 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin})
|
||||
0:119 Constant:
|
||||
0:119 1 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 0.500000
|
||||
0:119 dir: direct index for structure (layout( column_major std430 offset=0) buffer 3-component vector of float)
|
||||
0:119 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin})
|
||||
0:119 Constant:
|
||||
0:119 0 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 0.750000
|
||||
0:119 Constant:
|
||||
0:119 1 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'accNV0' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||
0:? 'accNV1' (layout( set=0 binding=1) uniform accelerationStructureNV)
|
||||
0:? 'payload' (layout( location=0) rayPayloadNV 4-component vector of float)
|
||||
0:? 'anon@0' (layout( column_major std430 shaderRecordNV) buffer block{layout( column_major std430 offset=0) buffer 3-component vector of float dir, layout( column_major std430 offset=16) buffer 3-component vector of float origin})
|
||||
|
||||
749
Test/baseResults/glsl.460.subgroup.rint.out
Normal file
749
Test/baseResults/glsl.460.subgroup.rint.out
Normal file
@@ -0,0 +1,749 @@
|
||||
glsl.460.subgroup.rint
|
||||
ERROR: 0:8: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:14: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:15: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:16: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:17: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:19: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:20: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:23: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:36: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:39: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:40: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:41: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:44: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:63: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:66: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:71: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:74: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:76: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:79: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:97: 'subgroupPartitionedExclusiveMaxNV' : 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:100: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_ray_tracing
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:5 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:5 Function Parameters:
|
||||
0:5 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:8 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:9 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:10 subgroupBarrier ( global void)
|
||||
0:11 subgroupMemoryBarrier ( global void)
|
||||
0:12 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:13 subgroupMemoryBarrierImage ( global void)
|
||||
0:14 subgroupElect ( global bool)
|
||||
0:15 'gl_NumSubgroups' ( temp float)
|
||||
0:16 'gl_SubgroupID' ( temp float)
|
||||
0:17 Constant:
|
||||
0:17 0.000000
|
||||
0:19 subgroupAll ( global bool)
|
||||
0:19 Constant:
|
||||
0:19 true (const bool)
|
||||
0:20 subgroupAny ( global bool)
|
||||
0:20 Constant:
|
||||
0:20 false (const bool)
|
||||
0:21 subgroupAllEqual ( global bool)
|
||||
0:21 'f4' ( in 4-component vector of float)
|
||||
0:23 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:24 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:25 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:26 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:27 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:28 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:28 'f4' ( in 4-component vector of float)
|
||||
0:28 Constant:
|
||||
0:28 0 (const uint)
|
||||
0:29 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:29 'f4' ( in 4-component vector of float)
|
||||
0:30 Sequence
|
||||
0:30 move second child to first child ( temp 4-component vector of uint)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 subgroupBallot ( global 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 false (const bool)
|
||||
0:31 subgroupInverseBallot ( global bool)
|
||||
0:31 Constant:
|
||||
0:31 1 (const uint)
|
||||
0:31 1 (const uint)
|
||||
0:31 1 (const uint)
|
||||
0:31 1 (const uint)
|
||||
0:32 subgroupBallotBitExtract ( global bool)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 Constant:
|
||||
0:32 0 (const uint)
|
||||
0:33 subgroupBallotBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:36 subgroupBallotFindLSB ( global uint)
|
||||
0:36 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupBallotFindMSB ( global uint)
|
||||
0:37 'ballot' ( temp 4-component vector of uint)
|
||||
0:39 subgroupShuffle ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 0 (const uint)
|
||||
0:40 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:41 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:41 'f4' ( in 4-component vector of float)
|
||||
0:41 Constant:
|
||||
0:41 1 (const uint)
|
||||
0:42 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:42 Constant:
|
||||
0:42 1 (const uint)
|
||||
0:44 move second child to first child ( temp 4-component vector of float)
|
||||
0:44 'result' ( temp 4-component vector of float)
|
||||
0:44 subgroupAdd ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMul ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupMin ( global 4-component vector of float)
|
||||
0:46 'f4' ( in 4-component vector of float)
|
||||
0:47 subgroupMax ( global 4-component vector of float)
|
||||
0:47 'f4' ( in 4-component vector of float)
|
||||
0:48 subgroupAnd ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupOr ( global 4-component vector of uint)
|
||||
0:49 'ballot' ( temp 4-component vector of uint)
|
||||
0:50 subgroupXor ( global 4-component vector of uint)
|
||||
0:50 'ballot' ( temp 4-component vector of uint)
|
||||
0:51 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:53 'f4' ( in 4-component vector of float)
|
||||
0:54 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:54 'f4' ( in 4-component vector of float)
|
||||
0:55 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:56 'ballot' ( temp 4-component vector of uint)
|
||||
0:57 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:57 'ballot' ( temp 4-component vector of uint)
|
||||
0:58 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:60 'f4' ( in 4-component vector of float)
|
||||
0:61 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:61 'f4' ( in 4-component vector of float)
|
||||
0:62 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:63 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:63 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:64 'ballot' ( temp 4-component vector of uint)
|
||||
0:66 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:68 'f4' ( in 4-component vector of float)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:69 'f4' ( in 4-component vector of float)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:71 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:71 'ballot' ( temp 4-component vector of uint)
|
||||
0:71 Constant:
|
||||
0:71 2 (const uint)
|
||||
0:72 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:72 'ballot' ( temp 4-component vector of uint)
|
||||
0:72 Constant:
|
||||
0:72 2 (const uint)
|
||||
0:74 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:74 Constant:
|
||||
0:74 0 (const uint)
|
||||
0:75 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:76 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:76 'f4' ( in 4-component vector of float)
|
||||
0:77 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:79 Sequence
|
||||
0:79 move second child to first child ( temp 4-component vector of uint)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:80 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:82 'f4' ( in 4-component vector of float)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:83 'f4' ( in 4-component vector of float)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:85 'ballot' ( temp 4-component vector of uint)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:86 'ballot' ( temp 4-component vector of uint)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:89 'f4' ( in 4-component vector of float)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:90 'f4' ( in 4-component vector of float)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:92 'ballot' ( temp 4-component vector of uint)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:93 'ballot' ( temp 4-component vector of uint)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:96 'f4' ( in 4-component vector of float)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:97 'f4' ( in 4-component vector of float)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:99 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:99 'ballot' ( temp 4-component vector of uint)
|
||||
0:99 'parti' ( temp 4-component vector of uint)
|
||||
0:100 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:100 'ballot' ( temp 4-component vector of uint)
|
||||
0:100 'parti' ( temp 4-component vector of uint)
|
||||
0:102 Branch: Return with expression
|
||||
0:102 'result' ( temp 4-component vector of float)
|
||||
0:108 Function Definition: main( ( global void)
|
||||
0:108 Function Parameters:
|
||||
0:110 Sequence
|
||||
0:110 Sequence
|
||||
0:110 move second child to first child ( temp 3-component vector of uint)
|
||||
0:110 'v0' ( temp 3-component vector of uint)
|
||||
0:110 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp 3-component vector of uint)
|
||||
0:111 'v1' ( temp 3-component vector of uint)
|
||||
0:111 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp int)
|
||||
0:112 'v2' ( temp int)
|
||||
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp int)
|
||||
0:113 'v3' ( temp int)
|
||||
0:113 'gl_InstanceID' ( in int InstanceId)
|
||||
0:114 Sequence
|
||||
0:114 move second child to first child ( temp int)
|
||||
0:114 'v4' ( temp int)
|
||||
0:114 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV)
|
||||
0:115 Sequence
|
||||
0:115 move second child to first child ( temp 3-component vector of float)
|
||||
0:115 'v5' ( temp 3-component vector of float)
|
||||
0:115 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
|
||||
0:116 Sequence
|
||||
0:116 move second child to first child ( temp 3-component vector of float)
|
||||
0:116 'v6' ( temp 3-component vector of float)
|
||||
0:116 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
|
||||
0:117 Sequence
|
||||
0:117 move second child to first child ( temp 3-component vector of float)
|
||||
0:117 'v7' ( temp 3-component vector of float)
|
||||
0:117 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
|
||||
0:118 Sequence
|
||||
0:118 move second child to first child ( temp 3-component vector of float)
|
||||
0:118 'v8' ( temp 3-component vector of float)
|
||||
0:118 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
|
||||
0:119 Sequence
|
||||
0:119 move second child to first child ( temp float)
|
||||
0:119 'v9' ( temp float)
|
||||
0:119 'gl_RayTminNV' ( in float ObjectRayTminNV)
|
||||
0:120 Sequence
|
||||
0:120 move second child to first child ( temp float)
|
||||
0:120 'v10' ( temp float)
|
||||
0:120 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
|
||||
0:121 Sequence
|
||||
0:121 move second child to first child ( temp 4X3 matrix of float)
|
||||
0:121 'v11' ( temp 4X3 matrix of float)
|
||||
0:121 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV)
|
||||
0:122 Sequence
|
||||
0:122 move second child to first child ( temp 4X3 matrix of float)
|
||||
0:122 'v12' ( temp 4X3 matrix of float)
|
||||
0:122 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV)
|
||||
0:123 move second child to first child ( temp 4-component vector of float)
|
||||
0:123 'iAttr' ( hitAttributeNV 4-component vector of float)
|
||||
0:123 Constant:
|
||||
0:123 0.500000
|
||||
0:123 0.500000
|
||||
0:123 0.000000
|
||||
0:123 1.000000
|
||||
0:124 reportIntersectionNV ( global bool)
|
||||
0:124 Constant:
|
||||
0:124 0.500000
|
||||
0:124 Constant:
|
||||
0:124 1 (const uint)
|
||||
0:129 Function Definition: basic_works( ( global void)
|
||||
0:129 Function Parameters:
|
||||
0:131 Sequence
|
||||
0:131 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:132 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:133 subgroupBarrier ( global void)
|
||||
0:134 subgroupMemoryBarrier ( global void)
|
||||
0:135 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:136 subgroupMemoryBarrierImage ( global void)
|
||||
0:137 subgroupElect ( global bool)
|
||||
0:141 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:141 Function Parameters:
|
||||
0:141 'f4' ( in 4-component vector of float)
|
||||
0:142 Sequence
|
||||
0:142 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:143 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:144 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:145 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:146 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:147 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:147 'f4' ( in 4-component vector of float)
|
||||
0:147 Constant:
|
||||
0:147 0 (const uint)
|
||||
0:148 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:148 'f4' ( in 4-component vector of float)
|
||||
0:149 Sequence
|
||||
0:149 move second child to first child ( temp 4-component vector of uint)
|
||||
0:149 'ballot' ( temp 4-component vector of uint)
|
||||
0:149 subgroupBallot ( global 4-component vector of uint)
|
||||
0:149 Constant:
|
||||
0:149 false (const bool)
|
||||
0:150 subgroupInverseBallot ( global bool)
|
||||
0:150 Constant:
|
||||
0:150 1 (const uint)
|
||||
0:150 1 (const uint)
|
||||
0:150 1 (const uint)
|
||||
0:150 1 (const uint)
|
||||
0:151 subgroupBallotBitExtract ( global bool)
|
||||
0:151 'ballot' ( temp 4-component vector of uint)
|
||||
0:151 Constant:
|
||||
0:151 0 (const uint)
|
||||
0:152 subgroupBallotBitCount ( global uint)
|
||||
0:152 'ballot' ( temp 4-component vector of uint)
|
||||
0:153 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:153 'ballot' ( temp 4-component vector of uint)
|
||||
0:154 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:154 'ballot' ( temp 4-component vector of uint)
|
||||
0:155 subgroupBallotFindLSB ( global uint)
|
||||
0:155 'ballot' ( temp 4-component vector of uint)
|
||||
0:156 subgroupBallotFindMSB ( global uint)
|
||||
0:156 'ballot' ( temp 4-component vector of uint)
|
||||
0:160 Function Definition: vote_works(vf4; ( global void)
|
||||
0:160 Function Parameters:
|
||||
0:160 'f4' ( in 4-component vector of float)
|
||||
0:162 Sequence
|
||||
0:162 subgroupAll ( global bool)
|
||||
0:162 Constant:
|
||||
0:162 true (const bool)
|
||||
0:163 subgroupAny ( global bool)
|
||||
0:163 Constant:
|
||||
0:163 false (const bool)
|
||||
0:164 subgroupAllEqual ( global bool)
|
||||
0:164 'f4' ( in 4-component vector of float)
|
||||
0:169 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:169 Function Parameters:
|
||||
0:169 'f4' ( in 4-component vector of float)
|
||||
0:171 Sequence
|
||||
0:171 subgroupShuffle ( global 4-component vector of float)
|
||||
0:171 'f4' ( in 4-component vector of float)
|
||||
0:171 Constant:
|
||||
0:171 0 (const uint)
|
||||
0:172 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:172 'f4' ( in 4-component vector of float)
|
||||
0:172 Constant:
|
||||
0:172 1 (const uint)
|
||||
0:173 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:173 'f4' ( in 4-component vector of float)
|
||||
0:173 Constant:
|
||||
0:173 1 (const uint)
|
||||
0:174 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:174 'f4' ( in 4-component vector of float)
|
||||
0:174 Constant:
|
||||
0:174 1 (const uint)
|
||||
0:178 Function Definition: arith_works(vf4; ( global void)
|
||||
0:178 Function Parameters:
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:181 subgroupAdd ( global 4-component vector of float)
|
||||
0:181 'f4' ( in 4-component vector of float)
|
||||
0:182 subgroupMul ( global 4-component vector of float)
|
||||
0:182 'f4' ( in 4-component vector of float)
|
||||
0:183 subgroupMin ( global 4-component vector of float)
|
||||
0:183 'f4' ( in 4-component vector of float)
|
||||
0:184 subgroupMax ( global 4-component vector of float)
|
||||
0:184 'f4' ( in 4-component vector of float)
|
||||
0:185 subgroupAnd ( global 4-component vector of uint)
|
||||
0:185 'ballot' ( temp 4-component vector of uint)
|
||||
0:186 subgroupOr ( global 4-component vector of uint)
|
||||
0:186 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 subgroupXor ( global 4-component vector of uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:188 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:188 'f4' ( in 4-component vector of float)
|
||||
0:189 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:189 'f4' ( in 4-component vector of float)
|
||||
0:190 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:191 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:192 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:192 'ballot' ( temp 4-component vector of uint)
|
||||
0:193 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:193 'ballot' ( temp 4-component vector of uint)
|
||||
0:194 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:194 'ballot' ( temp 4-component vector of uint)
|
||||
0:195 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:195 'f4' ( in 4-component vector of float)
|
||||
0:196 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:196 'f4' ( in 4-component vector of float)
|
||||
0:197 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:197 'f4' ( in 4-component vector of float)
|
||||
0:198 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:198 'f4' ( in 4-component vector of float)
|
||||
0:199 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:199 'ballot' ( temp 4-component vector of uint)
|
||||
0:200 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:200 'ballot' ( temp 4-component vector of uint)
|
||||
0:201 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:201 'ballot' ( temp 4-component vector of uint)
|
||||
0:205 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:205 Function Parameters:
|
||||
0:205 'f4' ( in 4-component vector of float)
|
||||
0:207 Sequence
|
||||
0:207 Sequence
|
||||
0:207 move second child to first child ( temp 4-component vector of uint)
|
||||
0:207 'ballot' ( temp 4-component vector of uint)
|
||||
0:207 Constant:
|
||||
0:207 85 (const uint)
|
||||
0:207 0 (const uint)
|
||||
0:207 0 (const uint)
|
||||
0:207 0 (const uint)
|
||||
0:208 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:208 'f4' ( in 4-component vector of float)
|
||||
0:208 Constant:
|
||||
0:208 2 (const uint)
|
||||
0:209 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:209 'f4' ( in 4-component vector of float)
|
||||
0:209 Constant:
|
||||
0:209 2 (const uint)
|
||||
0:210 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:210 'f4' ( in 4-component vector of float)
|
||||
0:210 Constant:
|
||||
0:210 2 (const uint)
|
||||
0:211 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:211 'f4' ( in 4-component vector of float)
|
||||
0:211 Constant:
|
||||
0:211 2 (const uint)
|
||||
0:212 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:212 'ballot' ( temp 4-component vector of uint)
|
||||
0:212 Constant:
|
||||
0:212 2 (const uint)
|
||||
0:213 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:213 'ballot' ( temp 4-component vector of uint)
|
||||
0:213 Constant:
|
||||
0:213 2 (const uint)
|
||||
0:214 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:214 'ballot' ( temp 4-component vector of uint)
|
||||
0:214 Constant:
|
||||
0:214 2 (const uint)
|
||||
0:218 Function Definition: quad_works(vf4; ( global void)
|
||||
0:218 Function Parameters:
|
||||
0:218 'f4' ( in 4-component vector of float)
|
||||
0:220 Sequence
|
||||
0:220 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:220 Constant:
|
||||
0:220 0 (const uint)
|
||||
0:221 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:221 'f4' ( in 4-component vector of float)
|
||||
0:222 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:222 'f4' ( in 4-component vector of float)
|
||||
0:223 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:223 'f4' ( in 4-component vector of float)
|
||||
0:227 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:227 Function Parameters:
|
||||
0:227 'f4' ( in 4-component vector of float)
|
||||
0:229 Sequence
|
||||
0:229 Sequence
|
||||
0:229 move second child to first child ( temp 4-component vector of uint)
|
||||
0:229 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:229 'f4' ( in 4-component vector of float)
|
||||
0:230 Sequence
|
||||
0:230 move second child to first child ( temp 4-component vector of uint)
|
||||
0:230 'ballot' ( temp 4-component vector of uint)
|
||||
0:230 Constant:
|
||||
0:230 85 (const uint)
|
||||
0:230 0 (const uint)
|
||||
0:230 0 (const uint)
|
||||
0:230 0 (const uint)
|
||||
0:231 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:231 'f4' ( in 4-component vector of float)
|
||||
0:231 'parti' ( temp 4-component vector of uint)
|
||||
0:232 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:232 'f4' ( in 4-component vector of float)
|
||||
0:232 'parti' ( temp 4-component vector of uint)
|
||||
0:233 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:233 'f4' ( in 4-component vector of float)
|
||||
0:233 'parti' ( temp 4-component vector of uint)
|
||||
0:234 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:234 'f4' ( in 4-component vector of float)
|
||||
0:234 'parti' ( temp 4-component vector of uint)
|
||||
0:235 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:235 'ballot' ( temp 4-component vector of uint)
|
||||
0:235 'parti' ( temp 4-component vector of uint)
|
||||
0:236 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:236 'ballot' ( temp 4-component vector of uint)
|
||||
0:236 'parti' ( temp 4-component vector of uint)
|
||||
0:237 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:237 'ballot' ( temp 4-component vector of uint)
|
||||
0:237 'parti' ( temp 4-component vector of uint)
|
||||
0:238 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:238 'f4' ( in 4-component vector of float)
|
||||
0:238 'parti' ( temp 4-component vector of uint)
|
||||
0:239 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:239 'f4' ( in 4-component vector of float)
|
||||
0:239 'parti' ( temp 4-component vector of uint)
|
||||
0:240 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:240 'f4' ( in 4-component vector of float)
|
||||
0:240 'parti' ( temp 4-component vector of uint)
|
||||
0:241 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:241 'f4' ( in 4-component vector of float)
|
||||
0:241 'parti' ( temp 4-component vector of uint)
|
||||
0:242 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:242 'ballot' ( temp 4-component vector of uint)
|
||||
0:242 'parti' ( temp 4-component vector of uint)
|
||||
0:243 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:243 'ballot' ( temp 4-component vector of uint)
|
||||
0:243 'parti' ( temp 4-component vector of uint)
|
||||
0:244 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:244 'ballot' ( temp 4-component vector of uint)
|
||||
0:244 'parti' ( temp 4-component vector of uint)
|
||||
0:245 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:245 'f4' ( in 4-component vector of float)
|
||||
0:245 'parti' ( temp 4-component vector of uint)
|
||||
0:246 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:246 'f4' ( in 4-component vector of float)
|
||||
0:246 'parti' ( temp 4-component vector of uint)
|
||||
0:247 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:247 'f4' ( in 4-component vector of float)
|
||||
0:247 'parti' ( temp 4-component vector of uint)
|
||||
0:248 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:248 'f4' ( in 4-component vector of float)
|
||||
0:248 'parti' ( temp 4-component vector of uint)
|
||||
0:249 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:249 'ballot' ( temp 4-component vector of uint)
|
||||
0:249 'parti' ( temp 4-component vector of uint)
|
||||
0:250 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:250 'ballot' ( temp 4-component vector of uint)
|
||||
0:250 'parti' ( temp 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 'parti' ( temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'iAttr' ( hitAttributeNV 4-component vector of float)
|
||||
|
||||
|
||||
Linked intersection stage:
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_ray_tracing
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:108 Function Definition: main( ( global void)
|
||||
0:108 Function Parameters:
|
||||
0:110 Sequence
|
||||
0:110 Sequence
|
||||
0:110 move second child to first child ( temp 3-component vector of uint)
|
||||
0:110 'v0' ( temp 3-component vector of uint)
|
||||
0:110 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp 3-component vector of uint)
|
||||
0:111 'v1' ( temp 3-component vector of uint)
|
||||
0:111 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp int)
|
||||
0:112 'v2' ( temp int)
|
||||
0:112 'gl_PrimitiveID' ( in int PrimitiveID)
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp int)
|
||||
0:113 'v3' ( temp int)
|
||||
0:113 'gl_InstanceID' ( in int InstanceId)
|
||||
0:114 Sequence
|
||||
0:114 move second child to first child ( temp int)
|
||||
0:114 'v4' ( temp int)
|
||||
0:114 'gl_InstanceCustomIndexNV' ( in int InstanceCustomIndexNV)
|
||||
0:115 Sequence
|
||||
0:115 move second child to first child ( temp 3-component vector of float)
|
||||
0:115 'v5' ( temp 3-component vector of float)
|
||||
0:115 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
|
||||
0:116 Sequence
|
||||
0:116 move second child to first child ( temp 3-component vector of float)
|
||||
0:116 'v6' ( temp 3-component vector of float)
|
||||
0:116 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
|
||||
0:117 Sequence
|
||||
0:117 move second child to first child ( temp 3-component vector of float)
|
||||
0:117 'v7' ( temp 3-component vector of float)
|
||||
0:117 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
|
||||
0:118 Sequence
|
||||
0:118 move second child to first child ( temp 3-component vector of float)
|
||||
0:118 'v8' ( temp 3-component vector of float)
|
||||
0:118 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
|
||||
0:119 Sequence
|
||||
0:119 move second child to first child ( temp float)
|
||||
0:119 'v9' ( temp float)
|
||||
0:119 'gl_RayTminNV' ( in float ObjectRayTminNV)
|
||||
0:120 Sequence
|
||||
0:120 move second child to first child ( temp float)
|
||||
0:120 'v10' ( temp float)
|
||||
0:120 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
|
||||
0:121 Sequence
|
||||
0:121 move second child to first child ( temp 4X3 matrix of float)
|
||||
0:121 'v11' ( temp 4X3 matrix of float)
|
||||
0:121 'gl_ObjectToWorldNV' ( in 4X3 matrix of float ObjectToWorldNV)
|
||||
0:122 Sequence
|
||||
0:122 move second child to first child ( temp 4X3 matrix of float)
|
||||
0:122 'v12' ( temp 4X3 matrix of float)
|
||||
0:122 'gl_WorldToObjectNV' ( in 4X3 matrix of float WorldToObjectNV)
|
||||
0:123 move second child to first child ( temp 4-component vector of float)
|
||||
0:123 'iAttr' ( hitAttributeNV 4-component vector of float)
|
||||
0:123 Constant:
|
||||
0:123 0.500000
|
||||
0:123 0.500000
|
||||
0:123 0.000000
|
||||
0:123 1.000000
|
||||
0:124 reportIntersectionNV ( global bool)
|
||||
0:124 Constant:
|
||||
0:124 0.500000
|
||||
0:124 Constant:
|
||||
0:124 1 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'iAttr' ( hitAttributeNV 4-component vector of float)
|
||||
|
||||
741
Test/baseResults/glsl.460.subgroup.rmiss.out
Normal file
741
Test/baseResults/glsl.460.subgroup.rmiss.out
Normal file
@@ -0,0 +1,741 @@
|
||||
glsl.460.subgroup.rmiss
|
||||
ERROR: 0:8: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:14: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:15: 'gl_NumSubgroups' : undeclared identifier
|
||||
ERROR: 0:16: 'gl_SubgroupID' : undeclared identifier
|
||||
ERROR: 0:17: 'subgroupMemoryBarrierShared' : no matching overloaded function found
|
||||
ERROR: 0:19: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:20: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:23: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:36: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:39: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:40: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:41: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:44: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:63: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:66: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:71: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:74: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:76: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:79: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:96: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:97: 'subgroupPartitionedExclusiveMaxNV' : 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:100: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_ray_tracing
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:5 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:5 Function Parameters:
|
||||
0:5 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:8 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:9 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:10 subgroupBarrier ( global void)
|
||||
0:11 subgroupMemoryBarrier ( global void)
|
||||
0:12 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:13 subgroupMemoryBarrierImage ( global void)
|
||||
0:14 subgroupElect ( global bool)
|
||||
0:15 'gl_NumSubgroups' ( temp float)
|
||||
0:16 'gl_SubgroupID' ( temp float)
|
||||
0:17 Constant:
|
||||
0:17 0.000000
|
||||
0:19 subgroupAll ( global bool)
|
||||
0:19 Constant:
|
||||
0:19 true (const bool)
|
||||
0:20 subgroupAny ( global bool)
|
||||
0:20 Constant:
|
||||
0:20 false (const bool)
|
||||
0:21 subgroupAllEqual ( global bool)
|
||||
0:21 'f4' ( in 4-component vector of float)
|
||||
0:23 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:24 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:25 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:26 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:27 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:28 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:28 'f4' ( in 4-component vector of float)
|
||||
0:28 Constant:
|
||||
0:28 0 (const uint)
|
||||
0:29 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:29 'f4' ( in 4-component vector of float)
|
||||
0:30 Sequence
|
||||
0:30 move second child to first child ( temp 4-component vector of uint)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 subgroupBallot ( global 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 false (const bool)
|
||||
0:31 subgroupInverseBallot ( global bool)
|
||||
0:31 Constant:
|
||||
0:31 1 (const uint)
|
||||
0:31 1 (const uint)
|
||||
0:31 1 (const uint)
|
||||
0:31 1 (const uint)
|
||||
0:32 subgroupBallotBitExtract ( global bool)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 Constant:
|
||||
0:32 0 (const uint)
|
||||
0:33 subgroupBallotBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:36 subgroupBallotFindLSB ( global uint)
|
||||
0:36 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupBallotFindMSB ( global uint)
|
||||
0:37 'ballot' ( temp 4-component vector of uint)
|
||||
0:39 subgroupShuffle ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 0 (const uint)
|
||||
0:40 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:41 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:41 'f4' ( in 4-component vector of float)
|
||||
0:41 Constant:
|
||||
0:41 1 (const uint)
|
||||
0:42 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:42 Constant:
|
||||
0:42 1 (const uint)
|
||||
0:44 move second child to first child ( temp 4-component vector of float)
|
||||
0:44 'result' ( temp 4-component vector of float)
|
||||
0:44 subgroupAdd ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMul ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupMin ( global 4-component vector of float)
|
||||
0:46 'f4' ( in 4-component vector of float)
|
||||
0:47 subgroupMax ( global 4-component vector of float)
|
||||
0:47 'f4' ( in 4-component vector of float)
|
||||
0:48 subgroupAnd ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupOr ( global 4-component vector of uint)
|
||||
0:49 'ballot' ( temp 4-component vector of uint)
|
||||
0:50 subgroupXor ( global 4-component vector of uint)
|
||||
0:50 'ballot' ( temp 4-component vector of uint)
|
||||
0:51 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:53 'f4' ( in 4-component vector of float)
|
||||
0:54 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:54 'f4' ( in 4-component vector of float)
|
||||
0:55 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:56 'ballot' ( temp 4-component vector of uint)
|
||||
0:57 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:57 'ballot' ( temp 4-component vector of uint)
|
||||
0:58 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:60 'f4' ( in 4-component vector of float)
|
||||
0:61 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:61 'f4' ( in 4-component vector of float)
|
||||
0:62 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:63 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:63 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:64 'ballot' ( temp 4-component vector of uint)
|
||||
0:66 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:68 'f4' ( in 4-component vector of float)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:69 'f4' ( in 4-component vector of float)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:71 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:71 'ballot' ( temp 4-component vector of uint)
|
||||
0:71 Constant:
|
||||
0:71 2 (const uint)
|
||||
0:72 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:72 'ballot' ( temp 4-component vector of uint)
|
||||
0:72 Constant:
|
||||
0:72 2 (const uint)
|
||||
0:74 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:74 Constant:
|
||||
0:74 0 (const uint)
|
||||
0:75 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:76 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:76 'f4' ( in 4-component vector of float)
|
||||
0:77 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:79 Sequence
|
||||
0:79 move second child to first child ( temp 4-component vector of uint)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:80 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:82 'f4' ( in 4-component vector of float)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:83 'f4' ( in 4-component vector of float)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:85 'ballot' ( temp 4-component vector of uint)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:86 'ballot' ( temp 4-component vector of uint)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:89 'f4' ( in 4-component vector of float)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:90 'f4' ( in 4-component vector of float)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:92 'ballot' ( temp 4-component vector of uint)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:93 'ballot' ( temp 4-component vector of uint)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:96 'f4' ( in 4-component vector of float)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:97 'f4' ( in 4-component vector of float)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:99 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:99 'ballot' ( temp 4-component vector of uint)
|
||||
0:99 'parti' ( temp 4-component vector of uint)
|
||||
0:100 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:100 'ballot' ( temp 4-component vector of uint)
|
||||
0:100 'parti' ( temp 4-component vector of uint)
|
||||
0:102 Branch: Return with expression
|
||||
0:102 'result' ( temp 4-component vector of float)
|
||||
0:109 Function Definition: main( ( global void)
|
||||
0:109 Function Parameters:
|
||||
0:111 Sequence
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp 3-component vector of uint)
|
||||
0:111 'v0' ( temp 3-component vector of uint)
|
||||
0:111 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp 3-component vector of uint)
|
||||
0:112 'v1' ( temp 3-component vector of uint)
|
||||
0:112 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp 3-component vector of float)
|
||||
0:113 'v2' ( temp 3-component vector of float)
|
||||
0:113 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
|
||||
0:114 Sequence
|
||||
0:114 move second child to first child ( temp 3-component vector of float)
|
||||
0:114 'v3' ( temp 3-component vector of float)
|
||||
0:114 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
|
||||
0:115 Sequence
|
||||
0:115 move second child to first child ( temp 3-component vector of float)
|
||||
0:115 'v4' ( temp 3-component vector of float)
|
||||
0:115 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
|
||||
0:116 Sequence
|
||||
0:116 move second child to first child ( temp 3-component vector of float)
|
||||
0:116 'v5' ( temp 3-component vector of float)
|
||||
0:116 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
|
||||
0:117 Sequence
|
||||
0:117 move second child to first child ( temp float)
|
||||
0:117 'v6' ( temp float)
|
||||
0:117 'gl_RayTminNV' ( in float ObjectRayTminNV)
|
||||
0:118 Sequence
|
||||
0:118 move second child to first child ( temp float)
|
||||
0:118 'v7' ( temp float)
|
||||
0:118 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
|
||||
0:119 traceNV ( global void)
|
||||
0:119 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||
0:119 Constant:
|
||||
0:119 0 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 1 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 2 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 3 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 0 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 0.500000
|
||||
0:119 0.500000
|
||||
0:119 0.500000
|
||||
0:119 Constant:
|
||||
0:119 0.500000
|
||||
0:119 Constant:
|
||||
0:119 1.000000
|
||||
0:119 1.000000
|
||||
0:119 1.000000
|
||||
0:119 Constant:
|
||||
0:119 0.750000
|
||||
0:119 Constant:
|
||||
0:119 1 (const int)
|
||||
0:123 Function Definition: basic_works( ( global void)
|
||||
0:123 Function Parameters:
|
||||
0:125 Sequence
|
||||
0:125 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:126 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:127 subgroupBarrier ( global void)
|
||||
0:128 subgroupMemoryBarrier ( global void)
|
||||
0:129 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:130 subgroupMemoryBarrierImage ( global void)
|
||||
0:131 subgroupElect ( global bool)
|
||||
0:135 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:135 Function Parameters:
|
||||
0:135 'f4' ( in 4-component vector of float)
|
||||
0:136 Sequence
|
||||
0:136 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:137 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:138 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:139 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:140 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:141 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:141 'f4' ( in 4-component vector of float)
|
||||
0:141 Constant:
|
||||
0:141 0 (const uint)
|
||||
0:142 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:142 'f4' ( in 4-component vector of float)
|
||||
0:143 Sequence
|
||||
0:143 move second child to first child ( temp 4-component vector of uint)
|
||||
0:143 'ballot' ( temp 4-component vector of uint)
|
||||
0:143 subgroupBallot ( global 4-component vector of uint)
|
||||
0:143 Constant:
|
||||
0:143 false (const bool)
|
||||
0:144 subgroupInverseBallot ( global bool)
|
||||
0:144 Constant:
|
||||
0:144 1 (const uint)
|
||||
0:144 1 (const uint)
|
||||
0:144 1 (const uint)
|
||||
0:144 1 (const uint)
|
||||
0:145 subgroupBallotBitExtract ( global bool)
|
||||
0:145 'ballot' ( temp 4-component vector of uint)
|
||||
0:145 Constant:
|
||||
0:145 0 (const uint)
|
||||
0:146 subgroupBallotBitCount ( global uint)
|
||||
0:146 'ballot' ( temp 4-component vector of uint)
|
||||
0:147 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:147 'ballot' ( temp 4-component vector of uint)
|
||||
0:148 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:148 'ballot' ( temp 4-component vector of uint)
|
||||
0:149 subgroupBallotFindLSB ( global uint)
|
||||
0:149 'ballot' ( temp 4-component vector of uint)
|
||||
0:150 subgroupBallotFindMSB ( global uint)
|
||||
0:150 'ballot' ( temp 4-component vector of uint)
|
||||
0:154 Function Definition: vote_works(vf4; ( global void)
|
||||
0:154 Function Parameters:
|
||||
0:154 'f4' ( in 4-component vector of float)
|
||||
0:156 Sequence
|
||||
0:156 subgroupAll ( global bool)
|
||||
0:156 Constant:
|
||||
0:156 true (const bool)
|
||||
0:157 subgroupAny ( global bool)
|
||||
0:157 Constant:
|
||||
0:157 false (const bool)
|
||||
0:158 subgroupAllEqual ( global bool)
|
||||
0:158 'f4' ( in 4-component vector of float)
|
||||
0:163 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:163 Function Parameters:
|
||||
0:163 'f4' ( in 4-component vector of float)
|
||||
0:165 Sequence
|
||||
0:165 subgroupShuffle ( global 4-component vector of float)
|
||||
0:165 'f4' ( in 4-component vector of float)
|
||||
0:165 Constant:
|
||||
0:165 0 (const uint)
|
||||
0:166 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:166 'f4' ( in 4-component vector of float)
|
||||
0:166 Constant:
|
||||
0:166 1 (const uint)
|
||||
0:167 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:167 'f4' ( in 4-component vector of float)
|
||||
0:167 Constant:
|
||||
0:167 1 (const uint)
|
||||
0:168 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:168 'f4' ( in 4-component vector of float)
|
||||
0:168 Constant:
|
||||
0:168 1 (const uint)
|
||||
0:172 Function Definition: arith_works(vf4; ( global void)
|
||||
0:172 Function Parameters:
|
||||
0:172 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:175 subgroupAdd ( global 4-component vector of float)
|
||||
0:175 'f4' ( in 4-component vector of float)
|
||||
0:176 subgroupMul ( global 4-component vector of float)
|
||||
0:176 'f4' ( in 4-component vector of float)
|
||||
0:177 subgroupMin ( global 4-component vector of float)
|
||||
0:177 'f4' ( in 4-component vector of float)
|
||||
0:178 subgroupMax ( global 4-component vector of float)
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:179 subgroupAnd ( global 4-component vector of uint)
|
||||
0:179 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 subgroupOr ( global 4-component vector of uint)
|
||||
0:180 'ballot' ( temp 4-component vector of uint)
|
||||
0:181 subgroupXor ( global 4-component vector of uint)
|
||||
0:181 'ballot' ( temp 4-component vector of uint)
|
||||
0:182 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:182 'f4' ( in 4-component vector of float)
|
||||
0:183 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:183 'f4' ( in 4-component vector of float)
|
||||
0:184 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:184 'f4' ( in 4-component vector of float)
|
||||
0:185 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:185 'f4' ( in 4-component vector of float)
|
||||
0:186 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:186 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:188 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:188 'ballot' ( temp 4-component vector of uint)
|
||||
0:189 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:189 'f4' ( in 4-component vector of float)
|
||||
0:190 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:190 'f4' ( in 4-component vector of float)
|
||||
0:191 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:192 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:192 'f4' ( in 4-component vector of float)
|
||||
0:193 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:193 'ballot' ( temp 4-component vector of uint)
|
||||
0:194 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:194 'ballot' ( temp 4-component vector of uint)
|
||||
0:195 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:195 'ballot' ( temp 4-component vector of uint)
|
||||
0:199 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:199 Function Parameters:
|
||||
0:199 'f4' ( in 4-component vector of float)
|
||||
0:201 Sequence
|
||||
0:201 Sequence
|
||||
0:201 move second child to first child ( temp 4-component vector of uint)
|
||||
0:201 'ballot' ( temp 4-component vector of uint)
|
||||
0:201 Constant:
|
||||
0:201 85 (const uint)
|
||||
0:201 0 (const uint)
|
||||
0:201 0 (const uint)
|
||||
0:201 0 (const uint)
|
||||
0:202 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:202 Constant:
|
||||
0:202 2 (const uint)
|
||||
0:203 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:203 'f4' ( in 4-component vector of float)
|
||||
0:203 Constant:
|
||||
0:203 2 (const uint)
|
||||
0:204 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:204 'f4' ( in 4-component vector of float)
|
||||
0:204 Constant:
|
||||
0:204 2 (const uint)
|
||||
0:205 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:205 'f4' ( in 4-component vector of float)
|
||||
0:205 Constant:
|
||||
0:205 2 (const uint)
|
||||
0:206 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:206 'ballot' ( temp 4-component vector of uint)
|
||||
0:206 Constant:
|
||||
0:206 2 (const uint)
|
||||
0:207 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:207 'ballot' ( temp 4-component vector of uint)
|
||||
0:207 Constant:
|
||||
0:207 2 (const uint)
|
||||
0:208 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:208 'ballot' ( temp 4-component vector of uint)
|
||||
0:208 Constant:
|
||||
0:208 2 (const uint)
|
||||
0:212 Function Definition: quad_works(vf4; ( global void)
|
||||
0:212 Function Parameters:
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:214 Sequence
|
||||
0:214 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:214 Constant:
|
||||
0:214 0 (const uint)
|
||||
0:215 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:215 'f4' ( in 4-component vector of float)
|
||||
0:216 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:216 'f4' ( in 4-component vector of float)
|
||||
0:217 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:217 'f4' ( in 4-component vector of float)
|
||||
0:221 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:221 Function Parameters:
|
||||
0:221 'f4' ( in 4-component vector of float)
|
||||
0:223 Sequence
|
||||
0:223 Sequence
|
||||
0:223 move second child to first child ( temp 4-component vector of uint)
|
||||
0:223 'parti' ( temp 4-component vector of uint)
|
||||
0:223 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:223 'f4' ( in 4-component vector of float)
|
||||
0:224 Sequence
|
||||
0:224 move second child to first child ( temp 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 Constant:
|
||||
0:224 85 (const uint)
|
||||
0:224 0 (const uint)
|
||||
0:224 0 (const uint)
|
||||
0:224 0 (const uint)
|
||||
0:225 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:225 'f4' ( in 4-component vector of float)
|
||||
0:225 'parti' ( temp 4-component vector of uint)
|
||||
0:226 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:226 'f4' ( in 4-component vector of float)
|
||||
0:226 'parti' ( temp 4-component vector of uint)
|
||||
0:227 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:227 'f4' ( in 4-component vector of float)
|
||||
0:227 'parti' ( temp 4-component vector of uint)
|
||||
0:228 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:228 'f4' ( in 4-component vector of float)
|
||||
0:228 'parti' ( temp 4-component vector of uint)
|
||||
0:229 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:229 'ballot' ( temp 4-component vector of uint)
|
||||
0:229 'parti' ( temp 4-component vector of uint)
|
||||
0:230 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:230 'ballot' ( temp 4-component vector of uint)
|
||||
0:230 'parti' ( temp 4-component vector of uint)
|
||||
0:231 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:231 'ballot' ( temp 4-component vector of uint)
|
||||
0:231 'parti' ( temp 4-component vector of uint)
|
||||
0:232 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:232 'f4' ( in 4-component vector of float)
|
||||
0:232 'parti' ( temp 4-component vector of uint)
|
||||
0:233 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:233 'f4' ( in 4-component vector of float)
|
||||
0:233 'parti' ( temp 4-component vector of uint)
|
||||
0:234 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:234 'f4' ( in 4-component vector of float)
|
||||
0:234 'parti' ( temp 4-component vector of uint)
|
||||
0:235 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:235 'f4' ( in 4-component vector of float)
|
||||
0:235 'parti' ( temp 4-component vector of uint)
|
||||
0:236 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:236 'ballot' ( temp 4-component vector of uint)
|
||||
0:236 'parti' ( temp 4-component vector of uint)
|
||||
0:237 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:237 'ballot' ( temp 4-component vector of uint)
|
||||
0:237 'parti' ( temp 4-component vector of uint)
|
||||
0:238 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:238 'ballot' ( temp 4-component vector of uint)
|
||||
0:238 'parti' ( temp 4-component vector of uint)
|
||||
0:239 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:239 'f4' ( in 4-component vector of float)
|
||||
0:239 'parti' ( temp 4-component vector of uint)
|
||||
0:240 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:240 'f4' ( in 4-component vector of float)
|
||||
0:240 'parti' ( temp 4-component vector of uint)
|
||||
0:241 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:241 'f4' ( in 4-component vector of float)
|
||||
0:241 'parti' ( temp 4-component vector of uint)
|
||||
0:242 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:242 'f4' ( in 4-component vector of float)
|
||||
0:242 'parti' ( temp 4-component vector of uint)
|
||||
0:243 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:243 'ballot' ( temp 4-component vector of uint)
|
||||
0:243 'parti' ( temp 4-component vector of uint)
|
||||
0:244 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:244 'ballot' ( temp 4-component vector of uint)
|
||||
0:244 'parti' ( temp 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 'parti' ( temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
|
||||
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
|
||||
|
||||
|
||||
Linked miss stage:
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_ray_tracing
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
ERROR: node is still EOpNull!
|
||||
0:109 Function Definition: main( ( global void)
|
||||
0:109 Function Parameters:
|
||||
0:111 Sequence
|
||||
0:111 Sequence
|
||||
0:111 move second child to first child ( temp 3-component vector of uint)
|
||||
0:111 'v0' ( temp 3-component vector of uint)
|
||||
0:111 'gl_LaunchIDNV' ( in 3-component vector of uint LaunchIdNV)
|
||||
0:112 Sequence
|
||||
0:112 move second child to first child ( temp 3-component vector of uint)
|
||||
0:112 'v1' ( temp 3-component vector of uint)
|
||||
0:112 'gl_LaunchSizeNV' ( in 3-component vector of uint LaunchSizeNV)
|
||||
0:113 Sequence
|
||||
0:113 move second child to first child ( temp 3-component vector of float)
|
||||
0:113 'v2' ( temp 3-component vector of float)
|
||||
0:113 'gl_WorldRayOriginNV' ( in 3-component vector of float WorldRayOriginNV)
|
||||
0:114 Sequence
|
||||
0:114 move second child to first child ( temp 3-component vector of float)
|
||||
0:114 'v3' ( temp 3-component vector of float)
|
||||
0:114 'gl_WorldRayDirectionNV' ( in 3-component vector of float WorldRayDirectionNV)
|
||||
0:115 Sequence
|
||||
0:115 move second child to first child ( temp 3-component vector of float)
|
||||
0:115 'v4' ( temp 3-component vector of float)
|
||||
0:115 'gl_ObjectRayOriginNV' ( in 3-component vector of float ObjectRayOriginNV)
|
||||
0:116 Sequence
|
||||
0:116 move second child to first child ( temp 3-component vector of float)
|
||||
0:116 'v5' ( temp 3-component vector of float)
|
||||
0:116 'gl_ObjectRayDirectionNV' ( in 3-component vector of float ObjectRayDirectionNV)
|
||||
0:117 Sequence
|
||||
0:117 move second child to first child ( temp float)
|
||||
0:117 'v6' ( temp float)
|
||||
0:117 'gl_RayTminNV' ( in float ObjectRayTminNV)
|
||||
0:118 Sequence
|
||||
0:118 move second child to first child ( temp float)
|
||||
0:118 'v7' ( temp float)
|
||||
0:118 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
|
||||
0:119 traceNV ( global void)
|
||||
0:119 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||
0:119 Constant:
|
||||
0:119 0 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 1 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 2 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 3 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 0 (const uint)
|
||||
0:119 Constant:
|
||||
0:119 0.500000
|
||||
0:119 0.500000
|
||||
0:119 0.500000
|
||||
0:119 Constant:
|
||||
0:119 0.500000
|
||||
0:119 Constant:
|
||||
0:119 1.000000
|
||||
0:119 1.000000
|
||||
0:119 1.000000
|
||||
0:119 Constant:
|
||||
0:119 0.750000
|
||||
0:119 Constant:
|
||||
0:119 1 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'accNV' (layout( set=0 binding=0) uniform accelerationStructureNV)
|
||||
0:? 'localPayload' (layout( location=0) rayPayloadNV 4-component vector of float)
|
||||
0:? 'incomingPayload' (layout( location=1) rayPayloadInNV 4-component vector of float)
|
||||
|
||||
903
Test/baseResults/glsl.460.subgroup.task.out
Normal file
903
Test/baseResults/glsl.460.subgroup.task.out
Normal file
@@ -0,0 +1,903 @@
|
||||
glsl.460.subgroup.task
|
||||
ERROR: 0:6: 'gl_SubgroupSize' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:7: 'gl_SubgroupInvocationID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:8: 'subgroupBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:9: 'subgroupMemoryBarrier' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:10: 'subgroupMemoryBarrierBuffer' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:11: 'subgroupMemoryBarrierImage' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:12: 'subgroupElect' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:13: 'gl_NumSubgroups' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:14: 'gl_SubgroupID' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:15: 'subgroupMemoryBarrierShared' : required extension not requested: GL_KHR_shader_subgroup_basic
|
||||
ERROR: 0:17: 'subgroupAll' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:18: 'subgroupAny' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:19: 'subgroupAllEqual' : required extension not requested: GL_KHR_shader_subgroup_vote
|
||||
ERROR: 0:21: 'gl_SubgroupEqMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:22: 'gl_SubgroupGeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:23: 'gl_SubgroupGtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:24: 'gl_SubgroupLeMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:25: 'gl_SubgroupLtMask' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:26: 'subgroupBroadcast' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:27: 'subgroupBroadcastFirst' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:28: 'subgroupBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:29: 'subgroupInverseBallot' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:30: 'subgroupBallotBitExtract' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:31: 'subgroupBallotBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:32: 'subgroupBallotInclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:33: 'subgroupBallotExclusiveBitCount' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:34: 'subgroupBallotFindLSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:35: 'subgroupBallotFindMSB' : required extension not requested: GL_KHR_shader_subgroup_ballot
|
||||
ERROR: 0:37: 'subgroupShuffle' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:38: 'subgroupShuffleXor' : required extension not requested: GL_KHR_shader_subgroup_shuffle
|
||||
ERROR: 0:39: 'subgroupShuffleUp' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:40: 'subgroupShuffleDown' : required extension not requested: GL_KHR_shader_subgroup_shuffle_relative
|
||||
ERROR: 0:42: 'subgroupAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:43: 'subgroupMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:44: 'subgroupMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:45: 'subgroupMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:46: 'subgroupAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:47: 'subgroupOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:48: 'subgroupXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:49: 'subgroupInclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:50: 'subgroupInclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:51: 'subgroupInclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:52: 'subgroupInclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:53: 'subgroupInclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:54: 'subgroupInclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:55: 'subgroupInclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:56: 'subgroupExclusiveAdd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:57: 'subgroupExclusiveMul' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:58: 'subgroupExclusiveMin' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:59: 'subgroupExclusiveMax' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:60: 'subgroupExclusiveAnd' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:61: 'subgroupExclusiveOr' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:62: 'subgroupExclusiveXor' : required extension not requested: GL_KHR_shader_subgroup_arithmetic
|
||||
ERROR: 0:64: 'subgroupClusteredAdd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:65: 'subgroupClusteredMul' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:66: 'subgroupClusteredMin' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:67: 'subgroupClusteredMax' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:68: 'subgroupClusteredAnd' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:69: 'subgroupClusteredOr' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:70: 'subgroupClusteredXor' : required extension not requested: GL_KHR_shader_subgroup_clustered
|
||||
ERROR: 0:72: 'subgroupQuadBroadcast' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:73: 'subgroupQuadSwapHorizontal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:74: 'subgroupQuadSwapVertical' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:75: 'subgroupQuadSwapDiagonal' : required extension not requested: GL_KHR_shader_subgroup_quad
|
||||
ERROR: 0:77: 'subgroupPartitionNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:78: 'subgroupPartitionedAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:79: 'subgroupPartitionedMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:80: 'subgroupPartitionedMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:81: 'subgroupPartitionedMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:82: 'subgroupPartitionedAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:83: 'subgroupPartitionedOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:84: 'subgroupPartitionedXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:85: 'subgroupPartitionedInclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:86: 'subgroupPartitionedInclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:87: 'subgroupPartitionedInclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:88: 'subgroupPartitionedInclusiveMaxNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:89: 'subgroupPartitionedInclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:90: 'subgroupPartitionedInclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:91: 'subgroupPartitionedInclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:92: 'subgroupPartitionedExclusiveAddNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:93: 'subgroupPartitionedExclusiveMulNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:94: 'subgroupPartitionedExclusiveMinNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : 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:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
|
||||
ERROR: 86 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_mesh_shader
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
local_size = (32, 1, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: undeclared_errors(vf4; ( global 4-component vector of float)
|
||||
0:3 Function Parameters:
|
||||
0:3 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:7 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:8 subgroupBarrier ( global void)
|
||||
0:9 subgroupMemoryBarrier ( global void)
|
||||
0:10 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:11 subgroupMemoryBarrierImage ( global void)
|
||||
0:12 subgroupElect ( global bool)
|
||||
0:13 'gl_NumSubgroups' ( in uint NumSubgroups)
|
||||
0:14 'gl_SubgroupID' ( in uint SubgroupID)
|
||||
0:15 subgroupMemoryBarrierShared ( global void)
|
||||
0:17 subgroupAll ( global bool)
|
||||
0:17 Constant:
|
||||
0:17 true (const bool)
|
||||
0:18 subgroupAny ( global bool)
|
||||
0:18 Constant:
|
||||
0:18 false (const bool)
|
||||
0:19 subgroupAllEqual ( global bool)
|
||||
0:19 'f4' ( in 4-component vector of float)
|
||||
0:21 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:22 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:23 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:24 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:25 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:26 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:26 'f4' ( in 4-component vector of float)
|
||||
0:26 Constant:
|
||||
0:26 0 (const uint)
|
||||
0:27 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:27 'f4' ( in 4-component vector of float)
|
||||
0:28 Sequence
|
||||
0:28 move second child to first child ( temp 4-component vector of uint)
|
||||
0:28 'ballot' ( temp 4-component vector of uint)
|
||||
0:28 subgroupBallot ( global 4-component vector of uint)
|
||||
0:28 Constant:
|
||||
0:28 false (const bool)
|
||||
0:29 subgroupInverseBallot ( global bool)
|
||||
0:29 Constant:
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:29 1 (const uint)
|
||||
0:30 subgroupBallotBitExtract ( global bool)
|
||||
0:30 'ballot' ( temp 4-component vector of uint)
|
||||
0:30 Constant:
|
||||
0:30 0 (const uint)
|
||||
0:31 subgroupBallotBitCount ( global uint)
|
||||
0:31 'ballot' ( temp 4-component vector of uint)
|
||||
0:32 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:32 'ballot' ( temp 4-component vector of uint)
|
||||
0:33 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:33 'ballot' ( temp 4-component vector of uint)
|
||||
0:34 subgroupBallotFindLSB ( global uint)
|
||||
0:34 'ballot' ( temp 4-component vector of uint)
|
||||
0:35 subgroupBallotFindMSB ( global uint)
|
||||
0:35 'ballot' ( temp 4-component vector of uint)
|
||||
0:37 subgroupShuffle ( global 4-component vector of float)
|
||||
0:37 'f4' ( in 4-component vector of float)
|
||||
0:37 Constant:
|
||||
0:37 0 (const uint)
|
||||
0:38 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:38 'f4' ( in 4-component vector of float)
|
||||
0:38 Constant:
|
||||
0:38 1 (const uint)
|
||||
0:39 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:39 'f4' ( in 4-component vector of float)
|
||||
0:39 Constant:
|
||||
0:39 1 (const uint)
|
||||
0:40 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:40 'f4' ( in 4-component vector of float)
|
||||
0:40 Constant:
|
||||
0:40 1 (const uint)
|
||||
0:42 move second child to first child ( temp 4-component vector of float)
|
||||
0:42 'result' ( temp 4-component vector of float)
|
||||
0:42 subgroupAdd ( global 4-component vector of float)
|
||||
0:42 'f4' ( in 4-component vector of float)
|
||||
0:43 subgroupMul ( global 4-component vector of float)
|
||||
0:43 'f4' ( in 4-component vector of float)
|
||||
0:44 subgroupMin ( global 4-component vector of float)
|
||||
0:44 'f4' ( in 4-component vector of float)
|
||||
0:45 subgroupMax ( global 4-component vector of float)
|
||||
0:45 'f4' ( in 4-component vector of float)
|
||||
0:46 subgroupAnd ( global 4-component vector of uint)
|
||||
0:46 'ballot' ( temp 4-component vector of uint)
|
||||
0:47 subgroupOr ( global 4-component vector of uint)
|
||||
0:47 'ballot' ( temp 4-component vector of uint)
|
||||
0:48 subgroupXor ( global 4-component vector of uint)
|
||||
0:48 'ballot' ( temp 4-component vector of uint)
|
||||
0:49 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:49 'f4' ( in 4-component vector of float)
|
||||
0:50 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:50 'f4' ( in 4-component vector of float)
|
||||
0:51 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:51 'f4' ( in 4-component vector of float)
|
||||
0:52 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:52 'f4' ( in 4-component vector of float)
|
||||
0:53 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:53 'ballot' ( temp 4-component vector of uint)
|
||||
0:54 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:54 'ballot' ( temp 4-component vector of uint)
|
||||
0:55 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:55 'ballot' ( temp 4-component vector of uint)
|
||||
0:56 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:56 'f4' ( in 4-component vector of float)
|
||||
0:57 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:57 'f4' ( in 4-component vector of float)
|
||||
0:58 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:58 'f4' ( in 4-component vector of float)
|
||||
0:59 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:59 'f4' ( in 4-component vector of float)
|
||||
0:60 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:60 'ballot' ( temp 4-component vector of uint)
|
||||
0:61 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:61 'ballot' ( temp 4-component vector of uint)
|
||||
0:62 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:62 'ballot' ( temp 4-component vector of uint)
|
||||
0:64 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:64 'f4' ( in 4-component vector of float)
|
||||
0:64 Constant:
|
||||
0:64 2 (const uint)
|
||||
0:65 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:65 'f4' ( in 4-component vector of float)
|
||||
0:65 Constant:
|
||||
0:65 2 (const uint)
|
||||
0:66 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:66 'f4' ( in 4-component vector of float)
|
||||
0:66 Constant:
|
||||
0:66 2 (const uint)
|
||||
0:67 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:67 'f4' ( in 4-component vector of float)
|
||||
0:67 Constant:
|
||||
0:67 2 (const uint)
|
||||
0:68 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:68 'ballot' ( temp 4-component vector of uint)
|
||||
0:68 Constant:
|
||||
0:68 2 (const uint)
|
||||
0:69 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:69 'ballot' ( temp 4-component vector of uint)
|
||||
0:69 Constant:
|
||||
0:69 2 (const uint)
|
||||
0:70 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:70 'ballot' ( temp 4-component vector of uint)
|
||||
0:70 Constant:
|
||||
0:70 2 (const uint)
|
||||
0:72 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:72 'f4' ( in 4-component vector of float)
|
||||
0:72 Constant:
|
||||
0:72 0 (const uint)
|
||||
0:73 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:73 'f4' ( in 4-component vector of float)
|
||||
0:74 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:74 'f4' ( in 4-component vector of float)
|
||||
0:75 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:75 'f4' ( in 4-component vector of float)
|
||||
0:77 Sequence
|
||||
0:77 move second child to first child ( temp 4-component vector of uint)
|
||||
0:77 'parti' ( temp 4-component vector of uint)
|
||||
0:77 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:77 'f4' ( in 4-component vector of float)
|
||||
0:78 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:78 'f4' ( in 4-component vector of float)
|
||||
0:78 'parti' ( temp 4-component vector of uint)
|
||||
0:79 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:79 'f4' ( in 4-component vector of float)
|
||||
0:79 'parti' ( temp 4-component vector of uint)
|
||||
0:80 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:80 'f4' ( in 4-component vector of float)
|
||||
0:80 'parti' ( temp 4-component vector of uint)
|
||||
0:81 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:81 'f4' ( in 4-component vector of float)
|
||||
0:81 'parti' ( temp 4-component vector of uint)
|
||||
0:82 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:82 'ballot' ( temp 4-component vector of uint)
|
||||
0:82 'parti' ( temp 4-component vector of uint)
|
||||
0:83 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:83 'ballot' ( temp 4-component vector of uint)
|
||||
0:83 'parti' ( temp 4-component vector of uint)
|
||||
0:84 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:84 'ballot' ( temp 4-component vector of uint)
|
||||
0:84 'parti' ( temp 4-component vector of uint)
|
||||
0:85 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:85 'f4' ( in 4-component vector of float)
|
||||
0:85 'parti' ( temp 4-component vector of uint)
|
||||
0:86 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:86 'f4' ( in 4-component vector of float)
|
||||
0:86 'parti' ( temp 4-component vector of uint)
|
||||
0:87 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:87 'f4' ( in 4-component vector of float)
|
||||
0:87 'parti' ( temp 4-component vector of uint)
|
||||
0:88 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:88 'f4' ( in 4-component vector of float)
|
||||
0:88 'parti' ( temp 4-component vector of uint)
|
||||
0:89 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:89 'ballot' ( temp 4-component vector of uint)
|
||||
0:89 'parti' ( temp 4-component vector of uint)
|
||||
0:90 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:90 'ballot' ( temp 4-component vector of uint)
|
||||
0:90 'parti' ( temp 4-component vector of uint)
|
||||
0:91 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:91 'ballot' ( temp 4-component vector of uint)
|
||||
0:91 'parti' ( temp 4-component vector of uint)
|
||||
0:92 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:92 'f4' ( in 4-component vector of float)
|
||||
0:92 'parti' ( temp 4-component vector of uint)
|
||||
0:93 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:93 'f4' ( in 4-component vector of float)
|
||||
0:93 'parti' ( temp 4-component vector of uint)
|
||||
0:94 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:94 'f4' ( in 4-component vector of float)
|
||||
0:94 'parti' ( temp 4-component vector of uint)
|
||||
0:95 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:95 'f4' ( in 4-component vector of float)
|
||||
0:95 'parti' ( temp 4-component vector of uint)
|
||||
0:96 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:96 'ballot' ( temp 4-component vector of uint)
|
||||
0:96 'parti' ( temp 4-component vector of uint)
|
||||
0:97 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:97 'ballot' ( temp 4-component vector of uint)
|
||||
0:97 'parti' ( temp 4-component vector of uint)
|
||||
0:98 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
|
||||
0:98 'ballot' ( temp 4-component vector of uint)
|
||||
0:98 'parti' ( temp 4-component vector of uint)
|
||||
0:100 Branch: Return with expression
|
||||
0:100 'result' ( temp 4-component vector of float)
|
||||
0:127 Function Definition: main( ( global void)
|
||||
0:127 Function Parameters:
|
||||
0:129 Sequence
|
||||
0:129 Sequence
|
||||
0:129 move second child to first child ( temp uint)
|
||||
0:129 'iid' ( temp uint)
|
||||
0:129 direct index ( temp uint)
|
||||
0:129 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID)
|
||||
0:129 Constant:
|
||||
0:129 0 (const int)
|
||||
0:130 Sequence
|
||||
0:130 move second child to first child ( temp uint)
|
||||
0:130 'gid' ( temp uint)
|
||||
0:130 direct index ( temp uint)
|
||||
0:130 'gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
|
||||
0:130 Constant:
|
||||
0:130 0 (const int)
|
||||
0:131 Sequence
|
||||
0:131 move second child to first child ( temp uint)
|
||||
0:131 'viewID' ( temp uint)
|
||||
0:131 indirect index ( temp uint MeshViewIndicesNV)
|
||||
0:131 'gl_MeshViewIndicesNV' ( in 4-element array of uint MeshViewIndicesNV)
|
||||
0:131 mod ( temp uint)
|
||||
0:131 'gl_MeshViewCountNV' ( in uint MeshViewCountNV)
|
||||
0:131 Constant:
|
||||
0:131 4 (const uint)
|
||||
0:134 Sequence
|
||||
0:134 Sequence
|
||||
0:134 move second child to first child ( temp uint)
|
||||
0:134 'i' ( temp uint)
|
||||
0:134 Constant:
|
||||
0:134 0 (const uint)
|
||||
0:134 Loop with condition tested first
|
||||
0:134 Loop Condition
|
||||
0:134 Compare Less Than ( temp bool)
|
||||
0:134 'i' ( temp uint)
|
||||
0:134 Constant:
|
||||
0:134 10 (const uint)
|
||||
0:134 Loop Body
|
||||
0:135 Sequence
|
||||
0:135 move second child to first child ( temp 4-component vector of float)
|
||||
0:135 indirect index ( temp 4-component vector of float)
|
||||
0:135 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:135 'i' ( temp uint)
|
||||
0:135 Construct vec4 ( temp 4-component vector of float)
|
||||
0:135 Convert uint to float ( temp float)
|
||||
0:135 add ( temp uint)
|
||||
0:135 'i' ( temp uint)
|
||||
0:135 uni_value: direct index for structure (layout( column_major shared) uniform uint)
|
||||
0:135 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value})
|
||||
0:135 Constant:
|
||||
0:135 0 (const uint)
|
||||
0:134 Loop Terminal Expression
|
||||
0:134 Pre-Increment ( temp uint)
|
||||
0:134 'i' ( temp uint)
|
||||
0:137 imageStore ( global void)
|
||||
0:137 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
||||
0:137 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:137 Convert uint to int ( temp int)
|
||||
0:137 'iid' ( temp uint)
|
||||
0:137 indirect index ( temp 4-component vector of float)
|
||||
0:137 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:137 'gid' ( temp uint)
|
||||
0:138 imageStore ( global void)
|
||||
0:138 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
||||
0:138 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:138 Convert uint to int ( temp int)
|
||||
0:138 'iid' ( temp uint)
|
||||
0:138 indirect index ( temp 4-component vector of float)
|
||||
0:138 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:138 add ( temp uint)
|
||||
0:138 'gid' ( temp uint)
|
||||
0:138 Constant:
|
||||
0:138 1 (const uint)
|
||||
0:140 MemoryBarrierShared ( global void)
|
||||
0:140 Barrier ( global void)
|
||||
0:144 move second child to first child ( temp 2-component vector of float)
|
||||
0:144 dummy: direct index for structure (layout( std430 offset=0) taskNV out 2-component vector of float)
|
||||
0:144 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:144 Constant:
|
||||
0:144 0 (const int)
|
||||
0:144 Constant:
|
||||
0:144 30.000000
|
||||
0:144 31.000000
|
||||
0:145 move second child to first child ( temp 2-component vector of float)
|
||||
0:145 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:145 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:145 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:145 Constant:
|
||||
0:145 1 (const int)
|
||||
0:145 Constant:
|
||||
0:145 0 (const int)
|
||||
0:145 Constant:
|
||||
0:145 32.000000
|
||||
0:145 33.000000
|
||||
0:146 move second child to first child ( temp 2-component vector of float)
|
||||
0:146 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:146 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:146 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:146 Constant:
|
||||
0:146 1 (const int)
|
||||
0:146 Constant:
|
||||
0:146 1 (const int)
|
||||
0:146 Constant:
|
||||
0:146 34.000000
|
||||
0:146 35.000000
|
||||
0:147 move second child to first child ( temp 2-component vector of float)
|
||||
0:147 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:147 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:147 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:147 Constant:
|
||||
0:147 1 (const int)
|
||||
0:147 Constant:
|
||||
0:147 2 (const int)
|
||||
0:147 indirect index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:147 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:147 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:147 Constant:
|
||||
0:147 1 (const int)
|
||||
0:147 mod ( temp uint)
|
||||
0:147 'gid' ( temp uint)
|
||||
0:147 Constant:
|
||||
0:147 2 (const uint)
|
||||
0:148 move second child to first child ( temp uint)
|
||||
0:148 viewID: direct index for structure (layout( std430 offset=32) taskNV out uint)
|
||||
0:148 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:148 Constant:
|
||||
0:148 2 (const int)
|
||||
0:148 'viewID' ( temp uint)
|
||||
0:150 MemoryBarrierShared ( global void)
|
||||
0:150 Barrier ( global void)
|
||||
0:153 move second child to first child ( temp uint)
|
||||
0:153 'gl_TaskCountNV' ( out uint TaskCountNV)
|
||||
0:153 Constant:
|
||||
0:153 3 (const uint)
|
||||
0:157 Function Definition: basic_works( ( global void)
|
||||
0:157 Function Parameters:
|
||||
0:159 Sequence
|
||||
0:159 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:160 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:161 subgroupBarrier ( global void)
|
||||
0:162 subgroupMemoryBarrier ( global void)
|
||||
0:163 subgroupMemoryBarrierBuffer ( global void)
|
||||
0:164 subgroupMemoryBarrierImage ( global void)
|
||||
0:165 subgroupElect ( global bool)
|
||||
0:166 'gl_NumSubgroups' ( in uint NumSubgroups)
|
||||
0:167 'gl_SubgroupID' ( in uint SubgroupID)
|
||||
0:168 subgroupMemoryBarrierShared ( global void)
|
||||
0:172 Function Definition: ballot_works(vf4; ( global void)
|
||||
0:172 Function Parameters:
|
||||
0:172 'f4' ( in 4-component vector of float)
|
||||
0:173 Sequence
|
||||
0:173 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:174 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:175 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:176 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:177 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:178 subgroupBroadcast ( global 4-component vector of float)
|
||||
0:178 'f4' ( in 4-component vector of float)
|
||||
0:178 Constant:
|
||||
0:178 0 (const uint)
|
||||
0:179 subgroupBroadcastFirst ( global 4-component vector of float)
|
||||
0:179 'f4' ( in 4-component vector of float)
|
||||
0:180 Sequence
|
||||
0:180 move second child to first child ( temp 4-component vector of uint)
|
||||
0:180 'ballot' ( temp 4-component vector of uint)
|
||||
0:180 subgroupBallot ( global 4-component vector of uint)
|
||||
0:180 Constant:
|
||||
0:180 false (const bool)
|
||||
0:181 subgroupInverseBallot ( global bool)
|
||||
0:181 Constant:
|
||||
0:181 1 (const uint)
|
||||
0:181 1 (const uint)
|
||||
0:181 1 (const uint)
|
||||
0:181 1 (const uint)
|
||||
0:182 subgroupBallotBitExtract ( global bool)
|
||||
0:182 'ballot' ( temp 4-component vector of uint)
|
||||
0:182 Constant:
|
||||
0:182 0 (const uint)
|
||||
0:183 subgroupBallotBitCount ( global uint)
|
||||
0:183 'ballot' ( temp 4-component vector of uint)
|
||||
0:184 subgroupBallotInclusiveBitCount ( global uint)
|
||||
0:184 'ballot' ( temp 4-component vector of uint)
|
||||
0:185 subgroupBallotExclusiveBitCount ( global uint)
|
||||
0:185 'ballot' ( temp 4-component vector of uint)
|
||||
0:186 subgroupBallotFindLSB ( global uint)
|
||||
0:186 'ballot' ( temp 4-component vector of uint)
|
||||
0:187 subgroupBallotFindMSB ( global uint)
|
||||
0:187 'ballot' ( temp 4-component vector of uint)
|
||||
0:191 Function Definition: vote_works(vf4; ( global void)
|
||||
0:191 Function Parameters:
|
||||
0:191 'f4' ( in 4-component vector of float)
|
||||
0:193 Sequence
|
||||
0:193 subgroupAll ( global bool)
|
||||
0:193 Constant:
|
||||
0:193 true (const bool)
|
||||
0:194 subgroupAny ( global bool)
|
||||
0:194 Constant:
|
||||
0:194 false (const bool)
|
||||
0:195 subgroupAllEqual ( global bool)
|
||||
0:195 'f4' ( in 4-component vector of float)
|
||||
0:200 Function Definition: shuffle_works(vf4; ( global void)
|
||||
0:200 Function Parameters:
|
||||
0:200 'f4' ( in 4-component vector of float)
|
||||
0:202 Sequence
|
||||
0:202 subgroupShuffle ( global 4-component vector of float)
|
||||
0:202 'f4' ( in 4-component vector of float)
|
||||
0:202 Constant:
|
||||
0:202 0 (const uint)
|
||||
0:203 subgroupShuffleXor ( global 4-component vector of float)
|
||||
0:203 'f4' ( in 4-component vector of float)
|
||||
0:203 Constant:
|
||||
0:203 1 (const uint)
|
||||
0:204 subgroupShuffleUp ( global 4-component vector of float)
|
||||
0:204 'f4' ( in 4-component vector of float)
|
||||
0:204 Constant:
|
||||
0:204 1 (const uint)
|
||||
0:205 subgroupShuffleDown ( global 4-component vector of float)
|
||||
0:205 'f4' ( in 4-component vector of float)
|
||||
0:205 Constant:
|
||||
0:205 1 (const uint)
|
||||
0:209 Function Definition: arith_works(vf4; ( global void)
|
||||
0:209 Function Parameters:
|
||||
0:209 'f4' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:212 subgroupAdd ( global 4-component vector of float)
|
||||
0:212 'f4' ( in 4-component vector of float)
|
||||
0:213 subgroupMul ( global 4-component vector of float)
|
||||
0:213 'f4' ( in 4-component vector of float)
|
||||
0:214 subgroupMin ( global 4-component vector of float)
|
||||
0:214 'f4' ( in 4-component vector of float)
|
||||
0:215 subgroupMax ( global 4-component vector of float)
|
||||
0:215 'f4' ( in 4-component vector of float)
|
||||
0:216 subgroupAnd ( global 4-component vector of uint)
|
||||
0:216 'ballot' ( temp 4-component vector of uint)
|
||||
0:217 subgroupOr ( global 4-component vector of uint)
|
||||
0:217 'ballot' ( temp 4-component vector of uint)
|
||||
0:218 subgroupXor ( global 4-component vector of uint)
|
||||
0:218 'ballot' ( temp 4-component vector of uint)
|
||||
0:219 subgroupInclusiveAdd ( global 4-component vector of float)
|
||||
0:219 'f4' ( in 4-component vector of float)
|
||||
0:220 subgroupInclusiveMul ( global 4-component vector of float)
|
||||
0:220 'f4' ( in 4-component vector of float)
|
||||
0:221 subgroupInclusiveMin ( global 4-component vector of float)
|
||||
0:221 'f4' ( in 4-component vector of float)
|
||||
0:222 subgroupInclusiveMax ( global 4-component vector of float)
|
||||
0:222 'f4' ( in 4-component vector of float)
|
||||
0:223 subgroupInclusiveAnd ( global 4-component vector of uint)
|
||||
0:223 'ballot' ( temp 4-component vector of uint)
|
||||
0:224 subgroupInclusiveOr ( global 4-component vector of uint)
|
||||
0:224 'ballot' ( temp 4-component vector of uint)
|
||||
0:225 subgroupInclusiveXor ( global 4-component vector of uint)
|
||||
0:225 'ballot' ( temp 4-component vector of uint)
|
||||
0:226 subgroupExclusiveAdd ( global 4-component vector of float)
|
||||
0:226 'f4' ( in 4-component vector of float)
|
||||
0:227 subgroupExclusiveMul ( global 4-component vector of float)
|
||||
0:227 'f4' ( in 4-component vector of float)
|
||||
0:228 subgroupExclusiveMin ( global 4-component vector of float)
|
||||
0:228 'f4' ( in 4-component vector of float)
|
||||
0:229 subgroupExclusiveMax ( global 4-component vector of float)
|
||||
0:229 'f4' ( in 4-component vector of float)
|
||||
0:230 subgroupExclusiveAnd ( global 4-component vector of uint)
|
||||
0:230 'ballot' ( temp 4-component vector of uint)
|
||||
0:231 subgroupExclusiveOr ( global 4-component vector of uint)
|
||||
0:231 'ballot' ( temp 4-component vector of uint)
|
||||
0:232 subgroupExclusiveXor ( global 4-component vector of uint)
|
||||
0:232 'ballot' ( temp 4-component vector of uint)
|
||||
0:236 Function Definition: clustered_works(vf4; ( global void)
|
||||
0:236 Function Parameters:
|
||||
0:236 'f4' ( in 4-component vector of float)
|
||||
0:238 Sequence
|
||||
0:238 Sequence
|
||||
0:238 move second child to first child ( temp 4-component vector of uint)
|
||||
0:238 'ballot' ( temp 4-component vector of uint)
|
||||
0:238 Constant:
|
||||
0:238 85 (const uint)
|
||||
0:238 0 (const uint)
|
||||
0:238 0 (const uint)
|
||||
0:238 0 (const uint)
|
||||
0:239 subgroupClusteredAdd ( global 4-component vector of float)
|
||||
0:239 'f4' ( in 4-component vector of float)
|
||||
0:239 Constant:
|
||||
0:239 2 (const uint)
|
||||
0:240 subgroupClusteredMul ( global 4-component vector of float)
|
||||
0:240 'f4' ( in 4-component vector of float)
|
||||
0:240 Constant:
|
||||
0:240 2 (const uint)
|
||||
0:241 subgroupClusteredMin ( global 4-component vector of float)
|
||||
0:241 'f4' ( in 4-component vector of float)
|
||||
0:241 Constant:
|
||||
0:241 2 (const uint)
|
||||
0:242 subgroupClusteredMax ( global 4-component vector of float)
|
||||
0:242 'f4' ( in 4-component vector of float)
|
||||
0:242 Constant:
|
||||
0:242 2 (const uint)
|
||||
0:243 subgroupClusteredAnd ( global 4-component vector of uint)
|
||||
0:243 'ballot' ( temp 4-component vector of uint)
|
||||
0:243 Constant:
|
||||
0:243 2 (const uint)
|
||||
0:244 subgroupClusteredOr ( global 4-component vector of uint)
|
||||
0:244 'ballot' ( temp 4-component vector of uint)
|
||||
0:244 Constant:
|
||||
0:244 2 (const uint)
|
||||
0:245 subgroupClusteredXor ( global 4-component vector of uint)
|
||||
0:245 'ballot' ( temp 4-component vector of uint)
|
||||
0:245 Constant:
|
||||
0:245 2 (const uint)
|
||||
0:249 Function Definition: quad_works(vf4; ( global void)
|
||||
0:249 Function Parameters:
|
||||
0:249 'f4' ( in 4-component vector of float)
|
||||
0:251 Sequence
|
||||
0:251 subgroupQuadBroadcast ( global 4-component vector of float)
|
||||
0:251 'f4' ( in 4-component vector of float)
|
||||
0:251 Constant:
|
||||
0:251 0 (const uint)
|
||||
0:252 subgroupQuadSwapHorizontal ( global 4-component vector of float)
|
||||
0:252 'f4' ( in 4-component vector of float)
|
||||
0:253 subgroupQuadSwapVertical ( global 4-component vector of float)
|
||||
0:253 'f4' ( in 4-component vector of float)
|
||||
0:254 subgroupQuadSwapDiagonal ( global 4-component vector of float)
|
||||
0:254 'f4' ( in 4-component vector of float)
|
||||
0:258 Function Definition: partitioned_works(vf4; ( global void)
|
||||
0:258 Function Parameters:
|
||||
0:258 'f4' ( in 4-component vector of float)
|
||||
0:260 Sequence
|
||||
0:260 Sequence
|
||||
0:260 move second child to first child ( temp 4-component vector of uint)
|
||||
0:260 'parti' ( temp 4-component vector of uint)
|
||||
0:260 subgroupPartitionNV ( global 4-component vector of uint)
|
||||
0:260 'f4' ( in 4-component vector of float)
|
||||
0:261 Sequence
|
||||
0:261 move second child to first child ( temp 4-component vector of uint)
|
||||
0:261 'ballot' ( temp 4-component vector of uint)
|
||||
0:261 Constant:
|
||||
0:261 85 (const uint)
|
||||
0:261 0 (const uint)
|
||||
0:261 0 (const uint)
|
||||
0:261 0 (const uint)
|
||||
0:262 subgroupPartitionedAddNV ( global 4-component vector of float)
|
||||
0:262 'f4' ( in 4-component vector of float)
|
||||
0:262 'parti' ( temp 4-component vector of uint)
|
||||
0:263 subgroupPartitionedMulNV ( global 4-component vector of float)
|
||||
0:263 'f4' ( in 4-component vector of float)
|
||||
0:263 'parti' ( temp 4-component vector of uint)
|
||||
0:264 subgroupPartitionedMinNV ( global 4-component vector of float)
|
||||
0:264 'f4' ( in 4-component vector of float)
|
||||
0:264 'parti' ( temp 4-component vector of uint)
|
||||
0:265 subgroupPartitionedMaxNV ( global 4-component vector of float)
|
||||
0:265 'f4' ( in 4-component vector of float)
|
||||
0:265 'parti' ( temp 4-component vector of uint)
|
||||
0:266 subgroupPartitionedAndNV ( global 4-component vector of uint)
|
||||
0:266 'ballot' ( temp 4-component vector of uint)
|
||||
0:266 'parti' ( temp 4-component vector of uint)
|
||||
0:267 subgroupPartitionedOrNV ( global 4-component vector of uint)
|
||||
0:267 'ballot' ( temp 4-component vector of uint)
|
||||
0:267 'parti' ( temp 4-component vector of uint)
|
||||
0:268 subgroupPartitionedXorNV ( global 4-component vector of uint)
|
||||
0:268 'ballot' ( temp 4-component vector of uint)
|
||||
0:268 'parti' ( temp 4-component vector of uint)
|
||||
0:269 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
|
||||
0:269 'f4' ( in 4-component vector of float)
|
||||
0:269 'parti' ( temp 4-component vector of uint)
|
||||
0:270 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
|
||||
0:270 'f4' ( in 4-component vector of float)
|
||||
0:270 'parti' ( temp 4-component vector of uint)
|
||||
0:271 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
|
||||
0:271 'f4' ( in 4-component vector of float)
|
||||
0:271 'parti' ( temp 4-component vector of uint)
|
||||
0:272 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
|
||||
0:272 'f4' ( in 4-component vector of float)
|
||||
0:272 'parti' ( temp 4-component vector of uint)
|
||||
0:273 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
|
||||
0:273 'ballot' ( temp 4-component vector of uint)
|
||||
0:273 'parti' ( temp 4-component vector of uint)
|
||||
0:274 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
|
||||
0:274 'ballot' ( temp 4-component vector of uint)
|
||||
0:274 'parti' ( temp 4-component vector of uint)
|
||||
0:275 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
|
||||
0:275 'ballot' ( temp 4-component vector of uint)
|
||||
0:275 'parti' ( temp 4-component vector of uint)
|
||||
0:276 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
|
||||
0:276 'f4' ( in 4-component vector of float)
|
||||
0:276 'parti' ( temp 4-component vector of uint)
|
||||
0:277 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
|
||||
0:277 'f4' ( in 4-component vector of float)
|
||||
0:277 'parti' ( temp 4-component vector of uint)
|
||||
0:278 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
|
||||
0:278 'f4' ( in 4-component vector of float)
|
||||
0:278 'parti' ( temp 4-component vector of uint)
|
||||
0:279 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
|
||||
0:279 'f4' ( in 4-component vector of float)
|
||||
0:279 'parti' ( temp 4-component vector of uint)
|
||||
0:280 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
|
||||
0:280 'ballot' ( temp 4-component vector of uint)
|
||||
0:280 'parti' ( temp 4-component vector of uint)
|
||||
0:281 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
|
||||
0:281 'ballot' ( temp 4-component vector of uint)
|
||||
0:281 'parti' ( temp 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 'parti' ( temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 32 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
||||
0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value})
|
||||
0:? 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:? 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
|
||||
|
||||
Linked task stage:
|
||||
|
||||
|
||||
Shader version: 460
|
||||
Requested GL_KHR_shader_subgroup_arithmetic
|
||||
Requested GL_KHR_shader_subgroup_ballot
|
||||
Requested GL_KHR_shader_subgroup_basic
|
||||
Requested GL_KHR_shader_subgroup_clustered
|
||||
Requested GL_KHR_shader_subgroup_quad
|
||||
Requested GL_KHR_shader_subgroup_shuffle
|
||||
Requested GL_KHR_shader_subgroup_shuffle_relative
|
||||
Requested GL_KHR_shader_subgroup_vote
|
||||
Requested GL_NV_mesh_shader
|
||||
Requested GL_NV_shader_subgroup_partitioned
|
||||
local_size = (32, 1, 1)
|
||||
ERROR: node is still EOpNull!
|
||||
0:127 Function Definition: main( ( global void)
|
||||
0:127 Function Parameters:
|
||||
0:129 Sequence
|
||||
0:129 Sequence
|
||||
0:129 move second child to first child ( temp uint)
|
||||
0:129 'iid' ( temp uint)
|
||||
0:129 direct index ( temp uint)
|
||||
0:129 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID)
|
||||
0:129 Constant:
|
||||
0:129 0 (const int)
|
||||
0:130 Sequence
|
||||
0:130 move second child to first child ( temp uint)
|
||||
0:130 'gid' ( temp uint)
|
||||
0:130 direct index ( temp uint)
|
||||
0:130 'gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
|
||||
0:130 Constant:
|
||||
0:130 0 (const int)
|
||||
0:131 Sequence
|
||||
0:131 move second child to first child ( temp uint)
|
||||
0:131 'viewID' ( temp uint)
|
||||
0:131 indirect index ( temp uint MeshViewIndicesNV)
|
||||
0:131 'gl_MeshViewIndicesNV' ( in 4-element array of uint MeshViewIndicesNV)
|
||||
0:131 mod ( temp uint)
|
||||
0:131 'gl_MeshViewCountNV' ( in uint MeshViewCountNV)
|
||||
0:131 Constant:
|
||||
0:131 4 (const uint)
|
||||
0:134 Sequence
|
||||
0:134 Sequence
|
||||
0:134 move second child to first child ( temp uint)
|
||||
0:134 'i' ( temp uint)
|
||||
0:134 Constant:
|
||||
0:134 0 (const uint)
|
||||
0:134 Loop with condition tested first
|
||||
0:134 Loop Condition
|
||||
0:134 Compare Less Than ( temp bool)
|
||||
0:134 'i' ( temp uint)
|
||||
0:134 Constant:
|
||||
0:134 10 (const uint)
|
||||
0:134 Loop Body
|
||||
0:135 Sequence
|
||||
0:135 move second child to first child ( temp 4-component vector of float)
|
||||
0:135 indirect index ( temp 4-component vector of float)
|
||||
0:135 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:135 'i' ( temp uint)
|
||||
0:135 Construct vec4 ( temp 4-component vector of float)
|
||||
0:135 Convert uint to float ( temp float)
|
||||
0:135 add ( temp uint)
|
||||
0:135 'i' ( temp uint)
|
||||
0:135 uni_value: direct index for structure (layout( column_major shared) uniform uint)
|
||||
0:135 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value})
|
||||
0:135 Constant:
|
||||
0:135 0 (const uint)
|
||||
0:134 Loop Terminal Expression
|
||||
0:134 Pre-Increment ( temp uint)
|
||||
0:134 'i' ( temp uint)
|
||||
0:137 imageStore ( global void)
|
||||
0:137 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
||||
0:137 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:137 Convert uint to int ( temp int)
|
||||
0:137 'iid' ( temp uint)
|
||||
0:137 indirect index ( temp 4-component vector of float)
|
||||
0:137 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:137 'gid' ( temp uint)
|
||||
0:138 imageStore ( global void)
|
||||
0:138 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
||||
0:138 Construct ivec2 ( temp 2-component vector of int)
|
||||
0:138 Convert uint to int ( temp int)
|
||||
0:138 'iid' ( temp uint)
|
||||
0:138 indirect index ( temp 4-component vector of float)
|
||||
0:138 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:138 add ( temp uint)
|
||||
0:138 'gid' ( temp uint)
|
||||
0:138 Constant:
|
||||
0:138 1 (const uint)
|
||||
0:140 MemoryBarrierShared ( global void)
|
||||
0:140 Barrier ( global void)
|
||||
0:144 move second child to first child ( temp 2-component vector of float)
|
||||
0:144 dummy: direct index for structure (layout( std430 offset=0) taskNV out 2-component vector of float)
|
||||
0:144 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:144 Constant:
|
||||
0:144 0 (const int)
|
||||
0:144 Constant:
|
||||
0:144 30.000000
|
||||
0:144 31.000000
|
||||
0:145 move second child to first child ( temp 2-component vector of float)
|
||||
0:145 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:145 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:145 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:145 Constant:
|
||||
0:145 1 (const int)
|
||||
0:145 Constant:
|
||||
0:145 0 (const int)
|
||||
0:145 Constant:
|
||||
0:145 32.000000
|
||||
0:145 33.000000
|
||||
0:146 move second child to first child ( temp 2-component vector of float)
|
||||
0:146 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:146 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:146 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:146 Constant:
|
||||
0:146 1 (const int)
|
||||
0:146 Constant:
|
||||
0:146 1 (const int)
|
||||
0:146 Constant:
|
||||
0:146 34.000000
|
||||
0:146 35.000000
|
||||
0:147 move second child to first child ( temp 2-component vector of float)
|
||||
0:147 direct index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:147 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:147 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:147 Constant:
|
||||
0:147 1 (const int)
|
||||
0:147 Constant:
|
||||
0:147 2 (const int)
|
||||
0:147 indirect index (layout( std430 offset=8) taskNV temp 2-component vector of float)
|
||||
0:147 submesh: direct index for structure (layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float)
|
||||
0:147 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:147 Constant:
|
||||
0:147 1 (const int)
|
||||
0:147 mod ( temp uint)
|
||||
0:147 'gid' ( temp uint)
|
||||
0:147 Constant:
|
||||
0:147 2 (const uint)
|
||||
0:148 move second child to first child ( temp uint)
|
||||
0:148 viewID: direct index for structure (layout( std430 offset=32) taskNV out uint)
|
||||
0:148 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
0:148 Constant:
|
||||
0:148 2 (const int)
|
||||
0:148 'viewID' ( temp uint)
|
||||
0:150 MemoryBarrierShared ( global void)
|
||||
0:150 Barrier ( global void)
|
||||
0:153 move second child to first child ( temp uint)
|
||||
0:153 'gl_TaskCountNV' ( out uint TaskCountNV)
|
||||
0:153 Constant:
|
||||
0:153 3 (const uint)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
|
||||
0:? 32 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 1 (const uint)
|
||||
0:? 'uni_image' (layout( binding=0) writeonly uniform image2D)
|
||||
0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform uint uni_value})
|
||||
0:? 'mem' ( shared 10-element array of 4-component vector of float)
|
||||
0:? 'mytask' (layout( std430) taskNV out block{layout( std430 offset=0) taskNV out 2-component vector of float dummy, layout( std430 offset=8) taskNV out 3-element array of 2-component vector of float submesh, layout( std430 offset=32) taskNV out uint viewID})
|
||||
|
||||
@@ -8,8 +8,8 @@ Requested GL_KHR_shader_subgroup_basic
|
||||
0:6 move second child to first child ( temp mediump 4-component vector of uint)
|
||||
0:6 'data' (layout( location=0) out mediump 4-component vector of uint)
|
||||
0:6 Construct uvec4 ( temp mediump 4-component vector of uint)
|
||||
0:6 'gl_SubgroupSize' ( flat in mediump uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in mediump uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupSize' ( flat in mediump uint SubgroupSize)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in mediump uint SubgroupInvocationID)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 Constant:
|
||||
@@ -30,8 +30,8 @@ Requested GL_KHR_shader_subgroup_basic
|
||||
0:6 move second child to first child ( temp mediump 4-component vector of uint)
|
||||
0:6 'data' (layout( location=0) out mediump 4-component vector of uint)
|
||||
0:6 Construct uvec4 ( temp mediump 4-component vector of uint)
|
||||
0:6 'gl_SubgroupSize' ( flat in mediump uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in mediump uint unknown built-in variable)
|
||||
0:6 'gl_SubgroupSize' ( flat in mediump uint SubgroupSize)
|
||||
0:6 'gl_SubgroupInvocationID' ( flat in mediump uint SubgroupInvocationID)
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 Constant:
|
||||
|
||||
@@ -17,8 +17,8 @@ output primitive = points
|
||||
0:12 0 (const uint)
|
||||
0:12 'gl_PrimitiveIDIn' ( in highp int PrimitiveID)
|
||||
0:12 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:12 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:12 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 Constant:
|
||||
@@ -48,8 +48,8 @@ output primitive = points
|
||||
0:12 0 (const uint)
|
||||
0:12 'gl_PrimitiveIDIn' ( in highp int PrimitiveID)
|
||||
0:12 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:12 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:12 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:12 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:12 Constant:
|
||||
0:12 0 (const uint)
|
||||
0:12 Constant:
|
||||
|
||||
@@ -14,8 +14,8 @@ vertices = 1
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
@@ -42,8 +42,8 @@ vertices = 1
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
|
||||
@@ -16,8 +16,8 @@ triangle order = none
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
@@ -46,8 +46,8 @@ triangle order = ccw
|
||||
0:11 0 (const uint)
|
||||
0:11 'gl_PrimitiveID' ( in highp int PrimitiveID)
|
||||
0:11 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:11 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:11 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:11 Constant:
|
||||
0:11 0 (const uint)
|
||||
0:11 Constant:
|
||||
|
||||
@@ -13,8 +13,8 @@ Requested GL_KHR_shader_subgroup_basic
|
||||
0:10 0 (const uint)
|
||||
0:10 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:10 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:10 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:10 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 Constant:
|
||||
@@ -42,8 +42,8 @@ Requested GL_KHR_shader_subgroup_basic
|
||||
0:10 0 (const uint)
|
||||
0:10 'gl_VertexID' ( gl_VertexId highp int VertexId)
|
||||
0:10 Construct uvec4 ( temp highp 4-component vector of uint)
|
||||
0:10 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:10 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:10 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:10 Constant:
|
||||
0:10 0 (const uint)
|
||||
0:10 Constant:
|
||||
|
||||
@@ -12,8 +12,8 @@ local_size = (8, 1, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
@@ -6412,8 +6412,8 @@ local_size = (8, 1, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
|
||||
@@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 Sequence
|
||||
@@ -23,11 +23,11 @@ local_size = (8, 8, 1)
|
||||
0:20 add ( temp highp 4-component vector of uint)
|
||||
0:19 add ( temp highp 4-component vector of uint)
|
||||
0:18 add ( temp highp 4-component vector of uint)
|
||||
0:18 'gl_SubgroupEqMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupGeMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGtMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupLeMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLtMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupEqMask' ( in highp 4-component vector of uint SubgroupEqMask)
|
||||
0:19 'gl_SubgroupGeMask' ( in highp 4-component vector of uint SubgroupGeMask)
|
||||
0:20 'gl_SubgroupGtMask' ( in highp 4-component vector of uint SubgroupGtMask)
|
||||
0:21 'gl_SubgroupLeMask' ( in highp 4-component vector of uint SubgroupLeMask)
|
||||
0:22 'gl_SubgroupLtMask' ( in highp 4-component vector of uint SubgroupLtMask)
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:24 'result' ( temp highp 4-component vector of uint)
|
||||
@@ -1004,8 +1004,8 @@ local_size = (8, 8, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 Sequence
|
||||
@@ -1015,11 +1015,11 @@ local_size = (8, 8, 1)
|
||||
0:20 add ( temp highp 4-component vector of uint)
|
||||
0:19 add ( temp highp 4-component vector of uint)
|
||||
0:18 add ( temp highp 4-component vector of uint)
|
||||
0:18 'gl_SubgroupEqMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupGeMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGtMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupLeMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLtMask' ( in highp 4-component vector of uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupEqMask' ( in highp 4-component vector of uint SubgroupEqMask)
|
||||
0:19 'gl_SubgroupGeMask' ( in highp 4-component vector of uint SubgroupGeMask)
|
||||
0:20 'gl_SubgroupGtMask' ( in highp 4-component vector of uint SubgroupGtMask)
|
||||
0:21 'gl_SubgroupLeMask' ( in highp 4-component vector of uint SubgroupLeMask)
|
||||
0:22 'gl_SubgroupLtMask' ( in highp 4-component vector of uint SubgroupLtMask)
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp highp 4-component vector of uint)
|
||||
0:24 'result' ( temp highp 4-component vector of uint)
|
||||
|
||||
@@ -16,8 +16,8 @@ ERROR: node is still EOpNull!
|
||||
0:16 'invocation' ( temp uint)
|
||||
0:16 mod ( temp uint)
|
||||
0:16 add ( temp uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 Sequence
|
||||
@@ -27,11 +27,11 @@ ERROR: node is still EOpNull!
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:18 add ( temp 4-component vector of uint)
|
||||
0:18 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:19 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:20 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:21 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:22 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp 4-component vector of uint)
|
||||
0:24 'result' ( temp 4-component vector of uint)
|
||||
@@ -153,8 +153,8 @@ ERROR: node is still EOpNull!
|
||||
0:16 'invocation' ( temp uint)
|
||||
0:16 mod ( temp uint)
|
||||
0:16 add ( temp uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 Sequence
|
||||
@@ -164,11 +164,11 @@ ERROR: node is still EOpNull!
|
||||
0:20 add ( temp 4-component vector of uint)
|
||||
0:19 add ( temp 4-component vector of uint)
|
||||
0:18 add ( temp 4-component vector of uint)
|
||||
0:18 'gl_SubgroupEqMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupGeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:20 'gl_SubgroupGtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:21 'gl_SubgroupLeMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:22 'gl_SubgroupLtMask' ( in 4-component vector of uint unknown built-in variable)
|
||||
0:18 'gl_SubgroupEqMask' ( in 4-component vector of uint SubgroupEqMask)
|
||||
0:19 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask)
|
||||
0:20 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask)
|
||||
0:21 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask)
|
||||
0:22 'gl_SubgroupLtMask' ( in 4-component vector of uint SubgroupLtMask)
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp 4-component vector of uint)
|
||||
0:24 'result' ( temp 4-component vector of uint)
|
||||
|
||||
@@ -12,7 +12,7 @@ local_size = (8, 8, 1)
|
||||
0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:14 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:15 move second child to first child ( temp highp int)
|
||||
@@ -21,7 +21,7 @@ local_size = (8, 8, 1)
|
||||
0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:15 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:16 move second child to first child ( temp highp int)
|
||||
@@ -30,7 +30,7 @@ local_size = (8, 8, 1)
|
||||
0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:16 'gl_NumSubgroups' ( in highp uint unknown built-in variable)
|
||||
0:16 'gl_NumSubgroups' ( in highp uint NumSubgroups)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:17 move second child to first child ( temp highp int)
|
||||
@@ -39,7 +39,7 @@ local_size = (8, 8, 1)
|
||||
0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 'gl_SubgroupID' ( in highp uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupID' ( in highp uint SubgroupID)
|
||||
0:17 Test condition and select ( temp highp int)
|
||||
0:17 Condition
|
||||
0:17 subgroupElect ( global bool)
|
||||
@@ -78,7 +78,7 @@ local_size = (8, 8, 1)
|
||||
0:14 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:14 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:14 Constant:
|
||||
0:14 1 (const int)
|
||||
0:15 move second child to first child ( temp highp int)
|
||||
@@ -87,7 +87,7 @@ local_size = (8, 8, 1)
|
||||
0:15 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:15 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:16 move second child to first child ( temp highp int)
|
||||
@@ -96,7 +96,7 @@ local_size = (8, 8, 1)
|
||||
0:16 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:16 'gl_NumSubgroups' ( in highp uint unknown built-in variable)
|
||||
0:16 'gl_NumSubgroups' ( in highp uint NumSubgroups)
|
||||
0:16 Constant:
|
||||
0:16 1 (const int)
|
||||
0:17 move second child to first child ( temp highp int)
|
||||
@@ -105,7 +105,7 @@ local_size = (8, 8, 1)
|
||||
0:17 'data' (layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of highp int a})
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:17 'gl_SubgroupID' ( in highp uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupID' ( in highp uint SubgroupID)
|
||||
0:17 Test condition and select ( temp highp int)
|
||||
0:17 Condition
|
||||
0:17 subgroupElect ( global bool)
|
||||
|
||||
@@ -12,8 +12,8 @@ local_size = (8, 1, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
@@ -2332,8 +2332,8 @@ local_size = (8, 1, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
|
||||
@@ -26,8 +26,8 @@ ERROR: node is still EOpNull!
|
||||
0:19 'invocation' ( temp highp uint)
|
||||
0:19 mod ( temp mediump uint)
|
||||
0:19 add ( temp mediump uint)
|
||||
0:19 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:19 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:19 Constant:
|
||||
0:19 4 (const uint)
|
||||
0:21 move second child to first child ( temp highp 2-component vector of float)
|
||||
@@ -325,8 +325,8 @@ ERROR: node is still EOpNull!
|
||||
0:19 'invocation' ( temp highp uint)
|
||||
0:19 mod ( temp mediump uint)
|
||||
0:19 add ( temp mediump uint)
|
||||
0:19 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:19 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:19 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:19 Constant:
|
||||
0:19 4 (const uint)
|
||||
0:21 move second child to first child ( temp highp 2-component vector of float)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,8 +12,8 @@ local_size = (8, 1, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
@@ -1728,8 +1728,8 @@ local_size = (8, 1, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
|
||||
@@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
@@ -900,8 +900,8 @@ local_size = (8, 8, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
|
||||
@@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
@@ -900,8 +900,8 @@ local_size = (8, 8, 1)
|
||||
0:16 'invocation' ( temp highp uint)
|
||||
0:16 mod ( temp mediump uint)
|
||||
0:16 add ( temp mediump uint)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:16 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:16 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:16 Constant:
|
||||
0:16 4 (const uint)
|
||||
0:18 move second child to first child ( temp highp float)
|
||||
|
||||
@@ -12,8 +12,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp highp uint)
|
||||
0:17 mod ( temp mediump uint)
|
||||
0:17 add ( temp mediump uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Test condition and select ( temp void)
|
||||
@@ -436,8 +436,8 @@ local_size = (8, 8, 1)
|
||||
0:17 'invocation' ( temp highp uint)
|
||||
0:17 mod ( temp mediump uint)
|
||||
0:17 add ( temp mediump uint)
|
||||
0:17 'gl_SubgroupInvocationID' ( in mediump uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupSize' ( in mediump uint unknown built-in variable)
|
||||
0:17 'gl_SubgroupInvocationID' ( in mediump uint SubgroupInvocationID)
|
||||
0:17 'gl_SubgroupSize' ( in mediump uint SubgroupSize)
|
||||
0:17 Constant:
|
||||
0:17 4 (const uint)
|
||||
0:19 Test condition and select ( temp void)
|
||||
|
||||
@@ -11,12 +11,12 @@ local_size = (32, 16, 1)
|
||||
0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 '@gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:6 '@gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:6 Test condition and select ( temp uint): no shortcircuit
|
||||
0:6 Condition
|
||||
0:6 subgroupElect ( temp bool)
|
||||
0:6 true case
|
||||
0:6 '@gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:6 '@gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:6 false case
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
@@ -43,12 +43,12 @@ local_size = (32, 16, 1)
|
||||
0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
0:6 '@gl_SubgroupInvocationID' ( in uint unknown built-in variable)
|
||||
0:6 '@gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
|
||||
0:6 Test condition and select ( temp uint): no shortcircuit
|
||||
0:6 Condition
|
||||
0:6 subgroupElect ( temp bool)
|
||||
0:6 true case
|
||||
0:6 '@gl_SubgroupSize' ( in uint unknown built-in variable)
|
||||
0:6 '@gl_SubgroupSize' ( in uint SubgroupSize)
|
||||
0:6 false case
|
||||
0:6 Constant:
|
||||
0:6 0 (const uint)
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.1.3.8bitstorage-ssbo.vert
|
||||
// Id's are bound by 28
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityStorageBuffer8BitAccess
|
||||
Capability StorageBuffer8BitAccess
|
||||
Extension "SPV_KHR_8bit_storage"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.1.3.8bitstorage-ubo.vert
|
||||
// Id's are bound by 29
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityUniformAndStorageBuffer8BitAccess
|
||||
Capability UniformAndStorageBuffer8BitAccess
|
||||
Extension "SPV_KHR_8bit_storage"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
|
||||
@@ -4,9 +4,9 @@ spv.1.3.coopmat.comp
|
||||
// Id's are bound by 52
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityVariablePointers
|
||||
Capability CapabilityVulkanMemoryModelKHR
|
||||
Capability CapabilityCooperativeMatrixNV
|
||||
Capability VariablePointers
|
||||
Capability VulkanMemoryModelKHR
|
||||
Capability CooperativeMatrixNV
|
||||
Extension "SPV_KHR_vulkan_memory_model"
|
||||
Extension "SPV_NV_cooperative_matrix"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.8bitstorage-int.frag
|
||||
// Id's are bound by 172
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityUniformAndStorageBuffer8BitAccess
|
||||
Capability UniformAndStorageBuffer8BitAccess
|
||||
Extension "SPV_KHR_8bit_storage"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.8bitstorage-ssbo.vert
|
||||
// Id's are bound by 28
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityUniformAndStorageBuffer8BitAccess
|
||||
Capability UniformAndStorageBuffer8BitAccess
|
||||
Extension "SPV_KHR_8bit_storage"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.8bitstorage-ubo.vert
|
||||
// Id's are bound by 29
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityUniformAndStorageBuffer8BitAccess
|
||||
Capability UniformAndStorageBuffer8BitAccess
|
||||
Extension "SPV_KHR_8bit_storage"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.8bitstorage-uint.frag
|
||||
// Id's are bound by 173
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityUniformAndStorageBuffer8BitAccess
|
||||
Capability UniformAndStorageBuffer8BitAccess
|
||||
Extension "SPV_KHR_8bit_storage"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
|
||||
140
Test/baseResults/spv.RayGenShaderArray.rgen.out
Normal file
140
Test/baseResults/spv.RayGenShaderArray.rgen.out
Normal file
@@ -0,0 +1,140 @@
|
||||
spv.RayGenShaderArray.rgen
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 89
|
||||
|
||||
Capability ShaderNonUniformEXT
|
||||
Capability RuntimeDescriptorArrayEXT
|
||||
Capability RayTracingNV
|
||||
Extension "SPV_EXT_descriptor_indexing"
|
||||
Extension "SPV_NV_ray_tracing"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint RayGenerationNV 4 "main" 11 21
|
||||
Source GLSL 460
|
||||
SourceExtension "GL_EXT_nonuniform_qualifier"
|
||||
SourceExtension "GL_NV_ray_tracing"
|
||||
Name 4 "main"
|
||||
Name 8 "lx"
|
||||
Name 11 "gl_LaunchIDNV"
|
||||
Name 16 "ly"
|
||||
Name 20 "sx"
|
||||
Name 21 "gl_LaunchSizeNV"
|
||||
Name 24 "sy"
|
||||
Name 30 "accNV0"
|
||||
Name 34 "block"
|
||||
MemberName 34(block) 0 "dir"
|
||||
MemberName 34(block) 1 "origin"
|
||||
MemberName 34(block) 2 "i"
|
||||
Name 36 ""
|
||||
Name 60 "accNV1"
|
||||
Name 88 "payload"
|
||||
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
|
||||
Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
|
||||
Decorate 30(accNV0) DescriptorSet 0
|
||||
Decorate 30(accNV0) Binding 0
|
||||
MemberDecorate 34(block) 0 Offset 0
|
||||
MemberDecorate 34(block) 1 Offset 16
|
||||
MemberDecorate 34(block) 2 Offset 28
|
||||
Decorate 34(block) BufferBlock
|
||||
Decorate 60(accNV1) DescriptorSet 0
|
||||
Decorate 60(accNV1) Binding 1
|
||||
Decorate 75 DecorationNonUniformEXT
|
||||
Decorate 77 DecorationNonUniformEXT
|
||||
Decorate 88(payload) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: TypePointer Function 6(int)
|
||||
9: TypeVector 6(int) 3
|
||||
10: TypePointer Input 9(ivec3)
|
||||
11(gl_LaunchIDNV): 10(ptr) Variable Input
|
||||
12: 6(int) Constant 0
|
||||
13: TypePointer Input 6(int)
|
||||
17: 6(int) Constant 1
|
||||
21(gl_LaunchSizeNV): 10(ptr) Variable Input
|
||||
27: TypeAccelerationStructureNV
|
||||
28: TypeRuntimeArray 27
|
||||
29: TypePointer UniformConstant 28
|
||||
30(accNV0): 29(ptr) Variable UniformConstant
|
||||
31: TypeFloat 32
|
||||
32: TypeVector 31(float) 3
|
||||
33: TypeInt 32 1
|
||||
34(block): TypeStruct 32(fvec3) 32(fvec3) 33(int)
|
||||
35: TypePointer ShaderRecordBufferNV 34(block)
|
||||
36: 35(ptr) Variable ShaderRecordBufferNV
|
||||
37: 33(int) Constant 2
|
||||
38: TypePointer ShaderRecordBufferNV 33(int)
|
||||
41: TypePointer UniformConstant 27
|
||||
48: 33(int) Constant 1
|
||||
49: TypePointer ShaderRecordBufferNV 32(fvec3)
|
||||
52: 31(float) Constant 1056964608
|
||||
53: 33(int) Constant 0
|
||||
56: 31(float) Constant 1061158912
|
||||
57: 6(int) Constant 2
|
||||
58: TypeArray 27 57
|
||||
59: TypePointer UniformConstant 58
|
||||
60(accNV1): 59(ptr) Variable UniformConstant
|
||||
86: TypeVector 31(float) 4
|
||||
87: TypePointer RayPayloadNV 86(fvec4)
|
||||
88(payload): 87(ptr) Variable RayPayloadNV
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(lx): 7(ptr) Variable Function
|
||||
16(ly): 7(ptr) Variable Function
|
||||
20(sx): 7(ptr) Variable Function
|
||||
24(sy): 7(ptr) Variable Function
|
||||
14: 13(ptr) AccessChain 11(gl_LaunchIDNV) 12
|
||||
15: 6(int) Load 14
|
||||
Store 8(lx) 15
|
||||
18: 13(ptr) AccessChain 11(gl_LaunchIDNV) 17
|
||||
19: 6(int) Load 18
|
||||
Store 16(ly) 19
|
||||
22: 13(ptr) AccessChain 21(gl_LaunchSizeNV) 12
|
||||
23: 6(int) Load 22
|
||||
Store 20(sx) 23
|
||||
25: 13(ptr) AccessChain 21(gl_LaunchSizeNV) 17
|
||||
26: 6(int) Load 25
|
||||
Store 24(sy) 26
|
||||
39: 38(ptr) AccessChain 36 37
|
||||
40: 33(int) Load 39
|
||||
42: 41(ptr) AccessChain 30(accNV0) 40
|
||||
43: 27 Load 42
|
||||
44: 6(int) Load 8(lx)
|
||||
45: 6(int) Load 16(ly)
|
||||
46: 6(int) Load 20(sx)
|
||||
47: 6(int) Load 24(sy)
|
||||
50: 49(ptr) AccessChain 36 48
|
||||
51: 32(fvec3) Load 50
|
||||
54: 49(ptr) AccessChain 36 53
|
||||
55: 32(fvec3) Load 54
|
||||
TraceNV 43 44 45 46 47 12 51 52 55 56 48
|
||||
61: 38(ptr) AccessChain 36 37
|
||||
62: 33(int) Load 61
|
||||
63: 41(ptr) AccessChain 60(accNV1) 62
|
||||
64: 27 Load 63
|
||||
65: 6(int) Load 8(lx)
|
||||
66: 6(int) Load 16(ly)
|
||||
67: 6(int) Load 20(sx)
|
||||
68: 6(int) Load 24(sy)
|
||||
69: 49(ptr) AccessChain 36 48
|
||||
70: 32(fvec3) Load 69
|
||||
71: 49(ptr) AccessChain 36 53
|
||||
72: 32(fvec3) Load 71
|
||||
TraceNV 64 65 66 67 68 12 70 52 72 56 48
|
||||
73: 38(ptr) AccessChain 36 37
|
||||
74: 33(int) Load 73
|
||||
75: 33(int) CopyObject 74
|
||||
76: 41(ptr) AccessChain 30(accNV0) 75
|
||||
77: 27 Load 76
|
||||
78: 6(int) Load 8(lx)
|
||||
79: 6(int) Load 16(ly)
|
||||
80: 6(int) Load 20(sx)
|
||||
81: 6(int) Load 24(sy)
|
||||
82: 49(ptr) AccessChain 36 48
|
||||
83: 32(fvec3) Load 82
|
||||
84: 49(ptr) AccessChain 36 53
|
||||
85: 32(fvec3) Load 84
|
||||
TraceNV 77 78 79 80 81 12 83 52 85 56 48
|
||||
Return
|
||||
FunctionEnd
|
||||
@@ -4,8 +4,8 @@ spv.bufferhandle1.frag
|
||||
// Id's are bound by 52
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityVulkanMemoryModelKHR
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability VulkanMemoryModelKHR
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
Extension "SPV_KHR_vulkan_memory_model"
|
||||
|
||||
@@ -4,8 +4,8 @@ spv.bufferhandle10.frag
|
||||
// Id's are bound by 40
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityVulkanMemoryModelKHR
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability VulkanMemoryModelKHR
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
Extension "SPV_KHR_vulkan_memory_model"
|
||||
|
||||
@@ -7,8 +7,8 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to
|
||||
// Id's are bound by 60
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityStorageBuffer8BitAccess
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability StorageBuffer8BitAccess
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_8bit_storage"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
|
||||
@@ -8,7 +8,7 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to
|
||||
|
||||
Capability Shader
|
||||
Capability StorageUniformBufferBlock16
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_16bit_storage"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.bufferhandle13.frag
|
||||
// Id's are bound by 58
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.bufferhandle14.frag
|
||||
// Id's are bound by 46
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel PhysicalStorageBuffer64EXT GLSL450
|
||||
|
||||
@@ -7,7 +7,7 @@ WARNING: 0:16: '' : all default precisions are highp; use precision statements t
|
||||
// Id's are bound by 60
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
|
||||
@@ -5,7 +5,7 @@ spv.bufferhandle16.frag
|
||||
|
||||
Capability Shader
|
||||
Capability Int64
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel PhysicalStorageBuffer64EXT GLSL450
|
||||
|
||||
@@ -5,7 +5,7 @@ spv.bufferhandle18.frag
|
||||
|
||||
Capability Shader
|
||||
Capability Int64
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel PhysicalStorageBuffer64EXT GLSL450
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.bufferhandle2.frag
|
||||
// Id's are bound by 45
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.bufferhandle3.frag
|
||||
// Id's are bound by 50
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.bufferhandle4.frag
|
||||
// Id's are bound by 61
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.bufferhandle5.frag
|
||||
// Id's are bound by 22
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel PhysicalStorageBuffer64EXT GLSL450
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.bufferhandle6.frag
|
||||
// Id's are bound by 165
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.bufferhandle7.frag
|
||||
// Id's are bound by 24
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
|
||||
@@ -4,7 +4,7 @@ spv.bufferhandle8.frag
|
||||
// Id's are bound by 27
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
|
||||
@@ -5,7 +5,7 @@ spv.bufferhandle9.frag
|
||||
|
||||
Capability Shader
|
||||
Capability Int64
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
|
||||
@@ -6,9 +6,9 @@ spv.coopmat.comp
|
||||
Capability Shader
|
||||
Capability Float16
|
||||
Capability StorageUniformBufferBlock16
|
||||
Capability CapabilityVulkanMemoryModelKHR
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability CapabilityCooperativeMatrixNV
|
||||
Capability VulkanMemoryModelKHR
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Capability CooperativeMatrixNV
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_16bit_storage"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
|
||||
56
Test/baseResults/spv.fsi.frag.out
Normal file
56
Test/baseResults/spv.fsi.frag.out
Normal file
@@ -0,0 +1,56 @@
|
||||
spv.fsi.frag
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 24
|
||||
|
||||
Capability Shader
|
||||
Capability CapabilityFragmentShaderSampleInterlockEXT
|
||||
Extension "SPV_EXT_fragment_shader_interlock"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
ExecutionMode 4 SampleInterlockOrderedEXT
|
||||
Source GLSL 450
|
||||
SourceExtension "GL_ARB_fragment_shader_interlock"
|
||||
Name 4 "main"
|
||||
Name 7 "B1"
|
||||
MemberName 7(B1) 0 "x"
|
||||
Name 9 "b1"
|
||||
Name 17 "im"
|
||||
MemberDecorate 7(B1) 0 Coherent
|
||||
MemberDecorate 7(B1) 0 Offset 0
|
||||
Decorate 7(B1) BufferBlock
|
||||
Decorate 9(b1) DescriptorSet 0
|
||||
Decorate 9(b1) Binding 0
|
||||
Decorate 17(im) DescriptorSet 0
|
||||
Decorate 17(im) Binding 1
|
||||
Decorate 17(im) Coherent
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7(B1): TypeStruct 6(int)
|
||||
8: TypePointer Uniform 7(B1)
|
||||
9(b1): 8(ptr) Variable Uniform
|
||||
10: 6(int) Constant 0
|
||||
11: 6(int) Constant 1
|
||||
12: TypePointer Uniform 6(int)
|
||||
14: TypeFloat 32
|
||||
15: TypeImage 14(float) 2D nonsampled format:Rgba32f
|
||||
16: TypePointer UniformConstant 15
|
||||
17(im): 16(ptr) Variable UniformConstant
|
||||
19: TypeVector 6(int) 2
|
||||
20: 19(ivec2) ConstantComposite 10 10
|
||||
21: TypeVector 14(float) 4
|
||||
22: 14(float) Constant 0
|
||||
23: 21(fvec4) ConstantComposite 22 22 22 22
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
BeginInvocationInterlockEXT
|
||||
13: 12(ptr) AccessChain 9(b1) 10
|
||||
Store 13 11
|
||||
18: 15 Load 17(im)
|
||||
ImageWrite 18 20 23
|
||||
EndInvocationInterlockEXT
|
||||
Return
|
||||
FunctionEnd
|
||||
14
Test/baseResults/spv.fsi_Error.frag.out
Normal file
14
Test/baseResults/spv.fsi_Error.frag.out
Normal file
@@ -0,0 +1,14 @@
|
||||
spv.fsi_Error.frag
|
||||
ERROR: 0:4: 'pixel_interlock_ordered' : can only apply to 'in'
|
||||
ERROR: 0:7: 'pixel_interlock_unordered' : cannot change previously set fragment shader interlock ordering
|
||||
ERROR: 0:11: '' : beginInvocationInterlockARB() must be in main()
|
||||
ERROR: 0:12: '' : endInvocationInterlockARB() must be in main()
|
||||
ERROR: 0:17: '' : endInvocationInterlockARB() must only be called once
|
||||
ERROR: 0:18: '' : beginInvocationInterlockARB() must only be called once
|
||||
ERROR: 0:18: '' : beginInvocationInterlockARB() must be called before endInvocationInterlockARB()
|
||||
ERROR: 0:22: '' : endInvocationInterlockARB() cannot be placed after a return from main()
|
||||
ERROR: 0:22: '' : endInvocationInterlockARB() must only be called once
|
||||
ERROR: 9 compilation errors. No code generated.
|
||||
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
||||
@@ -9,7 +9,7 @@ spv.int8.frag
|
||||
Capability Int64
|
||||
Capability Int16
|
||||
Capability Int8
|
||||
Capability CapabilityUniformAndStorageBuffer8BitAccess
|
||||
Capability UniformAndStorageBuffer8BitAccess
|
||||
Extension "SPV_KHR_8bit_storage"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
|
||||
@@ -6,8 +6,8 @@ spv.memoryScopeSemantics.comp
|
||||
Capability Shader
|
||||
Capability Int64
|
||||
Capability Int64Atomics
|
||||
Capability CapabilityVulkanMemoryModelKHR
|
||||
Capability CapabilityVulkanMemoryModelDeviceScopeKHR
|
||||
Capability VulkanMemoryModelKHR
|
||||
Capability VulkanMemoryModelDeviceScopeKHR
|
||||
Extension "SPV_KHR_vulkan_memory_model"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical VulkanKHR
|
||||
|
||||
@@ -7,18 +7,18 @@ spv.nonuniform.frag
|
||||
Capability InputAttachment
|
||||
Capability SampledBuffer
|
||||
Capability ImageBuffer
|
||||
Capability CapabilityShaderNonUniformEXT
|
||||
Capability CapabilityRuntimeDescriptorArrayEXT
|
||||
Capability CapabilityInputAttachmentArrayDynamicIndexingEXT
|
||||
Capability CapabilityUniformTexelBufferArrayDynamicIndexingEXT
|
||||
Capability CapabilityStorageTexelBufferArrayDynamicIndexingEXT
|
||||
Capability CapabilityUniformBufferArrayNonUniformIndexingEXT
|
||||
Capability CapabilitySampledImageArrayNonUniformIndexingEXT
|
||||
Capability CapabilityStorageBufferArrayNonUniformIndexingEXT
|
||||
Capability CapabilityStorageImageArrayNonUniformIndexingEXT
|
||||
Capability CapabilityInputAttachmentArrayNonUniformIndexingEXT
|
||||
Capability CapabilityUniformTexelBufferArrayNonUniformIndexingEXT
|
||||
Capability CapabilityStorageTexelBufferArrayNonUniformIndexingEXT
|
||||
Capability ShaderNonUniformEXT
|
||||
Capability RuntimeDescriptorArrayEXT
|
||||
Capability InputAttachmentArrayDynamicIndexingEXT
|
||||
Capability UniformTexelBufferArrayDynamicIndexingEXT
|
||||
Capability StorageTexelBufferArrayDynamicIndexingEXT
|
||||
Capability UniformBufferArrayNonUniformIndexingEXT
|
||||
Capability SampledImageArrayNonUniformIndexingEXT
|
||||
Capability StorageBufferArrayNonUniformIndexingEXT
|
||||
Capability StorageImageArrayNonUniformIndexingEXT
|
||||
Capability InputAttachmentArrayNonUniformIndexingEXT
|
||||
Capability UniformTexelBufferArrayNonUniformIndexingEXT
|
||||
Capability StorageTexelBufferArrayNonUniformIndexingEXT
|
||||
Extension "SPV_EXT_descriptor_indexing"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
|
||||
@@ -5,9 +5,9 @@ spv.nonuniform2.frag
|
||||
|
||||
Capability Shader
|
||||
Capability ImageBuffer
|
||||
Capability CapabilityShaderNonUniformEXT
|
||||
Capability CapabilityRuntimeDescriptorArrayEXT
|
||||
Capability CapabilityStorageTexelBufferArrayNonUniformIndexingEXT
|
||||
Capability ShaderNonUniformEXT
|
||||
Capability RuntimeDescriptorArrayEXT
|
||||
Capability StorageTexelBufferArrayNonUniformIndexingEXT
|
||||
Extension "SPV_EXT_descriptor_indexing"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
|
||||
@@ -5,7 +5,7 @@ spv.shaderImageFootprint.frag
|
||||
|
||||
Capability Shader
|
||||
Capability MinLod
|
||||
Capability Bad
|
||||
Capability ImageFootprintNV
|
||||
Extension "SPV_NV_shader_image_footprint"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
|
||||
@@ -1,7 +1,228 @@
|
||||
#version 450
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, only defined in compute
|
||||
gl_SubgroupID; // ERROR, only defined in compute
|
||||
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(location = 0) out uvec4 data;
|
||||
void main (void)
|
||||
{
|
||||
data = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,105 @@
|
||||
#version 450
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, only defined in compute
|
||||
gl_SubgroupID; // ERROR, only defined in compute
|
||||
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(points) in;
|
||||
layout(points, max_vertices = 1) out;
|
||||
@@ -10,4 +111,124 @@ layout(set = 0, binding = 0, std430) buffer Output
|
||||
void main (void)
|
||||
{
|
||||
result[gl_PrimitiveIDIn] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,105 @@
|
||||
#version 450
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, only defined in compute
|
||||
gl_SubgroupID; // ERROR, only defined in compute
|
||||
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(vertices=1) out;
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
@@ -9,4 +110,124 @@ layout(set = 0, binding = 0, std430) buffer Output
|
||||
void main (void)
|
||||
{
|
||||
result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,105 @@
|
||||
#version 450
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, only defined in compute
|
||||
gl_SubgroupID; // ERROR, only defined in compute
|
||||
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(isolines) in;
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
@@ -9,4 +110,123 @@ layout(set = 0, binding = 0, std430) buffer Output
|
||||
void main (void)
|
||||
{
|
||||
result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,105 @@
|
||||
#version 450
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, only defined in compute
|
||||
gl_SubgroupID; // ERROR, only defined in compute
|
||||
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
layout(set = 0, binding = 0, std430) buffer Output
|
||||
{
|
||||
@@ -8,4 +109,124 @@ layout(set = 0, binding = 0, std430) buffer Output
|
||||
void main (void)
|
||||
{
|
||||
result[gl_VertexID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0);
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,105 @@
|
||||
#version 450
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupID; // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierShared(); // ERROR, extension not enabled (basic)
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
@@ -21,3 +121,118 @@ void main()
|
||||
subgroupMemoryBarrierShared();
|
||||
subgroupMemoryBarrierImage();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
|
||||
293
Test/glsl.460.subgroup.mesh
Normal file
293
Test/glsl.460.subgroup.mesh
Normal file
@@ -0,0 +1,293 @@
|
||||
#version 460
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupID; // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierShared(); // ERROR, extension not enabled (basic)
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#define MAX_VER 81
|
||||
#define MAX_PRIM 32
|
||||
|
||||
#define BARRIER() \
|
||||
memoryBarrierShared(); \
|
||||
barrier();
|
||||
|
||||
#extension GL_NV_mesh_shader : enable
|
||||
|
||||
layout(local_size_x = 32) in;
|
||||
|
||||
layout(max_vertices=MAX_VER) out;
|
||||
layout(max_primitives=MAX_PRIM) out;
|
||||
layout(triangles) out;
|
||||
|
||||
// test use of builtins in mesh shaders:
|
||||
|
||||
void main()
|
||||
{
|
||||
uint iid = gl_LocalInvocationID.x;
|
||||
uint gid = gl_WorkGroupID.x;
|
||||
|
||||
gl_MeshVerticesNV[iid].gl_Position = vec4(1.0);
|
||||
gl_MeshVerticesNV[iid].gl_PointSize = 2.0;
|
||||
gl_MeshVerticesNV[iid].gl_ClipDistance[3] = 3.0;
|
||||
gl_MeshVerticesNV[iid].gl_CullDistance[2] = 4.0;
|
||||
|
||||
BARRIER();
|
||||
|
||||
gl_MeshVerticesNV[iid+1].gl_Position = gl_MeshVerticesNV[iid].gl_Position;
|
||||
gl_MeshVerticesNV[iid+1].gl_PointSize = gl_MeshVerticesNV[iid].gl_PointSize;
|
||||
gl_MeshVerticesNV[iid+1].gl_ClipDistance[3] = gl_MeshVerticesNV[iid].gl_ClipDistance[3];
|
||||
gl_MeshVerticesNV[iid+1].gl_CullDistance[2] = gl_MeshVerticesNV[iid].gl_CullDistance[2];
|
||||
|
||||
BARRIER();
|
||||
|
||||
gl_MeshPrimitivesNV[iid].gl_PrimitiveID = 6;
|
||||
gl_MeshPrimitivesNV[iid].gl_Layer = 7;
|
||||
gl_MeshPrimitivesNV[iid].gl_ViewportIndex = 8;
|
||||
gl_MeshPrimitivesNV[iid].gl_ViewportMask[0] = 9;
|
||||
|
||||
BARRIER();
|
||||
|
||||
gl_MeshPrimitivesNV[iid+1].gl_PrimitiveID = gl_MeshPrimitivesNV[iid].gl_PrimitiveID;
|
||||
gl_MeshPrimitivesNV[iid+1].gl_Layer = gl_MeshPrimitivesNV[iid].gl_Layer;
|
||||
gl_MeshPrimitivesNV[iid+1].gl_ViewportIndex = gl_MeshPrimitivesNV[iid].gl_ViewportIndex;
|
||||
gl_MeshPrimitivesNV[iid+1].gl_ViewportMask[0] = gl_MeshPrimitivesNV[iid].gl_ViewportMask[0];
|
||||
|
||||
BARRIER();
|
||||
|
||||
// check bound limits
|
||||
gl_PrimitiveIndicesNV[0] = 257; // should truncate 257 -> 1
|
||||
gl_PrimitiveIndicesNV[(MAX_PRIM * 3) - 1] = 2;
|
||||
gl_PrimitiveIndicesNV[gid] = gl_PrimitiveIndicesNV[gid-1];
|
||||
|
||||
// writes 4 indices at offset gl_DrawID
|
||||
writePackedPrimitiveIndices4x8NV(gl_DrawID, 0x01020304);
|
||||
|
||||
gl_PrimitiveCountNV = MAX_PRIM * 3;
|
||||
|
||||
BARRIER();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
void basic_works (void)
|
||||
{
|
||||
gl_SubgroupSize;
|
||||
gl_SubgroupInvocationID;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
gl_NumSubgroups; // allowed in mesh
|
||||
gl_SubgroupID; // allowed in mesh
|
||||
subgroupMemoryBarrierShared(); // allowed in mesh
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
255
Test/glsl.460.subgroup.rahit
Normal file
255
Test/glsl.460.subgroup.rahit
Normal file
@@ -0,0 +1,255 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : enable
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, only defined in compute
|
||||
gl_SubgroupID; // ERROR, only defined in compute
|
||||
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
layout(location = 1) rayPayloadInNV vec4 incomingPayload;
|
||||
void main()
|
||||
{
|
||||
uvec3 v0 = gl_LaunchIDNV;
|
||||
uvec3 v1 = gl_LaunchSizeNV;
|
||||
int v2 = gl_PrimitiveID;
|
||||
int v3 = gl_InstanceID;
|
||||
int v4 = gl_InstanceCustomIndexNV;
|
||||
vec3 v5 = gl_WorldRayOriginNV;
|
||||
vec3 v6 = gl_WorldRayDirectionNV;
|
||||
vec3 v7 = gl_ObjectRayOriginNV;
|
||||
vec3 v8 = gl_ObjectRayDirectionNV;
|
||||
float v9 = gl_RayTminNV;
|
||||
float v10 = gl_RayTmaxNV;
|
||||
float v11 = gl_HitTNV;
|
||||
uint v12 = gl_HitKindNV;
|
||||
mat4x3 v13 = gl_ObjectToWorldNV;
|
||||
mat4x3 v14 = gl_WorldToObjectNV;
|
||||
incomingPayload = vec4(0.5f);
|
||||
if (v2 == 1)
|
||||
ignoreIntersectionNV();
|
||||
else
|
||||
terminateRayNV();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
void basic_works (void)
|
||||
{
|
||||
gl_SubgroupSize;
|
||||
gl_SubgroupInvocationID;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
243
Test/glsl.460.subgroup.rcall
Normal file
243
Test/glsl.460.subgroup.rcall
Normal file
@@ -0,0 +1,243 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : enable
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, only defined in compute
|
||||
gl_SubgroupID; // ERROR, only defined in compute
|
||||
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
layout(location = 0) callableDataNV vec4 data0;
|
||||
layout(location = 1) callableDataInNV dataBlock {
|
||||
uint data1;
|
||||
};
|
||||
void main()
|
||||
{
|
||||
uvec3 id = gl_LaunchIDNV;
|
||||
uvec3 size = gl_LaunchSizeNV;
|
||||
data1 = 256U;
|
||||
executeCallableNV(2,1);
|
||||
}
|
||||
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
void basic_works (void)
|
||||
{
|
||||
gl_SubgroupSize;
|
||||
gl_SubgroupInvocationID;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
253
Test/glsl.460.subgroup.rchit
Normal file
253
Test/glsl.460.subgroup.rchit
Normal file
@@ -0,0 +1,253 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : enable
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, only defined in compute
|
||||
gl_SubgroupID; // ERROR, only defined in compute
|
||||
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV;
|
||||
layout(location = 0) rayPayloadNV vec4 localPayload;
|
||||
layout(location = 1) rayPayloadInNV vec4 incomingPayload;
|
||||
void main()
|
||||
{
|
||||
uvec3 v0 = gl_LaunchIDNV;
|
||||
uvec3 v1 = gl_LaunchSizeNV;
|
||||
int v2 = gl_PrimitiveID;
|
||||
int v3 = gl_InstanceID;
|
||||
int v4 = gl_InstanceCustomIndexNV;
|
||||
vec3 v5 = gl_WorldRayOriginNV;
|
||||
vec3 v6 = gl_WorldRayDirectionNV;
|
||||
vec3 v7 = gl_ObjectRayOriginNV;
|
||||
vec3 v8 = gl_ObjectRayDirectionNV;
|
||||
float v9 = gl_RayTminNV;
|
||||
float v10 = gl_RayTmaxNV;
|
||||
float v11 = gl_HitTNV;
|
||||
uint v12 = gl_HitKindNV;
|
||||
mat4x3 v13 = gl_ObjectToWorldNV;
|
||||
mat4x3 v14 = gl_WorldToObjectNV;
|
||||
traceNV(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
void basic_works (void)
|
||||
{
|
||||
gl_SubgroupSize;
|
||||
gl_SubgroupInvocationID;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
247
Test/glsl.460.subgroup.rgen
Normal file
247
Test/glsl.460.subgroup.rgen
Normal file
@@ -0,0 +1,247 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : enable
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, only defined in compute
|
||||
gl_SubgroupID; // ERROR, only defined in compute
|
||||
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV0;
|
||||
layout(binding = 1, set = 0) uniform accelerationStructureNV accNV1; // Unused
|
||||
layout(location = 0) rayPayloadNV vec4 payload;
|
||||
layout(shaderRecordNV) buffer block
|
||||
{
|
||||
vec3 dir;
|
||||
vec3 origin;
|
||||
|
||||
};
|
||||
void main()
|
||||
{
|
||||
uint lx = gl_LaunchIDNV.x;
|
||||
uint ly = gl_LaunchIDNV.y;
|
||||
uint sx = gl_LaunchSizeNV.x;
|
||||
uint sy = gl_LaunchSizeNV.y;
|
||||
traceNV(accNV0, lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
void basic_works (void)
|
||||
{
|
||||
gl_SubgroupSize;
|
||||
gl_SubgroupInvocationID;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
253
Test/glsl.460.subgroup.rint
Normal file
253
Test/glsl.460.subgroup.rint
Normal file
@@ -0,0 +1,253 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : enable
|
||||
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, only defined in compute
|
||||
gl_SubgroupID; // ERROR, only defined in compute
|
||||
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
hitAttributeNV vec4 iAttr;
|
||||
void main()
|
||||
{
|
||||
uvec3 v0 = gl_LaunchIDNV;
|
||||
uvec3 v1 = gl_LaunchSizeNV;
|
||||
int v2 = gl_PrimitiveID;
|
||||
int v3 = gl_InstanceID;
|
||||
int v4 = gl_InstanceCustomIndexNV;
|
||||
vec3 v5 = gl_WorldRayOriginNV;
|
||||
vec3 v6 = gl_WorldRayDirectionNV;
|
||||
vec3 v7 = gl_ObjectRayOriginNV;
|
||||
vec3 v8 = gl_ObjectRayDirectionNV;
|
||||
float v9 = gl_RayTminNV;
|
||||
float v10 = gl_RayTmaxNV;
|
||||
mat4x3 v11 = gl_ObjectToWorldNV;
|
||||
mat4x3 v12 = gl_WorldToObjectNV;
|
||||
iAttr = vec4(0.5f,0.5f,0.0f,1.0f);
|
||||
reportIntersectionNV(0.5, 1U);
|
||||
}
|
||||
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
void basic_works (void)
|
||||
{
|
||||
gl_SubgroupSize;
|
||||
gl_SubgroupInvocationID;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
247
Test/glsl.460.subgroup.rmiss
Normal file
247
Test/glsl.460.subgroup.rmiss
Normal file
@@ -0,0 +1,247 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : enable
|
||||
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, only defined in compute
|
||||
gl_SubgroupID; // ERROR, only defined in compute
|
||||
subgroupMemoryBarrierShared(); // ERROR, only defined in compute
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV;
|
||||
layout(location = 0) rayPayloadNV vec4 localPayload;
|
||||
layout(location = 1) rayPayloadInNV vec4 incomingPayload;
|
||||
void main()
|
||||
{
|
||||
uvec3 v0 = gl_LaunchIDNV;
|
||||
uvec3 v1 = gl_LaunchSizeNV;
|
||||
vec3 v2 = gl_WorldRayOriginNV;
|
||||
vec3 v3 = gl_WorldRayDirectionNV;
|
||||
vec3 v4 = gl_ObjectRayOriginNV;
|
||||
vec3 v5 = gl_ObjectRayDirectionNV;
|
||||
float v6 = gl_RayTminNV;
|
||||
float v7 = gl_RayTmaxNV;
|
||||
traceNV(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
void basic_works (void)
|
||||
{
|
||||
gl_SubgroupSize;
|
||||
gl_SubgroupInvocationID;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
284
Test/glsl.460.subgroup.task
Normal file
284
Test/glsl.460.subgroup.task
Normal file
@@ -0,0 +1,284 @@
|
||||
#version 460
|
||||
|
||||
vec4 undeclared_errors(vec4 f4)
|
||||
{
|
||||
vec4 result;
|
||||
gl_SubgroupSize; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupInvocationID; // ERROR, extension not enabled (basic)
|
||||
subgroupBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrier(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierBuffer(); // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierImage(); // ERROR, extension not enabled (basic)
|
||||
subgroupElect(); // ERROR, extension not enabled (basic)
|
||||
gl_NumSubgroups; // ERROR, extension not enabled (basic)
|
||||
gl_SubgroupID; // ERROR, extension not enabled (basic)
|
||||
subgroupMemoryBarrierShared(); // ERROR, extension not enabled (basic)
|
||||
|
||||
subgroupAll(true); // ERROR extension not enabled (vote)
|
||||
subgroupAny(false); // ERROR extension not enabled (vote)
|
||||
subgroupAllEqual(f4); // ERROR extension not enabled (vote)
|
||||
|
||||
gl_SubgroupEqMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupGtMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLeMask; // ERROR extension not enabled (ballot)
|
||||
gl_SubgroupLtMask; // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcast(f4, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBroadcastFirst(f4); // ERROR extension not enabled (ballot)
|
||||
uvec4 ballot = subgroupBallot(false); // ERROR extension not enabled (ballot)
|
||||
subgroupInverseBallot(uvec4(0x1)); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitExtract(ballot, 0); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotInclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotExclusiveBitCount(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindLSB(ballot); // ERROR extension not enabled (ballot)
|
||||
subgroupBallotFindMSB(ballot); // ERROR extension not enabled (ballot)
|
||||
|
||||
subgroupShuffle(f4, 0); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleXor(f4, 0x1); // ERROR extension not enabled (shuffle)
|
||||
subgroupShuffleUp(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
subgroupShuffleDown(f4, 1); // ERROR extension not enabled (shuffle_relative)
|
||||
|
||||
result = subgroupAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupInclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAdd(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMul(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMin(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveMax(f4); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveAnd(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveOr(ballot); // ERROR, extension not enabled (arith)
|
||||
subgroupExclusiveXor(ballot); // ERROR, extension not enabled (arith)
|
||||
|
||||
subgroupClusteredAdd(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMul(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMin(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredMax(f4, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredAnd(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredOr(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
subgroupClusteredXor(ballot, 2); // ERROR, extension not enabled (clustered)
|
||||
|
||||
subgroupQuadBroadcast(f4, 0); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapHorizontal(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapVertical(f4); // ERROR, extension not enabled (quad)
|
||||
subgroupQuadSwapDiagonal(f4); // ERROR, extension not enabled (quad)
|
||||
|
||||
uvec4 parti = subgroupPartitionNV(f4); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti); // ERROR, extension not enabled (partitioned)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#define MAX_VIEWS gl_MaxMeshViewCountNV
|
||||
|
||||
#define BARRIER() \
|
||||
memoryBarrierShared(); \
|
||||
barrier();
|
||||
|
||||
#extension GL_NV_mesh_shader : enable
|
||||
|
||||
layout(local_size_x = 32) in;
|
||||
|
||||
// test use of shared memory in task shaders:
|
||||
layout(binding=0) writeonly uniform image2D uni_image;
|
||||
uniform block0 {
|
||||
uint uni_value;
|
||||
};
|
||||
shared vec4 mem[10];
|
||||
|
||||
// test use of task memory in task shaders:
|
||||
taskNV out Task {
|
||||
vec2 dummy;
|
||||
vec2 submesh[3];
|
||||
uint viewID;
|
||||
} mytask;
|
||||
|
||||
void main()
|
||||
{
|
||||
uint iid = gl_LocalInvocationID.x;
|
||||
uint gid = gl_WorkGroupID.x;
|
||||
uint viewID = gl_MeshViewIndicesNV[gl_MeshViewCountNV%MAX_VIEWS];
|
||||
|
||||
// 1. shared memory load and stores
|
||||
for (uint i = 0; i < 10; ++i) {
|
||||
mem[i] = vec4(i + uni_value);
|
||||
}
|
||||
imageStore(uni_image, ivec2(iid), mem[gid]);
|
||||
imageStore(uni_image, ivec2(iid), mem[gid+1]);
|
||||
|
||||
BARRIER();
|
||||
|
||||
// 2. task memory stores
|
||||
|
||||
mytask.dummy = vec2(30.0, 31.0);
|
||||
mytask.submesh[0] = vec2(32.0, 33.0);
|
||||
mytask.submesh[1] = vec2(34.0, 35.0);
|
||||
mytask.submesh[2] = mytask.submesh[gid%2];
|
||||
mytask.viewID = viewID;
|
||||
|
||||
BARRIER();
|
||||
|
||||
// 3. set task count
|
||||
gl_TaskCountNV = 3;
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
void basic_works (void)
|
||||
{
|
||||
gl_SubgroupSize;
|
||||
gl_SubgroupInvocationID;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierImage();
|
||||
subgroupElect();
|
||||
gl_NumSubgroups; // allowed in task
|
||||
gl_SubgroupID; // allowed in task
|
||||
subgroupMemoryBarrierShared(); // allowed in task
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_ballot: enable
|
||||
void ballot_works(vec4 f4) {
|
||||
gl_SubgroupEqMask;
|
||||
gl_SubgroupGeMask;
|
||||
gl_SubgroupGtMask;
|
||||
gl_SubgroupLeMask;
|
||||
gl_SubgroupLtMask;
|
||||
subgroupBroadcast(f4, 0);
|
||||
subgroupBroadcastFirst(f4);
|
||||
uvec4 ballot = subgroupBallot(false);
|
||||
subgroupInverseBallot(uvec4(0x1));
|
||||
subgroupBallotBitExtract(ballot, 0);
|
||||
subgroupBallotBitCount(ballot);
|
||||
subgroupBallotInclusiveBitCount(ballot);
|
||||
subgroupBallotExclusiveBitCount(ballot);
|
||||
subgroupBallotFindLSB(ballot);
|
||||
subgroupBallotFindMSB(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_vote: enable
|
||||
void vote_works(vec4 f4)
|
||||
{
|
||||
subgroupAll(true);
|
||||
subgroupAny(false);
|
||||
subgroupAllEqual(f4);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_shuffle: enable
|
||||
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
|
||||
void shuffle_works(vec4 f4)
|
||||
{
|
||||
subgroupShuffle(f4, 0);
|
||||
subgroupShuffleXor(f4, 0x1);
|
||||
subgroupShuffleUp(f4, 1);
|
||||
subgroupShuffleDown(f4, 1);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_arithmetic: enable
|
||||
void arith_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot;
|
||||
subgroupAdd(f4);
|
||||
subgroupMul(f4);
|
||||
subgroupMin(f4);
|
||||
subgroupMax(f4);
|
||||
subgroupAnd(ballot);
|
||||
subgroupOr(ballot);
|
||||
subgroupXor(ballot);
|
||||
subgroupInclusiveAdd(f4);
|
||||
subgroupInclusiveMul(f4);
|
||||
subgroupInclusiveMin(f4);
|
||||
subgroupInclusiveMax(f4);
|
||||
subgroupInclusiveAnd(ballot);
|
||||
subgroupInclusiveOr(ballot);
|
||||
subgroupInclusiveXor(ballot);
|
||||
subgroupExclusiveAdd(f4);
|
||||
subgroupExclusiveMul(f4);
|
||||
subgroupExclusiveMin(f4);
|
||||
subgroupExclusiveMax(f4);
|
||||
subgroupExclusiveAnd(ballot);
|
||||
subgroupExclusiveOr(ballot);
|
||||
subgroupExclusiveXor(ballot);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_clustered: enable
|
||||
void clustered_works(vec4 f4)
|
||||
{
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupClusteredAdd(f4, 2);
|
||||
subgroupClusteredMul(f4, 2);
|
||||
subgroupClusteredMin(f4, 2);
|
||||
subgroupClusteredMax(f4, 2);
|
||||
subgroupClusteredAnd(ballot, 2);
|
||||
subgroupClusteredOr(ballot, 2);
|
||||
subgroupClusteredXor(ballot, 2);
|
||||
}
|
||||
|
||||
#extension GL_KHR_shader_subgroup_quad: enable
|
||||
void quad_works(vec4 f4)
|
||||
{
|
||||
subgroupQuadBroadcast(f4, 0);
|
||||
subgroupQuadSwapHorizontal(f4);
|
||||
subgroupQuadSwapVertical(f4);
|
||||
subgroupQuadSwapDiagonal(f4);
|
||||
}
|
||||
|
||||
#extension GL_NV_shader_subgroup_partitioned: enable
|
||||
void partitioned_works(vec4 f4)
|
||||
{
|
||||
uvec4 parti = subgroupPartitionNV(f4);
|
||||
uvec4 ballot = uvec4(0x55,0,0,0);
|
||||
subgroupPartitionedAddNV(f4, parti);
|
||||
subgroupPartitionedMulNV(f4, parti);
|
||||
subgroupPartitionedMinNV(f4, parti);
|
||||
subgroupPartitionedMaxNV(f4, parti);
|
||||
subgroupPartitionedAndNV(ballot, parti);
|
||||
subgroupPartitionedOrNV(ballot, parti);
|
||||
subgroupPartitionedXorNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedInclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedInclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedInclusiveXorNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveAddNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMulNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMinNV(f4, parti);
|
||||
subgroupPartitionedExclusiveMaxNV(f4, parti);
|
||||
subgroupPartitionedExclusiveAndNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveOrNV(ballot, parti);
|
||||
subgroupPartitionedExclusiveXorNV(ballot, parti);
|
||||
}
|
||||
|
||||
22
Test/spv.RayGenShaderArray.rgen
Normal file
22
Test/spv.RayGenShaderArray.rgen
Normal file
@@ -0,0 +1,22 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : enable
|
||||
#extension GL_EXT_nonuniform_qualifier : enable
|
||||
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV0[];
|
||||
layout(binding = 1, set = 0) uniform accelerationStructureNV accNV1[2];
|
||||
layout(location = 0) rayPayloadNV vec4 payload;
|
||||
layout(shaderRecordNV) buffer block
|
||||
{
|
||||
vec3 dir;
|
||||
vec3 origin;
|
||||
int i;
|
||||
};
|
||||
void main()
|
||||
{
|
||||
uint lx = gl_LaunchIDNV.x;
|
||||
uint ly = gl_LaunchIDNV.y;
|
||||
uint sx = gl_LaunchSizeNV.x;
|
||||
uint sy = gl_LaunchSizeNV.y;
|
||||
traceNV(accNV0[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
|
||||
traceNV(accNV1[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
|
||||
traceNV(accNV0[nonuniformEXT(i)], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
|
||||
}
|
||||
20
Test/spv.fsi.frag
Normal file
20
Test/spv.fsi.frag
Normal file
@@ -0,0 +1,20 @@
|
||||
#version 450
|
||||
#extension GL_ARB_fragment_shader_interlock : enable
|
||||
|
||||
layout(set = 0, binding = 0) coherent buffer B1 {
|
||||
layout(offset = 0) int x;
|
||||
} b1;
|
||||
|
||||
layout(set = 0, binding = 1, rgba32f) coherent uniform image2D im;
|
||||
|
||||
layout(sample_interlock_ordered) in;
|
||||
|
||||
void main() {
|
||||
|
||||
beginInvocationInterlockARB();
|
||||
|
||||
b1.x = 1;
|
||||
imageStore(im, ivec2(0,0), vec4(0));
|
||||
|
||||
endInvocationInterlockARB();
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user