Multiple features and misc fixes for final raytracing non experimental version.
This commit is contained in:
parent
b2b3d81e9b
commit
ff1783db87
@ -66,8 +66,8 @@ const char* const E_SPV_NV_shader_image_footprint = "SPV_NV_shader_image_footpri
|
|||||||
//SPV_NV_mesh_shader
|
//SPV_NV_mesh_shader
|
||||||
const char* const E_SPV_NV_mesh_shader = "SPV_NV_mesh_shader";
|
const char* const E_SPV_NV_mesh_shader = "SPV_NV_mesh_shader";
|
||||||
|
|
||||||
//SPV_NVX_raytracing
|
//SPV_NV_raytracing
|
||||||
const char* const E_SPV_NVX_raytracing = "SPV_NVX_raytracing";
|
const char* const E_SPV_NV_ray_tracing = "SPV_NV_ray_tracing";
|
||||||
|
|
||||||
//SPV_NV_shading_rate
|
//SPV_NV_shading_rate
|
||||||
const char* const E_SPV_NV_shading_rate = "SPV_NV_shading_rate";
|
const char* const E_SPV_NV_shading_rate = "SPV_NV_shading_rate";
|
||||||
|
@ -276,12 +276,12 @@ spv::ExecutionModel TranslateExecutionModel(EShLanguage stage)
|
|||||||
case EShLangFragment: return spv::ExecutionModelFragment;
|
case EShLangFragment: return spv::ExecutionModelFragment;
|
||||||
case EShLangCompute: return spv::ExecutionModelGLCompute;
|
case EShLangCompute: return spv::ExecutionModelGLCompute;
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case EShLangRayGenNV: return spv::ExecutionModelRayGenerationNVX;
|
case EShLangRayGenNV: return spv::ExecutionModelRayGenerationNV;
|
||||||
case EShLangIntersectNV: return spv::ExecutionModelIntersectionNVX;
|
case EShLangIntersectNV: return spv::ExecutionModelIntersectionNV;
|
||||||
case EShLangAnyHitNV: return spv::ExecutionModelAnyHitNVX;
|
case EShLangAnyHitNV: return spv::ExecutionModelAnyHitNV;
|
||||||
case EShLangClosestHitNV: return spv::ExecutionModelClosestHitNVX;
|
case EShLangClosestHitNV: return spv::ExecutionModelClosestHitNV;
|
||||||
case EShLangMissNV: return spv::ExecutionModelMissNVX;
|
case EShLangMissNV: return spv::ExecutionModelMissNV;
|
||||||
case EShLangCallableNV: return spv::ExecutionModelCallableNVX;
|
case EShLangCallableNV: return spv::ExecutionModelCallableNV;
|
||||||
case EShLangTaskNV: return spv::ExecutionModelTaskNV;
|
case EShLangTaskNV: return spv::ExecutionModelTaskNV;
|
||||||
case EShLangMeshNV: return spv::ExecutionModelMeshNV;
|
case EShLangMeshNV: return spv::ExecutionModelMeshNV;
|
||||||
#endif
|
#endif
|
||||||
@ -338,6 +338,8 @@ spv::Decoration TranslateBlockDecoration(const glslang::TType& type, bool useSto
|
|||||||
case glslang::EvqPayloadNV: return spv::DecorationBlock;
|
case glslang::EvqPayloadNV: return spv::DecorationBlock;
|
||||||
case glslang::EvqPayloadInNV: return spv::DecorationBlock;
|
case glslang::EvqPayloadInNV: return spv::DecorationBlock;
|
||||||
case glslang::EvqHitAttrNV: return spv::DecorationBlock;
|
case glslang::EvqHitAttrNV: return spv::DecorationBlock;
|
||||||
|
case glslang::EvqCallableDataNV: return spv::DecorationBlock;
|
||||||
|
case glslang::EvqCallableDataInNV: return spv::DecorationBlock;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
@ -411,6 +413,8 @@ spv::Decoration TranslateLayoutDecoration(const glslang::TType& type, glslang::T
|
|||||||
case glslang::EvqPayloadNV:
|
case glslang::EvqPayloadNV:
|
||||||
case glslang::EvqPayloadInNV:
|
case glslang::EvqPayloadInNV:
|
||||||
case glslang::EvqHitAttrNV:
|
case glslang::EvqHitAttrNV:
|
||||||
|
case glslang::EvqCallableDataNV:
|
||||||
|
case glslang::EvqCallableDataInNV:
|
||||||
return spv::DecorationMax;
|
return spv::DecorationMax;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
@ -875,31 +879,33 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
|||||||
|
|
||||||
// raytracing
|
// raytracing
|
||||||
case glslang::EbvLaunchIdNV:
|
case glslang::EbvLaunchIdNV:
|
||||||
return spv::BuiltInLaunchIdNVX;
|
return spv::BuiltInLaunchIdNV;
|
||||||
case glslang::EbvLaunchSizeNV:
|
case glslang::EbvLaunchSizeNV:
|
||||||
return spv::BuiltInLaunchSizeNVX;
|
return spv::BuiltInLaunchSizeNV;
|
||||||
case glslang::EbvWorldRayOriginNV:
|
case glslang::EbvWorldRayOriginNV:
|
||||||
return spv::BuiltInWorldRayOriginNVX;
|
return spv::BuiltInWorldRayOriginNV;
|
||||||
case glslang::EbvWorldRayDirectionNV:
|
case glslang::EbvWorldRayDirectionNV:
|
||||||
return spv::BuiltInWorldRayDirectionNVX;
|
return spv::BuiltInWorldRayDirectionNV;
|
||||||
case glslang::EbvObjectRayOriginNV:
|
case glslang::EbvObjectRayOriginNV:
|
||||||
return spv::BuiltInObjectRayOriginNVX;
|
return spv::BuiltInObjectRayOriginNV;
|
||||||
case glslang::EbvObjectRayDirectionNV:
|
case glslang::EbvObjectRayDirectionNV:
|
||||||
return spv::BuiltInObjectRayDirectionNVX;
|
return spv::BuiltInObjectRayDirectionNV;
|
||||||
case glslang::EbvRayTminNV:
|
case glslang::EbvRayTminNV:
|
||||||
return spv::BuiltInRayTminNVX;
|
return spv::BuiltInRayTminNV;
|
||||||
case glslang::EbvRayTmaxNV:
|
case glslang::EbvRayTmaxNV:
|
||||||
return spv::BuiltInRayTmaxNVX;
|
return spv::BuiltInRayTmaxNV;
|
||||||
case glslang::EbvInstanceCustomIndexNV:
|
case glslang::EbvInstanceCustomIndexNV:
|
||||||
return spv::BuiltInInstanceCustomIndexNVX;
|
return spv::BuiltInInstanceCustomIndexNV;
|
||||||
case glslang::EbvHitTNV:
|
case glslang::EbvHitTNV:
|
||||||
return spv::BuiltInHitTNVX;
|
return spv::BuiltInHitTNV;
|
||||||
case glslang::EbvHitKindNV:
|
case glslang::EbvHitKindNV:
|
||||||
return spv::BuiltInHitKindNVX;
|
return spv::BuiltInHitKindNV;
|
||||||
case glslang::EbvObjectToWorldNV:
|
case glslang::EbvObjectToWorldNV:
|
||||||
return spv::BuiltInObjectToWorldNVX;
|
return spv::BuiltInObjectToWorldNV;
|
||||||
case glslang::EbvWorldToObjectNV:
|
case glslang::EbvWorldToObjectNV:
|
||||||
return spv::BuiltInWorldToObjectNVX;
|
return spv::BuiltInWorldToObjectNV;
|
||||||
|
case glslang::EbvIncomingRayFlagsNV:
|
||||||
|
return spv::BuiltInIncomingRayFlagsNV;
|
||||||
case glslang::EbvBaryCoordNV:
|
case glslang::EbvBaryCoordNV:
|
||||||
builder.addExtension(spv::E_SPV_NV_fragment_shader_barycentric);
|
builder.addExtension(spv::E_SPV_NV_fragment_shader_barycentric);
|
||||||
builder.addCapability(spv::CapabilityFragmentBarycentricNV);
|
builder.addCapability(spv::CapabilityFragmentBarycentricNV);
|
||||||
@ -1082,7 +1088,7 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T
|
|||||||
return spv::StorageClassPushConstant;
|
return spv::StorageClassPushConstant;
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
if (type.getQualifier().layoutShaderRecordNV)
|
if (type.getQualifier().layoutShaderRecordNV)
|
||||||
return spv::StorageClassShaderRecordBufferNVX;
|
return spv::StorageClassShaderRecordBufferNV;
|
||||||
#endif
|
#endif
|
||||||
if (type.getBasicType() == glslang::EbtBlock)
|
if (type.getBasicType() == glslang::EbtBlock)
|
||||||
return spv::StorageClassUniform;
|
return spv::StorageClassUniform;
|
||||||
@ -1095,9 +1101,11 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T
|
|||||||
case glslang::EvqConstReadOnly: return spv::StorageClassFunction;
|
case glslang::EvqConstReadOnly: return spv::StorageClassFunction;
|
||||||
case glslang::EvqTemporary: return spv::StorageClassFunction;
|
case glslang::EvqTemporary: return spv::StorageClassFunction;
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case glslang::EvqPayloadNV: return spv::StorageClassRayPayloadNVX;
|
case glslang::EvqPayloadNV: return spv::StorageClassRayPayloadNV;
|
||||||
case glslang::EvqPayloadInNV: return spv::StorageClassIncomingRayPayloadNVX;
|
case glslang::EvqPayloadInNV: return spv::StorageClassIncomingRayPayloadNV;
|
||||||
case glslang::EvqHitAttrNV: return spv::StorageClassHitAttributeNVX;
|
case glslang::EvqHitAttrNV: return spv::StorageClassHitAttributeNV;
|
||||||
|
case glslang::EvqCallableDataNV: return spv::StorageClassCallableDataNV;
|
||||||
|
case glslang::EvqCallableDataInNV: return spv::StorageClassIncomingCallableDataNV;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
@ -1430,8 +1438,8 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl
|
|||||||
case EShLangClosestHitNV:
|
case EShLangClosestHitNV:
|
||||||
case EShLangMissNV:
|
case EShLangMissNV:
|
||||||
case EShLangCallableNV:
|
case EShLangCallableNV:
|
||||||
builder.addCapability(spv::CapabilityRaytracingNVX);
|
builder.addCapability(spv::CapabilityRayTracingNV);
|
||||||
builder.addExtension("SPV_NVX_raytracing");
|
builder.addExtension("SPV_NV_ray_tracing");
|
||||||
break;
|
break;
|
||||||
case EShLangTaskNV:
|
case EShLangTaskNV:
|
||||||
case EShLangMeshNV:
|
case EShLangMeshNV:
|
||||||
@ -2267,6 +2275,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
|||||||
case glslang::EOpIgnoreIntersectionNV:
|
case glslang::EOpIgnoreIntersectionNV:
|
||||||
case glslang::EOpTerminateRayNV:
|
case glslang::EOpTerminateRayNV:
|
||||||
case glslang::EOpTraceNV:
|
case glslang::EOpTraceNV:
|
||||||
|
case glslang::EOpExecuteCallableNV:
|
||||||
case glslang::EOpWritePackedPrimitiveIndices4x8NV:
|
case glslang::EOpWritePackedPrimitiveIndices4x8NV:
|
||||||
noReturnValue = true;
|
noReturnValue = true;
|
||||||
break;
|
break;
|
||||||
@ -6871,12 +6880,18 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
|||||||
case glslang::EOpReportIntersectionNV:
|
case glslang::EOpReportIntersectionNV:
|
||||||
{
|
{
|
||||||
typeId = builder.makeBoolType();
|
typeId = builder.makeBoolType();
|
||||||
opCode = spv::OpReportIntersectionNVX;
|
opCode = spv::OpReportIntersectionNV;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case glslang::EOpTraceNV:
|
case glslang::EOpTraceNV:
|
||||||
{
|
{
|
||||||
builder.createNoResultOp(spv::OpTraceNVX, operands);
|
builder.createNoResultOp(spv::OpTraceNV, operands);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case glslang::EOpExecuteCallableNV:
|
||||||
|
{
|
||||||
|
builder.createNoResultOp(spv::OpExecuteCallableNV, operands);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -7060,10 +7075,10 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv:
|
|||||||
#endif
|
#endif
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case glslang::EOpIgnoreIntersectionNV:
|
case glslang::EOpIgnoreIntersectionNV:
|
||||||
builder.createNoResultOp(spv::OpIgnoreIntersectionNVX);
|
builder.createNoResultOp(spv::OpIgnoreIntersectionNV);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpTerminateRayNV:
|
case glslang::EOpTerminateRayNV:
|
||||||
builder.createNoResultOp(spv::OpTerminateRayNVX);
|
builder.createNoResultOp(spv::OpTerminateRayNV);
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
|
@ -507,12 +507,12 @@ Id Builder::makeSampledImageType(Id imageType)
|
|||||||
Id Builder::makeAccelerationStructureNVType()
|
Id Builder::makeAccelerationStructureNVType()
|
||||||
{
|
{
|
||||||
Instruction *type;
|
Instruction *type;
|
||||||
if (groupedTypes[OpTypeAccelerationStructureNVX].size() == 0) {
|
if (groupedTypes[OpTypeAccelerationStructureNV].size() == 0) {
|
||||||
type = new Instruction(getUniqueId(), NoType, OpTypeAccelerationStructureNVX);
|
type = new Instruction(getUniqueId(), NoType, OpTypeAccelerationStructureNV);
|
||||||
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
|
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
|
||||||
module.mapInstruction(type);
|
module.mapInstruction(type);
|
||||||
} else {
|
} else {
|
||||||
type = groupedTypes[OpTypeAccelerationStructureNVX].back();
|
type = groupedTypes[OpTypeAccelerationStructureNV].back();
|
||||||
}
|
}
|
||||||
|
|
||||||
return type->getResultId();
|
return type->getResultId();
|
||||||
|
100
SPIRV/doc.cpp
100
SPIRV/doc.cpp
@ -106,12 +106,12 @@ const char* ExecutionModelString(int model)
|
|||||||
default: return "Bad";
|
default: return "Bad";
|
||||||
|
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case ExecutionModelRayGenerationNVX: return "RayGenerationNVX";
|
case ExecutionModelRayGenerationNV: return "RayGenerationNV";
|
||||||
case ExecutionModelIntersectionNVX: return "IntersectionNVX";
|
case ExecutionModelIntersectionNV: return "IntersectionNV";
|
||||||
case ExecutionModelAnyHitNVX: return "AnyHitNVX";
|
case ExecutionModelAnyHitNV: return "AnyHitNV";
|
||||||
case ExecutionModelClosestHitNVX: return "ClosestHitNVX";
|
case ExecutionModelClosestHitNV: return "ClosestHitNV";
|
||||||
case ExecutionModelMissNVX: return "MissNVX";
|
case ExecutionModelMissNV: return "MissNV";
|
||||||
case ExecutionModelCallableNVX: return "CallableNVX";
|
case ExecutionModelCallableNV: return "CallableNV";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -212,10 +212,12 @@ const char* StorageClassString(int StorageClass)
|
|||||||
case 12: return "StorageBuffer";
|
case 12: return "StorageBuffer";
|
||||||
|
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case StorageClassRayPayloadNVX: return "RayPayloadNVX";
|
case StorageClassRayPayloadNV: return "RayPayloadNV";
|
||||||
case StorageClassHitAttributeNVX: return "HitAttributeNVX";
|
case StorageClassHitAttributeNV: return "HitAttributeNV";
|
||||||
case StorageClassIncomingRayPayloadNVX: return "IncomingRayPayloadNVX";
|
case StorageClassIncomingRayPayloadNV: return "IncomingRayPayloadNV";
|
||||||
case StorageClassShaderRecordBufferNVX: return "ShaderRecordBufferNVX";
|
case StorageClassShaderRecordBufferNV: return "ShaderRecordBufferNV";
|
||||||
|
case StorageClassCallableDataNV: return "CallableDataNV";
|
||||||
|
case StorageClassIncomingCallableDataNV: return "IncomingCallableDataNV";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
default: return "Bad";
|
default: return "Bad";
|
||||||
@ -367,19 +369,20 @@ const char* BuiltInString(int builtIn)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case BuiltInLaunchIdNVX: return "LaunchIdNVX";
|
case BuiltInLaunchIdNV: return "LaunchIdNV";
|
||||||
case BuiltInLaunchSizeNVX: return "LaunchSizeNVX";
|
case BuiltInLaunchSizeNV: return "LaunchSizeNV";
|
||||||
case BuiltInWorldRayOriginNVX: return "WorldRayOriginNVX";
|
case BuiltInWorldRayOriginNV: return "WorldRayOriginNV";
|
||||||
case BuiltInWorldRayDirectionNVX: return "WorldRayDirectionNVX";
|
case BuiltInWorldRayDirectionNV: return "WorldRayDirectionNV";
|
||||||
case BuiltInObjectRayOriginNVX: return "ObjectRayOriginNVX";
|
case BuiltInObjectRayOriginNV: return "ObjectRayOriginNV";
|
||||||
case BuiltInObjectRayDirectionNVX: return "ObjectRayDirectionNVX";
|
case BuiltInObjectRayDirectionNV: return "ObjectRayDirectionNV";
|
||||||
case BuiltInRayTminNVX: return "RayTminNVX";
|
case BuiltInRayTminNV: return "RayTminNV";
|
||||||
case BuiltInRayTmaxNVX: return "RayTmaxNVX";
|
case BuiltInRayTmaxNV: return "RayTmaxNV";
|
||||||
case BuiltInInstanceCustomIndexNVX: return "InstanceCustomIndexNVX";
|
case BuiltInInstanceCustomIndexNV: return "InstanceCustomIndexNV";
|
||||||
case BuiltInObjectToWorldNVX: return "ObjectToWorldNVX";
|
case BuiltInObjectToWorldNV: return "ObjectToWorldNV";
|
||||||
case BuiltInWorldToObjectNVX: return "WorldToObjectNVX";
|
case BuiltInWorldToObjectNV: return "WorldToObjectNV";
|
||||||
case BuiltInHitTNVX: return "HitTNVX";
|
case BuiltInHitTNV: return "HitTNV";
|
||||||
case BuiltInHitKindNVX: return "HitKindNVX";
|
case BuiltInHitKindNV: return "HitKindNV";
|
||||||
|
case BuiltInIncomingRayFlagsNV: return "IncomingRayFlagsNV";
|
||||||
case BuiltInViewportMaskNV: return "ViewportMaskNV";
|
case BuiltInViewportMaskNV: return "ViewportMaskNV";
|
||||||
case BuiltInSecondaryPositionNV: return "SecondaryPositionNV";
|
case BuiltInSecondaryPositionNV: return "SecondaryPositionNV";
|
||||||
case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV";
|
case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV";
|
||||||
@ -889,7 +892,7 @@ const char* CapabilityString(int info)
|
|||||||
case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV";
|
case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV";
|
||||||
case CapabilityPerViewAttributesNV: return "PerViewAttributesNV";
|
case CapabilityPerViewAttributesNV: return "PerViewAttributesNV";
|
||||||
case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV";
|
case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV";
|
||||||
case CapabilityRaytracingNVX: return "RaytracingNVX";
|
case CapabilityRayTracingNV: return "RayTracingNV";
|
||||||
case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV";
|
case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV";
|
||||||
case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV";
|
case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV";
|
||||||
case CapabilityFragmentBarycentricNV: return "FragmentBarycentricNV";
|
case CapabilityFragmentBarycentricNV: return "FragmentBarycentricNV";
|
||||||
@ -1308,11 +1311,12 @@ const char* OpcodeString(int op)
|
|||||||
|
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV";
|
case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV";
|
||||||
case OpReportIntersectionNVX: return "OpReportIntersectionNVX";
|
case OpReportIntersectionNV: return "OpReportIntersectionNV";
|
||||||
case OpIgnoreIntersectionNVX: return "OpIgnoreIntersectionNVX";
|
case OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV";
|
||||||
case OpTerminateRayNVX: return "OpTerminateRayNVX";
|
case OpTerminateRayNV: return "OpTerminateRayNV";
|
||||||
case OpTraceNVX: return "OpTraceNVX";
|
case OpTraceNV: return "OpTraceNV";
|
||||||
case OpTypeAccelerationStructureNVX: return "OpTypeAccelerationStructureNVX";
|
case OpTypeAccelerationStructureNV: return "OpTypeAccelerationStructureNV";
|
||||||
|
case OpExecuteCallableNV: return "OpExecuteCallableNV";
|
||||||
case OpImageSampleFootprintNV: return "OpImageSampleFootprintNV";
|
case OpImageSampleFootprintNV: return "OpImageSampleFootprintNV";
|
||||||
case OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV";
|
case OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV";
|
||||||
#endif
|
#endif
|
||||||
@ -2662,27 +2666,31 @@ void Parameterize()
|
|||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
InstructionDesc[OpGroupNonUniformPartitionNV].operands.push(OperandId, "X");
|
InstructionDesc[OpGroupNonUniformPartitionNV].operands.push(OperandId, "X");
|
||||||
|
|
||||||
InstructionDesc[OpTypeAccelerationStructureNVX].setResultAndType(true, false);
|
InstructionDesc[OpTypeAccelerationStructureNV].setResultAndType(true, false);
|
||||||
|
|
||||||
InstructionDesc[OpTraceNVX].operands.push(OperandId, "'NV Acceleration Structure'");
|
InstructionDesc[OpTraceNV].operands.push(OperandId, "'NV Acceleration Structure'");
|
||||||
InstructionDesc[OpTraceNVX].operands.push(OperandId, "'Ray Flags'");
|
InstructionDesc[OpTraceNV].operands.push(OperandId, "'Ray Flags'");
|
||||||
InstructionDesc[OpTraceNVX].operands.push(OperandId, "'Cull Mask'");
|
InstructionDesc[OpTraceNV].operands.push(OperandId, "'Cull Mask'");
|
||||||
InstructionDesc[OpTraceNVX].operands.push(OperandId, "'SBT Record Offset'");
|
InstructionDesc[OpTraceNV].operands.push(OperandId, "'SBT Record Offset'");
|
||||||
InstructionDesc[OpTraceNVX].operands.push(OperandId, "'SBT Record Stride'");
|
InstructionDesc[OpTraceNV].operands.push(OperandId, "'SBT Record Stride'");
|
||||||
InstructionDesc[OpTraceNVX].operands.push(OperandId, "'Miss Index'");
|
InstructionDesc[OpTraceNV].operands.push(OperandId, "'Miss Index'");
|
||||||
InstructionDesc[OpTraceNVX].operands.push(OperandId, "'Ray Origin'");
|
InstructionDesc[OpTraceNV].operands.push(OperandId, "'Ray Origin'");
|
||||||
InstructionDesc[OpTraceNVX].operands.push(OperandId, "'TMin'");
|
InstructionDesc[OpTraceNV].operands.push(OperandId, "'TMin'");
|
||||||
InstructionDesc[OpTraceNVX].operands.push(OperandId, "'Ray Direction'");
|
InstructionDesc[OpTraceNV].operands.push(OperandId, "'Ray Direction'");
|
||||||
InstructionDesc[OpTraceNVX].operands.push(OperandId, "'TMax'");
|
InstructionDesc[OpTraceNV].operands.push(OperandId, "'TMax'");
|
||||||
InstructionDesc[OpTraceNVX].operands.push(OperandId, "'Payload'");
|
InstructionDesc[OpTraceNV].operands.push(OperandId, "'Payload'");
|
||||||
InstructionDesc[OpTraceNVX].setResultAndType(false, false);
|
InstructionDesc[OpTraceNV].setResultAndType(false, false);
|
||||||
|
|
||||||
InstructionDesc[OpReportIntersectionNVX].operands.push(OperandId, "'Hit Parameter'");
|
InstructionDesc[OpReportIntersectionNV].operands.push(OperandId, "'Hit Parameter'");
|
||||||
InstructionDesc[OpReportIntersectionNVX].operands.push(OperandId, "'Hit Kind'");
|
InstructionDesc[OpReportIntersectionNV].operands.push(OperandId, "'Hit Kind'");
|
||||||
|
|
||||||
InstructionDesc[OpIgnoreIntersectionNVX].setResultAndType(false, false);
|
InstructionDesc[OpIgnoreIntersectionNV].setResultAndType(false, false);
|
||||||
|
|
||||||
InstructionDesc[OpTerminateRayNVX].setResultAndType(false, false);
|
InstructionDesc[OpTerminateRayNV].setResultAndType(false, false);
|
||||||
|
|
||||||
|
InstructionDesc[OpExecuteCallableNV].operands.push(OperandId, "SBT Record Index");
|
||||||
|
InstructionDesc[OpExecuteCallableNV].operands.push(OperandId, "CallableData ID");
|
||||||
|
InstructionDesc[OpExecuteCallableNV].setResultAndType(false, false);
|
||||||
|
|
||||||
InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Sampled Image'");
|
InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Sampled Image'");
|
||||||
InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Coordinate'");
|
InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Coordinate'");
|
||||||
|
@ -75,12 +75,12 @@ enum ExecutionModel {
|
|||||||
ExecutionModelKernel = 6,
|
ExecutionModelKernel = 6,
|
||||||
ExecutionModelTaskNV = 5267,
|
ExecutionModelTaskNV = 5267,
|
||||||
ExecutionModelMeshNV = 5268,
|
ExecutionModelMeshNV = 5268,
|
||||||
ExecutionModelRayGenerationNVX = 5313,
|
ExecutionModelRayGenerationNV = 5313,
|
||||||
ExecutionModelIntersectionNVX = 5314,
|
ExecutionModelIntersectionNV = 5314,
|
||||||
ExecutionModelAnyHitNVX = 5315,
|
ExecutionModelAnyHitNV = 5315,
|
||||||
ExecutionModelClosestHitNVX = 5316,
|
ExecutionModelClosestHitNV = 5316,
|
||||||
ExecutionModelMissNVX = 5317,
|
ExecutionModelMissNV = 5317,
|
||||||
ExecutionModelCallableNVX = 5318,
|
ExecutionModelCallableNV = 5318,
|
||||||
ExecutionModelMax = 0x7fffffff,
|
ExecutionModelMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -162,10 +162,12 @@ enum StorageClass {
|
|||||||
StorageClassAtomicCounter = 10,
|
StorageClassAtomicCounter = 10,
|
||||||
StorageClassImage = 11,
|
StorageClassImage = 11,
|
||||||
StorageClassStorageBuffer = 12,
|
StorageClassStorageBuffer = 12,
|
||||||
StorageClassRayPayloadNVX = 5338,
|
StorageClassCallableDataNV = 5328,
|
||||||
StorageClassHitAttributeNVX = 5339,
|
StorageClassIncomingCallableDataNV = 5329,
|
||||||
StorageClassIncomingRayPayloadNVX = 5342,
|
StorageClassRayPayloadNV = 5338,
|
||||||
StorageClassShaderRecordBufferNVX = 5343,
|
StorageClassHitAttributeNV = 5339,
|
||||||
|
StorageClassIncomingRayPayloadNV = 5342,
|
||||||
|
StorageClassShaderRecordBufferNV = 5343,
|
||||||
StorageClassMax = 0x7fffffff,
|
StorageClassMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -512,19 +514,20 @@ enum BuiltIn {
|
|||||||
BuiltInBaryCoordNoPerspNV = 5287,
|
BuiltInBaryCoordNoPerspNV = 5287,
|
||||||
BuiltInFragmentSizeNV = 5292,
|
BuiltInFragmentSizeNV = 5292,
|
||||||
BuiltInInvocationsPerPixelNV = 5293,
|
BuiltInInvocationsPerPixelNV = 5293,
|
||||||
BuiltInLaunchIdNVX = 5319,
|
BuiltInLaunchIdNV = 5319,
|
||||||
BuiltInLaunchSizeNVX = 5320,
|
BuiltInLaunchSizeNV = 5320,
|
||||||
BuiltInWorldRayOriginNVX = 5321,
|
BuiltInWorldRayOriginNV = 5321,
|
||||||
BuiltInWorldRayDirectionNVX = 5322,
|
BuiltInWorldRayDirectionNV = 5322,
|
||||||
BuiltInObjectRayOriginNVX = 5323,
|
BuiltInObjectRayOriginNV = 5323,
|
||||||
BuiltInObjectRayDirectionNVX = 5324,
|
BuiltInObjectRayDirectionNV = 5324,
|
||||||
BuiltInRayTminNVX = 5325,
|
BuiltInRayTminNV = 5325,
|
||||||
BuiltInRayTmaxNVX = 5326,
|
BuiltInRayTmaxNV = 5326,
|
||||||
BuiltInInstanceCustomIndexNVX = 5327,
|
BuiltInInstanceCustomIndexNV = 5327,
|
||||||
BuiltInObjectToWorldNVX = 5330,
|
BuiltInObjectToWorldNV = 5330,
|
||||||
BuiltInWorldToObjectNVX = 5331,
|
BuiltInWorldToObjectNV = 5331,
|
||||||
BuiltInHitTNVX = 5332,
|
BuiltInHitTNV = 5332,
|
||||||
BuiltInHitKindNVX = 5333,
|
BuiltInHitKindNV = 5333,
|
||||||
|
BuiltInIncomingRayFlagsNV = 5351,
|
||||||
BuiltInMax = 0x7fffffff,
|
BuiltInMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -781,7 +784,7 @@ enum Capability {
|
|||||||
CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
|
CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
|
||||||
CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||||
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||||
CapabilityRaytracingNVX = 5340,
|
CapabilityRayTracingNV = 5340,
|
||||||
CapabilityVulkanMemoryModelKHR = 5345,
|
CapabilityVulkanMemoryModelKHR = 5345,
|
||||||
CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
|
CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
|
||||||
CapabilityComputeDerivativeGroupLinearNV = 5350,
|
CapabilityComputeDerivativeGroupLinearNV = 5350,
|
||||||
@ -1151,11 +1154,12 @@ enum Op {
|
|||||||
OpImageSampleFootprintNV = 5283,
|
OpImageSampleFootprintNV = 5283,
|
||||||
OpGroupNonUniformPartitionNV = 5296,
|
OpGroupNonUniformPartitionNV = 5296,
|
||||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||||
OpReportIntersectionNVX = 5334,
|
OpReportIntersectionNV = 5334,
|
||||||
OpIgnoreIntersectionNVX = 5335,
|
OpIgnoreIntersectionNV = 5335,
|
||||||
OpTerminateRayNVX = 5336,
|
OpTerminateRayNV = 5336,
|
||||||
OpTraceNVX = 5337,
|
OpTraceNV = 5337,
|
||||||
OpTypeAccelerationStructureNVX = 5341,
|
OpTypeAccelerationStructureNV = 5341,
|
||||||
|
OpExecuteCallableNV = 5344,
|
||||||
OpSubgroupShuffleINTEL = 5571,
|
OpSubgroupShuffleINTEL = 5571,
|
||||||
OpSubgroupShuffleDownINTEL = 5572,
|
OpSubgroupShuffleDownINTEL = 5572,
|
||||||
OpSubgroupShuffleUpINTEL = 5573,
|
OpSubgroupShuffleUpINTEL = 5573,
|
||||||
|
@ -3,99 +3,99 @@ spv.AnyHitShader.rahit
|
|||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 81
|
// Id's are bound by 81
|
||||||
|
|
||||||
Capability RaytracingNVX
|
Capability RayTracingNV
|
||||||
Extension "SPV_NVX_raytracing"
|
Extension "SPV_NV_ray_tracing"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint AnyHitNVX 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67
|
EntryPoint AnyHitNV 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67
|
||||||
Source GLSL 460
|
Source GLSL 460
|
||||||
SourceExtension "GL_NVX_raytracing"
|
SourceExtension "GL_NV_ray_tracing"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "v0"
|
Name 9 "v0"
|
||||||
Name 11 "gl_LaunchIDNVX"
|
Name 11 "gl_LaunchIDNV"
|
||||||
Name 13 "v1"
|
Name 13 "v1"
|
||||||
Name 14 "gl_LaunchSizeNVX"
|
Name 14 "gl_LaunchSizeNV"
|
||||||
Name 18 "v2"
|
Name 18 "v2"
|
||||||
Name 20 "gl_PrimitiveID"
|
Name 20 "gl_PrimitiveID"
|
||||||
Name 22 "v3"
|
Name 22 "v3"
|
||||||
Name 23 "gl_InstanceID"
|
Name 23 "gl_InstanceID"
|
||||||
Name 25 "v4"
|
Name 25 "v4"
|
||||||
Name 26 "gl_InstanceCustomIndexNVX"
|
Name 26 "gl_InstanceCustomIndexNV"
|
||||||
Name 31 "v5"
|
Name 31 "v5"
|
||||||
Name 33 "gl_WorldRayOriginNVX"
|
Name 33 "gl_WorldRayOriginNV"
|
||||||
Name 35 "v6"
|
Name 35 "v6"
|
||||||
Name 36 "gl_WorldRayDirectionNVX"
|
Name 36 "gl_WorldRayDirectionNV"
|
||||||
Name 38 "v7"
|
Name 38 "v7"
|
||||||
Name 39 "gl_ObjectRayOriginNVX"
|
Name 39 "gl_ObjectRayOriginNV"
|
||||||
Name 41 "v8"
|
Name 41 "v8"
|
||||||
Name 42 "gl_ObjectRayDirectionNVX"
|
Name 42 "gl_ObjectRayDirectionNV"
|
||||||
Name 45 "v9"
|
Name 45 "v9"
|
||||||
Name 47 "gl_RayTminNVX"
|
Name 47 "gl_RayTminNV"
|
||||||
Name 49 "v10"
|
Name 49 "v10"
|
||||||
Name 50 "gl_RayTmaxNVX"
|
Name 50 "gl_RayTmaxNV"
|
||||||
Name 52 "v11"
|
Name 52 "v11"
|
||||||
Name 53 "gl_HitTNVX"
|
Name 53 "gl_HitTNV"
|
||||||
Name 56 "v12"
|
Name 56 "v12"
|
||||||
Name 58 "gl_HitKindNVX"
|
Name 58 "gl_HitKindNV"
|
||||||
Name 62 "v13"
|
Name 62 "v13"
|
||||||
Name 64 "gl_ObjectToWorldNVX"
|
Name 64 "gl_ObjectToWorldNV"
|
||||||
Name 66 "v14"
|
Name 66 "v14"
|
||||||
Name 67 "gl_WorldToObjectNVX"
|
Name 67 "gl_WorldToObjectNV"
|
||||||
Name 71 "incomingPayload"
|
Name 71 "incomingPayload"
|
||||||
Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX
|
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
|
||||||
Decorate 14(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX
|
Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
|
||||||
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
|
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||||
Decorate 23(gl_InstanceID) BuiltIn InstanceId
|
Decorate 23(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 26(gl_InstanceCustomIndexNVX) BuiltIn InstanceCustomIndexNVX
|
Decorate 26(gl_InstanceCustomIndexNV) BuiltIn InstanceCustomIndexNV
|
||||||
Decorate 33(gl_WorldRayOriginNVX) BuiltIn WorldRayOriginNVX
|
Decorate 33(gl_WorldRayOriginNV) BuiltIn WorldRayOriginNV
|
||||||
Decorate 36(gl_WorldRayDirectionNVX) BuiltIn WorldRayDirectionNVX
|
Decorate 36(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionNV
|
||||||
Decorate 39(gl_ObjectRayOriginNVX) BuiltIn ObjectRayOriginNVX
|
Decorate 39(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginNV
|
||||||
Decorate 42(gl_ObjectRayDirectionNVX) BuiltIn ObjectRayDirectionNVX
|
Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionNV
|
||||||
Decorate 47(gl_RayTminNVX) BuiltIn RayTminNVX
|
Decorate 47(gl_RayTminNV) BuiltIn RayTminNV
|
||||||
Decorate 50(gl_RayTmaxNVX) BuiltIn RayTmaxNVX
|
Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxNV
|
||||||
Decorate 53(gl_HitTNVX) BuiltIn HitTNVX
|
Decorate 53(gl_HitTNV) BuiltIn HitTNV
|
||||||
Decorate 58(gl_HitKindNVX) BuiltIn HitKindNVX
|
Decorate 58(gl_HitKindNV) BuiltIn HitKindNV
|
||||||
Decorate 64(gl_ObjectToWorldNVX) BuiltIn ObjectToWorldNVX
|
Decorate 64(gl_ObjectToWorldNV) BuiltIn ObjectToWorldNV
|
||||||
Decorate 67(gl_WorldToObjectNVX) BuiltIn WorldToObjectNVX
|
Decorate 67(gl_WorldToObjectNV) BuiltIn WorldToObjectNV
|
||||||
Decorate 71(incomingPayload) Location 1
|
Decorate 71(incomingPayload) Location 1
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
7: TypeVector 6(int) 2
|
7: TypeVector 6(int) 3
|
||||||
8: TypePointer Function 7(ivec2)
|
8: TypePointer Function 7(ivec3)
|
||||||
10: TypePointer Input 7(ivec2)
|
10: TypePointer Input 7(ivec3)
|
||||||
11(gl_LaunchIDNVX): 10(ptr) Variable Input
|
11(gl_LaunchIDNV): 10(ptr) Variable Input
|
||||||
14(gl_LaunchSizeNVX): 10(ptr) Variable Input
|
14(gl_LaunchSizeNV): 10(ptr) Variable Input
|
||||||
16: TypeInt 32 1
|
16: TypeInt 32 1
|
||||||
17: TypePointer Function 16(int)
|
17: TypePointer Function 16(int)
|
||||||
19: TypePointer Input 16(int)
|
19: TypePointer Input 16(int)
|
||||||
20(gl_PrimitiveID): 19(ptr) Variable Input
|
20(gl_PrimitiveID): 19(ptr) Variable Input
|
||||||
23(gl_InstanceID): 19(ptr) Variable Input
|
23(gl_InstanceID): 19(ptr) Variable Input
|
||||||
26(gl_InstanceCustomIndexNVX): 19(ptr) Variable Input
|
26(gl_InstanceCustomIndexNV): 19(ptr) Variable Input
|
||||||
28: TypeFloat 32
|
28: TypeFloat 32
|
||||||
29: TypeVector 28(float) 3
|
29: TypeVector 28(float) 3
|
||||||
30: TypePointer Function 29(fvec3)
|
30: TypePointer Function 29(fvec3)
|
||||||
32: TypePointer Input 29(fvec3)
|
32: TypePointer Input 29(fvec3)
|
||||||
33(gl_WorldRayOriginNVX): 32(ptr) Variable Input
|
33(gl_WorldRayOriginNV): 32(ptr) Variable Input
|
||||||
36(gl_WorldRayDirectionNVX): 32(ptr) Variable Input
|
36(gl_WorldRayDirectionNV): 32(ptr) Variable Input
|
||||||
39(gl_ObjectRayOriginNVX): 32(ptr) Variable Input
|
39(gl_ObjectRayOriginNV): 32(ptr) Variable Input
|
||||||
42(gl_ObjectRayDirectionNVX): 32(ptr) Variable Input
|
42(gl_ObjectRayDirectionNV): 32(ptr) Variable Input
|
||||||
44: TypePointer Function 28(float)
|
44: TypePointer Function 28(float)
|
||||||
46: TypePointer Input 28(float)
|
46: TypePointer Input 28(float)
|
||||||
47(gl_RayTminNVX): 46(ptr) Variable Input
|
47(gl_RayTminNV): 46(ptr) Variable Input
|
||||||
50(gl_RayTmaxNVX): 46(ptr) Variable Input
|
50(gl_RayTmaxNV): 46(ptr) Variable Input
|
||||||
53(gl_HitTNVX): 46(ptr) Variable Input
|
53(gl_HitTNV): 46(ptr) Variable Input
|
||||||
55: TypePointer Function 6(int)
|
55: TypePointer Function 6(int)
|
||||||
57: TypePointer Input 6(int)
|
57: TypePointer Input 6(int)
|
||||||
58(gl_HitKindNVX): 57(ptr) Variable Input
|
58(gl_HitKindNV): 57(ptr) Variable Input
|
||||||
60: TypeMatrix 29(fvec3) 4
|
60: TypeMatrix 29(fvec3) 4
|
||||||
61: TypePointer Function 60
|
61: TypePointer Function 60
|
||||||
63: TypePointer Input 60
|
63: TypePointer Input 60
|
||||||
64(gl_ObjectToWorldNVX): 63(ptr) Variable Input
|
64(gl_ObjectToWorldNV): 63(ptr) Variable Input
|
||||||
67(gl_WorldToObjectNVX): 63(ptr) Variable Input
|
67(gl_WorldToObjectNV): 63(ptr) Variable Input
|
||||||
69: TypeVector 28(float) 4
|
69: TypeVector 28(float) 4
|
||||||
70: TypePointer IncomingRayPayloadNVX 69(fvec4)
|
70: TypePointer IncomingRayPayloadNV 69(fvec4)
|
||||||
71(incomingPayload): 70(ptr) Variable IncomingRayPayloadNVX
|
71(incomingPayload): 70(ptr) Variable IncomingRayPayloadNV
|
||||||
72: 28(float) Constant 1056964608
|
72: 28(float) Constant 1056964608
|
||||||
73: 69(fvec4) ConstantComposite 72 72 72 72
|
73: 69(fvec4) ConstantComposite 72 72 72 72
|
||||||
75: 16(int) Constant 1
|
75: 16(int) Constant 1
|
||||||
@ -117,35 +117,35 @@ spv.AnyHitShader.rahit
|
|||||||
56(v12): 55(ptr) Variable Function
|
56(v12): 55(ptr) Variable Function
|
||||||
62(v13): 61(ptr) Variable Function
|
62(v13): 61(ptr) Variable Function
|
||||||
66(v14): 61(ptr) Variable Function
|
66(v14): 61(ptr) Variable Function
|
||||||
12: 7(ivec2) Load 11(gl_LaunchIDNVX)
|
12: 7(ivec3) Load 11(gl_LaunchIDNV)
|
||||||
Store 9(v0) 12
|
Store 9(v0) 12
|
||||||
15: 7(ivec2) Load 14(gl_LaunchSizeNVX)
|
15: 7(ivec3) Load 14(gl_LaunchSizeNV)
|
||||||
Store 13(v1) 15
|
Store 13(v1) 15
|
||||||
21: 16(int) Load 20(gl_PrimitiveID)
|
21: 16(int) Load 20(gl_PrimitiveID)
|
||||||
Store 18(v2) 21
|
Store 18(v2) 21
|
||||||
24: 16(int) Load 23(gl_InstanceID)
|
24: 16(int) Load 23(gl_InstanceID)
|
||||||
Store 22(v3) 24
|
Store 22(v3) 24
|
||||||
27: 16(int) Load 26(gl_InstanceCustomIndexNVX)
|
27: 16(int) Load 26(gl_InstanceCustomIndexNV)
|
||||||
Store 25(v4) 27
|
Store 25(v4) 27
|
||||||
34: 29(fvec3) Load 33(gl_WorldRayOriginNVX)
|
34: 29(fvec3) Load 33(gl_WorldRayOriginNV)
|
||||||
Store 31(v5) 34
|
Store 31(v5) 34
|
||||||
37: 29(fvec3) Load 36(gl_WorldRayDirectionNVX)
|
37: 29(fvec3) Load 36(gl_WorldRayDirectionNV)
|
||||||
Store 35(v6) 37
|
Store 35(v6) 37
|
||||||
40: 29(fvec3) Load 39(gl_ObjectRayOriginNVX)
|
40: 29(fvec3) Load 39(gl_ObjectRayOriginNV)
|
||||||
Store 38(v7) 40
|
Store 38(v7) 40
|
||||||
43: 29(fvec3) Load 42(gl_ObjectRayDirectionNVX)
|
43: 29(fvec3) Load 42(gl_ObjectRayDirectionNV)
|
||||||
Store 41(v8) 43
|
Store 41(v8) 43
|
||||||
48: 28(float) Load 47(gl_RayTminNVX)
|
48: 28(float) Load 47(gl_RayTminNV)
|
||||||
Store 45(v9) 48
|
Store 45(v9) 48
|
||||||
51: 28(float) Load 50(gl_RayTmaxNVX)
|
51: 28(float) Load 50(gl_RayTmaxNV)
|
||||||
Store 49(v10) 51
|
Store 49(v10) 51
|
||||||
54: 28(float) Load 53(gl_HitTNVX)
|
54: 28(float) Load 53(gl_HitTNV)
|
||||||
Store 52(v11) 54
|
Store 52(v11) 54
|
||||||
59: 6(int) Load 58(gl_HitKindNVX)
|
59: 6(int) Load 58(gl_HitKindNV)
|
||||||
Store 56(v12) 59
|
Store 56(v12) 59
|
||||||
65: 60 Load 64(gl_ObjectToWorldNVX)
|
65: 60 Load 64(gl_ObjectToWorldNV)
|
||||||
Store 62(v13) 65
|
Store 62(v13) 65
|
||||||
68: 60 Load 67(gl_WorldToObjectNVX)
|
68: 60 Load 67(gl_WorldToObjectNV)
|
||||||
Store 66(v14) 68
|
Store 66(v14) 68
|
||||||
Store 71(incomingPayload) 73
|
Store 71(incomingPayload) 73
|
||||||
74: 16(int) Load 18(v2)
|
74: 16(int) Load 18(v2)
|
||||||
@ -153,10 +153,10 @@ spv.AnyHitShader.rahit
|
|||||||
SelectionMerge 79 None
|
SelectionMerge 79 None
|
||||||
BranchConditional 77 78 80
|
BranchConditional 77 78 80
|
||||||
78: Label
|
78: Label
|
||||||
IgnoreIntersectionNVX
|
IgnoreIntersectionNV
|
||||||
Branch 79
|
Branch 79
|
||||||
80: Label
|
80: Label
|
||||||
TerminateRayNVX
|
TerminateRayNV
|
||||||
Branch 79
|
Branch 79
|
||||||
79: Label
|
79: Label
|
||||||
Return
|
Return
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
spv.AnyHitShader_Errors.rahit
|
spv.AnyHitShader_Errors.rahit
|
||||||
ERROR: 0:8: 'assign' : l-value required "payload" (cannot modify hitAttributeNVX in this stage)
|
ERROR: 0:8: 'assign' : l-value required "payload" (cannot modify hitAttributeNV in this stage)
|
||||||
ERROR: 0:9: 'reportIntersectionNVX' : no matching overloaded function found
|
ERROR: 0:9: 'reportIntersectionNV' : no matching overloaded function found
|
||||||
ERROR: 0:10: 'traceNVX' : no matching overloaded function found
|
ERROR: 0:10: 'traceNV' : no matching overloaded function found
|
||||||
ERROR: 3 compilation errors. No code generated.
|
ERROR: 3 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,62 +3,62 @@ spv.ClosestHitShader.rchit
|
|||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 88
|
// Id's are bound by 88
|
||||||
|
|
||||||
Capability RaytracingNVX
|
Capability RayTracingNV
|
||||||
Extension "SPV_NVX_raytracing"
|
Extension "SPV_NV_ray_tracing"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint ClosestHitNVX 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67
|
EntryPoint ClosestHitNV 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67
|
||||||
Source GLSL 460
|
Source GLSL 460
|
||||||
SourceExtension "GL_NVX_raytracing"
|
SourceExtension "GL_NV_ray_tracing"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "v0"
|
Name 9 "v0"
|
||||||
Name 11 "gl_LaunchIDNVX"
|
Name 11 "gl_LaunchIDNV"
|
||||||
Name 13 "v1"
|
Name 13 "v1"
|
||||||
Name 14 "gl_LaunchSizeNVX"
|
Name 14 "gl_LaunchSizeNV"
|
||||||
Name 18 "v2"
|
Name 18 "v2"
|
||||||
Name 20 "gl_PrimitiveID"
|
Name 20 "gl_PrimitiveID"
|
||||||
Name 22 "v3"
|
Name 22 "v3"
|
||||||
Name 23 "gl_InstanceID"
|
Name 23 "gl_InstanceID"
|
||||||
Name 25 "v4"
|
Name 25 "v4"
|
||||||
Name 26 "gl_InstanceCustomIndexNVX"
|
Name 26 "gl_InstanceCustomIndexNV"
|
||||||
Name 31 "v5"
|
Name 31 "v5"
|
||||||
Name 33 "gl_WorldRayOriginNVX"
|
Name 33 "gl_WorldRayOriginNV"
|
||||||
Name 35 "v6"
|
Name 35 "v6"
|
||||||
Name 36 "gl_WorldRayDirectionNVX"
|
Name 36 "gl_WorldRayDirectionNV"
|
||||||
Name 38 "v7"
|
Name 38 "v7"
|
||||||
Name 39 "gl_ObjectRayOriginNVX"
|
Name 39 "gl_ObjectRayOriginNV"
|
||||||
Name 41 "v8"
|
Name 41 "v8"
|
||||||
Name 42 "gl_ObjectRayDirectionNVX"
|
Name 42 "gl_ObjectRayDirectionNV"
|
||||||
Name 45 "v9"
|
Name 45 "v9"
|
||||||
Name 47 "gl_RayTminNVX"
|
Name 47 "gl_RayTminNV"
|
||||||
Name 49 "v10"
|
Name 49 "v10"
|
||||||
Name 50 "gl_RayTmaxNVX"
|
Name 50 "gl_RayTmaxNV"
|
||||||
Name 52 "v11"
|
Name 52 "v11"
|
||||||
Name 53 "gl_HitTNVX"
|
Name 53 "gl_HitTNV"
|
||||||
Name 56 "v12"
|
Name 56 "v12"
|
||||||
Name 58 "gl_HitKindNVX"
|
Name 58 "gl_HitKindNV"
|
||||||
Name 62 "v13"
|
Name 62 "v13"
|
||||||
Name 64 "gl_ObjectToWorldNVX"
|
Name 64 "gl_ObjectToWorldNV"
|
||||||
Name 66 "v14"
|
Name 66 "v14"
|
||||||
Name 67 "gl_WorldToObjectNVX"
|
Name 67 "gl_WorldToObjectNV"
|
||||||
Name 71 "accNV"
|
Name 71 "accNV"
|
||||||
Name 85 "localPayload"
|
Name 85 "localPayload"
|
||||||
Name 87 "incomingPayload"
|
Name 87 "incomingPayload"
|
||||||
Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX
|
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
|
||||||
Decorate 14(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX
|
Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
|
||||||
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
|
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||||
Decorate 23(gl_InstanceID) BuiltIn InstanceId
|
Decorate 23(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 26(gl_InstanceCustomIndexNVX) BuiltIn InstanceCustomIndexNVX
|
Decorate 26(gl_InstanceCustomIndexNV) BuiltIn InstanceCustomIndexNV
|
||||||
Decorate 33(gl_WorldRayOriginNVX) BuiltIn WorldRayOriginNVX
|
Decorate 33(gl_WorldRayOriginNV) BuiltIn WorldRayOriginNV
|
||||||
Decorate 36(gl_WorldRayDirectionNVX) BuiltIn WorldRayDirectionNVX
|
Decorate 36(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionNV
|
||||||
Decorate 39(gl_ObjectRayOriginNVX) BuiltIn ObjectRayOriginNVX
|
Decorate 39(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginNV
|
||||||
Decorate 42(gl_ObjectRayDirectionNVX) BuiltIn ObjectRayDirectionNVX
|
Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionNV
|
||||||
Decorate 47(gl_RayTminNVX) BuiltIn RayTminNVX
|
Decorate 47(gl_RayTminNV) BuiltIn RayTminNV
|
||||||
Decorate 50(gl_RayTmaxNVX) BuiltIn RayTmaxNVX
|
Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxNV
|
||||||
Decorate 53(gl_HitTNVX) BuiltIn HitTNVX
|
Decorate 53(gl_HitTNV) BuiltIn HitTNV
|
||||||
Decorate 58(gl_HitKindNVX) BuiltIn HitKindNVX
|
Decorate 58(gl_HitKindNV) BuiltIn HitKindNV
|
||||||
Decorate 64(gl_ObjectToWorldNVX) BuiltIn ObjectToWorldNVX
|
Decorate 64(gl_ObjectToWorldNV) BuiltIn ObjectToWorldNV
|
||||||
Decorate 67(gl_WorldToObjectNVX) BuiltIn WorldToObjectNVX
|
Decorate 67(gl_WorldToObjectNV) BuiltIn WorldToObjectNV
|
||||||
Decorate 71(accNV) DescriptorSet 0
|
Decorate 71(accNV) DescriptorSet 0
|
||||||
Decorate 71(accNV) Binding 0
|
Decorate 71(accNV) Binding 0
|
||||||
Decorate 85(localPayload) Location 0
|
Decorate 85(localPayload) Location 0
|
||||||
@ -66,39 +66,39 @@ spv.ClosestHitShader.rchit
|
|||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
7: TypeVector 6(int) 2
|
7: TypeVector 6(int) 3
|
||||||
8: TypePointer Function 7(ivec2)
|
8: TypePointer Function 7(ivec3)
|
||||||
10: TypePointer Input 7(ivec2)
|
10: TypePointer Input 7(ivec3)
|
||||||
11(gl_LaunchIDNVX): 10(ptr) Variable Input
|
11(gl_LaunchIDNV): 10(ptr) Variable Input
|
||||||
14(gl_LaunchSizeNVX): 10(ptr) Variable Input
|
14(gl_LaunchSizeNV): 10(ptr) Variable Input
|
||||||
16: TypeInt 32 1
|
16: TypeInt 32 1
|
||||||
17: TypePointer Function 16(int)
|
17: TypePointer Function 16(int)
|
||||||
19: TypePointer Input 16(int)
|
19: TypePointer Input 16(int)
|
||||||
20(gl_PrimitiveID): 19(ptr) Variable Input
|
20(gl_PrimitiveID): 19(ptr) Variable Input
|
||||||
23(gl_InstanceID): 19(ptr) Variable Input
|
23(gl_InstanceID): 19(ptr) Variable Input
|
||||||
26(gl_InstanceCustomIndexNVX): 19(ptr) Variable Input
|
26(gl_InstanceCustomIndexNV): 19(ptr) Variable Input
|
||||||
28: TypeFloat 32
|
28: TypeFloat 32
|
||||||
29: TypeVector 28(float) 3
|
29: TypeVector 28(float) 3
|
||||||
30: TypePointer Function 29(fvec3)
|
30: TypePointer Function 29(fvec3)
|
||||||
32: TypePointer Input 29(fvec3)
|
32: TypePointer Input 29(fvec3)
|
||||||
33(gl_WorldRayOriginNVX): 32(ptr) Variable Input
|
33(gl_WorldRayOriginNV): 32(ptr) Variable Input
|
||||||
36(gl_WorldRayDirectionNVX): 32(ptr) Variable Input
|
36(gl_WorldRayDirectionNV): 32(ptr) Variable Input
|
||||||
39(gl_ObjectRayOriginNVX): 32(ptr) Variable Input
|
39(gl_ObjectRayOriginNV): 32(ptr) Variable Input
|
||||||
42(gl_ObjectRayDirectionNVX): 32(ptr) Variable Input
|
42(gl_ObjectRayDirectionNV): 32(ptr) Variable Input
|
||||||
44: TypePointer Function 28(float)
|
44: TypePointer Function 28(float)
|
||||||
46: TypePointer Input 28(float)
|
46: TypePointer Input 28(float)
|
||||||
47(gl_RayTminNVX): 46(ptr) Variable Input
|
47(gl_RayTminNV): 46(ptr) Variable Input
|
||||||
50(gl_RayTmaxNVX): 46(ptr) Variable Input
|
50(gl_RayTmaxNV): 46(ptr) Variable Input
|
||||||
53(gl_HitTNVX): 46(ptr) Variable Input
|
53(gl_HitTNV): 46(ptr) Variable Input
|
||||||
55: TypePointer Function 6(int)
|
55: TypePointer Function 6(int)
|
||||||
57: TypePointer Input 6(int)
|
57: TypePointer Input 6(int)
|
||||||
58(gl_HitKindNVX): 57(ptr) Variable Input
|
58(gl_HitKindNV): 57(ptr) Variable Input
|
||||||
60: TypeMatrix 29(fvec3) 4
|
60: TypeMatrix 29(fvec3) 4
|
||||||
61: TypePointer Function 60
|
61: TypePointer Function 60
|
||||||
63: TypePointer Input 60
|
63: TypePointer Input 60
|
||||||
64(gl_ObjectToWorldNVX): 63(ptr) Variable Input
|
64(gl_ObjectToWorldNV): 63(ptr) Variable Input
|
||||||
67(gl_WorldToObjectNVX): 63(ptr) Variable Input
|
67(gl_WorldToObjectNV): 63(ptr) Variable Input
|
||||||
69: TypeAccelerationStructureNVX
|
69: TypeAccelerationStructureNV
|
||||||
70: TypePointer UniformConstant 69
|
70: TypePointer UniformConstant 69
|
||||||
71(accNV): 70(ptr) Variable UniformConstant
|
71(accNV): 70(ptr) Variable UniformConstant
|
||||||
73: 6(int) Constant 0
|
73: 6(int) Constant 0
|
||||||
@ -112,10 +112,10 @@ spv.ClosestHitShader.rchit
|
|||||||
81: 28(float) Constant 1061158912
|
81: 28(float) Constant 1061158912
|
||||||
82: 16(int) Constant 1
|
82: 16(int) Constant 1
|
||||||
83: TypeVector 28(float) 4
|
83: TypeVector 28(float) 4
|
||||||
84: TypePointer RayPayloadNVX 83(fvec4)
|
84: TypePointer RayPayloadNV 83(fvec4)
|
||||||
85(localPayload): 84(ptr) Variable RayPayloadNVX
|
85(localPayload): 84(ptr) Variable RayPayloadNV
|
||||||
86: TypePointer IncomingRayPayloadNVX 83(fvec4)
|
86: TypePointer IncomingRayPayloadNV 83(fvec4)
|
||||||
87(incomingPayload): 86(ptr) Variable IncomingRayPayloadNVX
|
87(incomingPayload): 86(ptr) Variable IncomingRayPayloadNV
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(v0): 8(ptr) Variable Function
|
9(v0): 8(ptr) Variable Function
|
||||||
@ -133,37 +133,37 @@ spv.ClosestHitShader.rchit
|
|||||||
56(v12): 55(ptr) Variable Function
|
56(v12): 55(ptr) Variable Function
|
||||||
62(v13): 61(ptr) Variable Function
|
62(v13): 61(ptr) Variable Function
|
||||||
66(v14): 61(ptr) Variable Function
|
66(v14): 61(ptr) Variable Function
|
||||||
12: 7(ivec2) Load 11(gl_LaunchIDNVX)
|
12: 7(ivec3) Load 11(gl_LaunchIDNV)
|
||||||
Store 9(v0) 12
|
Store 9(v0) 12
|
||||||
15: 7(ivec2) Load 14(gl_LaunchSizeNVX)
|
15: 7(ivec3) Load 14(gl_LaunchSizeNV)
|
||||||
Store 13(v1) 15
|
Store 13(v1) 15
|
||||||
21: 16(int) Load 20(gl_PrimitiveID)
|
21: 16(int) Load 20(gl_PrimitiveID)
|
||||||
Store 18(v2) 21
|
Store 18(v2) 21
|
||||||
24: 16(int) Load 23(gl_InstanceID)
|
24: 16(int) Load 23(gl_InstanceID)
|
||||||
Store 22(v3) 24
|
Store 22(v3) 24
|
||||||
27: 16(int) Load 26(gl_InstanceCustomIndexNVX)
|
27: 16(int) Load 26(gl_InstanceCustomIndexNV)
|
||||||
Store 25(v4) 27
|
Store 25(v4) 27
|
||||||
34: 29(fvec3) Load 33(gl_WorldRayOriginNVX)
|
34: 29(fvec3) Load 33(gl_WorldRayOriginNV)
|
||||||
Store 31(v5) 34
|
Store 31(v5) 34
|
||||||
37: 29(fvec3) Load 36(gl_WorldRayDirectionNVX)
|
37: 29(fvec3) Load 36(gl_WorldRayDirectionNV)
|
||||||
Store 35(v6) 37
|
Store 35(v6) 37
|
||||||
40: 29(fvec3) Load 39(gl_ObjectRayOriginNVX)
|
40: 29(fvec3) Load 39(gl_ObjectRayOriginNV)
|
||||||
Store 38(v7) 40
|
Store 38(v7) 40
|
||||||
43: 29(fvec3) Load 42(gl_ObjectRayDirectionNVX)
|
43: 29(fvec3) Load 42(gl_ObjectRayDirectionNV)
|
||||||
Store 41(v8) 43
|
Store 41(v8) 43
|
||||||
48: 28(float) Load 47(gl_RayTminNVX)
|
48: 28(float) Load 47(gl_RayTminNV)
|
||||||
Store 45(v9) 48
|
Store 45(v9) 48
|
||||||
51: 28(float) Load 50(gl_RayTmaxNVX)
|
51: 28(float) Load 50(gl_RayTmaxNV)
|
||||||
Store 49(v10) 51
|
Store 49(v10) 51
|
||||||
54: 28(float) Load 53(gl_HitTNVX)
|
54: 28(float) Load 53(gl_HitTNV)
|
||||||
Store 52(v11) 54
|
Store 52(v11) 54
|
||||||
59: 6(int) Load 58(gl_HitKindNVX)
|
59: 6(int) Load 58(gl_HitKindNV)
|
||||||
Store 56(v12) 59
|
Store 56(v12) 59
|
||||||
65: 60 Load 64(gl_ObjectToWorldNVX)
|
65: 60 Load 64(gl_ObjectToWorldNV)
|
||||||
Store 62(v13) 65
|
Store 62(v13) 65
|
||||||
68: 60 Load 67(gl_WorldToObjectNVX)
|
68: 60 Load 67(gl_WorldToObjectNV)
|
||||||
Store 66(v14) 68
|
Store 66(v14) 68
|
||||||
72: 69 Load 71(accNV)
|
72: 69 Load 71(accNV)
|
||||||
TraceNVX 72 73 74 75 76 73 78 77 80 81 82
|
TraceNV 72 73 74 75 76 73 78 77 80 81 82
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
spv.ClosestHitShader_Errors.rchit
|
spv.ClosestHitShader_Errors.rchit
|
||||||
ERROR: 0:8: 'assign' : l-value required "payload" (cannot modify hitAttributeNVX in this stage)
|
ERROR: 0:8: 'assign' : l-value required "payload" (cannot modify hitAttributeNV in this stage)
|
||||||
ERROR: 0:9: 'reportIntersectionNVX' : no matching overloaded function found
|
ERROR: 0:9: 'reportIntersectionNV' : no matching overloaded function found
|
||||||
ERROR: 0:10: 'terminateRayNVX' : no matching overloaded function found
|
ERROR: 0:10: 'terminateRayNV' : no matching overloaded function found
|
||||||
ERROR: 0:11: 'ignoreIntersectionNVX' : no matching overloaded function found
|
ERROR: 0:11: 'ignoreIntersectionNV' : no matching overloaded function found
|
||||||
ERROR: 4 compilation errors. No code generated.
|
ERROR: 4 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,88 +3,88 @@ spv.IntersectShader.rint
|
|||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 71
|
// Id's are bound by 71
|
||||||
|
|
||||||
Capability RaytracingNVX
|
Capability RayTracingNV
|
||||||
Extension "SPV_NVX_raytracing"
|
Extension "SPV_NV_ray_tracing"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint IntersectionNVX 4 "main" 11 14 20 23 26 33 36 39 42 47 50 56 59
|
EntryPoint IntersectionNV 4 "main" 11 14 20 23 26 33 36 39 42 47 50 56 59
|
||||||
Source GLSL 460
|
Source GLSL 460
|
||||||
SourceExtension "GL_NVX_raytracing"
|
SourceExtension "GL_NV_ray_tracing"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "v0"
|
Name 9 "v0"
|
||||||
Name 11 "gl_LaunchIDNVX"
|
Name 11 "gl_LaunchIDNV"
|
||||||
Name 13 "v1"
|
Name 13 "v1"
|
||||||
Name 14 "gl_LaunchSizeNVX"
|
Name 14 "gl_LaunchSizeNV"
|
||||||
Name 18 "v2"
|
Name 18 "v2"
|
||||||
Name 20 "gl_PrimitiveID"
|
Name 20 "gl_PrimitiveID"
|
||||||
Name 22 "v3"
|
Name 22 "v3"
|
||||||
Name 23 "gl_InstanceID"
|
Name 23 "gl_InstanceID"
|
||||||
Name 25 "v4"
|
Name 25 "v4"
|
||||||
Name 26 "gl_InstanceCustomIndexNVX"
|
Name 26 "gl_InstanceCustomIndexNV"
|
||||||
Name 31 "v5"
|
Name 31 "v5"
|
||||||
Name 33 "gl_WorldRayOriginNVX"
|
Name 33 "gl_WorldRayOriginNV"
|
||||||
Name 35 "v6"
|
Name 35 "v6"
|
||||||
Name 36 "gl_WorldRayDirectionNVX"
|
Name 36 "gl_WorldRayDirectionNV"
|
||||||
Name 38 "v7"
|
Name 38 "v7"
|
||||||
Name 39 "gl_ObjectRayOriginNVX"
|
Name 39 "gl_ObjectRayOriginNV"
|
||||||
Name 41 "v8"
|
Name 41 "v8"
|
||||||
Name 42 "gl_ObjectRayDirectionNVX"
|
Name 42 "gl_ObjectRayDirectionNV"
|
||||||
Name 45 "v9"
|
Name 45 "v9"
|
||||||
Name 47 "gl_RayTminNVX"
|
Name 47 "gl_RayTminNV"
|
||||||
Name 49 "v10"
|
Name 49 "v10"
|
||||||
Name 50 "gl_RayTmaxNVX"
|
Name 50 "gl_RayTmaxNV"
|
||||||
Name 54 "v11"
|
Name 54 "v11"
|
||||||
Name 56 "gl_ObjectToWorldNVX"
|
Name 56 "gl_ObjectToWorldNV"
|
||||||
Name 58 "v12"
|
Name 58 "v12"
|
||||||
Name 59 "gl_WorldToObjectNVX"
|
Name 59 "gl_WorldToObjectNV"
|
||||||
Name 63 "iAttr"
|
Name 63 "iAttr"
|
||||||
Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX
|
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
|
||||||
Decorate 14(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX
|
Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
|
||||||
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
|
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||||
Decorate 23(gl_InstanceID) BuiltIn InstanceId
|
Decorate 23(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 26(gl_InstanceCustomIndexNVX) BuiltIn InstanceCustomIndexNVX
|
Decorate 26(gl_InstanceCustomIndexNV) BuiltIn InstanceCustomIndexNV
|
||||||
Decorate 33(gl_WorldRayOriginNVX) BuiltIn WorldRayOriginNVX
|
Decorate 33(gl_WorldRayOriginNV) BuiltIn WorldRayOriginNV
|
||||||
Decorate 36(gl_WorldRayDirectionNVX) BuiltIn WorldRayDirectionNVX
|
Decorate 36(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionNV
|
||||||
Decorate 39(gl_ObjectRayOriginNVX) BuiltIn ObjectRayOriginNVX
|
Decorate 39(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginNV
|
||||||
Decorate 42(gl_ObjectRayDirectionNVX) BuiltIn ObjectRayDirectionNVX
|
Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionNV
|
||||||
Decorate 47(gl_RayTminNVX) BuiltIn RayTminNVX
|
Decorate 47(gl_RayTminNV) BuiltIn RayTminNV
|
||||||
Decorate 50(gl_RayTmaxNVX) BuiltIn RayTmaxNVX
|
Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxNV
|
||||||
Decorate 56(gl_ObjectToWorldNVX) BuiltIn ObjectToWorldNVX
|
Decorate 56(gl_ObjectToWorldNV) BuiltIn ObjectToWorldNV
|
||||||
Decorate 59(gl_WorldToObjectNVX) BuiltIn WorldToObjectNVX
|
Decorate 59(gl_WorldToObjectNV) BuiltIn WorldToObjectNV
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
7: TypeVector 6(int) 2
|
7: TypeVector 6(int) 3
|
||||||
8: TypePointer Function 7(ivec2)
|
8: TypePointer Function 7(ivec3)
|
||||||
10: TypePointer Input 7(ivec2)
|
10: TypePointer Input 7(ivec3)
|
||||||
11(gl_LaunchIDNVX): 10(ptr) Variable Input
|
11(gl_LaunchIDNV): 10(ptr) Variable Input
|
||||||
14(gl_LaunchSizeNVX): 10(ptr) Variable Input
|
14(gl_LaunchSizeNV): 10(ptr) Variable Input
|
||||||
16: TypeInt 32 1
|
16: TypeInt 32 1
|
||||||
17: TypePointer Function 16(int)
|
17: TypePointer Function 16(int)
|
||||||
19: TypePointer Input 16(int)
|
19: TypePointer Input 16(int)
|
||||||
20(gl_PrimitiveID): 19(ptr) Variable Input
|
20(gl_PrimitiveID): 19(ptr) Variable Input
|
||||||
23(gl_InstanceID): 19(ptr) Variable Input
|
23(gl_InstanceID): 19(ptr) Variable Input
|
||||||
26(gl_InstanceCustomIndexNVX): 19(ptr) Variable Input
|
26(gl_InstanceCustomIndexNV): 19(ptr) Variable Input
|
||||||
28: TypeFloat 32
|
28: TypeFloat 32
|
||||||
29: TypeVector 28(float) 3
|
29: TypeVector 28(float) 3
|
||||||
30: TypePointer Function 29(fvec3)
|
30: TypePointer Function 29(fvec3)
|
||||||
32: TypePointer Input 29(fvec3)
|
32: TypePointer Input 29(fvec3)
|
||||||
33(gl_WorldRayOriginNVX): 32(ptr) Variable Input
|
33(gl_WorldRayOriginNV): 32(ptr) Variable Input
|
||||||
36(gl_WorldRayDirectionNVX): 32(ptr) Variable Input
|
36(gl_WorldRayDirectionNV): 32(ptr) Variable Input
|
||||||
39(gl_ObjectRayOriginNVX): 32(ptr) Variable Input
|
39(gl_ObjectRayOriginNV): 32(ptr) Variable Input
|
||||||
42(gl_ObjectRayDirectionNVX): 32(ptr) Variable Input
|
42(gl_ObjectRayDirectionNV): 32(ptr) Variable Input
|
||||||
44: TypePointer Function 28(float)
|
44: TypePointer Function 28(float)
|
||||||
46: TypePointer Input 28(float)
|
46: TypePointer Input 28(float)
|
||||||
47(gl_RayTminNVX): 46(ptr) Variable Input
|
47(gl_RayTminNV): 46(ptr) Variable Input
|
||||||
50(gl_RayTmaxNVX): 46(ptr) Variable Input
|
50(gl_RayTmaxNV): 46(ptr) Variable Input
|
||||||
52: TypeMatrix 29(fvec3) 4
|
52: TypeMatrix 29(fvec3) 4
|
||||||
53: TypePointer Function 52
|
53: TypePointer Function 52
|
||||||
55: TypePointer Input 52
|
55: TypePointer Input 52
|
||||||
56(gl_ObjectToWorldNVX): 55(ptr) Variable Input
|
56(gl_ObjectToWorldNV): 55(ptr) Variable Input
|
||||||
59(gl_WorldToObjectNVX): 55(ptr) Variable Input
|
59(gl_WorldToObjectNV): 55(ptr) Variable Input
|
||||||
61: TypeVector 28(float) 4
|
61: TypeVector 28(float) 4
|
||||||
62: TypePointer HitAttributeNVX 61(fvec4)
|
62: TypePointer HitAttributeNV 61(fvec4)
|
||||||
63(iAttr): 62(ptr) Variable HitAttributeNVX
|
63(iAttr): 62(ptr) Variable HitAttributeNV
|
||||||
64: 28(float) Constant 1056964608
|
64: 28(float) Constant 1056964608
|
||||||
65: 28(float) Constant 0
|
65: 28(float) Constant 0
|
||||||
66: 28(float) Constant 1065353216
|
66: 28(float) Constant 1065353216
|
||||||
@ -106,33 +106,33 @@ spv.IntersectShader.rint
|
|||||||
49(v10): 44(ptr) Variable Function
|
49(v10): 44(ptr) Variable Function
|
||||||
54(v11): 53(ptr) Variable Function
|
54(v11): 53(ptr) Variable Function
|
||||||
58(v12): 53(ptr) Variable Function
|
58(v12): 53(ptr) Variable Function
|
||||||
12: 7(ivec2) Load 11(gl_LaunchIDNVX)
|
12: 7(ivec3) Load 11(gl_LaunchIDNV)
|
||||||
Store 9(v0) 12
|
Store 9(v0) 12
|
||||||
15: 7(ivec2) Load 14(gl_LaunchSizeNVX)
|
15: 7(ivec3) Load 14(gl_LaunchSizeNV)
|
||||||
Store 13(v1) 15
|
Store 13(v1) 15
|
||||||
21: 16(int) Load 20(gl_PrimitiveID)
|
21: 16(int) Load 20(gl_PrimitiveID)
|
||||||
Store 18(v2) 21
|
Store 18(v2) 21
|
||||||
24: 16(int) Load 23(gl_InstanceID)
|
24: 16(int) Load 23(gl_InstanceID)
|
||||||
Store 22(v3) 24
|
Store 22(v3) 24
|
||||||
27: 16(int) Load 26(gl_InstanceCustomIndexNVX)
|
27: 16(int) Load 26(gl_InstanceCustomIndexNV)
|
||||||
Store 25(v4) 27
|
Store 25(v4) 27
|
||||||
34: 29(fvec3) Load 33(gl_WorldRayOriginNVX)
|
34: 29(fvec3) Load 33(gl_WorldRayOriginNV)
|
||||||
Store 31(v5) 34
|
Store 31(v5) 34
|
||||||
37: 29(fvec3) Load 36(gl_WorldRayDirectionNVX)
|
37: 29(fvec3) Load 36(gl_WorldRayDirectionNV)
|
||||||
Store 35(v6) 37
|
Store 35(v6) 37
|
||||||
40: 29(fvec3) Load 39(gl_ObjectRayOriginNVX)
|
40: 29(fvec3) Load 39(gl_ObjectRayOriginNV)
|
||||||
Store 38(v7) 40
|
Store 38(v7) 40
|
||||||
43: 29(fvec3) Load 42(gl_ObjectRayDirectionNVX)
|
43: 29(fvec3) Load 42(gl_ObjectRayDirectionNV)
|
||||||
Store 41(v8) 43
|
Store 41(v8) 43
|
||||||
48: 28(float) Load 47(gl_RayTminNVX)
|
48: 28(float) Load 47(gl_RayTminNV)
|
||||||
Store 45(v9) 48
|
Store 45(v9) 48
|
||||||
51: 28(float) Load 50(gl_RayTmaxNVX)
|
51: 28(float) Load 50(gl_RayTmaxNV)
|
||||||
Store 49(v10) 51
|
Store 49(v10) 51
|
||||||
57: 52 Load 56(gl_ObjectToWorldNVX)
|
57: 52 Load 56(gl_ObjectToWorldNV)
|
||||||
Store 54(v11) 57
|
Store 54(v11) 57
|
||||||
60: 52 Load 59(gl_WorldToObjectNVX)
|
60: 52 Load 59(gl_WorldToObjectNV)
|
||||||
Store 58(v12) 60
|
Store 58(v12) 60
|
||||||
Store 63(iAttr) 67
|
Store 63(iAttr) 67
|
||||||
70: 69(bool) ReportIntersectionNVX 64 68
|
70: 69(bool) ReportIntersectionNV 64 68
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
spv.IntersectShader_Errors.rint
|
spv.IntersectShader_Errors.rint
|
||||||
ERROR: 0:3: 'rayPayloadInNVX' : not supported in this stage: intersection
|
ERROR: 0:3: 'rayPayloadInNV' : not supported in this stage: intersection
|
||||||
ERROR: 0:4: 'rayPayloadNVX' : not supported in this stage: intersection
|
ERROR: 0:4: 'rayPayloadNV' : not supported in this stage: intersection
|
||||||
ERROR: 0:8: 'gl_HitTNVX' : undeclared identifier
|
ERROR: 0:8: 'gl_HitTNV' : undeclared identifier
|
||||||
ERROR: 0:9: 'gl_HitKindNVX' : undeclared identifier
|
ERROR: 0:9: 'gl_HitKindNV' : undeclared identifier
|
||||||
ERROR: 0:10: 'traceNVX' : no matching overloaded function found
|
ERROR: 0:10: 'traceNV' : no matching overloaded function found
|
||||||
ERROR: 5 compilation errors. No code generated.
|
ERROR: 5 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,41 +3,41 @@ spv.MissShader.rmiss
|
|||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 60
|
// Id's are bound by 60
|
||||||
|
|
||||||
Capability RaytracingNVX
|
Capability RayTracingNV
|
||||||
Extension "SPV_NVX_raytracing"
|
Extension "SPV_NV_ray_tracing"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint MissNVX 4 "main" 11 14 21 24 27 30 35 38
|
EntryPoint MissNV 4 "main" 11 14 21 24 27 30 35 38
|
||||||
Source GLSL 460
|
Source GLSL 460
|
||||||
SourceExtension "GL_NVX_raytracing"
|
SourceExtension "GL_NV_ray_tracing"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "v0"
|
Name 9 "v0"
|
||||||
Name 11 "gl_LaunchIDNVX"
|
Name 11 "gl_LaunchIDNV"
|
||||||
Name 13 "v1"
|
Name 13 "v1"
|
||||||
Name 14 "gl_LaunchSizeNVX"
|
Name 14 "gl_LaunchSizeNV"
|
||||||
Name 19 "v2"
|
Name 19 "v2"
|
||||||
Name 21 "gl_WorldRayOriginNVX"
|
Name 21 "gl_WorldRayOriginNV"
|
||||||
Name 23 "v3"
|
Name 23 "v3"
|
||||||
Name 24 "gl_WorldRayDirectionNVX"
|
Name 24 "gl_WorldRayDirectionNV"
|
||||||
Name 26 "v4"
|
Name 26 "v4"
|
||||||
Name 27 "gl_ObjectRayOriginNVX"
|
Name 27 "gl_ObjectRayOriginNV"
|
||||||
Name 29 "v5"
|
Name 29 "v5"
|
||||||
Name 30 "gl_ObjectRayDirectionNVX"
|
Name 30 "gl_ObjectRayDirectionNV"
|
||||||
Name 33 "v6"
|
Name 33 "v6"
|
||||||
Name 35 "gl_RayTminNVX"
|
Name 35 "gl_RayTminNV"
|
||||||
Name 37 "v7"
|
Name 37 "v7"
|
||||||
Name 38 "gl_RayTmaxNVX"
|
Name 38 "gl_RayTmaxNV"
|
||||||
Name 42 "accNV"
|
Name 42 "accNV"
|
||||||
Name 57 "localPayload"
|
Name 57 "localPayload"
|
||||||
Name 59 "incomingPayload"
|
Name 59 "incomingPayload"
|
||||||
Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX
|
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
|
||||||
Decorate 14(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX
|
Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
|
||||||
Decorate 21(gl_WorldRayOriginNVX) BuiltIn WorldRayOriginNVX
|
Decorate 21(gl_WorldRayOriginNV) BuiltIn WorldRayOriginNV
|
||||||
Decorate 24(gl_WorldRayDirectionNVX) BuiltIn WorldRayDirectionNVX
|
Decorate 24(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionNV
|
||||||
Decorate 27(gl_ObjectRayOriginNVX) BuiltIn ObjectRayOriginNVX
|
Decorate 27(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginNV
|
||||||
Decorate 30(gl_ObjectRayDirectionNVX) BuiltIn ObjectRayDirectionNVX
|
Decorate 30(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionNV
|
||||||
Decorate 35(gl_RayTminNVX) BuiltIn RayTminNVX
|
Decorate 35(gl_RayTminNV) BuiltIn RayTminNV
|
||||||
Decorate 38(gl_RayTmaxNVX) BuiltIn RayTmaxNVX
|
Decorate 38(gl_RayTmaxNV) BuiltIn RayTmaxNV
|
||||||
Decorate 42(accNV) DescriptorSet 0
|
Decorate 42(accNV) DescriptorSet 0
|
||||||
Decorate 42(accNV) Binding 0
|
Decorate 42(accNV) Binding 0
|
||||||
Decorate 57(localPayload) Location 0
|
Decorate 57(localPayload) Location 0
|
||||||
@ -45,24 +45,24 @@ spv.MissShader.rmiss
|
|||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
7: TypeVector 6(int) 2
|
7: TypeVector 6(int) 3
|
||||||
8: TypePointer Function 7(ivec2)
|
8: TypePointer Function 7(ivec3)
|
||||||
10: TypePointer Input 7(ivec2)
|
10: TypePointer Input 7(ivec3)
|
||||||
11(gl_LaunchIDNVX): 10(ptr) Variable Input
|
11(gl_LaunchIDNV): 10(ptr) Variable Input
|
||||||
14(gl_LaunchSizeNVX): 10(ptr) Variable Input
|
14(gl_LaunchSizeNV): 10(ptr) Variable Input
|
||||||
16: TypeFloat 32
|
16: TypeFloat 32
|
||||||
17: TypeVector 16(float) 3
|
17: TypeVector 16(float) 3
|
||||||
18: TypePointer Function 17(fvec3)
|
18: TypePointer Function 17(fvec3)
|
||||||
20: TypePointer Input 17(fvec3)
|
20: TypePointer Input 17(fvec3)
|
||||||
21(gl_WorldRayOriginNVX): 20(ptr) Variable Input
|
21(gl_WorldRayOriginNV): 20(ptr) Variable Input
|
||||||
24(gl_WorldRayDirectionNVX): 20(ptr) Variable Input
|
24(gl_WorldRayDirectionNV): 20(ptr) Variable Input
|
||||||
27(gl_ObjectRayOriginNVX): 20(ptr) Variable Input
|
27(gl_ObjectRayOriginNV): 20(ptr) Variable Input
|
||||||
30(gl_ObjectRayDirectionNVX): 20(ptr) Variable Input
|
30(gl_ObjectRayDirectionNV): 20(ptr) Variable Input
|
||||||
32: TypePointer Function 16(float)
|
32: TypePointer Function 16(float)
|
||||||
34: TypePointer Input 16(float)
|
34: TypePointer Input 16(float)
|
||||||
35(gl_RayTminNVX): 34(ptr) Variable Input
|
35(gl_RayTminNV): 34(ptr) Variable Input
|
||||||
38(gl_RayTmaxNVX): 34(ptr) Variable Input
|
38(gl_RayTmaxNV): 34(ptr) Variable Input
|
||||||
40: TypeAccelerationStructureNVX
|
40: TypeAccelerationStructureNV
|
||||||
41: TypePointer UniformConstant 40
|
41: TypePointer UniformConstant 40
|
||||||
42(accNV): 41(ptr) Variable UniformConstant
|
42(accNV): 41(ptr) Variable UniformConstant
|
||||||
44: 6(int) Constant 0
|
44: 6(int) Constant 0
|
||||||
@ -77,10 +77,10 @@ spv.MissShader.rmiss
|
|||||||
53: TypeInt 32 1
|
53: TypeInt 32 1
|
||||||
54: 53(int) Constant 1
|
54: 53(int) Constant 1
|
||||||
55: TypeVector 16(float) 4
|
55: TypeVector 16(float) 4
|
||||||
56: TypePointer RayPayloadNVX 55(fvec4)
|
56: TypePointer RayPayloadNV 55(fvec4)
|
||||||
57(localPayload): 56(ptr) Variable RayPayloadNVX
|
57(localPayload): 56(ptr) Variable RayPayloadNV
|
||||||
58: TypePointer IncomingRayPayloadNVX 55(fvec4)
|
58: TypePointer IncomingRayPayloadNV 55(fvec4)
|
||||||
59(incomingPayload): 58(ptr) Variable IncomingRayPayloadNVX
|
59(incomingPayload): 58(ptr) Variable IncomingRayPayloadNV
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(v0): 8(ptr) Variable Function
|
9(v0): 8(ptr) Variable Function
|
||||||
@ -91,23 +91,23 @@ spv.MissShader.rmiss
|
|||||||
29(v5): 18(ptr) Variable Function
|
29(v5): 18(ptr) Variable Function
|
||||||
33(v6): 32(ptr) Variable Function
|
33(v6): 32(ptr) Variable Function
|
||||||
37(v7): 32(ptr) Variable Function
|
37(v7): 32(ptr) Variable Function
|
||||||
12: 7(ivec2) Load 11(gl_LaunchIDNVX)
|
12: 7(ivec3) Load 11(gl_LaunchIDNV)
|
||||||
Store 9(v0) 12
|
Store 9(v0) 12
|
||||||
15: 7(ivec2) Load 14(gl_LaunchSizeNVX)
|
15: 7(ivec3) Load 14(gl_LaunchSizeNV)
|
||||||
Store 13(v1) 15
|
Store 13(v1) 15
|
||||||
22: 17(fvec3) Load 21(gl_WorldRayOriginNVX)
|
22: 17(fvec3) Load 21(gl_WorldRayOriginNV)
|
||||||
Store 19(v2) 22
|
Store 19(v2) 22
|
||||||
25: 17(fvec3) Load 24(gl_WorldRayDirectionNVX)
|
25: 17(fvec3) Load 24(gl_WorldRayDirectionNV)
|
||||||
Store 23(v3) 25
|
Store 23(v3) 25
|
||||||
28: 17(fvec3) Load 27(gl_ObjectRayOriginNVX)
|
28: 17(fvec3) Load 27(gl_ObjectRayOriginNV)
|
||||||
Store 26(v4) 28
|
Store 26(v4) 28
|
||||||
31: 17(fvec3) Load 30(gl_ObjectRayDirectionNVX)
|
31: 17(fvec3) Load 30(gl_ObjectRayDirectionNV)
|
||||||
Store 29(v5) 31
|
Store 29(v5) 31
|
||||||
36: 16(float) Load 35(gl_RayTminNVX)
|
36: 16(float) Load 35(gl_RayTminNV)
|
||||||
Store 33(v6) 36
|
Store 33(v6) 36
|
||||||
39: 16(float) Load 38(gl_RayTmaxNVX)
|
39: 16(float) Load 38(gl_RayTmaxNV)
|
||||||
Store 37(v7) 39
|
Store 37(v7) 39
|
||||||
43: 40 Load 42(accNV)
|
43: 40 Load 42(accNV)
|
||||||
TraceNVX 43 44 45 46 47 44 49 48 51 52 54
|
TraceNV 43 44 45 46 47 44 49 48 51 52 54
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
spv.MissShader_Errors.rmiss
|
spv.MissShader_Errors.rmiss
|
||||||
ERROR: 0:3: 'hitAttributeNVX' : not supported in this stage: miss
|
ERROR: 0:3: 'hitAttributeNV' : not supported in this stage: miss
|
||||||
ERROR: 0:6: 'gl_PrimitiveID' : undeclared identifier
|
ERROR: 0:6: 'gl_PrimitiveID' : undeclared identifier
|
||||||
ERROR: 0:6: '=' : cannot convert from ' temp float' to ' temp highp int'
|
ERROR: 0:6: '=' : cannot convert from ' temp float' to ' temp highp int'
|
||||||
ERROR: 0:7: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?)
|
ERROR: 0:7: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?)
|
||||||
ERROR: 0:7: '=' : cannot convert from ' temp float' to ' temp highp int'
|
ERROR: 0:7: '=' : cannot convert from ' temp float' to ' temp highp int'
|
||||||
ERROR: 0:8: 'gl_InstanceCustomIndexNVX' : undeclared identifier
|
ERROR: 0:8: 'gl_InstanceCustomIndexNV' : undeclared identifier
|
||||||
ERROR: 0:8: '=' : cannot convert from ' temp float' to ' temp highp int'
|
ERROR: 0:8: '=' : cannot convert from ' temp float' to ' temp highp int'
|
||||||
ERROR: 0:9: 'gl_ObjectToWorldNVX' : undeclared identifier
|
ERROR: 0:9: 'gl_ObjectToWorldNV' : undeclared identifier
|
||||||
ERROR: 0:9: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
|
ERROR: 0:9: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
|
||||||
ERROR: 0:10: 'gl_WorldToObjectNVX' : undeclared identifier
|
ERROR: 0:10: 'gl_WorldToObjectNV' : undeclared identifier
|
||||||
ERROR: 0:10: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
|
ERROR: 0:10: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
|
||||||
ERROR: 0:11: 'gl_HitTNVX' : undeclared identifier
|
ERROR: 0:11: 'gl_HitTNV' : undeclared identifier
|
||||||
ERROR: 0:12: 'gl_HitKindNVX' : undeclared identifier
|
ERROR: 0:12: 'gl_HitKindNV' : undeclared identifier
|
||||||
ERROR: 0:13: 'reportIntersectionNVX' : no matching overloaded function found
|
ERROR: 0:13: 'reportIntersectionNV' : no matching overloaded function found
|
||||||
ERROR: 0:14: 'ignoreIntersectionNVX' : no matching overloaded function found
|
ERROR: 0:14: 'ignoreIntersectionNV' : no matching overloaded function found
|
||||||
ERROR: 0:15: 'terminateRayNVX' : no matching overloaded function found
|
ERROR: 0:15: 'terminateRayNV' : no matching overloaded function found
|
||||||
ERROR: 16 compilation errors. No code generated.
|
ERROR: 16 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
73
Test/baseResults/spv.RayCallable.rcall.out
Normal file
73
Test/baseResults/spv.RayCallable.rcall.out
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
spv.RayCallable.rcall
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80007
|
||||||
|
// Id's are bound by 38
|
||||||
|
|
||||||
|
Capability RayTracingNV
|
||||||
|
Extension "SPV_NV_ray_tracing"
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint CallableNV 4 "main" 11 14 19
|
||||||
|
Source GLSL 460
|
||||||
|
SourceExtension "GL_NV_ray_tracing"
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "id"
|
||||||
|
Name 11 "gl_LaunchIDNV"
|
||||||
|
Name 13 "size"
|
||||||
|
Name 14 "gl_LaunchSizeNV"
|
||||||
|
Name 17 "curFlags"
|
||||||
|
Name 19 "gl_IncomingRayFlagsNV"
|
||||||
|
Name 24 "dataBlock"
|
||||||
|
MemberName 24(dataBlock) 0 "data1"
|
||||||
|
Name 26 ""
|
||||||
|
Name 37 "data0"
|
||||||
|
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
|
||||||
|
Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
|
||||||
|
Decorate 19(gl_IncomingRayFlagsNV) BuiltIn IncomingRayFlagsNV
|
||||||
|
Decorate 24(dataBlock) Block
|
||||||
|
Decorate 26 Location 1
|
||||||
|
Decorate 37(data0) Location 0
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 32 0
|
||||||
|
7: TypeVector 6(int) 3
|
||||||
|
8: TypePointer Function 7(ivec3)
|
||||||
|
10: TypePointer Input 7(ivec3)
|
||||||
|
11(gl_LaunchIDNV): 10(ptr) Variable Input
|
||||||
|
14(gl_LaunchSizeNV): 10(ptr) Variable Input
|
||||||
|
16: TypePointer Function 6(int)
|
||||||
|
18: TypePointer Input 6(int)
|
||||||
|
19(gl_IncomingRayFlagsNV): 18(ptr) Variable Input
|
||||||
|
22: 6(int) Constant 1
|
||||||
|
24(dataBlock): TypeStruct 6(int)
|
||||||
|
25: TypePointer IncomingCallableDataNV 24(dataBlock)
|
||||||
|
26: 25(ptr) Variable IncomingCallableDataNV
|
||||||
|
27: TypeInt 32 1
|
||||||
|
28: 27(int) Constant 0
|
||||||
|
29: 6(int) Constant 256
|
||||||
|
30: TypePointer IncomingCallableDataNV 6(int)
|
||||||
|
32: 6(int) Constant 2
|
||||||
|
33: 27(int) Constant 1
|
||||||
|
34: TypeFloat 32
|
||||||
|
35: TypeVector 34(float) 4
|
||||||
|
36: TypePointer CallableDataNV 35(fvec4)
|
||||||
|
37(data0): 36(ptr) Variable CallableDataNV
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
9(id): 8(ptr) Variable Function
|
||||||
|
13(size): 8(ptr) Variable Function
|
||||||
|
17(curFlags): 16(ptr) Variable Function
|
||||||
|
12: 7(ivec3) Load 11(gl_LaunchIDNV)
|
||||||
|
Store 9(id) 12
|
||||||
|
15: 7(ivec3) Load 14(gl_LaunchSizeNV)
|
||||||
|
Store 13(size) 15
|
||||||
|
20: 6(int) Load 19(gl_IncomingRayFlagsNV)
|
||||||
|
Store 17(curFlags) 20
|
||||||
|
21: 6(int) Load 17(curFlags)
|
||||||
|
23: 6(int) BitwiseAnd 21 22
|
||||||
|
Store 17(curFlags) 23
|
||||||
|
31: 30(ptr) AccessChain 26 28
|
||||||
|
Store 31 29
|
||||||
|
ExecuteCallableNV 32 33
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
33
Test/baseResults/spv.RayCallable_Errors.rcall.out
Normal file
33
Test/baseResults/spv.RayCallable_Errors.rcall.out
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
spv.RayCallable_Errors.rcall
|
||||||
|
ERROR: 0:3: 'hitAttributeNV' : not supported in this stage: callable
|
||||||
|
ERROR: 0:4: 'rayPayloadNV' : not supported in this stage: callable
|
||||||
|
ERROR: 0:5: 'rayPayloadInNV' : not supported in this stage: callable
|
||||||
|
ERROR: 0:9: 'gl_PrimitiveID' : undeclared identifier
|
||||||
|
ERROR: 0:9: '=' : cannot convert from ' temp float' to ' temp highp int'
|
||||||
|
ERROR: 0:10: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?)
|
||||||
|
ERROR: 0:10: '=' : cannot convert from ' temp float' to ' temp highp int'
|
||||||
|
ERROR: 0:11: 'gl_InstanceCustomIndexNV' : undeclared identifier
|
||||||
|
ERROR: 0:11: '=' : cannot convert from ' temp float' to ' temp highp int'
|
||||||
|
ERROR: 0:12: 'gl_WorldRayOriginNV' : undeclared identifier
|
||||||
|
ERROR: 0:12: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
|
||||||
|
ERROR: 0:13: 'gl_WorldRayDirectionNV' : undeclared identifier
|
||||||
|
ERROR: 0:13: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
|
||||||
|
ERROR: 0:14: 'gl_ObjectRayOriginNV' : undeclared identifier
|
||||||
|
ERROR: 0:14: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
|
||||||
|
ERROR: 0:15: 'gl_ObjectRayDirectionNV' : undeclared identifier
|
||||||
|
ERROR: 0:15: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
|
||||||
|
ERROR: 0:16: 'gl_RayTminNV' : undeclared identifier
|
||||||
|
ERROR: 0:17: 'gl_RayTmaxNV' : undeclared identifier
|
||||||
|
ERROR: 0:18: 'gl_ObjectToWorldNV' : undeclared identifier
|
||||||
|
ERROR: 0:18: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
|
||||||
|
ERROR: 0:19: 'gl_WorldToObjectNV' : undeclared identifier
|
||||||
|
ERROR: 0:19: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
|
||||||
|
ERROR: 0:20: 'gl_HitTNV' : undeclared identifier
|
||||||
|
ERROR: 0:21: 'gl_HitKindNV' : undeclared identifier
|
||||||
|
ERROR: 0:22: 'reportIntersectionNV' : no matching overloaded function found
|
||||||
|
ERROR: 0:23: 'ignoreIntersectionNV' : no matching overloaded function found
|
||||||
|
ERROR: 0:24: 'terminateRayNV' : no matching overloaded function found
|
||||||
|
ERROR: 28 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
@ -3,13 +3,13 @@ spv.RayConstants.rgen
|
|||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 27
|
// Id's are bound by 27
|
||||||
|
|
||||||
Capability RaytracingNVX
|
Capability RayTracingNV
|
||||||
Extension "SPV_NVX_raytracing"
|
Extension "SPV_NV_ray_tracing"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint RayGenerationNVX 4 "main"
|
EntryPoint RayGenerationNV 4 "main"
|
||||||
Source GLSL 460
|
Source GLSL 460
|
||||||
SourceExtension "GL_NVX_raytracing"
|
SourceExtension "GL_NV_ray_tracing"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 8 "accNV"
|
Name 8 "accNV"
|
||||||
Name 26 "payload"
|
Name 26 "payload"
|
||||||
@ -18,7 +18,7 @@ spv.RayConstants.rgen
|
|||||||
Decorate 26(payload) Location 0
|
Decorate 26(payload) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeAccelerationStructureNVX
|
6: TypeAccelerationStructureNV
|
||||||
7: TypePointer UniformConstant 6
|
7: TypePointer UniformConstant 6
|
||||||
8(accNV): 7(ptr) Variable UniformConstant
|
8(accNV): 7(ptr) Variable UniformConstant
|
||||||
10: TypeInt 32 0
|
10: TypeInt 32 0
|
||||||
@ -36,11 +36,11 @@ spv.RayConstants.rgen
|
|||||||
22: TypeInt 32 1
|
22: TypeInt 32 1
|
||||||
23: 22(int) Constant 1
|
23: 22(int) Constant 1
|
||||||
24: TypeVector 14(float) 4
|
24: TypeVector 14(float) 4
|
||||||
25: TypePointer RayPayloadNVX 24(fvec4)
|
25: TypePointer RayPayloadNV 24(fvec4)
|
||||||
26(payload): 25(ptr) Variable RayPayloadNVX
|
26(payload): 25(ptr) Variable RayPayloadNV
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9: 6 Load 8(accNV)
|
9: 6 Load 8(accNV)
|
||||||
TraceNVX 9 11 12 13 13 12 17 18 20 21 23
|
TraceNV 9 11 12 13 13 12 17 18 20 21 23
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -3,19 +3,19 @@ spv.RayGenShader.rgen
|
|||||||
// Generated by (magic number): 80007
|
// Generated by (magic number): 80007
|
||||||
// Id's are bound by 60
|
// Id's are bound by 60
|
||||||
|
|
||||||
Capability RaytracingNVX
|
Capability RayTracingNV
|
||||||
Extension "SPV_NVX_raytracing"
|
Extension "SPV_NV_ray_tracing"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint RayGenerationNVX 4 "main" 11 21
|
EntryPoint RayGenerationNV 4 "main" 11 21
|
||||||
Source GLSL 460
|
Source GLSL 460
|
||||||
SourceExtension "GL_NVX_raytracing"
|
SourceExtension "GL_NV_ray_tracing"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 8 "lx"
|
Name 8 "lx"
|
||||||
Name 11 "gl_LaunchIDNVX"
|
Name 11 "gl_LaunchIDNV"
|
||||||
Name 16 "ly"
|
Name 16 "ly"
|
||||||
Name 20 "sx"
|
Name 20 "sx"
|
||||||
Name 21 "gl_LaunchSizeNVX"
|
Name 21 "gl_LaunchSizeNV"
|
||||||
Name 24 "sy"
|
Name 24 "sy"
|
||||||
Name 29 "accNV"
|
Name 29 "accNV"
|
||||||
Name 48 "block"
|
Name 48 "block"
|
||||||
@ -23,8 +23,8 @@ spv.RayGenShader.rgen
|
|||||||
MemberName 48(block) 1 "pad"
|
MemberName 48(block) 1 "pad"
|
||||||
Name 50 ""
|
Name 50 ""
|
||||||
Name 56 "payload"
|
Name 56 "payload"
|
||||||
Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX
|
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
|
||||||
Decorate 21(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX
|
Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
|
||||||
Decorate 29(accNV) DescriptorSet 0
|
Decorate 29(accNV) DescriptorSet 0
|
||||||
Decorate 29(accNV) Binding 0
|
Decorate 29(accNV) Binding 0
|
||||||
Decorate 46 ArrayStride 4
|
Decorate 46 ArrayStride 4
|
||||||
@ -36,14 +36,14 @@ spv.RayGenShader.rgen
|
|||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
7: TypePointer Function 6(int)
|
7: TypePointer Function 6(int)
|
||||||
9: TypeVector 6(int) 2
|
9: TypeVector 6(int) 3
|
||||||
10: TypePointer Input 9(ivec2)
|
10: TypePointer Input 9(ivec3)
|
||||||
11(gl_LaunchIDNVX): 10(ptr) Variable Input
|
11(gl_LaunchIDNV): 10(ptr) Variable Input
|
||||||
12: 6(int) Constant 0
|
12: 6(int) Constant 0
|
||||||
13: TypePointer Input 6(int)
|
13: TypePointer Input 6(int)
|
||||||
17: 6(int) Constant 1
|
17: 6(int) Constant 1
|
||||||
21(gl_LaunchSizeNVX): 10(ptr) Variable Input
|
21(gl_LaunchSizeNV): 10(ptr) Variable Input
|
||||||
27: TypeAccelerationStructureNVX
|
27: TypeAccelerationStructureNV
|
||||||
28: TypePointer UniformConstant 27
|
28: TypePointer UniformConstant 27
|
||||||
29(accNV): 28(ptr) Variable UniformConstant
|
29(accNV): 28(ptr) Variable UniformConstant
|
||||||
35: TypeFloat 32
|
35: TypeFloat 32
|
||||||
@ -60,30 +60,30 @@ spv.RayGenShader.rgen
|
|||||||
46: TypeArray 35(float) 45
|
46: TypeArray 35(float) 45
|
||||||
47: TypeVector 35(float) 4
|
47: TypeVector 35(float) 4
|
||||||
48(block): TypeStruct 46 47(fvec4)
|
48(block): TypeStruct 46 47(fvec4)
|
||||||
49: TypePointer ShaderRecordBufferNVX 48(block)
|
49: TypePointer ShaderRecordBufferNV 48(block)
|
||||||
50: 49(ptr) Variable ShaderRecordBufferNVX
|
50: 49(ptr) Variable ShaderRecordBufferNV
|
||||||
51: 43(int) Constant 0
|
51: 43(int) Constant 0
|
||||||
52: 43(int) Constant 3
|
52: 43(int) Constant 3
|
||||||
53: TypePointer ShaderRecordBufferNVX 35(float)
|
53: TypePointer ShaderRecordBufferNV 35(float)
|
||||||
55: TypePointer RayPayloadNVX 47(fvec4)
|
55: TypePointer RayPayloadNV 47(fvec4)
|
||||||
56(payload): 55(ptr) Variable RayPayloadNVX
|
56(payload): 55(ptr) Variable RayPayloadNV
|
||||||
58: TypePointer ShaderRecordBufferNVX 47(fvec4)
|
58: TypePointer ShaderRecordBufferNV 47(fvec4)
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
8(lx): 7(ptr) Variable Function
|
8(lx): 7(ptr) Variable Function
|
||||||
16(ly): 7(ptr) Variable Function
|
16(ly): 7(ptr) Variable Function
|
||||||
20(sx): 7(ptr) Variable Function
|
20(sx): 7(ptr) Variable Function
|
||||||
24(sy): 7(ptr) Variable Function
|
24(sy): 7(ptr) Variable Function
|
||||||
14: 13(ptr) AccessChain 11(gl_LaunchIDNVX) 12
|
14: 13(ptr) AccessChain 11(gl_LaunchIDNV) 12
|
||||||
15: 6(int) Load 14
|
15: 6(int) Load 14
|
||||||
Store 8(lx) 15
|
Store 8(lx) 15
|
||||||
18: 13(ptr) AccessChain 11(gl_LaunchIDNVX) 17
|
18: 13(ptr) AccessChain 11(gl_LaunchIDNV) 17
|
||||||
19: 6(int) Load 18
|
19: 6(int) Load 18
|
||||||
Store 16(ly) 19
|
Store 16(ly) 19
|
||||||
22: 13(ptr) AccessChain 21(gl_LaunchSizeNVX) 12
|
22: 13(ptr) AccessChain 21(gl_LaunchSizeNV) 12
|
||||||
23: 6(int) Load 22
|
23: 6(int) Load 22
|
||||||
Store 20(sx) 23
|
Store 20(sx) 23
|
||||||
25: 13(ptr) AccessChain 21(gl_LaunchSizeNVX) 17
|
25: 13(ptr) AccessChain 21(gl_LaunchSizeNV) 17
|
||||||
26: 6(int) Load 25
|
26: 6(int) Load 25
|
||||||
Store 24(sy) 26
|
Store 24(sy) 26
|
||||||
30: 27 Load 29(accNV)
|
30: 27 Load 29(accNV)
|
||||||
@ -91,7 +91,7 @@ spv.RayGenShader.rgen
|
|||||||
32: 6(int) Load 16(ly)
|
32: 6(int) Load 16(ly)
|
||||||
33: 6(int) Load 20(sx)
|
33: 6(int) Load 20(sx)
|
||||||
34: 6(int) Load 24(sy)
|
34: 6(int) Load 24(sy)
|
||||||
TraceNVX 30 31 32 33 34 12 38 39 41 42 44
|
TraceNV 30 31 32 33 34 12 38 39 41 42 44
|
||||||
54: 53(ptr) AccessChain 50 51 52
|
54: 53(ptr) AccessChain 50 51 52
|
||||||
Store 54 40
|
Store 54 40
|
||||||
57: 47(fvec4) Load 56(payload)
|
57: 47(fvec4) Load 56(payload)
|
||||||
|
@ -1,39 +1,39 @@
|
|||||||
spv.RayGenShader_Errors.rgen
|
spv.RayGenShader_Errors.rgen
|
||||||
ERROR: 0:3: 'hitAttributeNVX' : not supported in this stage: ray-generation
|
ERROR: 0:3: 'hitAttributeNV' : not supported in this stage: ray-generation
|
||||||
ERROR: 0:4: 'rayPayloadInNVX' : not supported in this stage: ray-generation
|
ERROR: 0:4: 'rayPayloadInNV' : not supported in this stage: ray-generation
|
||||||
ERROR: 0:5: 'shaderRecordNVX' : can only be used with a buffer
|
ERROR: 0:5: 'shaderRecordNV' : can only be used with a buffer
|
||||||
ERROR: 0:9: 'binding' : cannot be used with shaderRecordNVX
|
ERROR: 0:9: 'binding' : cannot be used with shaderRecordNV
|
||||||
ERROR: 0:12: 'set' : cannot be used with shaderRecordNVX
|
ERROR: 0:12: 'set' : cannot be used with shaderRecordNV
|
||||||
ERROR: 0:23: 'accelerationStructureNVX' : accelerationStructureNVX can only be used in uniform variables or function parameters: a
|
ERROR: 0:23: 'accelerationStructureNV' : accelerationStructureNV can only be used in uniform variables or function parameters: a
|
||||||
ERROR: 0:23: '=' : cannot convert from ' const int' to ' temp accelerationStructureNVX'
|
ERROR: 0:23: '=' : cannot convert from ' const int' to ' temp accelerationStructureNV'
|
||||||
ERROR: 0:24: 'gl_PrimitiveID' : undeclared identifier
|
ERROR: 0:24: 'gl_PrimitiveID' : undeclared identifier
|
||||||
ERROR: 0:24: '=' : cannot convert from ' temp float' to ' temp highp int'
|
ERROR: 0:24: '=' : cannot convert from ' temp float' to ' temp highp int'
|
||||||
ERROR: 0:25: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?)
|
ERROR: 0:25: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?)
|
||||||
ERROR: 0:25: '=' : cannot convert from ' temp float' to ' temp highp int'
|
ERROR: 0:25: '=' : cannot convert from ' temp float' to ' temp highp int'
|
||||||
ERROR: 0:26: 'gl_InstanceCustomIndexNVX' : undeclared identifier
|
ERROR: 0:26: 'gl_InstanceCustomIndexNV' : undeclared identifier
|
||||||
ERROR: 0:26: '=' : cannot convert from ' temp float' to ' temp highp int'
|
ERROR: 0:26: '=' : cannot convert from ' temp float' to ' temp highp int'
|
||||||
ERROR: 0:27: 'gl_WorldRayOriginNVX' : undeclared identifier
|
ERROR: 0:27: 'gl_WorldRayOriginNV' : undeclared identifier
|
||||||
ERROR: 0:27: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
|
ERROR: 0:27: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
|
||||||
ERROR: 0:28: 'gl_WorldRayDirectionNVX' : undeclared identifier
|
ERROR: 0:28: 'gl_WorldRayDirectionNV' : undeclared identifier
|
||||||
ERROR: 0:28: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
|
ERROR: 0:28: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
|
||||||
ERROR: 0:29: 'gl_ObjectRayOriginNVX' : undeclared identifier
|
ERROR: 0:29: 'gl_ObjectRayOriginNV' : undeclared identifier
|
||||||
ERROR: 0:29: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
|
ERROR: 0:29: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
|
||||||
ERROR: 0:30: 'gl_ObjectRayDirectionNVX' : undeclared identifier
|
ERROR: 0:30: 'gl_ObjectRayDirectionNV' : undeclared identifier
|
||||||
ERROR: 0:30: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
|
ERROR: 0:30: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
|
||||||
ERROR: 0:31: 'gl_RayTminNVX' : undeclared identifier
|
ERROR: 0:31: 'gl_RayTminNV' : undeclared identifier
|
||||||
ERROR: 0:32: 'gl_RayTmaxNVX' : undeclared identifier
|
ERROR: 0:32: 'gl_RayTmaxNV' : undeclared identifier
|
||||||
ERROR: 0:33: 'gl_ObjectToWorldNVX' : undeclared identifier
|
ERROR: 0:33: 'gl_ObjectToWorldNV' : undeclared identifier
|
||||||
ERROR: 0:33: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
|
ERROR: 0:33: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
|
||||||
ERROR: 0:34: 'gl_WorldToObjectNVX' : undeclared identifier
|
ERROR: 0:34: 'gl_WorldToObjectNV' : undeclared identifier
|
||||||
ERROR: 0:34: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
|
ERROR: 0:34: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
|
||||||
ERROR: 0:35: 'gl_HitTNVX' : undeclared identifier
|
ERROR: 0:35: 'gl_HitTNV' : undeclared identifier
|
||||||
ERROR: 0:36: 'gl_HitKindNVX' : undeclared identifier
|
ERROR: 0:36: 'gl_HitKindNV' : undeclared identifier
|
||||||
ERROR: 0:37: 'reportIntersectionNVX' : no matching overloaded function found
|
ERROR: 0:37: 'reportIntersectionNV' : no matching overloaded function found
|
||||||
ERROR: 0:38: 'ignoreIntersectionNVX' : no matching overloaded function found
|
ERROR: 0:38: 'ignoreIntersectionNV' : no matching overloaded function found
|
||||||
ERROR: 0:39: 'terminateRayNVX' : no matching overloaded function found
|
ERROR: 0:39: 'terminateRayNV' : no matching overloaded function found
|
||||||
ERROR: 32 compilation errors. No code generated.
|
ERROR: 32 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
ERROR: Linking ray-generation stage: Only one shaderRecordNVX buffer block is allowed per stage
|
ERROR: Linking ray-generation stage: Only one shaderRecordNV buffer block is allowed per stage
|
||||||
|
|
||||||
SPIR-V is not generated for failed compile or link
|
SPIR-V is not generated for failed compile or link
|
||||||
|
@ -1,26 +1,26 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_NVX_raytracing : enable
|
#extension GL_NV_ray_tracing : enable
|
||||||
layout(location = 1) rayPayloadInNVX vec4 incomingPayload;
|
layout(location = 1) rayPayloadInNV vec4 incomingPayload;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
uvec2 v0 = gl_LaunchIDNVX;
|
uvec3 v0 = gl_LaunchIDNV;
|
||||||
uvec2 v1 = gl_LaunchSizeNVX;
|
uvec3 v1 = gl_LaunchSizeNV;
|
||||||
int v2 = gl_PrimitiveID;
|
int v2 = gl_PrimitiveID;
|
||||||
int v3 = gl_InstanceID;
|
int v3 = gl_InstanceID;
|
||||||
int v4 = gl_InstanceCustomIndexNVX;
|
int v4 = gl_InstanceCustomIndexNV;
|
||||||
vec3 v5 = gl_WorldRayOriginNVX;
|
vec3 v5 = gl_WorldRayOriginNV;
|
||||||
vec3 v6 = gl_WorldRayDirectionNVX;
|
vec3 v6 = gl_WorldRayDirectionNV;
|
||||||
vec3 v7 = gl_ObjectRayOriginNVX;
|
vec3 v7 = gl_ObjectRayOriginNV;
|
||||||
vec3 v8 = gl_ObjectRayDirectionNVX;
|
vec3 v8 = gl_ObjectRayDirectionNV;
|
||||||
float v9 = gl_RayTminNVX;
|
float v9 = gl_RayTminNV;
|
||||||
float v10 = gl_RayTmaxNVX;
|
float v10 = gl_RayTmaxNV;
|
||||||
float v11 = gl_HitTNVX;
|
float v11 = gl_HitTNV;
|
||||||
uint v12 = gl_HitKindNVX;
|
uint v12 = gl_HitKindNV;
|
||||||
mat4x3 v13 = gl_ObjectToWorldNVX;
|
mat4x3 v13 = gl_ObjectToWorldNV;
|
||||||
mat4x3 v14 = gl_WorldToObjectNVX;
|
mat4x3 v14 = gl_WorldToObjectNV;
|
||||||
incomingPayload = vec4(0.5f);
|
incomingPayload = vec4(0.5f);
|
||||||
if (v2 == 1)
|
if (v2 == 1)
|
||||||
ignoreIntersectionNVX();
|
ignoreIntersectionNV();
|
||||||
else
|
else
|
||||||
terminateRayNVX();
|
terminateRayNV();
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_NVX_raytracing : enable
|
#extension GL_NV_ray_tracing : enable
|
||||||
hitAttributeNVX vec4 payload;
|
hitAttributeNV vec4 payload;
|
||||||
layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV;
|
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
payload.x = 1.0f; // ERROR, cannot write to hitattributeNVX in stage
|
payload.x = 1.0f; // ERROR, cannot write to hitattributeNV in stage
|
||||||
reportIntersectionNVX(1.0, 1U); // ERROR, unsupported builtin in stage
|
reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage
|
||||||
traceNVX(accNV, 0, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 0); // ERROR, unsupported builtin in stage
|
traceNV(accNV, 0, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 0); // ERROR, unsupported builtin in stage
|
||||||
}
|
}
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_NVX_raytracing : enable
|
#extension GL_NV_ray_tracing : enable
|
||||||
layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV;
|
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV;
|
||||||
layout(location = 0) rayPayloadNVX vec4 localPayload;
|
layout(location = 0) rayPayloadNV vec4 localPayload;
|
||||||
layout(location = 1) rayPayloadInNVX vec4 incomingPayload;
|
layout(location = 1) rayPayloadInNV vec4 incomingPayload;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
uvec2 v0 = gl_LaunchIDNVX;
|
uvec3 v0 = gl_LaunchIDNV;
|
||||||
uvec2 v1 = gl_LaunchSizeNVX;
|
uvec3 v1 = gl_LaunchSizeNV;
|
||||||
int v2 = gl_PrimitiveID;
|
int v2 = gl_PrimitiveID;
|
||||||
int v3 = gl_InstanceID;
|
int v3 = gl_InstanceID;
|
||||||
int v4 = gl_InstanceCustomIndexNVX;
|
int v4 = gl_InstanceCustomIndexNV;
|
||||||
vec3 v5 = gl_WorldRayOriginNVX;
|
vec3 v5 = gl_WorldRayOriginNV;
|
||||||
vec3 v6 = gl_WorldRayDirectionNVX;
|
vec3 v6 = gl_WorldRayDirectionNV;
|
||||||
vec3 v7 = gl_ObjectRayOriginNVX;
|
vec3 v7 = gl_ObjectRayOriginNV;
|
||||||
vec3 v8 = gl_ObjectRayDirectionNVX;
|
vec3 v8 = gl_ObjectRayDirectionNV;
|
||||||
float v9 = gl_RayTminNVX;
|
float v9 = gl_RayTminNV;
|
||||||
float v10 = gl_RayTmaxNVX;
|
float v10 = gl_RayTmaxNV;
|
||||||
float v11 = gl_HitTNVX;
|
float v11 = gl_HitTNV;
|
||||||
uint v12 = gl_HitKindNVX;
|
uint v12 = gl_HitKindNV;
|
||||||
mat4x3 v13 = gl_ObjectToWorldNVX;
|
mat4x3 v13 = gl_ObjectToWorldNV;
|
||||||
mat4x3 v14 = gl_WorldToObjectNVX;
|
mat4x3 v14 = gl_WorldToObjectNV;
|
||||||
traceNVX(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
|
traceNV(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_NVX_raytracing : enable
|
#extension GL_NV_ray_tracing : enable
|
||||||
hitAttributeNVX vec4 payload;
|
hitAttributeNV vec4 payload;
|
||||||
layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV;
|
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
payload.x = 1.0f; // ERROR, cannot write to hitattributeNVX in stage
|
payload.x = 1.0f; // ERROR, cannot write to hitattributeNV in stage
|
||||||
reportIntersectionNVX(1.0, 1U); // ERROR, unsupported builtin in stage
|
reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage
|
||||||
terminateRayNVX();
|
terminateRayNV();
|
||||||
ignoreIntersectionNVX();
|
ignoreIntersectionNV();
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_NVX_raytracing : enable
|
#extension GL_NV_ray_tracing : enable
|
||||||
hitAttributeNVX vec4 iAttr;
|
hitAttributeNV vec4 iAttr;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
uvec2 v0 = gl_LaunchIDNVX;
|
uvec3 v0 = gl_LaunchIDNV;
|
||||||
uvec2 v1 = gl_LaunchSizeNVX;
|
uvec3 v1 = gl_LaunchSizeNV;
|
||||||
int v2 = gl_PrimitiveID;
|
int v2 = gl_PrimitiveID;
|
||||||
int v3 = gl_InstanceID;
|
int v3 = gl_InstanceID;
|
||||||
int v4 = gl_InstanceCustomIndexNVX;
|
int v4 = gl_InstanceCustomIndexNV;
|
||||||
vec3 v5 = gl_WorldRayOriginNVX;
|
vec3 v5 = gl_WorldRayOriginNV;
|
||||||
vec3 v6 = gl_WorldRayDirectionNVX;
|
vec3 v6 = gl_WorldRayDirectionNV;
|
||||||
vec3 v7 = gl_ObjectRayOriginNVX;
|
vec3 v7 = gl_ObjectRayOriginNV;
|
||||||
vec3 v8 = gl_ObjectRayDirectionNVX;
|
vec3 v8 = gl_ObjectRayDirectionNV;
|
||||||
float v9 = gl_RayTminNVX;
|
float v9 = gl_RayTminNV;
|
||||||
float v10 = gl_RayTmaxNVX;
|
float v10 = gl_RayTmaxNV;
|
||||||
mat4x3 v11 = gl_ObjectToWorldNVX;
|
mat4x3 v11 = gl_ObjectToWorldNV;
|
||||||
mat4x3 v12 = gl_WorldToObjectNVX;
|
mat4x3 v12 = gl_WorldToObjectNV;
|
||||||
iAttr = vec4(0.5f,0.5f,0.0f,1.0f);
|
iAttr = vec4(0.5f,0.5f,0.0f,1.0f);
|
||||||
reportIntersectionNVX(0.5, 1U);
|
reportIntersectionNV(0.5, 1U);
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_NVX_raytracing : enable
|
#extension GL_NV_ray_tracing : enable
|
||||||
rayPayloadInNVX vec4 payloadIn; // ERROR, rayPayloadIn unsupported in this stage
|
rayPayloadInNV vec4 payloadIn; // ERROR, rayPayloadIn unsupported in this stage
|
||||||
rayPayloadNVX vec4 payload; // ERROR, rayPayload unsuppoted in this stage
|
rayPayloadNV vec4 payload; // ERROR, rayPayload unsuppoted in this stage
|
||||||
uniform accelerationStructureNVX accNV;
|
uniform accelerationStructureNV accNV;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
float e12 = gl_HitTNVX; // ERROR, unsupported builtin in stage
|
float e12 = gl_HitTNV; // ERROR, unsupported builtin in stage
|
||||||
float e13 = gl_HitKindNVX; // ERROR, unsupported builtin in stage
|
float e13 = gl_HitKindNV; // ERROR, unsupported builtin in stage
|
||||||
traceNVX(accNV, 0, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 0); // ERROR, unsupported
|
traceNV(accNV, 0, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 0); // ERROR, unsupported
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_NVX_raytracing : enable
|
#extension GL_NV_ray_tracing : enable
|
||||||
layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV;
|
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV;
|
||||||
layout(location = 0) rayPayloadNVX vec4 localPayload;
|
layout(location = 0) rayPayloadNV vec4 localPayload;
|
||||||
layout(location = 1) rayPayloadInNVX vec4 incomingPayload;
|
layout(location = 1) rayPayloadInNV vec4 incomingPayload;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
uvec2 v0 = gl_LaunchIDNVX;
|
uvec3 v0 = gl_LaunchIDNV;
|
||||||
uvec2 v1 = gl_LaunchSizeNVX;
|
uvec3 v1 = gl_LaunchSizeNV;
|
||||||
vec3 v2 = gl_WorldRayOriginNVX;
|
vec3 v2 = gl_WorldRayOriginNV;
|
||||||
vec3 v3 = gl_WorldRayDirectionNVX;
|
vec3 v3 = gl_WorldRayDirectionNV;
|
||||||
vec3 v4 = gl_ObjectRayOriginNVX;
|
vec3 v4 = gl_ObjectRayOriginNV;
|
||||||
vec3 v5 = gl_ObjectRayDirectionNVX;
|
vec3 v5 = gl_ObjectRayDirectionNV;
|
||||||
float v6 = gl_RayTminNVX;
|
float v6 = gl_RayTminNV;
|
||||||
float v7 = gl_RayTmaxNVX;
|
float v7 = gl_RayTmaxNV;
|
||||||
traceNVX(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
|
traceNV(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_NVX_raytracing : enable
|
#extension GL_NV_ray_tracing : enable
|
||||||
hitAttributeNVX vec4 payload; // ERROR, hitattributeNVX unsupported in this stage
|
hitAttributeNV vec4 payload; // ERROR, hitattributeNV unsupported in this stage
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage
|
int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage
|
||||||
int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage
|
int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage
|
||||||
int e3 = gl_InstanceCustomIndexNVX; // ERROR, unsupported builtin in stage
|
int e3 = gl_InstanceCustomIndexNV; // ERROR, unsupported builtin in stage
|
||||||
mat4x3 e10 = gl_ObjectToWorldNVX; // ERROR, unsupported builtin in stage
|
mat4x3 e10 = gl_ObjectToWorldNV; // ERROR, unsupported builtin in stage
|
||||||
mat4x3 e11 = gl_WorldToObjectNVX; // ERROR, unsupported builtin in stage
|
mat4x3 e11 = gl_WorldToObjectNV; // ERROR, unsupported builtin in stage
|
||||||
float e12 = gl_HitTNVX; // ERROR, unsupported builtin in stage
|
float e12 = gl_HitTNV; // ERROR, unsupported builtin in stage
|
||||||
float e13 = gl_HitKindNVX; // ERROR, unsupported builtin in stage
|
float e13 = gl_HitKindNV; // ERROR, unsupported builtin in stage
|
||||||
reportIntersectionNVX(1.0, 1U); // ERROR, unsupported builtin in stage
|
reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage
|
||||||
ignoreIntersectionNVX(); // ERROR, unsupported builtin in stage
|
ignoreIntersectionNV(); // ERROR, unsupported builtin in stage
|
||||||
terminateRayNVX(); // ERROR, unsupported builtin in stage
|
terminateRayNV(); // ERROR, unsupported builtin in stage
|
||||||
}
|
}
|
||||||
|
15
Test/spv.RayCallable.rcall
Normal file
15
Test/spv.RayCallable.rcall
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#version 460
|
||||||
|
#extension GL_NV_ray_tracing : enable
|
||||||
|
layout(location = 0) callableDataNV vec4 data0;
|
||||||
|
layout(location = 1) callableDataInNV dataBlock {
|
||||||
|
uint data1;
|
||||||
|
};
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uvec3 id = gl_LaunchIDNV;
|
||||||
|
uvec3 size = gl_LaunchSizeNV;
|
||||||
|
uint curFlags = gl_IncomingRayFlagsNV;
|
||||||
|
curFlags = curFlags & gl_RayFlagsOpaqueNV;
|
||||||
|
data1 = 256U;
|
||||||
|
executeCallableNV(2,1);
|
||||||
|
}
|
25
Test/spv.RayCallable_Errors.rcall
Normal file
25
Test/spv.RayCallable_Errors.rcall
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#version 460
|
||||||
|
#extension GL_NV_ray_tracing : enable
|
||||||
|
hitAttributeNV vec4 hitattr; // ERROR, hitattributeNV unsupported in this stage
|
||||||
|
rayPayloadNV vec4 payload; // ERROR, rayPayloadNV unsupported in this stage
|
||||||
|
rayPayloadInNV vec4 payloadIn; // ERROR, rayPayloadInNV unsupported in this stage
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage
|
||||||
|
int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage
|
||||||
|
int e3 = gl_InstanceCustomIndexNV; // ERROR, unsupported builtin in stage
|
||||||
|
vec3 e4 = gl_WorldRayOriginNV; // ERROR, unsupported builtin in stage
|
||||||
|
vec3 e5 = gl_WorldRayDirectionNV; // ERROR, unsupported builtin in stage
|
||||||
|
vec3 e6 = gl_ObjectRayOriginNV; // ERROR, unsupported builtin in stage
|
||||||
|
vec3 e7 = gl_ObjectRayDirectionNV; // ERROR, unsupported builtin in stage
|
||||||
|
float e8 = gl_RayTminNV; // ERROR, unsupported builtin in stage
|
||||||
|
float e9 = gl_RayTmaxNV; // ERROR, unsupported builtin in stage
|
||||||
|
mat4x3 e10 = gl_ObjectToWorldNV; // ERROR, unsupported builtin in stage
|
||||||
|
mat4x3 e11 = gl_WorldToObjectNV; // ERROR, unsupported builtin in stage
|
||||||
|
float e12 = gl_HitTNV; // ERROR, unsupported builtin in stage
|
||||||
|
float e13 = gl_HitKindNV; // ERROR, unsupported builtin in stage
|
||||||
|
reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage
|
||||||
|
ignoreIntersectionNV(); // ERROR, unsupported builtin in stage
|
||||||
|
terminateRayNV(); // ERROR, unsupported builtin in stage
|
||||||
|
}
|
@ -1,15 +1,15 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_NVX_raytracing : enable
|
#extension GL_NV_ray_tracing : enable
|
||||||
layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV;
|
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV;
|
||||||
layout(location = 0) rayPayloadNVX vec4 payload;
|
layout(location = 0) rayPayloadNV vec4 payload;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
const uint rayFlags = gl_RayFlagsNoneNVX | gl_RayFlagsOpaqueNVX |
|
const uint rayFlags = gl_RayFlagsNoneNV | gl_RayFlagsOpaqueNV |
|
||||||
gl_RayFlagsNoOpaqueNVX | gl_RayFlagsTerminateOnFirstHitNVX |
|
gl_RayFlagsNoOpaqueNV | gl_RayFlagsTerminateOnFirstHitNV |
|
||||||
gl_RayFlagsSkipClosestHitShaderNVX | gl_RayFlagsCullBackFacingTrianglesNVX |
|
gl_RayFlagsSkipClosestHitShaderNV | gl_RayFlagsCullBackFacingTrianglesNV |
|
||||||
gl_RayFlagsCullFrontFacingTrianglesNVX | gl_RayFlagsCullOpaqueNVX |
|
gl_RayFlagsCullFrontFacingTrianglesNV | gl_RayFlagsCullOpaqueNV |
|
||||||
gl_RayFlagsCullNoOpaqueNVX;
|
gl_RayFlagsCullNoOpaqueNV;
|
||||||
|
|
||||||
const int payloadId = 1;
|
const int payloadId = 1;
|
||||||
traceNVX(accNV, rayFlags, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, payloadId);
|
traceNV(accNV, rayFlags, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, payloadId);
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_NVX_raytracing : enable
|
#extension GL_NV_ray_tracing : enable
|
||||||
layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV;
|
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV;
|
||||||
layout(location = 0) rayPayloadNVX vec4 payload;
|
layout(location = 0) rayPayloadNV vec4 payload;
|
||||||
layout(shaderRecordNVX) buffer block
|
layout(shaderRecordNV) buffer block
|
||||||
{
|
{
|
||||||
float arr[4];
|
float arr[4];
|
||||||
vec4 pad;
|
vec4 pad;
|
||||||
};
|
};
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
uint lx = gl_LaunchIDNVX.x;
|
uint lx = gl_LaunchIDNV.x;
|
||||||
uint ly = gl_LaunchIDNVX.y;
|
uint ly = gl_LaunchIDNV.y;
|
||||||
uint sx = gl_LaunchSizeNVX.x;
|
uint sx = gl_LaunchSizeNV.x;
|
||||||
uint sy = gl_LaunchSizeNVX.y;
|
uint sy = gl_LaunchSizeNV.y;
|
||||||
traceNVX(accNV, lx, ly, sx, sy, 0u, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 1);
|
traceNV(accNV, lx, ly, sx, sy, 0u, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 1);
|
||||||
arr[3] = 1.0f;
|
arr[3] = 1.0f;
|
||||||
pad = payload;
|
pad = payload;
|
||||||
}
|
}
|
||||||
|
@ -1,40 +1,40 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_NVX_raytracing : enable
|
#extension GL_NV_ray_tracing : enable
|
||||||
hitAttributeNVX vec4 payload; // ERROR, hitattributeNVX unsupported in this stage
|
hitAttributeNV vec4 payload; // ERROR, hitattributeNV unsupported in this stage
|
||||||
rayPayloadInNVX vec4 payloadIn; // ERROR, rayPayloadIn unsupported in this stage
|
rayPayloadInNV vec4 payloadIn; // ERROR, rayPayloadIn unsupported in this stage
|
||||||
layout(shaderRecordNVX) uniform ublock // ERROR, shaderRecordNVX unsupported on uniform blocks
|
layout(shaderRecordNV) uniform ublock // ERROR, shaderRecordNV unsupported on uniform blocks
|
||||||
{
|
{
|
||||||
float a;
|
float a;
|
||||||
};
|
};
|
||||||
layout(binding = 0, shaderRecordNVX) buffer bblock { // ERROR, binding unsupported on shaderRecordNVX blocks
|
layout(binding = 0, shaderRecordNV) buffer bblock { // ERROR, binding unsupported on shaderRecordNV blocks
|
||||||
float b;
|
float b;
|
||||||
};
|
};
|
||||||
layout(set = 0, shaderRecordNVX) buffer bblock2 { // ERROR, set unsupported on shaderRecordNVX blocks
|
layout(set = 0, shaderRecordNV) buffer bblock2 { // ERROR, set unsupported on shaderRecordNV blocks
|
||||||
float c;
|
float c;
|
||||||
};
|
};
|
||||||
layout(shaderRecordNVX) buffer bblock3 {
|
layout(shaderRecordNV) buffer bblock3 {
|
||||||
float d;
|
float d;
|
||||||
};
|
};
|
||||||
layout(shaderRecordNVX) buffer bblock4 { // ERROR, cannot have more than one shaderRecordNVX block
|
layout(shaderRecordNV) buffer bblock4 { // ERROR, cannot have more than one shaderRecordNVX block
|
||||||
float e;
|
float e;
|
||||||
};
|
};
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
accelerationStructureNVX a = 0;
|
accelerationStructureNV a = 0;
|
||||||
int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage
|
int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage
|
||||||
int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage
|
int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage
|
||||||
int e3 = gl_InstanceCustomIndexNVX; // ERROR, unsupported builtin in stage
|
int e3 = gl_InstanceCustomIndexNV; // ERROR, unsupported builtin in stage
|
||||||
vec3 e4 = gl_WorldRayOriginNVX; // ERROR, unsupported builtin in stage
|
vec3 e4 = gl_WorldRayOriginNV; // ERROR, unsupported builtin in stage
|
||||||
vec3 e5 = gl_WorldRayDirectionNVX; // ERROR, unsupported builtin in stage
|
vec3 e5 = gl_WorldRayDirectionNV; // ERROR, unsupported builtin in stage
|
||||||
vec3 e6 = gl_ObjectRayOriginNVX; // ERROR, unsupported builtin in stage
|
vec3 e6 = gl_ObjectRayOriginNV; // ERROR, unsupported builtin in stage
|
||||||
vec3 e7 = gl_ObjectRayDirectionNVX; // ERROR, unsupported builtin in stage
|
vec3 e7 = gl_ObjectRayDirectionNV; // ERROR, unsupported builtin in stage
|
||||||
float e8 = gl_RayTminNVX; // ERROR, unsupported builtin in stage
|
float e8 = gl_RayTminNV; // ERROR, unsupported builtin in stage
|
||||||
float e9 = gl_RayTmaxNVX; // ERROR, unsupported builtin in stage
|
float e9 = gl_RayTmaxNV; // ERROR, unsupported builtin in stage
|
||||||
mat4x3 e10 = gl_ObjectToWorldNVX; // ERROR, unsupported builtin in stage
|
mat4x3 e10 = gl_ObjectToWorldNV; // ERROR, unsupported builtin in stage
|
||||||
mat4x3 e11 = gl_WorldToObjectNVX; // ERROR, unsupported builtin in stage
|
mat4x3 e11 = gl_WorldToObjectNV; // ERROR, unsupported builtin in stage
|
||||||
float e12 = gl_HitTNVX; // ERROR, unsupported builtin in stage
|
float e12 = gl_HitTNV; // ERROR, unsupported builtin in stage
|
||||||
float e13 = gl_HitKindNVX; // ERROR, unsupported builtin in stage
|
float e13 = gl_HitKindNV; // ERROR, unsupported builtin in stage
|
||||||
reportIntersectionNVX(1.0, 1U); // ERROR, unsupported builtin in stage
|
reportIntersectionNV(1.0, 1U); // ERROR, unsupported builtin in stage
|
||||||
ignoreIntersectionNVX(); // ERROR, unsupported builtin in stage
|
ignoreIntersectionNV(); // ERROR, unsupported builtin in stage
|
||||||
terminateRayNVX(); // ERROR, unsupported builtin in stage
|
terminateRayNV(); // ERROR, unsupported builtin in stage
|
||||||
}
|
}
|
||||||
|
@ -96,6 +96,8 @@ enum TStorageQualifier {
|
|||||||
EvqPayloadNV,
|
EvqPayloadNV,
|
||||||
EvqPayloadInNV,
|
EvqPayloadInNV,
|
||||||
EvqHitAttrNV,
|
EvqHitAttrNV,
|
||||||
|
EvqCallableDataNV,
|
||||||
|
EvqCallableDataInNV,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// parameters
|
// parameters
|
||||||
@ -253,6 +255,7 @@ enum TBuiltInVariable {
|
|||||||
EbvHitKindNV,
|
EbvHitKindNV,
|
||||||
EbvObjectToWorldNV,
|
EbvObjectToWorldNV,
|
||||||
EbvWorldToObjectNV,
|
EbvWorldToObjectNV,
|
||||||
|
EbvIncomingRayFlagsNV,
|
||||||
EbvBaryCoordNV,
|
EbvBaryCoordNV,
|
||||||
EbvBaryCoordNoPerspNV,
|
EbvBaryCoordNoPerspNV,
|
||||||
EbvTaskCountNV,
|
EbvTaskCountNV,
|
||||||
@ -310,9 +313,11 @@ __inline const char* GetStorageQualifierString(TStorageQualifier q)
|
|||||||
case EvqFragColor: return "fragColor"; break;
|
case EvqFragColor: return "fragColor"; break;
|
||||||
case EvqFragDepth: return "gl_FragDepth"; break;
|
case EvqFragDepth: return "gl_FragDepth"; break;
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case EvqPayloadNV: return "rayPayloadNVX"; break;
|
case EvqPayloadNV: return "rayPayloadNV"; break;
|
||||||
case EvqPayloadInNV: return "rayPayloadInNVX"; break;
|
case EvqPayloadInNV: return "rayPayloadInNV"; break;
|
||||||
case EvqHitAttrNV: return "hitAttributeNVX"; break;
|
case EvqHitAttrNV: return "hitAttributeNV"; break;
|
||||||
|
case EvqCallableDataNV: return "callableDataNV"; break;
|
||||||
|
case EvqCallableDataInNV: return "callableDataInNV"; break;
|
||||||
#endif
|
#endif
|
||||||
default: return "unknown qualifier";
|
default: return "unknown qualifier";
|
||||||
}
|
}
|
||||||
@ -408,19 +413,21 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
|
|||||||
case EbvFragFullyCoveredNV: return "FragFullyCoveredNV";
|
case EbvFragFullyCoveredNV: return "FragFullyCoveredNV";
|
||||||
case EbvFragmentSizeNV: return "FragmentSizeNV";
|
case EbvFragmentSizeNV: return "FragmentSizeNV";
|
||||||
case EbvInvocationsPerPixelNV: return "InvocationsPerPixelNV";
|
case EbvInvocationsPerPixelNV: return "InvocationsPerPixelNV";
|
||||||
case EbvLaunchIdNV: return "LaunchIdNVX";
|
case EbvLaunchIdNV: return "LaunchIdNV";
|
||||||
case EbvLaunchSizeNV: return "LaunchSizeNVX";
|
case EbvLaunchSizeNV: return "LaunchSizeNV";
|
||||||
case EbvInstanceCustomIndexNV: return "InstanceCustomIndexNVX";
|
case EbvInstanceCustomIndexNV: return "InstanceCustomIndexNV";
|
||||||
case EbvWorldRayOriginNV: return "WorldRayOriginNVX";
|
case EbvWorldRayOriginNV: return "WorldRayOriginNV";
|
||||||
case EbvWorldRayDirectionNV: return "WorldRayDirectionNVX";
|
case EbvWorldRayDirectionNV: return "WorldRayDirectionNV";
|
||||||
case EbvObjectRayOriginNV: return "ObjectRayOriginNVX";
|
case EbvObjectRayOriginNV: return "ObjectRayOriginNV";
|
||||||
case EbvObjectRayDirectionNV: return "ObjectRayDirectionNVX";
|
case EbvObjectRayDirectionNV: return "ObjectRayDirectionNV";
|
||||||
case EbvRayTminNV: return "ObjectRayTminNVX";
|
case EbvRayTminNV: return "ObjectRayTminNV";
|
||||||
case EbvRayTmaxNV: return "ObjectRayTmaxNVX";
|
case EbvRayTmaxNV: return "ObjectRayTmaxNV";
|
||||||
case EbvHitTNV: return "HitTNVX";
|
case EbvHitTNV: return "HitTNV";
|
||||||
case EbvHitKindNV: return "HitKindNVX";
|
case EbvHitKindNV: return "HitKindNV";
|
||||||
case EbvObjectToWorldNV: return "ObjectToWorldNVX";
|
case EbvIncomingRayFlagsNV: return "IncomingRayFlagsNV";
|
||||||
case EbvWorldToObjectNV: return "WorldToObjectNVX";
|
case EbvObjectToWorldNV: return "ObjectToWorldNV";
|
||||||
|
case EbvWorldToObjectNV: return "WorldToObjectNV";
|
||||||
|
|
||||||
case EbvBaryCoordNV: return "BaryCoordNV";
|
case EbvBaryCoordNV: return "BaryCoordNV";
|
||||||
case EbvBaryCoordNoPerspNV: return "BaryCoordNoPerspNV";
|
case EbvBaryCoordNoPerspNV: return "BaryCoordNoPerspNV";
|
||||||
case EbvTaskCountNV: return "TaskCountNV";
|
case EbvTaskCountNV: return "TaskCountNV";
|
||||||
|
@ -1684,7 +1684,7 @@ public:
|
|||||||
case EbtStruct: return "structure";
|
case EbtStruct: return "structure";
|
||||||
case EbtBlock: return "block";
|
case EbtBlock: return "block";
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case EbtAccStructNV: return "accelerationStructureNVX";
|
case EbtAccStructNV: return "accelerationStructureNV";
|
||||||
#endif
|
#endif
|
||||||
default: return "unknown type";
|
default: return "unknown type";
|
||||||
}
|
}
|
||||||
@ -1782,7 +1782,7 @@ public:
|
|||||||
appendInt(qualifier.layoutSecondaryViewportRelativeOffset);
|
appendInt(qualifier.layoutSecondaryViewportRelativeOffset);
|
||||||
}
|
}
|
||||||
if (qualifier.layoutShaderRecordNV)
|
if (qualifier.layoutShaderRecordNV)
|
||||||
appendStr(" shaderRecordNVX");
|
appendStr(" shaderRecordNV");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
appendStr(")");
|
appendStr(")");
|
||||||
|
@ -898,6 +898,7 @@ enum TOperator {
|
|||||||
EOpReportIntersectionNV,
|
EOpReportIntersectionNV,
|
||||||
EOpIgnoreIntersectionNV,
|
EOpIgnoreIntersectionNV,
|
||||||
EOpTerminateRayNV,
|
EOpTerminateRayNV,
|
||||||
|
EOpExecuteCallableNV,
|
||||||
EOpWritePackedPrimitiveIndices4x8NV,
|
EOpWritePackedPrimitiveIndices4x8NV,
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
|
@ -5059,23 +5059,29 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
|
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
|
|
||||||
// Builtins for GL_NV_raytracing
|
// Builtins for GL_NV_ray_tracing
|
||||||
if (profile != EEsProfile && version >= 460) {
|
if (profile != EEsProfile && version >= 460) {
|
||||||
stageBuiltins[EShLangRayGenNV].append(
|
stageBuiltins[EShLangRayGenNV].append(
|
||||||
"void traceNVX(accelerationStructureNVX,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
|
"void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
|
||||||
|
"void executeCallableNV(uint, int);"
|
||||||
"\n");
|
"\n");
|
||||||
stageBuiltins[EShLangIntersectNV].append(
|
stageBuiltins[EShLangIntersectNV].append(
|
||||||
"bool reportIntersectionNVX(float, uint);"
|
"bool reportIntersectionNV(float, uint);"
|
||||||
"\n");
|
"\n");
|
||||||
stageBuiltins[EShLangAnyHitNV].append(
|
stageBuiltins[EShLangAnyHitNV].append(
|
||||||
"void ignoreIntersectionNVX();"
|
"void ignoreIntersectionNV();"
|
||||||
"void terminateRayNVX();"
|
"void terminateRayNV();"
|
||||||
"\n");
|
"\n");
|
||||||
stageBuiltins[EShLangClosestHitNV].append(
|
stageBuiltins[EShLangClosestHitNV].append(
|
||||||
"void traceNVX(accelerationStructureNVX,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
|
"void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
|
||||||
|
"void executeCallableNV(uint, int);"
|
||||||
"\n");
|
"\n");
|
||||||
stageBuiltins[EShLangMissNV].append(
|
stageBuiltins[EShLangMissNV].append(
|
||||||
"void traceNVX(accelerationStructureNVX,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
|
"void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
|
||||||
|
"void executeCallableNV(uint, int);"
|
||||||
|
"\n");
|
||||||
|
stageBuiltins[EShLangCallableNV].append(
|
||||||
|
"void executeCallableNV(uint, int);"
|
||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6107,79 +6113,94 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
// GL_NV_raytracing
|
// GL_NV_ray_tracing
|
||||||
if (profile != EEsProfile && version >= 460) {
|
if (profile != EEsProfile && version >= 460) {
|
||||||
|
|
||||||
const char *constRayFlags =
|
const char *constRayFlags =
|
||||||
"const uint gl_RayFlagsNoneNVX = 0U;"
|
"const uint gl_RayFlagsNoneNV = 0U;"
|
||||||
"const uint gl_RayFlagsOpaqueNVX = 1U;"
|
"const uint gl_RayFlagsOpaqueNV = 1U;"
|
||||||
"const uint gl_RayFlagsNoOpaqueNVX = 2U;"
|
"const uint gl_RayFlagsNoOpaqueNV = 2U;"
|
||||||
"const uint gl_RayFlagsTerminateOnFirstHitNVX = 4U;"
|
"const uint gl_RayFlagsTerminateOnFirstHitNV = 4U;"
|
||||||
"const uint gl_RayFlagsSkipClosestHitShaderNVX = 8U;"
|
"const uint gl_RayFlagsSkipClosestHitShaderNV = 8U;"
|
||||||
"const uint gl_RayFlagsCullBackFacingTrianglesNVX = 16U;"
|
"const uint gl_RayFlagsCullBackFacingTrianglesNV = 16U;"
|
||||||
"const uint gl_RayFlagsCullFrontFacingTrianglesNVX = 32U;"
|
"const uint gl_RayFlagsCullFrontFacingTrianglesNV = 32U;"
|
||||||
"const uint gl_RayFlagsCullOpaqueNVX = 64U;"
|
"const uint gl_RayFlagsCullOpaqueNV = 64U;"
|
||||||
"const uint gl_RayFlagsCullNoOpaqueNVX = 128U;"
|
"const uint gl_RayFlagsCullNoOpaqueNV = 128U;"
|
||||||
"\n";
|
"\n";
|
||||||
const char *rayGenDecls =
|
const char *rayGenDecls =
|
||||||
"in uvec2 gl_LaunchIDNVX;"
|
"in uvec3 gl_LaunchIDNV;"
|
||||||
"in uvec2 gl_LaunchSizeNVX;"
|
"in uvec3 gl_LaunchSizeNV;"
|
||||||
"\n";
|
"\n";
|
||||||
const char *intersectDecls =
|
const char *intersectDecls =
|
||||||
"in uvec2 gl_LaunchIDNVX;"
|
"in uvec3 gl_LaunchIDNV;"
|
||||||
"in uvec2 gl_LaunchSizeNVX;"
|
"in uvec3 gl_LaunchSizeNV;"
|
||||||
"in int gl_PrimitiveID;"
|
"in int gl_PrimitiveID;"
|
||||||
"in int gl_InstanceID;"
|
"in int gl_InstanceID;"
|
||||||
"in int gl_InstanceCustomIndexNVX;"
|
"in int gl_InstanceCustomIndexNV;"
|
||||||
"in vec3 gl_WorldRayOriginNVX;"
|
"in vec3 gl_WorldRayOriginNV;"
|
||||||
"in vec3 gl_WorldRayDirectionNVX;"
|
"in vec3 gl_WorldRayDirectionNV;"
|
||||||
"in vec3 gl_ObjectRayOriginNVX;"
|
"in vec3 gl_ObjectRayOriginNV;"
|
||||||
"in vec3 gl_ObjectRayDirectionNVX;"
|
"in vec3 gl_ObjectRayDirectionNV;"
|
||||||
"in float gl_RayTminNVX;"
|
"in float gl_RayTminNV;"
|
||||||
"in float gl_RayTmaxNVX;"
|
"in float gl_RayTmaxNV;"
|
||||||
"in mat4x3 gl_ObjectToWorldNVX;"
|
"in mat4x3 gl_ObjectToWorldNV;"
|
||||||
"in mat4x3 gl_WorldToObjectNVX;"
|
"in mat4x3 gl_WorldToObjectNV;"
|
||||||
|
"in uint gl_IncomingRayFlagsNV;"
|
||||||
"\n";
|
"\n";
|
||||||
const char *hitDecls =
|
const char *hitDecls =
|
||||||
"in uvec2 gl_LaunchIDNVX;"
|
"in uvec3 gl_LaunchIDNV;"
|
||||||
"in uvec2 gl_LaunchSizeNVX;"
|
"in uvec3 gl_LaunchSizeNV;"
|
||||||
"in int gl_PrimitiveID;"
|
"in int gl_PrimitiveID;"
|
||||||
"in int gl_InstanceID;"
|
"in int gl_InstanceID;"
|
||||||
"in int gl_InstanceCustomIndexNVX;"
|
"in int gl_InstanceCustomIndexNV;"
|
||||||
"in vec3 gl_WorldRayOriginNVX;"
|
"in vec3 gl_WorldRayOriginNV;"
|
||||||
"in vec3 gl_WorldRayDirectionNVX;"
|
"in vec3 gl_WorldRayDirectionNV;"
|
||||||
"in vec3 gl_ObjectRayOriginNVX;"
|
"in vec3 gl_ObjectRayOriginNV;"
|
||||||
"in vec3 gl_ObjectRayDirectionNVX;"
|
"in vec3 gl_ObjectRayDirectionNV;"
|
||||||
"in float gl_RayTminNVX;"
|
"in float gl_RayTminNV;"
|
||||||
"in float gl_RayTmaxNVX;"
|
"in float gl_RayTmaxNV;"
|
||||||
"in float gl_HitTNVX;"
|
"in float gl_HitTNV;"
|
||||||
"in uint gl_HitKindNVX;"
|
"in uint gl_HitKindNV;"
|
||||||
"in mat4x3 gl_ObjectToWorldNVX;"
|
"in mat4x3 gl_ObjectToWorldNV;"
|
||||||
"in mat4x3 gl_WorldToObjectNVX;"
|
"in mat4x3 gl_WorldToObjectNV;"
|
||||||
|
"in uint gl_IncomingRayFlagsNV;"
|
||||||
"\n";
|
"\n";
|
||||||
const char *missDecls =
|
const char *missDecls =
|
||||||
"in uvec2 gl_LaunchIDNVX;"
|
"in uvec3 gl_LaunchIDNV;"
|
||||||
"in uvec2 gl_LaunchSizeNVX;"
|
"in uvec3 gl_LaunchSizeNV;"
|
||||||
"in vec3 gl_WorldRayOriginNVX;"
|
"in vec3 gl_WorldRayOriginNV;"
|
||||||
"in vec3 gl_WorldRayDirectionNVX;"
|
"in vec3 gl_WorldRayDirectionNV;"
|
||||||
"in vec3 gl_ObjectRayOriginNVX;"
|
"in vec3 gl_ObjectRayOriginNV;"
|
||||||
"in vec3 gl_ObjectRayDirectionNVX;"
|
"in vec3 gl_ObjectRayDirectionNV;"
|
||||||
"in float gl_RayTminNVX;"
|
"in float gl_RayTminNV;"
|
||||||
"in float gl_RayTmaxNVX;"
|
"in float gl_RayTmaxNV;"
|
||||||
|
"in uint gl_IncomingRayFlagsNV;"
|
||||||
|
"\n";
|
||||||
|
|
||||||
|
const char *callableDecls =
|
||||||
|
"in uvec3 gl_LaunchIDNV;"
|
||||||
|
"in uvec3 gl_LaunchSizeNV;"
|
||||||
|
"in uint gl_IncomingRayFlagsNV;"
|
||||||
"\n";
|
"\n";
|
||||||
|
|
||||||
stageBuiltins[EShLangRayGenNV].append(rayGenDecls);
|
stageBuiltins[EShLangRayGenNV].append(rayGenDecls);
|
||||||
stageBuiltins[EShLangRayGenNV].append(constRayFlags);
|
stageBuiltins[EShLangRayGenNV].append(constRayFlags);
|
||||||
|
|
||||||
stageBuiltins[EShLangIntersectNV].append(intersectDecls);
|
stageBuiltins[EShLangIntersectNV].append(intersectDecls);
|
||||||
|
stageBuiltins[EShLangIntersectNV].append(constRayFlags);
|
||||||
|
|
||||||
stageBuiltins[EShLangAnyHitNV].append(hitDecls);
|
stageBuiltins[EShLangAnyHitNV].append(hitDecls);
|
||||||
|
stageBuiltins[EShLangAnyHitNV].append(constRayFlags);
|
||||||
|
|
||||||
stageBuiltins[EShLangClosestHitNV].append(hitDecls);
|
stageBuiltins[EShLangClosestHitNV].append(hitDecls);
|
||||||
stageBuiltins[EShLangClosestHitNV].append(constRayFlags);
|
stageBuiltins[EShLangClosestHitNV].append(constRayFlags);
|
||||||
|
|
||||||
stageBuiltins[EShLangMissNV].append(missDecls);
|
stageBuiltins[EShLangMissNV].append(missDecls);
|
||||||
stageBuiltins[EShLangMissNV].append(constRayFlags);
|
stageBuiltins[EShLangMissNV].append(constRayFlags);
|
||||||
|
|
||||||
|
stageBuiltins[EShLangCallableNV].append(callableDecls);
|
||||||
|
stageBuiltins[EShLangCallableNV].append(constRayFlags);
|
||||||
|
|
||||||
}
|
}
|
||||||
if ((profile != EEsProfile && version >= 140)) {
|
if ((profile != EEsProfile && version >= 140)) {
|
||||||
const char *deviceIndex =
|
const char *deviceIndex =
|
||||||
@ -8600,39 +8621,43 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||||||
case EShLangAnyHitNV:
|
case EShLangAnyHitNV:
|
||||||
case EShLangClosestHitNV:
|
case EShLangClosestHitNV:
|
||||||
case EShLangMissNV:
|
case EShLangMissNV:
|
||||||
|
case EShLangCallableNV:
|
||||||
if (profile != EEsProfile && version >= 460) {
|
if (profile != EEsProfile && version >= 460) {
|
||||||
symbolTable.setVariableExtensions("gl_LaunchIDNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_LaunchIDNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_LaunchSizeNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_LaunchSizeNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_PrimitiveID", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_PrimitiveID", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_InstanceID", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_InstanceID", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_InstanceCustomIndexNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_InstanceCustomIndexNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_WorldRayOriginNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_WorldRayOriginNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_WorldRayDirectionNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_WorldRayDirectionNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_ObjectRayOriginNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_ObjectRayOriginNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_ObjectRayDirectionNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_ObjectRayDirectionNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_RayTminNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_RayTminNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_RayTmaxNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_RayTmaxNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_HitTNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_HitTNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_HitKindNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_HitKindNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_ObjectToWorldNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_ObjectToWorldNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_WorldToObjectNVX", 1, &E_GL_NVX_raytracing);
|
symbolTable.setVariableExtensions("gl_WorldToObjectNV", 1, &E_GL_NV_ray_tracing);
|
||||||
|
symbolTable.setVariableExtensions("gl_IncomingRayFlagsNV", 1, &E_GL_NV_ray_tracing);
|
||||||
|
|
||||||
symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group);
|
symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group);
|
||||||
|
|
||||||
BuiltInVariable("gl_LaunchIDNVX", EbvLaunchIdNV, symbolTable);
|
BuiltInVariable("gl_LaunchIDNV", EbvLaunchIdNV, symbolTable);
|
||||||
BuiltInVariable("gl_LaunchSizeNVX", EbvLaunchSizeNV, symbolTable);
|
BuiltInVariable("gl_LaunchSizeNV", EbvLaunchSizeNV, symbolTable);
|
||||||
BuiltInVariable("gl_PrimitiveID", EbvPrimitiveId, symbolTable);
|
BuiltInVariable("gl_PrimitiveID", EbvPrimitiveId, symbolTable);
|
||||||
BuiltInVariable("gl_InstanceID", EbvInstanceId, symbolTable);
|
BuiltInVariable("gl_InstanceID", EbvInstanceId, symbolTable);
|
||||||
BuiltInVariable("gl_InstanceCustomIndexNVX",EbvInstanceCustomIndexNV,symbolTable);
|
BuiltInVariable("gl_InstanceCustomIndexNV", EbvInstanceCustomIndexNV,symbolTable);
|
||||||
BuiltInVariable("gl_WorldRayOriginNVX", EbvWorldRayOriginNV, symbolTable);
|
BuiltInVariable("gl_WorldRayOriginNV", EbvWorldRayOriginNV, symbolTable);
|
||||||
BuiltInVariable("gl_WorldRayDirectionNVX", EbvWorldRayDirectionNV, symbolTable);
|
BuiltInVariable("gl_WorldRayDirectionNV", EbvWorldRayDirectionNV, symbolTable);
|
||||||
BuiltInVariable("gl_ObjectRayOriginNVX", EbvObjectRayOriginNV, symbolTable);
|
BuiltInVariable("gl_ObjectRayOriginNV", EbvObjectRayOriginNV, symbolTable);
|
||||||
BuiltInVariable("gl_ObjectRayDirectionNVX", EbvObjectRayDirectionNV, symbolTable);
|
BuiltInVariable("gl_ObjectRayDirectionNV", EbvObjectRayDirectionNV, symbolTable);
|
||||||
BuiltInVariable("gl_RayTminNVX", EbvRayTminNV, symbolTable);
|
BuiltInVariable("gl_RayTminNV", EbvRayTminNV, symbolTable);
|
||||||
BuiltInVariable("gl_RayTmaxNVX", EbvRayTmaxNV, symbolTable);
|
BuiltInVariable("gl_RayTmaxNV", EbvRayTmaxNV, symbolTable);
|
||||||
BuiltInVariable("gl_HitTNVX", EbvHitTNV, symbolTable);
|
BuiltInVariable("gl_HitTNV", EbvHitTNV, symbolTable);
|
||||||
BuiltInVariable("gl_HitKindNVX", EbvHitKindNV, symbolTable);
|
BuiltInVariable("gl_HitKindNV", EbvHitKindNV, symbolTable);
|
||||||
BuiltInVariable("gl_ObjectToWorldNVX", EbvObjectToWorldNV, symbolTable);
|
BuiltInVariable("gl_ObjectToWorldNV", EbvObjectToWorldNV, symbolTable);
|
||||||
BuiltInVariable("gl_WorldToObjectNVX", EbvWorldToObjectNV, symbolTable);
|
BuiltInVariable("gl_WorldToObjectNV", EbvWorldToObjectNV, symbolTable);
|
||||||
|
BuiltInVariable("gl_IncomingRayFlagsNV", EbvIncomingRayFlagsNV, symbolTable);
|
||||||
BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable);
|
BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -9373,17 +9398,24 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||||||
case EShLangRayGenNV:
|
case EShLangRayGenNV:
|
||||||
case EShLangClosestHitNV:
|
case EShLangClosestHitNV:
|
||||||
case EShLangMissNV:
|
case EShLangMissNV:
|
||||||
if (profile != EEsProfile && version >= 460)
|
if (profile != EEsProfile && version >= 460) {
|
||||||
symbolTable.relateToOperator("traceNVX", EOpTraceNV);
|
symbolTable.relateToOperator("traceNV", EOpTraceNV);
|
||||||
|
symbolTable.relateToOperator("executeCallableNV", EOpExecuteCallableNV);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case EShLangIntersectNV:
|
case EShLangIntersectNV:
|
||||||
if (profile != EEsProfile && version >= 460)
|
if (profile != EEsProfile && version >= 460)
|
||||||
symbolTable.relateToOperator("reportIntersectionNVX", EOpReportIntersectionNV);
|
symbolTable.relateToOperator("reportIntersectionNV", EOpReportIntersectionNV);
|
||||||
break;
|
break;
|
||||||
case EShLangAnyHitNV:
|
case EShLangAnyHitNV:
|
||||||
if (profile != EEsProfile && version >= 460) {
|
if (profile != EEsProfile && version >= 460) {
|
||||||
symbolTable.relateToOperator("ignoreIntersectionNVX", EOpIgnoreIntersectionNV);
|
symbolTable.relateToOperator("ignoreIntersectionNV", EOpIgnoreIntersectionNV);
|
||||||
symbolTable.relateToOperator("terminateRayNVX", EOpTerminateRayNV);
|
symbolTable.relateToOperator("terminateRayNV", EOpTerminateRayNV);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case EShLangCallableNV:
|
||||||
|
if (profile != EEsProfile && version >= 460) {
|
||||||
|
symbolTable.relateToOperator("executeCallableNV", EOpExecuteCallableNV);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EShLangMeshNV:
|
case EShLangMeshNV:
|
||||||
|
@ -156,7 +156,7 @@ bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op,
|
|||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case EvqHitAttrNV:
|
case EvqHitAttrNV:
|
||||||
if (language != EShLangIntersectNV)
|
if (language != EShLangIntersectNV)
|
||||||
message = "cannot modify hitAttributeNVX in this stage";
|
message = "cannot modify hitAttributeNV in this stage";
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op,
|
|||||||
break;
|
break;
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case EbtAccStructNV:
|
case EbtAccStructNV:
|
||||||
message = "can't modify accelerationStructureNVX";
|
message = "can't modify accelerationStructureNV";
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
|
@ -1872,6 +1872,17 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef NV_EXTENSIONS
|
||||||
|
case EOpTraceNV:
|
||||||
|
if (!(*argp)[10]->getAsConstantUnion())
|
||||||
|
error(loc, "argument must be compile-time constant", "payload number", "");
|
||||||
|
break;
|
||||||
|
case EOpExecuteCallableNV:
|
||||||
|
if (!(*argp)[1]->getAsConstantUnion())
|
||||||
|
error(loc, "argument must be compile-time constant", "callable data number", "");
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
case EOpTextureQuerySamples:
|
case EOpTextureQuerySamples:
|
||||||
case EOpImageQuerySamples:
|
case EOpImageQuerySamples:
|
||||||
// GL_ARB_shader_texture_image_samples
|
// GL_ARB_shader_texture_image_samples
|
||||||
@ -2990,9 +3001,9 @@ void TParseContext::accStructNVCheck(const TSourceLoc& loc, const TType& type, c
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtAccStructNV))
|
if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtAccStructNV))
|
||||||
error(loc, "non-uniform struct contains an accelerationStructureNVX:", type.getBasicTypeString().c_str(), identifier.c_str());
|
error(loc, "non-uniform struct contains an accelerationStructureNV:", type.getBasicTypeString().c_str(), identifier.c_str());
|
||||||
else if (type.getBasicType() == EbtAccStructNV && type.getQualifier().storage != EvqUniform)
|
else if (type.getBasicType() == EbtAccStructNV && type.getQualifier().storage != EvqUniform)
|
||||||
error(loc, "accelerationStructureNVX can only be used in uniform variables or function parameters:",
|
error(loc, "accelerationStructureNV can only be used in uniform variables or function parameters:",
|
||||||
type.getBasicTypeString().c_str(), identifier.c_str());
|
type.getBasicTypeString().c_str(), identifier.c_str());
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -4778,7 +4789,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi
|
|||||||
if (language == EShLangRayGenNV || language == EShLangIntersectNV ||
|
if (language == EShLangRayGenNV || language == EShLangIntersectNV ||
|
||||||
language == EShLangAnyHitNV || language == EShLangClosestHitNV ||
|
language == EShLangAnyHitNV || language == EShLangClosestHitNV ||
|
||||||
language == EShLangMissNV || language == EShLangCallableNV) {
|
language == EShLangMissNV || language == EShLangCallableNV) {
|
||||||
if (id == "shaderrecordnvx") {
|
if (id == "shaderrecordnv") {
|
||||||
publicType.qualifier.layoutShaderRecordNV = true;
|
publicType.qualifier.layoutShaderRecordNV = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -5236,7 +5247,7 @@ void TParseContext::layoutObjectCheck(const TSourceLoc& loc, const TSymbol& symb
|
|||||||
error(loc, "can only specify on a uniform block", "push_constant", "");
|
error(loc, "can only specify on a uniform block", "push_constant", "");
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
if (qualifier.layoutShaderRecordNV)
|
if (qualifier.layoutShaderRecordNV)
|
||||||
error(loc, "can only specify on a buffer block", "shaderRecordNVX", "");
|
error(loc, "can only specify on a buffer block", "shaderRecordNV", "");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -5315,6 +5326,8 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type)
|
|||||||
case EvqPayloadNV:
|
case EvqPayloadNV:
|
||||||
case EvqPayloadInNV:
|
case EvqPayloadInNV:
|
||||||
case EvqHitAttrNV:
|
case EvqHitAttrNV:
|
||||||
|
case EvqCallableDataNV:
|
||||||
|
case EvqCallableDataInNV:
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
@ -5457,7 +5470,7 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type)
|
|||||||
|
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
if (qualifier.layoutShaderRecordNV && type.getBasicType() != EbtBlock)
|
if (qualifier.layoutShaderRecordNV && type.getBasicType() != EbtBlock)
|
||||||
error(loc, "can only be used with a block", "shaderRecordNVX", "");
|
error(loc, "can only be used with a block", "shaderRecordNV", "");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// input attachment
|
// input attachment
|
||||||
@ -5598,11 +5611,15 @@ void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier
|
|||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
if (qualifier.layoutShaderRecordNV) {
|
if (qualifier.layoutShaderRecordNV) {
|
||||||
if (qualifier.storage != EvqBuffer)
|
if (qualifier.storage != EvqBuffer)
|
||||||
error(loc, "can only be used with a buffer", "shaderRecordNVX", "");
|
error(loc, "can only be used with a buffer", "shaderRecordNV", "");
|
||||||
if (qualifier.hasBinding())
|
if (qualifier.hasBinding())
|
||||||
error(loc, "cannot be used with shaderRecordNVX", "binding", "");
|
error(loc, "cannot be used with shaderRecordNV", "binding", "");
|
||||||
if (qualifier.hasSet())
|
if (qualifier.hasSet())
|
||||||
error(loc, "cannot be used with shaderRecordNVX", "set", "");
|
error(loc, "cannot be used with shaderRecordNV", "set", "");
|
||||||
|
|
||||||
|
}
|
||||||
|
if (qualifier.storage == EvqHitAttrNV && qualifier.hasLayout()) {
|
||||||
|
error(loc, "cannot apply layout qualifiers to hitAttributeNV variable", "hitAttributeNV", "");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -6963,18 +6980,27 @@ void TParseContext::blockStageIoCheck(const TSourceLoc& loc, const TQualifier& q
|
|||||||
break;
|
break;
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case EvqPayloadNV:
|
case EvqPayloadNV:
|
||||||
profileRequires(loc, ~EEsProfile, 450, E_GL_NVX_raytracing, "rayPayloadNVX block");
|
profileRequires(loc, ~EEsProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV block");
|
||||||
requireStage(loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangAnyHitNVMask | EShLangClosestHitNVMask | EShLangMissNVMask),
|
requireStage(loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangAnyHitNVMask | EShLangClosestHitNVMask | EShLangMissNVMask),
|
||||||
"rayPayloadNVX block");
|
"rayPayloadNV block");
|
||||||
break;
|
break;
|
||||||
case EvqPayloadInNV:
|
case EvqPayloadInNV:
|
||||||
profileRequires(loc, ~EEsProfile, 450, E_GL_NVX_raytracing, "rayPayloadInNVX block");
|
profileRequires(loc, ~EEsProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV block");
|
||||||
requireStage(loc, (EShLanguageMask)(EShLangAnyHitNVMask | EShLangClosestHitNVMask | EShLangMissNVMask),
|
requireStage(loc, (EShLanguageMask)(EShLangAnyHitNVMask | EShLangClosestHitNVMask | EShLangMissNVMask),
|
||||||
"rayPayloadInNVX block");
|
"rayPayloadInNV block");
|
||||||
break;
|
break;
|
||||||
case EvqHitAttrNV:
|
case EvqHitAttrNV:
|
||||||
profileRequires(loc, ~EEsProfile, 450, E_GL_NVX_raytracing, "hitAttributeNVX block");
|
profileRequires(loc, ~EEsProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV block");
|
||||||
requireStage(loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangAnyHitNVMask | EShLangClosestHitNVMask), "hitAttributeNVX block");
|
requireStage(loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangAnyHitNVMask | EShLangClosestHitNVMask), "hitAttributeNV block");
|
||||||
|
break;
|
||||||
|
case EvqCallableDataNV:
|
||||||
|
profileRequires(loc, ~EEsProfile, 460, E_GL_NV_ray_tracing, "callableDataNV block");
|
||||||
|
requireStage(loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask | EShLangMissNVMask | EShLangCallableNVMask),
|
||||||
|
"callableDataNV block");
|
||||||
|
break;
|
||||||
|
case EvqCallableDataInNV:
|
||||||
|
profileRequires(loc, ~EEsProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV block");
|
||||||
|
requireStage(loc, (EShLanguageMask)(EShLangCallableNVMask), "callableDataInNV block");
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
@ -7503,7 +7529,7 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con
|
|||||||
error(loc, "cannot declare a default, can only be used on a scalar", "constant_id", "");
|
error(loc, "cannot declare a default, can only be used on a scalar", "constant_id", "");
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
if (qualifier.layoutShaderRecordNV)
|
if (qualifier.layoutShaderRecordNV)
|
||||||
error(loc, "cannot declare a default, can only be used on a block", "shaderRecordNVX", "");
|
error(loc, "cannot declare a default, can only be used on a block", "shaderRecordNV", "");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -701,10 +701,12 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["superp"] = SUPERP;
|
(*KeywordMap)["superp"] = SUPERP;
|
||||||
|
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
(*KeywordMap)["rayPayloadNVX"] = PAYLOADNV;
|
(*KeywordMap)["rayPayloadNV"] = PAYLOADNV;
|
||||||
(*KeywordMap)["rayPayloadInNVX"] = PAYLOADINNV;
|
(*KeywordMap)["rayPayloadInNV"] = PAYLOADINNV;
|
||||||
(*KeywordMap)["hitAttributeNVX"] = HITATTRNV;
|
(*KeywordMap)["hitAttributeNV"] = HITATTRNV;
|
||||||
(*KeywordMap)["accelerationStructureNVX"] = ACCSTRUCTNV;
|
(*KeywordMap)["callableDataNV"] = CALLDATANV;
|
||||||
|
(*KeywordMap)["callableDataInNV"] = CALLDATAINNV;
|
||||||
|
(*KeywordMap)["accelerationStructureNV"] = ACCSTRUCTNV;
|
||||||
(*KeywordMap)["perprimitiveNV"] = PERPRIMITIVENV;
|
(*KeywordMap)["perprimitiveNV"] = PERPRIMITIVENV;
|
||||||
(*KeywordMap)["perviewNV"] = PERVIEWNV;
|
(*KeywordMap)["perviewNV"] = PERVIEWNV;
|
||||||
(*KeywordMap)["taskNV"] = PERTASKNV;
|
(*KeywordMap)["taskNV"] = PERTASKNV;
|
||||||
@ -952,10 +954,12 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
case PAYLOADNV:
|
case PAYLOADNV:
|
||||||
case PAYLOADINNV:
|
case PAYLOADINNV:
|
||||||
case HITATTRNV:
|
case HITATTRNV:
|
||||||
|
case CALLDATANV:
|
||||||
|
case CALLDATAINNV:
|
||||||
case ACCSTRUCTNV:
|
case ACCSTRUCTNV:
|
||||||
if (parseContext.symbolTable.atBuiltInLevel() ||
|
if (parseContext.symbolTable.atBuiltInLevel() ||
|
||||||
(parseContext.profile != EEsProfile && parseContext.version >= 460
|
(parseContext.profile != EEsProfile && parseContext.version >= 460
|
||||||
&& parseContext.extensionTurnedOn(E_GL_NVX_raytracing)))
|
&& parseContext.extensionTurnedOn(E_GL_NV_ray_tracing)))
|
||||||
return keyword;
|
return keyword;
|
||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
#endif
|
#endif
|
||||||
|
@ -360,6 +360,8 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS
|
|||||||
infoSink, commonTable, symbolTables);
|
infoSink, commonTable, symbolTables);
|
||||||
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangMissNV, source,
|
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangMissNV, source,
|
||||||
infoSink, commonTable, symbolTables);
|
infoSink, commonTable, symbolTables);
|
||||||
|
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCallableNV, source,
|
||||||
|
infoSink, commonTable, symbolTables);
|
||||||
}
|
}
|
||||||
|
|
||||||
// check for mesh
|
// check for mesh
|
||||||
|
@ -236,7 +236,7 @@ void TParseVersions::initializeExtensionBehavior()
|
|||||||
extensionBehavior[E_GL_NV_shader_noperspective_interpolation] = EBhDisable;
|
extensionBehavior[E_GL_NV_shader_noperspective_interpolation] = EBhDisable;
|
||||||
extensionBehavior[E_GL_NV_shader_subgroup_partitioned] = EBhDisable;
|
extensionBehavior[E_GL_NV_shader_subgroup_partitioned] = EBhDisable;
|
||||||
extensionBehavior[E_GL_NV_shading_rate_image] = EBhDisable;
|
extensionBehavior[E_GL_NV_shading_rate_image] = EBhDisable;
|
||||||
extensionBehavior[E_GL_NVX_raytracing] = EBhDisable;
|
extensionBehavior[E_GL_NV_ray_tracing] = EBhDisable;
|
||||||
extensionBehavior[E_GL_NV_fragment_shader_barycentric] = EBhDisable;
|
extensionBehavior[E_GL_NV_fragment_shader_barycentric] = EBhDisable;
|
||||||
extensionBehavior[E_GL_NV_compute_shader_derivatives] = EBhDisable;
|
extensionBehavior[E_GL_NV_compute_shader_derivatives] = EBhDisable;
|
||||||
extensionBehavior[E_GL_NV_shader_texture_footprint] = EBhDisable;
|
extensionBehavior[E_GL_NV_shader_texture_footprint] = EBhDisable;
|
||||||
@ -412,7 +412,7 @@ void TParseVersions::getPreamble(std::string& preamble)
|
|||||||
"#define GL_NV_conservative_raster_underestimation 1\n"
|
"#define GL_NV_conservative_raster_underestimation 1\n"
|
||||||
"#define GL_NV_shader_subgroup_partitioned 1\n"
|
"#define GL_NV_shader_subgroup_partitioned 1\n"
|
||||||
"#define GL_NV_shading_rate_image 1\n"
|
"#define GL_NV_shading_rate_image 1\n"
|
||||||
"#define GL_NVX_raytracing 1\n"
|
"#define GL_NV_ray_tracing 1\n"
|
||||||
"#define GL_NV_fragment_shader_barycentric 1\n"
|
"#define GL_NV_fragment_shader_barycentric 1\n"
|
||||||
"#define GL_NV_compute_shader_derivatives 1\n"
|
"#define GL_NV_compute_shader_derivatives 1\n"
|
||||||
"#define GL_NV_shader_texture_footprint 1\n"
|
"#define GL_NV_shader_texture_footprint 1\n"
|
||||||
|
@ -208,7 +208,7 @@ const char* const E_GL_NV_conservative_raster_underestimation = "GL_NV_conserv
|
|||||||
const char* const E_GL_NV_shader_noperspective_interpolation = "GL_NV_shader_noperspective_interpolation";
|
const char* const E_GL_NV_shader_noperspective_interpolation = "GL_NV_shader_noperspective_interpolation";
|
||||||
const char* const E_GL_NV_shader_subgroup_partitioned = "GL_NV_shader_subgroup_partitioned";
|
const char* const E_GL_NV_shader_subgroup_partitioned = "GL_NV_shader_subgroup_partitioned";
|
||||||
const char* const E_GL_NV_shading_rate_image = "GL_NV_shading_rate_image";
|
const char* const E_GL_NV_shading_rate_image = "GL_NV_shading_rate_image";
|
||||||
const char* const E_GL_NVX_raytracing = "GL_NVX_raytracing";
|
const char* const E_GL_NV_ray_tracing = "GL_NV_ray_tracing";
|
||||||
const char* const E_GL_NV_fragment_shader_barycentric = "GL_NV_fragment_shader_barycentric";
|
const char* const E_GL_NV_fragment_shader_barycentric = "GL_NV_fragment_shader_barycentric";
|
||||||
const char* const E_GL_NV_compute_shader_derivatives = "GL_NV_compute_shader_derivatives";
|
const char* const E_GL_NV_compute_shader_derivatives = "GL_NV_compute_shader_derivatives";
|
||||||
const char* const E_GL_NV_shader_texture_footprint = "GL_NV_shader_texture_footprint";
|
const char* const E_GL_NV_shader_texture_footprint = "GL_NV_shader_texture_footprint";
|
||||||
|
@ -140,7 +140,7 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
%token <lex> U8VEC2 U8VEC3 U8VEC4
|
%token <lex> U8VEC2 U8VEC3 U8VEC4
|
||||||
%token <lex> VEC2 VEC3 VEC4
|
%token <lex> VEC2 VEC3 VEC4
|
||||||
%token <lex> MAT2 MAT3 MAT4 CENTROID IN OUT INOUT
|
%token <lex> MAT2 MAT3 MAT4 CENTROID IN OUT INOUT
|
||||||
%token <lex> UNIFORM PATCH SAMPLE BUFFER SHARED NONUNIFORM PAYLOADNV PAYLOADINNV HITATTRNV
|
%token <lex> UNIFORM PATCH SAMPLE BUFFER SHARED NONUNIFORM PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
|
||||||
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT SUBGROUPCOHERENT NONPRIVATE
|
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT SUBGROUPCOHERENT NONPRIVATE
|
||||||
%token <lex> DVEC2 DVEC3 DVEC4 DMAT2 DMAT3 DMAT4
|
%token <lex> DVEC2 DVEC3 DVEC4 DMAT2 DMAT3 DMAT4
|
||||||
%token <lex> F16VEC2 F16VEC3 F16VEC4 F16MAT2 F16MAT3 F16MAT4
|
%token <lex> F16VEC2 F16VEC3 F16VEC4 F16MAT2 F16MAT3 F16MAT4
|
||||||
@ -1348,32 +1348,51 @@ storage_qualifier
|
|||||||
}
|
}
|
||||||
| HITATTRNV {
|
| HITATTRNV {
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
parseContext.globalCheck($1.loc, "hitAttributeNVX");
|
parseContext.globalCheck($1.loc, "hitAttributeNV");
|
||||||
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangClosestHitNVMask
|
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangClosestHitNVMask
|
||||||
| EShLangAnyHitNVMask), "hitAttributeNVX");
|
| EShLangAnyHitNVMask), "hitAttributeNV");
|
||||||
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_NVX_raytracing, "hitAttributeNVX");
|
parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.storage = EvqHitAttrNV;
|
$$.qualifier.storage = EvqHitAttrNV;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
| PAYLOADNV {
|
| PAYLOADNV {
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
parseContext.globalCheck($1.loc, "rayPayloadNVX");
|
parseContext.globalCheck($1.loc, "rayPayloadNV");
|
||||||
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask |
|
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask |
|
||||||
EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadNVX");
|
EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadNV");
|
||||||
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_NVX_raytracing, "rayPayloadNVX");
|
parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.storage = EvqPayloadNV;
|
$$.qualifier.storage = EvqPayloadNV;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
| PAYLOADINNV {
|
| PAYLOADINNV {
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
parseContext.globalCheck($1.loc, "rayPayloadInNVX");
|
parseContext.globalCheck($1.loc, "rayPayloadInNV");
|
||||||
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangClosestHitNVMask |
|
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangClosestHitNVMask |
|
||||||
EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadInNVX");
|
EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadInNV");
|
||||||
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_NVX_raytracing, "rayPayloadInNVX");
|
parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.storage = EvqPayloadInNV;
|
$$.qualifier.storage = EvqPayloadInNV;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
| CALLDATANV {
|
||||||
|
#ifdef NV_EXTENSIONS
|
||||||
|
parseContext.globalCheck($1.loc, "callableDataNV");
|
||||||
|
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenNVMask |
|
||||||
|
EShLangClosestHitNVMask | EShLangMissNVMask | EShLangCallableNVMask), "callableDataNV");
|
||||||
|
parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
|
||||||
|
$$.init($1.loc);
|
||||||
|
$$.qualifier.storage = EvqCallableDataNV;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
| CALLDATAINNV {
|
||||||
|
#ifdef NV_EXTENSIONS
|
||||||
|
parseContext.globalCheck($1.loc, "callableDataInNV");
|
||||||
|
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangCallableNVMask), "callableDataInNV");
|
||||||
|
parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
|
||||||
|
$$.init($1.loc);
|
||||||
|
$$.qualifier.storage = EvqCallableDataInNV;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
| SHARED {
|
| SHARED {
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -128,324 +128,326 @@ extern int yydebug;
|
|||||||
PAYLOADNV = 338,
|
PAYLOADNV = 338,
|
||||||
PAYLOADINNV = 339,
|
PAYLOADINNV = 339,
|
||||||
HITATTRNV = 340,
|
HITATTRNV = 340,
|
||||||
COHERENT = 341,
|
CALLDATANV = 341,
|
||||||
VOLATILE = 342,
|
CALLDATAINNV = 342,
|
||||||
RESTRICT = 343,
|
COHERENT = 343,
|
||||||
READONLY = 344,
|
VOLATILE = 344,
|
||||||
WRITEONLY = 345,
|
RESTRICT = 345,
|
||||||
DEVICECOHERENT = 346,
|
READONLY = 346,
|
||||||
QUEUEFAMILYCOHERENT = 347,
|
WRITEONLY = 347,
|
||||||
WORKGROUPCOHERENT = 348,
|
DEVICECOHERENT = 348,
|
||||||
SUBGROUPCOHERENT = 349,
|
QUEUEFAMILYCOHERENT = 349,
|
||||||
NONPRIVATE = 350,
|
WORKGROUPCOHERENT = 350,
|
||||||
DVEC2 = 351,
|
SUBGROUPCOHERENT = 351,
|
||||||
DVEC3 = 352,
|
NONPRIVATE = 352,
|
||||||
DVEC4 = 353,
|
DVEC2 = 353,
|
||||||
DMAT2 = 354,
|
DVEC3 = 354,
|
||||||
DMAT3 = 355,
|
DVEC4 = 355,
|
||||||
DMAT4 = 356,
|
DMAT2 = 356,
|
||||||
F16VEC2 = 357,
|
DMAT3 = 357,
|
||||||
F16VEC3 = 358,
|
DMAT4 = 358,
|
||||||
F16VEC4 = 359,
|
F16VEC2 = 359,
|
||||||
F16MAT2 = 360,
|
F16VEC3 = 360,
|
||||||
F16MAT3 = 361,
|
F16VEC4 = 361,
|
||||||
F16MAT4 = 362,
|
F16MAT2 = 362,
|
||||||
F32VEC2 = 363,
|
F16MAT3 = 363,
|
||||||
F32VEC3 = 364,
|
F16MAT4 = 364,
|
||||||
F32VEC4 = 365,
|
F32VEC2 = 365,
|
||||||
F32MAT2 = 366,
|
F32VEC3 = 366,
|
||||||
F32MAT3 = 367,
|
F32VEC4 = 367,
|
||||||
F32MAT4 = 368,
|
F32MAT2 = 368,
|
||||||
F64VEC2 = 369,
|
F32MAT3 = 369,
|
||||||
F64VEC3 = 370,
|
F32MAT4 = 370,
|
||||||
F64VEC4 = 371,
|
F64VEC2 = 371,
|
||||||
F64MAT2 = 372,
|
F64VEC3 = 372,
|
||||||
F64MAT3 = 373,
|
F64VEC4 = 373,
|
||||||
F64MAT4 = 374,
|
F64MAT2 = 374,
|
||||||
NOPERSPECTIVE = 375,
|
F64MAT3 = 375,
|
||||||
FLAT = 376,
|
F64MAT4 = 376,
|
||||||
SMOOTH = 377,
|
NOPERSPECTIVE = 377,
|
||||||
LAYOUT = 378,
|
FLAT = 378,
|
||||||
EXPLICITINTERPAMD = 379,
|
SMOOTH = 379,
|
||||||
PERVERTEXNV = 380,
|
LAYOUT = 380,
|
||||||
PERPRIMITIVENV = 381,
|
EXPLICITINTERPAMD = 381,
|
||||||
PERVIEWNV = 382,
|
PERVERTEXNV = 382,
|
||||||
PERTASKNV = 383,
|
PERPRIMITIVENV = 383,
|
||||||
MAT2X2 = 384,
|
PERVIEWNV = 384,
|
||||||
MAT2X3 = 385,
|
PERTASKNV = 385,
|
||||||
MAT2X4 = 386,
|
MAT2X2 = 386,
|
||||||
MAT3X2 = 387,
|
MAT2X3 = 387,
|
||||||
MAT3X3 = 388,
|
MAT2X4 = 388,
|
||||||
MAT3X4 = 389,
|
MAT3X2 = 389,
|
||||||
MAT4X2 = 390,
|
MAT3X3 = 390,
|
||||||
MAT4X3 = 391,
|
MAT3X4 = 391,
|
||||||
MAT4X4 = 392,
|
MAT4X2 = 392,
|
||||||
DMAT2X2 = 393,
|
MAT4X3 = 393,
|
||||||
DMAT2X3 = 394,
|
MAT4X4 = 394,
|
||||||
DMAT2X4 = 395,
|
DMAT2X2 = 395,
|
||||||
DMAT3X2 = 396,
|
DMAT2X3 = 396,
|
||||||
DMAT3X3 = 397,
|
DMAT2X4 = 397,
|
||||||
DMAT3X4 = 398,
|
DMAT3X2 = 398,
|
||||||
DMAT4X2 = 399,
|
DMAT3X3 = 399,
|
||||||
DMAT4X3 = 400,
|
DMAT3X4 = 400,
|
||||||
DMAT4X4 = 401,
|
DMAT4X2 = 401,
|
||||||
F16MAT2X2 = 402,
|
DMAT4X3 = 402,
|
||||||
F16MAT2X3 = 403,
|
DMAT4X4 = 403,
|
||||||
F16MAT2X4 = 404,
|
F16MAT2X2 = 404,
|
||||||
F16MAT3X2 = 405,
|
F16MAT2X3 = 405,
|
||||||
F16MAT3X3 = 406,
|
F16MAT2X4 = 406,
|
||||||
F16MAT3X4 = 407,
|
F16MAT3X2 = 407,
|
||||||
F16MAT4X2 = 408,
|
F16MAT3X3 = 408,
|
||||||
F16MAT4X3 = 409,
|
F16MAT3X4 = 409,
|
||||||
F16MAT4X4 = 410,
|
F16MAT4X2 = 410,
|
||||||
F32MAT2X2 = 411,
|
F16MAT4X3 = 411,
|
||||||
F32MAT2X3 = 412,
|
F16MAT4X4 = 412,
|
||||||
F32MAT2X4 = 413,
|
F32MAT2X2 = 413,
|
||||||
F32MAT3X2 = 414,
|
F32MAT2X3 = 414,
|
||||||
F32MAT3X3 = 415,
|
F32MAT2X4 = 415,
|
||||||
F32MAT3X4 = 416,
|
F32MAT3X2 = 416,
|
||||||
F32MAT4X2 = 417,
|
F32MAT3X3 = 417,
|
||||||
F32MAT4X3 = 418,
|
F32MAT3X4 = 418,
|
||||||
F32MAT4X4 = 419,
|
F32MAT4X2 = 419,
|
||||||
F64MAT2X2 = 420,
|
F32MAT4X3 = 420,
|
||||||
F64MAT2X3 = 421,
|
F32MAT4X4 = 421,
|
||||||
F64MAT2X4 = 422,
|
F64MAT2X2 = 422,
|
||||||
F64MAT3X2 = 423,
|
F64MAT2X3 = 423,
|
||||||
F64MAT3X3 = 424,
|
F64MAT2X4 = 424,
|
||||||
F64MAT3X4 = 425,
|
F64MAT3X2 = 425,
|
||||||
F64MAT4X2 = 426,
|
F64MAT3X3 = 426,
|
||||||
F64MAT4X3 = 427,
|
F64MAT3X4 = 427,
|
||||||
F64MAT4X4 = 428,
|
F64MAT4X2 = 428,
|
||||||
ATOMIC_UINT = 429,
|
F64MAT4X3 = 429,
|
||||||
ACCSTRUCTNV = 430,
|
F64MAT4X4 = 430,
|
||||||
SAMPLER1D = 431,
|
ATOMIC_UINT = 431,
|
||||||
SAMPLER2D = 432,
|
ACCSTRUCTNV = 432,
|
||||||
SAMPLER3D = 433,
|
SAMPLER1D = 433,
|
||||||
SAMPLERCUBE = 434,
|
SAMPLER2D = 434,
|
||||||
SAMPLER1DSHADOW = 435,
|
SAMPLER3D = 435,
|
||||||
SAMPLER2DSHADOW = 436,
|
SAMPLERCUBE = 436,
|
||||||
SAMPLERCUBESHADOW = 437,
|
SAMPLER1DSHADOW = 437,
|
||||||
SAMPLER1DARRAY = 438,
|
SAMPLER2DSHADOW = 438,
|
||||||
SAMPLER2DARRAY = 439,
|
SAMPLERCUBESHADOW = 439,
|
||||||
SAMPLER1DARRAYSHADOW = 440,
|
SAMPLER1DARRAY = 440,
|
||||||
SAMPLER2DARRAYSHADOW = 441,
|
SAMPLER2DARRAY = 441,
|
||||||
ISAMPLER1D = 442,
|
SAMPLER1DARRAYSHADOW = 442,
|
||||||
ISAMPLER2D = 443,
|
SAMPLER2DARRAYSHADOW = 443,
|
||||||
ISAMPLER3D = 444,
|
ISAMPLER1D = 444,
|
||||||
ISAMPLERCUBE = 445,
|
ISAMPLER2D = 445,
|
||||||
ISAMPLER1DARRAY = 446,
|
ISAMPLER3D = 446,
|
||||||
ISAMPLER2DARRAY = 447,
|
ISAMPLERCUBE = 447,
|
||||||
USAMPLER1D = 448,
|
ISAMPLER1DARRAY = 448,
|
||||||
USAMPLER2D = 449,
|
ISAMPLER2DARRAY = 449,
|
||||||
USAMPLER3D = 450,
|
USAMPLER1D = 450,
|
||||||
USAMPLERCUBE = 451,
|
USAMPLER2D = 451,
|
||||||
USAMPLER1DARRAY = 452,
|
USAMPLER3D = 452,
|
||||||
USAMPLER2DARRAY = 453,
|
USAMPLERCUBE = 453,
|
||||||
SAMPLER2DRECT = 454,
|
USAMPLER1DARRAY = 454,
|
||||||
SAMPLER2DRECTSHADOW = 455,
|
USAMPLER2DARRAY = 455,
|
||||||
ISAMPLER2DRECT = 456,
|
SAMPLER2DRECT = 456,
|
||||||
USAMPLER2DRECT = 457,
|
SAMPLER2DRECTSHADOW = 457,
|
||||||
SAMPLERBUFFER = 458,
|
ISAMPLER2DRECT = 458,
|
||||||
ISAMPLERBUFFER = 459,
|
USAMPLER2DRECT = 459,
|
||||||
USAMPLERBUFFER = 460,
|
SAMPLERBUFFER = 460,
|
||||||
SAMPLERCUBEARRAY = 461,
|
ISAMPLERBUFFER = 461,
|
||||||
SAMPLERCUBEARRAYSHADOW = 462,
|
USAMPLERBUFFER = 462,
|
||||||
ISAMPLERCUBEARRAY = 463,
|
SAMPLERCUBEARRAY = 463,
|
||||||
USAMPLERCUBEARRAY = 464,
|
SAMPLERCUBEARRAYSHADOW = 464,
|
||||||
SAMPLER2DMS = 465,
|
ISAMPLERCUBEARRAY = 465,
|
||||||
ISAMPLER2DMS = 466,
|
USAMPLERCUBEARRAY = 466,
|
||||||
USAMPLER2DMS = 467,
|
SAMPLER2DMS = 467,
|
||||||
SAMPLER2DMSARRAY = 468,
|
ISAMPLER2DMS = 468,
|
||||||
ISAMPLER2DMSARRAY = 469,
|
USAMPLER2DMS = 469,
|
||||||
USAMPLER2DMSARRAY = 470,
|
SAMPLER2DMSARRAY = 470,
|
||||||
SAMPLEREXTERNALOES = 471,
|
ISAMPLER2DMSARRAY = 471,
|
||||||
F16SAMPLER1D = 472,
|
USAMPLER2DMSARRAY = 472,
|
||||||
F16SAMPLER2D = 473,
|
SAMPLEREXTERNALOES = 473,
|
||||||
F16SAMPLER3D = 474,
|
F16SAMPLER1D = 474,
|
||||||
F16SAMPLER2DRECT = 475,
|
F16SAMPLER2D = 475,
|
||||||
F16SAMPLERCUBE = 476,
|
F16SAMPLER3D = 476,
|
||||||
F16SAMPLER1DARRAY = 477,
|
F16SAMPLER2DRECT = 477,
|
||||||
F16SAMPLER2DARRAY = 478,
|
F16SAMPLERCUBE = 478,
|
||||||
F16SAMPLERCUBEARRAY = 479,
|
F16SAMPLER1DARRAY = 479,
|
||||||
F16SAMPLERBUFFER = 480,
|
F16SAMPLER2DARRAY = 480,
|
||||||
F16SAMPLER2DMS = 481,
|
F16SAMPLERCUBEARRAY = 481,
|
||||||
F16SAMPLER2DMSARRAY = 482,
|
F16SAMPLERBUFFER = 482,
|
||||||
F16SAMPLER1DSHADOW = 483,
|
F16SAMPLER2DMS = 483,
|
||||||
F16SAMPLER2DSHADOW = 484,
|
F16SAMPLER2DMSARRAY = 484,
|
||||||
F16SAMPLER1DARRAYSHADOW = 485,
|
F16SAMPLER1DSHADOW = 485,
|
||||||
F16SAMPLER2DARRAYSHADOW = 486,
|
F16SAMPLER2DSHADOW = 486,
|
||||||
F16SAMPLER2DRECTSHADOW = 487,
|
F16SAMPLER1DARRAYSHADOW = 487,
|
||||||
F16SAMPLERCUBESHADOW = 488,
|
F16SAMPLER2DARRAYSHADOW = 488,
|
||||||
F16SAMPLERCUBEARRAYSHADOW = 489,
|
F16SAMPLER2DRECTSHADOW = 489,
|
||||||
SAMPLER = 490,
|
F16SAMPLERCUBESHADOW = 490,
|
||||||
SAMPLERSHADOW = 491,
|
F16SAMPLERCUBEARRAYSHADOW = 491,
|
||||||
TEXTURE1D = 492,
|
SAMPLER = 492,
|
||||||
TEXTURE2D = 493,
|
SAMPLERSHADOW = 493,
|
||||||
TEXTURE3D = 494,
|
TEXTURE1D = 494,
|
||||||
TEXTURECUBE = 495,
|
TEXTURE2D = 495,
|
||||||
TEXTURE1DARRAY = 496,
|
TEXTURE3D = 496,
|
||||||
TEXTURE2DARRAY = 497,
|
TEXTURECUBE = 497,
|
||||||
ITEXTURE1D = 498,
|
TEXTURE1DARRAY = 498,
|
||||||
ITEXTURE2D = 499,
|
TEXTURE2DARRAY = 499,
|
||||||
ITEXTURE3D = 500,
|
ITEXTURE1D = 500,
|
||||||
ITEXTURECUBE = 501,
|
ITEXTURE2D = 501,
|
||||||
ITEXTURE1DARRAY = 502,
|
ITEXTURE3D = 502,
|
||||||
ITEXTURE2DARRAY = 503,
|
ITEXTURECUBE = 503,
|
||||||
UTEXTURE1D = 504,
|
ITEXTURE1DARRAY = 504,
|
||||||
UTEXTURE2D = 505,
|
ITEXTURE2DARRAY = 505,
|
||||||
UTEXTURE3D = 506,
|
UTEXTURE1D = 506,
|
||||||
UTEXTURECUBE = 507,
|
UTEXTURE2D = 507,
|
||||||
UTEXTURE1DARRAY = 508,
|
UTEXTURE3D = 508,
|
||||||
UTEXTURE2DARRAY = 509,
|
UTEXTURECUBE = 509,
|
||||||
TEXTURE2DRECT = 510,
|
UTEXTURE1DARRAY = 510,
|
||||||
ITEXTURE2DRECT = 511,
|
UTEXTURE2DARRAY = 511,
|
||||||
UTEXTURE2DRECT = 512,
|
TEXTURE2DRECT = 512,
|
||||||
TEXTUREBUFFER = 513,
|
ITEXTURE2DRECT = 513,
|
||||||
ITEXTUREBUFFER = 514,
|
UTEXTURE2DRECT = 514,
|
||||||
UTEXTUREBUFFER = 515,
|
TEXTUREBUFFER = 515,
|
||||||
TEXTURECUBEARRAY = 516,
|
ITEXTUREBUFFER = 516,
|
||||||
ITEXTURECUBEARRAY = 517,
|
UTEXTUREBUFFER = 517,
|
||||||
UTEXTURECUBEARRAY = 518,
|
TEXTURECUBEARRAY = 518,
|
||||||
TEXTURE2DMS = 519,
|
ITEXTURECUBEARRAY = 519,
|
||||||
ITEXTURE2DMS = 520,
|
UTEXTURECUBEARRAY = 520,
|
||||||
UTEXTURE2DMS = 521,
|
TEXTURE2DMS = 521,
|
||||||
TEXTURE2DMSARRAY = 522,
|
ITEXTURE2DMS = 522,
|
||||||
ITEXTURE2DMSARRAY = 523,
|
UTEXTURE2DMS = 523,
|
||||||
UTEXTURE2DMSARRAY = 524,
|
TEXTURE2DMSARRAY = 524,
|
||||||
F16TEXTURE1D = 525,
|
ITEXTURE2DMSARRAY = 525,
|
||||||
F16TEXTURE2D = 526,
|
UTEXTURE2DMSARRAY = 526,
|
||||||
F16TEXTURE3D = 527,
|
F16TEXTURE1D = 527,
|
||||||
F16TEXTURE2DRECT = 528,
|
F16TEXTURE2D = 528,
|
||||||
F16TEXTURECUBE = 529,
|
F16TEXTURE3D = 529,
|
||||||
F16TEXTURE1DARRAY = 530,
|
F16TEXTURE2DRECT = 530,
|
||||||
F16TEXTURE2DARRAY = 531,
|
F16TEXTURECUBE = 531,
|
||||||
F16TEXTURECUBEARRAY = 532,
|
F16TEXTURE1DARRAY = 532,
|
||||||
F16TEXTUREBUFFER = 533,
|
F16TEXTURE2DARRAY = 533,
|
||||||
F16TEXTURE2DMS = 534,
|
F16TEXTURECUBEARRAY = 534,
|
||||||
F16TEXTURE2DMSARRAY = 535,
|
F16TEXTUREBUFFER = 535,
|
||||||
SUBPASSINPUT = 536,
|
F16TEXTURE2DMS = 536,
|
||||||
SUBPASSINPUTMS = 537,
|
F16TEXTURE2DMSARRAY = 537,
|
||||||
ISUBPASSINPUT = 538,
|
SUBPASSINPUT = 538,
|
||||||
ISUBPASSINPUTMS = 539,
|
SUBPASSINPUTMS = 539,
|
||||||
USUBPASSINPUT = 540,
|
ISUBPASSINPUT = 540,
|
||||||
USUBPASSINPUTMS = 541,
|
ISUBPASSINPUTMS = 541,
|
||||||
F16SUBPASSINPUT = 542,
|
USUBPASSINPUT = 542,
|
||||||
F16SUBPASSINPUTMS = 543,
|
USUBPASSINPUTMS = 543,
|
||||||
IMAGE1D = 544,
|
F16SUBPASSINPUT = 544,
|
||||||
IIMAGE1D = 545,
|
F16SUBPASSINPUTMS = 545,
|
||||||
UIMAGE1D = 546,
|
IMAGE1D = 546,
|
||||||
IMAGE2D = 547,
|
IIMAGE1D = 547,
|
||||||
IIMAGE2D = 548,
|
UIMAGE1D = 548,
|
||||||
UIMAGE2D = 549,
|
IMAGE2D = 549,
|
||||||
IMAGE3D = 550,
|
IIMAGE2D = 550,
|
||||||
IIMAGE3D = 551,
|
UIMAGE2D = 551,
|
||||||
UIMAGE3D = 552,
|
IMAGE3D = 552,
|
||||||
IMAGE2DRECT = 553,
|
IIMAGE3D = 553,
|
||||||
IIMAGE2DRECT = 554,
|
UIMAGE3D = 554,
|
||||||
UIMAGE2DRECT = 555,
|
IMAGE2DRECT = 555,
|
||||||
IMAGECUBE = 556,
|
IIMAGE2DRECT = 556,
|
||||||
IIMAGECUBE = 557,
|
UIMAGE2DRECT = 557,
|
||||||
UIMAGECUBE = 558,
|
IMAGECUBE = 558,
|
||||||
IMAGEBUFFER = 559,
|
IIMAGECUBE = 559,
|
||||||
IIMAGEBUFFER = 560,
|
UIMAGECUBE = 560,
|
||||||
UIMAGEBUFFER = 561,
|
IMAGEBUFFER = 561,
|
||||||
IMAGE1DARRAY = 562,
|
IIMAGEBUFFER = 562,
|
||||||
IIMAGE1DARRAY = 563,
|
UIMAGEBUFFER = 563,
|
||||||
UIMAGE1DARRAY = 564,
|
IMAGE1DARRAY = 564,
|
||||||
IMAGE2DARRAY = 565,
|
IIMAGE1DARRAY = 565,
|
||||||
IIMAGE2DARRAY = 566,
|
UIMAGE1DARRAY = 566,
|
||||||
UIMAGE2DARRAY = 567,
|
IMAGE2DARRAY = 567,
|
||||||
IMAGECUBEARRAY = 568,
|
IIMAGE2DARRAY = 568,
|
||||||
IIMAGECUBEARRAY = 569,
|
UIMAGE2DARRAY = 569,
|
||||||
UIMAGECUBEARRAY = 570,
|
IMAGECUBEARRAY = 570,
|
||||||
IMAGE2DMS = 571,
|
IIMAGECUBEARRAY = 571,
|
||||||
IIMAGE2DMS = 572,
|
UIMAGECUBEARRAY = 572,
|
||||||
UIMAGE2DMS = 573,
|
IMAGE2DMS = 573,
|
||||||
IMAGE2DMSARRAY = 574,
|
IIMAGE2DMS = 574,
|
||||||
IIMAGE2DMSARRAY = 575,
|
UIMAGE2DMS = 575,
|
||||||
UIMAGE2DMSARRAY = 576,
|
IMAGE2DMSARRAY = 576,
|
||||||
F16IMAGE1D = 577,
|
IIMAGE2DMSARRAY = 577,
|
||||||
F16IMAGE2D = 578,
|
UIMAGE2DMSARRAY = 578,
|
||||||
F16IMAGE3D = 579,
|
F16IMAGE1D = 579,
|
||||||
F16IMAGE2DRECT = 580,
|
F16IMAGE2D = 580,
|
||||||
F16IMAGECUBE = 581,
|
F16IMAGE3D = 581,
|
||||||
F16IMAGE1DARRAY = 582,
|
F16IMAGE2DRECT = 582,
|
||||||
F16IMAGE2DARRAY = 583,
|
F16IMAGECUBE = 583,
|
||||||
F16IMAGECUBEARRAY = 584,
|
F16IMAGE1DARRAY = 584,
|
||||||
F16IMAGEBUFFER = 585,
|
F16IMAGE2DARRAY = 585,
|
||||||
F16IMAGE2DMS = 586,
|
F16IMAGECUBEARRAY = 586,
|
||||||
F16IMAGE2DMSARRAY = 587,
|
F16IMAGEBUFFER = 587,
|
||||||
STRUCT = 588,
|
F16IMAGE2DMS = 588,
|
||||||
VOID = 589,
|
F16IMAGE2DMSARRAY = 589,
|
||||||
WHILE = 590,
|
STRUCT = 590,
|
||||||
IDENTIFIER = 591,
|
VOID = 591,
|
||||||
TYPE_NAME = 592,
|
WHILE = 592,
|
||||||
FLOATCONSTANT = 593,
|
IDENTIFIER = 593,
|
||||||
DOUBLECONSTANT = 594,
|
TYPE_NAME = 594,
|
||||||
INT16CONSTANT = 595,
|
FLOATCONSTANT = 595,
|
||||||
UINT16CONSTANT = 596,
|
DOUBLECONSTANT = 596,
|
||||||
INT32CONSTANT = 597,
|
INT16CONSTANT = 597,
|
||||||
UINT32CONSTANT = 598,
|
UINT16CONSTANT = 598,
|
||||||
INTCONSTANT = 599,
|
INT32CONSTANT = 599,
|
||||||
UINTCONSTANT = 600,
|
UINT32CONSTANT = 600,
|
||||||
INT64CONSTANT = 601,
|
INTCONSTANT = 601,
|
||||||
UINT64CONSTANT = 602,
|
UINTCONSTANT = 602,
|
||||||
BOOLCONSTANT = 603,
|
INT64CONSTANT = 603,
|
||||||
FLOAT16CONSTANT = 604,
|
UINT64CONSTANT = 604,
|
||||||
LEFT_OP = 605,
|
BOOLCONSTANT = 605,
|
||||||
RIGHT_OP = 606,
|
FLOAT16CONSTANT = 606,
|
||||||
INC_OP = 607,
|
LEFT_OP = 607,
|
||||||
DEC_OP = 608,
|
RIGHT_OP = 608,
|
||||||
LE_OP = 609,
|
INC_OP = 609,
|
||||||
GE_OP = 610,
|
DEC_OP = 610,
|
||||||
EQ_OP = 611,
|
LE_OP = 611,
|
||||||
NE_OP = 612,
|
GE_OP = 612,
|
||||||
AND_OP = 613,
|
EQ_OP = 613,
|
||||||
OR_OP = 614,
|
NE_OP = 614,
|
||||||
XOR_OP = 615,
|
AND_OP = 615,
|
||||||
MUL_ASSIGN = 616,
|
OR_OP = 616,
|
||||||
DIV_ASSIGN = 617,
|
XOR_OP = 617,
|
||||||
ADD_ASSIGN = 618,
|
MUL_ASSIGN = 618,
|
||||||
MOD_ASSIGN = 619,
|
DIV_ASSIGN = 619,
|
||||||
LEFT_ASSIGN = 620,
|
ADD_ASSIGN = 620,
|
||||||
RIGHT_ASSIGN = 621,
|
MOD_ASSIGN = 621,
|
||||||
AND_ASSIGN = 622,
|
LEFT_ASSIGN = 622,
|
||||||
XOR_ASSIGN = 623,
|
RIGHT_ASSIGN = 623,
|
||||||
OR_ASSIGN = 624,
|
AND_ASSIGN = 624,
|
||||||
SUB_ASSIGN = 625,
|
XOR_ASSIGN = 625,
|
||||||
LEFT_PAREN = 626,
|
OR_ASSIGN = 626,
|
||||||
RIGHT_PAREN = 627,
|
SUB_ASSIGN = 627,
|
||||||
LEFT_BRACKET = 628,
|
LEFT_PAREN = 628,
|
||||||
RIGHT_BRACKET = 629,
|
RIGHT_PAREN = 629,
|
||||||
LEFT_BRACE = 630,
|
LEFT_BRACKET = 630,
|
||||||
RIGHT_BRACE = 631,
|
RIGHT_BRACKET = 631,
|
||||||
DOT = 632,
|
LEFT_BRACE = 632,
|
||||||
COMMA = 633,
|
RIGHT_BRACE = 633,
|
||||||
COLON = 634,
|
DOT = 634,
|
||||||
EQUAL = 635,
|
COMMA = 635,
|
||||||
SEMICOLON = 636,
|
COLON = 636,
|
||||||
BANG = 637,
|
EQUAL = 637,
|
||||||
DASH = 638,
|
SEMICOLON = 638,
|
||||||
TILDE = 639,
|
BANG = 639,
|
||||||
PLUS = 640,
|
DASH = 640,
|
||||||
STAR = 641,
|
TILDE = 641,
|
||||||
SLASH = 642,
|
PLUS = 642,
|
||||||
PERCENT = 643,
|
STAR = 643,
|
||||||
LEFT_ANGLE = 644,
|
SLASH = 644,
|
||||||
RIGHT_ANGLE = 645,
|
PERCENT = 645,
|
||||||
VERTICAL_BAR = 646,
|
LEFT_ANGLE = 646,
|
||||||
CARET = 647,
|
RIGHT_ANGLE = 647,
|
||||||
AMPERSAND = 648,
|
VERTICAL_BAR = 648,
|
||||||
QUESTION = 649,
|
CARET = 649,
|
||||||
INVARIANT = 650,
|
AMPERSAND = 650,
|
||||||
PRECISE = 651,
|
QUESTION = 651,
|
||||||
HIGH_PRECISION = 652,
|
INVARIANT = 652,
|
||||||
MEDIUM_PRECISION = 653,
|
PRECISE = 653,
|
||||||
LOW_PRECISION = 654,
|
HIGH_PRECISION = 654,
|
||||||
PRECISION = 655,
|
MEDIUM_PRECISION = 655,
|
||||||
PACKED = 656,
|
LOW_PRECISION = 656,
|
||||||
RESOURCE = 657,
|
PRECISION = 657,
|
||||||
SUPERP = 658
|
PACKED = 658,
|
||||||
|
RESOURCE = 659,
|
||||||
|
SUPERP = 660
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -489,7 +491,7 @@ union YYSTYPE
|
|||||||
};
|
};
|
||||||
} interm;
|
} interm;
|
||||||
|
|
||||||
#line 493 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */
|
#line 495 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef union YYSTYPE YYSTYPE;
|
typedef union YYSTYPE YYSTYPE;
|
||||||
|
@ -1049,10 +1049,11 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node
|
|||||||
case EOpSubpassLoadMS: out.debug << "subpassLoadMS"; break;
|
case EOpSubpassLoadMS: out.debug << "subpassLoadMS"; break;
|
||||||
|
|
||||||
#ifdef NV_EXTENSIONS
|
#ifdef NV_EXTENSIONS
|
||||||
case EOpTraceNV: out.debug << "traceNVX"; break;
|
case EOpTraceNV: out.debug << "traceNV"; break;
|
||||||
case EOpReportIntersectionNV: out.debug << "reportIntersectionNVX"; break;
|
case EOpReportIntersectionNV: out.debug << "reportIntersectionNV"; break;
|
||||||
case EOpIgnoreIntersectionNV: out.debug << "ignoreIntersectionNVX"; break;
|
case EOpIgnoreIntersectionNV: out.debug << "ignoreIntersectionNV"; break;
|
||||||
case EOpTerminateRayNV: out.debug << "terminateRayNVX"; break;
|
case EOpTerminateRayNV: out.debug << "terminateRayNV"; break;
|
||||||
|
case EOpExecuteCallableNV: out.debug << "executeCallableNV"; break;
|
||||||
case EOpWritePackedPrimitiveIndices4x8NV: out.debug << "writePackedPrimitiveIndices4x8NV"; break;
|
case EOpWritePackedPrimitiveIndices4x8NV: out.debug << "writePackedPrimitiveIndices4x8NV"; break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -712,7 +712,7 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled)
|
|||||||
case EShLangMissNV:
|
case EShLangMissNV:
|
||||||
case EShLangCallableNV:
|
case EShLangCallableNV:
|
||||||
if (numShaderRecordNVBlocks > 1)
|
if (numShaderRecordNVBlocks > 1)
|
||||||
error(infoSink, "Only one shaderRecordNVX buffer block is allowed per stage");
|
error(infoSink, "Only one shaderRecordNV buffer block is allowed per stage");
|
||||||
break;
|
break;
|
||||||
case EShLangMeshNV:
|
case EShLangMeshNV:
|
||||||
// NV_mesh_shader doesn't allow use of both single-view and per-view builtins.
|
// NV_mesh_shader doesn't allow use of both single-view and per-view builtins.
|
||||||
|
@ -517,6 +517,8 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
"spv.ClosestHitShader_Errors.rchit",
|
"spv.ClosestHitShader_Errors.rchit",
|
||||||
"spv.MissShader.rmiss",
|
"spv.MissShader.rmiss",
|
||||||
"spv.MissShader_Errors.rmiss",
|
"spv.MissShader_Errors.rmiss",
|
||||||
|
"spv.RayCallable.rcall",
|
||||||
|
"spv.RayCallable_Errors.rcall",
|
||||||
"spv.fragmentShaderBarycentric.frag",
|
"spv.fragmentShaderBarycentric.frag",
|
||||||
"spv.fragmentShaderBarycentric2.frag",
|
"spv.fragmentShaderBarycentric2.frag",
|
||||||
"spv.computeShaderDerivatives.comp",
|
"spv.computeShaderDerivatives.comp",
|
||||||
|
@ -5,14 +5,14 @@
|
|||||||
"site" : "github",
|
"site" : "github",
|
||||||
"subrepo" : "KhronosGroup/SPIRV-Tools",
|
"subrepo" : "KhronosGroup/SPIRV-Tools",
|
||||||
"subdir" : "External/spirv-tools",
|
"subdir" : "External/spirv-tools",
|
||||||
"commit" : "9bfe0eb25e3dfdf4f3fd86ab6c0cda009c9bd661"
|
"commit" : "fb996dce752507132c40c255898154cce6c072c5"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name" : "spirv-tools/external/spirv-headers",
|
"name" : "spirv-tools/external/spirv-headers",
|
||||||
"site" : "github",
|
"site" : "github",
|
||||||
"subrepo" : "KhronosGroup/SPIRV-Headers",
|
"subrepo" : "KhronosGroup/SPIRV-Headers",
|
||||||
"subdir" : "External/spirv-tools/external/spirv-headers",
|
"subdir" : "External/spirv-tools/external/spirv-headers",
|
||||||
"commit" : "d5b2e1255f706ce1f88812217e9a554f299848af"
|
"commit" : "a2c529b5dda18838ab4b52f816acfebd774eaab3"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user