summaryrefslogtreecommitdiff
path: root/source/slang/hlsl.meta.slang
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-01-18 16:46:00 -0800
committerGitHub <noreply@github.com>2024-01-18 16:46:00 -0800
commitc5c1a25ab6d0e509e893d737a679ac47949df2f6 (patch)
treee60d4f96ae5105ef19c6b238a4d98467ff58975d /source/slang/hlsl.meta.slang
parent1a13842f7ece9f3c492a7017509b75eafa903bbf (diff)
Capability def parsing & codegen + disjoint sets (#3451)
* Capability def parsing & codegen + disjoint sets This change adds a capability definition file, and a code generator to produce C++ code that defines the capability enums and necessary data structures around the capabilities. Extends the existing CapabilitySet class to support expressing disjoint sets of capabilities. This sets up for the next change that will enhance our type checking with reasoning of capability requirements. * Fix cmake. * Fix warning. * Fix. * Fix isBetterForTarget to prefer less specialized option. * Fix. * Fix premake. * Fix intrinsic. * Fix vs sln file. --------- Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/hlsl.meta.slang')
-rw-r--r--source/slang/hlsl.meta.slang90
1 files changed, 45 insertions, 45 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang
index 2f4064c97..3635069e7 100644
--- a/source/slang/hlsl.meta.slang
+++ b/source/slang/hlsl.meta.slang
@@ -4566,8 +4566,8 @@ T GetAttributeAtVertex(T attribute, uint vertexIndex)
{
case hlsl:
__intrinsic_asm "GetAttributeAtVertex";
- case GL_NV_fragment_shader_barycentric:
- case GL_EXT_fragment_shader_barycentric:
+ case _GL_NV_fragment_shader_barycentric:
+ case _GL_EXT_fragment_shader_barycentric:
__intrinsic_asm "$0[$1]";
case spirv:
return spirv_asm {
@@ -4599,8 +4599,8 @@ vector<T,N> GetAttributeAtVertex(vector<T,N> attribute, uint vertexIndex)
{
case hlsl:
__intrinsic_asm "GetAttributeAtVertex";
- case GL_NV_fragment_shader_barycentric:
- case GL_EXT_fragment_shader_barycentric:
+ case _GL_NV_fragment_shader_barycentric:
+ case _GL_EXT_fragment_shader_barycentric:
__intrinsic_asm "$0[$1]";
case spirv:
return spirv_asm {
@@ -4632,8 +4632,8 @@ matrix<T,N,M> GetAttributeAtVertex(matrix<T,N,M> attribute, uint vertexIndex)
{
case hlsl:
__intrinsic_asm "GetAttributeAtVertex";
- case GL_NV_fragment_shader_barycentric:
- case GL_EXT_fragment_shader_barycentric:
+ case _GL_NV_fragment_shader_barycentric:
+ case _GL_EXT_fragment_shader_barycentric:
__intrinsic_asm "$0[$1]";
case spirv:
return spirv_asm {
@@ -9312,8 +9312,8 @@ bool __reportIntersection(float tHit, uint hitKind)
{
__target_switch
{
- case GL_EXT_ray_tracing: __intrinsic_asm "reportIntersectionEXT";
- case GL_NV_ray_tracing: __intrinsic_asm "reportIntersectionNV";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "reportIntersectionEXT";
+ case _GL_NV_ray_tracing: __intrinsic_asm "reportIntersectionNV";
case spirv:
return spirv_asm {
result:$$bool = OpReportIntersectionKHR $tHit $hitKind;
@@ -9339,8 +9339,8 @@ void IgnoreHit()
__target_switch
{
case hlsl: __intrinsic_asm "IgnoreHit";
- case GL_EXT_ray_tracing: __intrinsic_asm "ignoreIntersectionEXT;";
- case GL_NV_ray_tracing: __intrinsic_asm "ignoreIntersectionNV";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "ignoreIntersectionEXT;";
+ case _GL_NV_ray_tracing: __intrinsic_asm "ignoreIntersectionNV";
case cuda: __intrinsic_asm "optixIgnoreIntersection";
case spirv: spirv_asm { OpIgnoreIntersectionKHR; %_ = OpLabel };
}
@@ -9352,8 +9352,8 @@ void AcceptHitAndEndSearch()
__target_switch
{
case hlsl: __intrinsic_asm "AcceptHitAndEndSearch";
- case GL_EXT_ray_tracing: __intrinsic_asm "terminateRayEXT;";
- case GL_NV_ray_tracing: __intrinsic_asm "terminateRayNV";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "terminateRayEXT;";
+ case _GL_NV_ray_tracing: __intrinsic_asm "terminateRayNV";
case cuda: __intrinsic_asm "optixTerminateRay";
case spirv: spirv_asm { OpTerminateRayKHR; %_ = OpLabel };
}
@@ -9371,8 +9371,8 @@ uint3 DispatchRaysIndex()
__target_switch
{
case hlsl: __intrinsic_asm "DispatchRaysIndex";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_LaunchIDEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_LaunchIDNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_LaunchIDEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_LaunchIDNV)";
case cuda: __intrinsic_asm "optixGetLaunchIndex";
case spirv:
return spirv_asm {
@@ -9386,8 +9386,8 @@ uint3 DispatchRaysDimensions()
__target_switch
{
case hlsl: __intrinsic_asm "DispatchRaysDimensions";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_LaunchSizeEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_LaunchSizeNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_LaunchSizeEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_LaunchSizeNV)";
case cuda: __intrinsic_asm "optixGetLaunchDimensions";
case spirv:
return spirv_asm {
@@ -9403,8 +9403,8 @@ float3 WorldRayOrigin()
__target_switch
{
case hlsl: __intrinsic_asm "WorldRayOrigin";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_WorldRayOriginEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_WorldRayOriginNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_WorldRayOriginEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_WorldRayOriginNV)";
case cuda: __intrinsic_asm "optixGetWorldRayOrigin";
case spirv:
return spirv_asm {
@@ -9418,8 +9418,8 @@ float3 WorldRayDirection()
__target_switch
{
case hlsl: __intrinsic_asm "WorldRayDirection";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_WorldRayDirectionEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_WorldRayDirectionNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_WorldRayDirectionEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_WorldRayDirectionNV)";
case cuda: __intrinsic_asm "optixGetWorldRayDirection";
case spirv:
return spirv_asm {
@@ -9433,8 +9433,8 @@ float RayTMin()
__target_switch
{
case hlsl: __intrinsic_asm "RayTMin";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_RayTminEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_RayTminNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_RayTminEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_RayTminNV)";
case cuda: __intrinsic_asm "optixGetRayTmin";
case spirv:
return spirv_asm {
@@ -9458,8 +9458,8 @@ float RayTCurrent()
__target_switch
{
case hlsl: __intrinsic_asm "RayTCurrent";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_RayTmaxEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_RayTmaxNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_RayTmaxEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_RayTmaxNV)";
case cuda: __intrinsic_asm "optixGetRayTmax";
case spirv:
return spirv_asm {
@@ -9473,8 +9473,8 @@ uint RayFlags()
__target_switch
{
case hlsl: __intrinsic_asm "RayFlags";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_IncomingRayFlagsEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_IncomingRayFlagsNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_IncomingRayFlagsEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_IncomingRayFlagsNV)";
case cuda: __intrinsic_asm "optixGetRayFlags";
case spirv:
return spirv_asm {
@@ -9490,7 +9490,7 @@ uint InstanceIndex()
__target_switch
{
case hlsl: __intrinsic_asm "InstanceIndex";
- case __glslRayTracing: __intrinsic_asm "(gl_InstanceID)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_InstanceID)";
case cuda: __intrinsic_asm "optixGetInstanceIndex";
case spirv:
return spirv_asm {
@@ -9504,8 +9504,8 @@ uint InstanceID()
__target_switch
{
case hlsl: __intrinsic_asm "InstanceID";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_InstanceCustomIndexEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_InstanceCustomIndexNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_InstanceCustomIndexEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_InstanceCustomIndexNV)";
case cuda: __intrinsic_asm "optixGetInstanceId";
case spirv:
return spirv_asm {
@@ -9519,7 +9519,7 @@ uint PrimitiveIndex()
__target_switch
{
case hlsl: __intrinsic_asm "PrimitiveIndex";
- case __glslRayTracing: __intrinsic_asm "(gl_PrimitiveID)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_PrimitiveID)";
case cuda: __intrinsic_asm "optixGetPrimitiveIndex";
case spirv:
return spirv_asm {
@@ -9533,8 +9533,8 @@ float3 ObjectRayOrigin()
__target_switch
{
case hlsl: __intrinsic_asm "ObjectRayOrigin";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_ObjectRayOriginEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_ObjectRayOriginNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_ObjectRayOriginEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_ObjectRayOriginNV)";
case cuda: __intrinsic_asm "optixGetObjectRayOrigin";
case spirv:
return spirv_asm {
@@ -9548,8 +9548,8 @@ float3 ObjectRayDirection()
__target_switch
{
case hlsl: __intrinsic_asm "ObjectRayDirection";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_ObjectRayDirectionEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_ObjectRayDirectionNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_ObjectRayDirectionEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_ObjectRayDirectionNV)";
case cuda: __intrinsic_asm "optixGetObjectRayDirection";
case spirv:
return spirv_asm {
@@ -9565,8 +9565,8 @@ float3x4 ObjectToWorld3x4()
__target_switch
{
case hlsl: __intrinsic_asm "ObjectToWorld3x4";
- case GL_EXT_ray_tracing: __intrinsic_asm "transpose(gl_ObjectToWorldEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "transpose(gl_ObjectToWorldNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "transpose(gl_ObjectToWorldEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "transpose(gl_ObjectToWorldNV)";
case spirv:
return spirv_asm {
%mat:$$float4x3 = OpLoad builtin(ObjectToWorldKHR:float4x3);
@@ -9580,8 +9580,8 @@ float3x4 WorldToObject3x4()
__target_switch
{
case hlsl: __intrinsic_asm "WorldToObject3x4";
- case GL_EXT_ray_tracing: __intrinsic_asm "transpose(gl_WorldToObjectEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "transpose(gl_WorldToObjectNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "transpose(gl_WorldToObjectEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "transpose(gl_WorldToObjectNV)";
case spirv:
return spirv_asm {
%mat:$$float4x3 = OpLoad builtin(WorldToObjectKHR:float4x3);
@@ -9595,8 +9595,8 @@ float4x3 ObjectToWorld4x3()
__target_switch
{
case hlsl: __intrinsic_asm "ObjectToWorld4x3";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_ObjectToWorldEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_ObjectToWorldNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_ObjectToWorldEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_ObjectToWorldNV)";
case spirv:
return spirv_asm {
result:$$float4x3 = OpLoad builtin(ObjectToWorldKHR:float4x3);
@@ -9609,8 +9609,8 @@ float4x3 WorldToObject4x3()
__target_switch
{
case hlsl: __intrinsic_asm "WorldToObject4x3";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_WorldToObjectEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_WorldToObjectNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_WorldToObjectEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_WorldToObjectNV)";
case spirv:
return spirv_asm {
result:$$float4x3 = OpLoad builtin(WorldToObjectKHR:float4x3);
@@ -9656,8 +9656,8 @@ uint HitKind()
__target_switch
{
case hlsl: __intrinsic_asm "HitKind";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_HitKindEXT)";
- case GL_NV_ray_tracing: __intrinsic_asm "(gl_HitKindNV)";
+ case _GL_EXT_ray_tracing: __intrinsic_asm "(gl_HitKindEXT)";
+ case _GL_NV_ray_tracing: __intrinsic_asm "(gl_HitKindNV)";
case cuda: __intrinsic_asm "optixGetHitKind";
case spirv:
return spirv_asm {
@@ -9848,7 +9848,7 @@ extension __TextureImpl<T,__Shape2D, 1, 0, 0, $(kStdlibResourceAccessFeedback),
//
// Get the index of the geometry that was hit in an intersection, any-hit, or closest-hit shader
-__target_intrinsic(GL_EXT_ray_tracing, "(gl_GeometryIndexEXT)")
+__glsl_extension(GL_EXT_ray_tracing)
uint GeometryIndex()
{
__target_switch