Add-support-for-SPV_NVX_raytracing

This commit is contained in:
Chao Chen 2018-09-19 11:42:24 -07:00
parent 3c3669904c
commit b50c02ef53
50 changed files with 5970 additions and 4184 deletions

View file

@ -62,6 +62,10 @@ enum TBasicType {
EbtStruct,
EbtBlock,
#ifdef NV_EXTENSIONS
EbtAccStructNV,
#endif
// HLSL types that live only temporarily.
EbtString,
@ -88,6 +92,12 @@ enum TStorageQualifier {
EvqBuffer, // read/write, shared with app
EvqShared, // compute shader's read/write 'shared' qualifier
#ifdef NV_EXTENSIONS
EvqPayloadNV,
EvqPayloadInNV,
EvqHitAttrNV,
#endif
// parameters
EvqIn, // also, for 'in' in the grammar before we know if it's a pipeline input or an 'in' parameter
EvqOut, // also, for 'out' in the grammar before we know if it's a pipeline output or an 'out' parameter
@ -227,6 +237,20 @@ enum TBuiltInVariable {
EbvPositionPerViewNV,
EbvViewportMaskPerViewNV,
EbvFragFullyCoveredNV,
// raytracing
EbvLaunchIdNV,
EbvLaunchSizeNV,
EbvInstanceCustomIndexNV,
EbvWorldRayOriginNV,
EbvWorldRayDirectionNV,
EbvObjectRayOriginNV,
EbvObjectRayDirectionNV,
EbvRayTminNV,
EbvRayTmaxNV,
EbvHitTNV,
EbvHitKindNV,
EbvObjectToWorldNV,
EbvWorldToObjectNV,
EbvBaryCoordNV,
EbvBaryCoordNoPerspNV,
EbvTaskCountNV,
@ -283,6 +307,11 @@ __inline const char* GetStorageQualifierString(TStorageQualifier q)
case EvqPointCoord: return "gl_PointCoord"; break;
case EvqFragColor: return "fragColor"; break;
case EvqFragDepth: return "gl_FragDepth"; break;
#ifdef NV_EXTENSIONS
case EvqPayloadNV: return "rayPayloadNVX"; break;
case EvqPayloadInNV: return "rayPayloadInNVX"; break;
case EvqHitAttrNV: return "hitAttributeNVX"; break;
#endif
default: return "unknown qualifier";
}
}
@ -375,6 +404,19 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
case EbvPositionPerViewNV: return "PositionPerViewNV";
case EbvViewportMaskPerViewNV: return "ViewportMaskPerViewNV";
case EbvFragFullyCoveredNV: return "FragFullyCoveredNV";
case EbvLaunchIdNV: return "LaunchIdNVX";
case EbvLaunchSizeNV: return "LaunchSizeNVX";
case EbvInstanceCustomIndexNV: return "InstanceCustomIndexNVX";
case EbvWorldRayOriginNV: return "WorldRayOriginNVX";
case EbvWorldRayDirectionNV: return "WorldRayDirectionNVX";
case EbvObjectRayOriginNV: return "ObjectRayOriginNVX";
case EbvObjectRayDirectionNV: return "ObjectRayDirectionNVX";
case EbvRayTminNV: return "ObjectRayTminNVX";
case EbvRayTmaxNV: return "ObjectRayTmaxNVX";
case EbvHitTNV: return "HitTNVX";
case EbvHitKindNV: return "HitKindNVX";
case EbvObjectToWorldNV: return "ObjectToWorldNVX";
case EbvWorldToObjectNV: return "WorldToObjectNVX";
case EbvBaryCoordNV: return "BaryCoordNV";
case EbvBaryCoordNoPerspNV: return "BaryCoordNoPerspNV";
case EbvTaskCountNV: return "TaskCountNV";