diff options
| author | Jay Kwak <82421531+jkwak-work@users.noreply.github.com> | 2025-04-22 00:57:02 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-22 00:57:02 -0700 |
| commit | cb361223b88a21446cea60d316e3c01b7f8c2546 (patch) | |
| tree | 9598eabd52fcf56c5e2a2c6577beba50cd8c3ab0 | |
| parent | 62baf92a524a5b57eb465100a5e47c489c049f15 (diff) | |
Add a new SM profile 6.9 (#6879)
| -rw-r--r-- | docs/user-guide/a3-02-reference-capability-atoms.md | 11 | ||||
| -rw-r--r-- | source/slang/slang-capabilities.capdef | 29 | ||||
| -rw-r--r-- | source/slang/slang-compiler.cpp | 1 | ||||
| -rw-r--r-- | source/slang/slang-profile-defs.h | 11 |
4 files changed, 49 insertions, 3 deletions
diff --git a/docs/user-guide/a3-02-reference-capability-atoms.md b/docs/user-guide/a3-02-reference-capability-atoms.md index 300c7c2c6..296614716 100644 --- a/docs/user-guide/a3-02-reference-capability-atoms.md +++ b/docs/user-guide/a3-02-reference-capability-atoms.md @@ -277,6 +277,14 @@ Versions > HLSL shader model 6.8 and related capabilities of other targets. > Includes related GLSL/SPIRV extensions. +`sm_6_9_version` +> HLSL shader model 6.9 and related capabilities of other targets. +> Does not include related GLSL/SPIRV extensions. + +`sm_6_9` +> HLSL shader model 6.9 and related capabilities of other targets. +> Includes related GLSL/SPIRV extensions. + `GLSL_130` > GLSL 130 and related capabilities of other targets. @@ -1275,6 +1283,9 @@ Other `DX_6_8` > Use `sm_6_8` instead +`DX_6_9` +> Use `sm_6_9` instead + `GLSL_410_SPIRV_1_0` > User should not use this capability diff --git a/source/slang/slang-capabilities.capdef b/source/slang/slang-capabilities.capdef index fc1bc71a8..b62de0f08 100644 --- a/source/slang/slang-capabilities.capdef +++ b/source/slang/slang-capabilities.capdef @@ -209,6 +209,7 @@ def _sm_6_5 : _sm_6_4; def _sm_6_6 : _sm_6_5; def _sm_6_7 : _sm_6_6; def _sm_6_8 : _sm_6_7; +def _sm_6_9 : _sm_6_8; /// Represents HLSL NVAPI support. /// [Version] @@ -1549,6 +1550,24 @@ alias sm_6_8 = sm_6_8_version | sm_6_7 ; +/// HLSL shader model 6.9 and related capabilities of other targets. +/// Does not include related GLSL/SPIRV extensions. +/// [Version] +alias sm_6_9_version = _sm_6_9 + | _GLSL_460 + | spirv_1_5 + | _cuda_sm_9_0 + | metal + | cpp + ; + +/// HLSL shader model 6.9 and related capabilities of other targets. +/// Includes related GLSL/SPIRV extensions. +/// [Version] +alias sm_6_9 = sm_6_9_version + | sm_6_8 + ; + // Profiles /// Use `sm_4_0` instead /// [Other] @@ -1602,6 +1621,10 @@ alias DX_6_7 = sm_6_7; /// [Other] alias DX_6_8 = sm_6_8; +/// Use `sm_6_9` instead +/// [Other] +alias DX_6_9 = sm_6_9; + // GLSL profile capabilities // /// GLSL 130 and related capabilities of other targets. @@ -2162,10 +2185,10 @@ alias ser_motion_raygen = raygen + ser_motion; /// User should not use this capability /// [Other] -alias all = _sm_6_8 + hlsl_nvapi - | glsl_spirv_1_5 + sm_6_8 +alias all = _sm_6_9 + hlsl_nvapi + | glsl_spirv_1_5 + sm_6_9 + ser + shaderclock + texturefootprint + fragmentshaderinterlock + _GL_NV_shader_subgroup_partitioned + _GL_NV_ray_tracing_motion_blur + _GL_NV_shader_texture_footprint - | spirv_1_5 + sm_6_8 + | spirv_1_5 + sm_6_9 + ser + shaderclock + texturefootprint + fragmentshaderinterlock + spvGroupNonUniformPartitionedNV + spvRayTracingMotionBlurNV + spvRayTracingMotionBlurNV; diff --git a/source/slang/slang-compiler.cpp b/source/slang/slang-compiler.cpp index 2c9475004..9815f6ff1 100644 --- a/source/slang/slang-compiler.cpp +++ b/source/slang/slang-compiler.cpp @@ -874,6 +874,7 @@ String GetHLSLProfileName(Profile profile) CASE(DX_6_6, _6_6); CASE(DX_6_7, _6_7); CASE(DX_6_8, _6_8); + CASE(DX_6_9, _6_9); #undef CASE default: diff --git a/source/slang/slang-profile-defs.h b/source/slang/slang-profile-defs.h index 57ad3ab25..29e2bbf2e 100644 --- a/source/slang/slang-profile-defs.h +++ b/source/slang/slang-profile-defs.h @@ -105,6 +105,7 @@ PROFILE_VERSION(DX_6_5, DX) PROFILE_VERSION(DX_6_6, DX) PROFILE_VERSION(DX_6_7, DX) PROFILE_VERSION(DX_6_8, DX) +PROFILE_VERSION(DX_6_9, DX) PROFILE_VERSION(GLSL_150, GLSL) PROFILE_VERSION(GLSL_330, GLSL) @@ -141,6 +142,7 @@ PROFILE(DX_Compute_6_5, cs_6_5, Compute, DX_6_5) PROFILE(DX_Compute_6_6, cs_6_6, Compute, DX_6_6) PROFILE(DX_Compute_6_7, cs_6_7, Compute, DX_6_7) PROFILE(DX_Compute_6_8, cs_6_8, Compute, DX_6_8) +PROFILE(DX_Compute_6_9, cs_6_9, Compute, DX_6_9) PROFILE(DX_Domain_5_0, ds_5_0, Domain, DX_5_0) PROFILE(DX_Domain_5_1, ds_5_1, Domain, DX_5_1) @@ -153,6 +155,7 @@ PROFILE(DX_Domain_6_5, ds_6_5, Domain, DX_6_5) PROFILE(DX_Domain_6_6, ds_6_6, Domain, DX_6_6) PROFILE(DX_Domain_6_7, ds_6_7, Domain, DX_6_7) PROFILE(DX_Domain_6_8, ds_6_8, Domain, DX_6_8) +PROFILE(DX_Domain_6_9, ds_6_9, Domain, DX_6_9) PROFILE(DX_Geometry_4_0, gs_4_0, Geometry, DX_4_0) PROFILE(DX_Geometry_4_1, gs_4_1, Geometry, DX_4_1) @@ -167,6 +170,7 @@ PROFILE(DX_Geometry_6_5, gs_6_5, Geometry, DX_6_5) PROFILE(DX_Geometry_6_6, gs_6_6, Geometry, DX_6_6) PROFILE(DX_Geometry_6_7, gs_6_7, Geometry, DX_6_7) PROFILE(DX_Geometry_6_8, gs_6_8, Geometry, DX_6_8) +PROFILE(DX_Geometry_6_9, gs_6_9, Geometry, DX_6_9) PROFILE(DX_Hull_5_0, hs_5_0, Hull, DX_5_0) PROFILE(DX_Hull_5_1, hs_5_1, Hull, DX_5_1) @@ -179,6 +183,7 @@ PROFILE(DX_Hull_6_5, hs_6_5, Hull, DX_6_5) PROFILE(DX_Hull_6_6, hs_6_6, Hull, DX_6_6) PROFILE(DX_Hull_6_7, hs_6_7, Hull, DX_6_7) PROFILE(DX_Hull_6_8, hs_6_8, Hull, DX_6_8) +PROFILE(DX_Hull_6_9, hs_6_9, Hull, DX_6_9) PROFILE(DX_Fragment_4_0, ps_4_0, Fragment, DX_4_0) PROFILE(DX_Fragment_4_1, ps_4_1, Fragment, DX_4_1) @@ -193,6 +198,7 @@ PROFILE(DX_Fragment_6_5, ps_6_5, Fragment, DX_6_5) PROFILE(DX_Fragment_6_6, ps_6_6, Fragment, DX_6_6) PROFILE(DX_Fragment_6_7, ps_6_7, Fragment, DX_6_7) PROFILE(DX_Fragment_6_8, ps_6_8, Fragment, DX_6_8) +PROFILE(DX_Fragment_6_9, ps_6_9, Fragment, DX_6_9) PROFILE(DX_Vertex_4_0, vs_4_0, Vertex, DX_4_0) PROFILE(DX_Vertex_4_1, vs_4_1, Vertex, DX_4_1) @@ -207,16 +213,19 @@ PROFILE(DX_Vertex_6_5, vs_6_5, Vertex, DX_6_5) PROFILE(DX_Vertex_6_6, vs_6_6, Vertex, DX_6_6) PROFILE(DX_Vertex_6_7, vs_6_7, Vertex, DX_6_7) PROFILE(DX_Vertex_6_8, vs_6_8, Vertex, DX_6_8) +PROFILE(DX_Vertex_6_9, vs_6_9, Vertex, DX_6_9) PROFILE(DX_Mesh_6_5, ms_6_5, Mesh, DX_6_5) PROFILE(DX_Mesh_6_6, ms_6_6, Mesh, DX_6_6) PROFILE(DX_Mesh_6_7, ms_6_7, Mesh, DX_6_7) PROFILE(DX_Mesh_6_8, ms_6_8, Mesh, DX_6_8) +PROFILE(DX_Mesh_6_9, ms_6_9, Mesh, DX_6_9) PROFILE(DX_Amplification_6_5, as_6_5, Amplification, DX_6_5) PROFILE(DX_Amplification_6_6, as_6_6, Amplification, DX_6_6) PROFILE(DX_Amplification_6_7, as_6_7, Amplification, DX_6_7) PROFILE(DX_Amplification_6_8, as_6_8, Amplification, DX_6_8) +PROFILE(DX_Amplification_6_9, as_6_9, Amplification, DX_6_9) // TODO: consider making `lib_*_*` alias these... PROFILE(DX_None_4_0, sm_4_0, Unknown, DX_4_0) @@ -244,6 +253,7 @@ PROFILE(DX_Lib_6_5, lib_6_5, Unknown, DX_6_5) PROFILE(DX_Lib_6_6, lib_6_6, Unknown, DX_6_6) PROFILE(DX_Lib_6_7, lib_6_7, Unknown, DX_6_7) PROFILE(DX_Lib_6_8, lib_6_8, Unknown, DX_6_8) +PROFILE(DX_Lib_6_9, lib_6_9, Unknown, DX_6_9) PROFILE_ALIAS(DX_None_6_1, DX_Lib_6_1, sm_6_1) PROFILE_ALIAS(DX_None_6_2, DX_Lib_6_2, sm_6_2) @@ -253,6 +263,7 @@ PROFILE_ALIAS(DX_None_6_5, DX_Lib_6_5, sm_6_5) PROFILE_ALIAS(DX_None_6_6, DX_Lib_6_6, sm_6_6) PROFILE_ALIAS(DX_None_6_7, DX_Lib_6_7, sm_6_7) PROFILE_ALIAS(DX_None_6_8, DX_Lib_6_8, sm_6_8) +PROFILE_ALIAS(DX_None_6_9, DX_Lib_6_9, sm_6_9) PROFILE(METAL_LIB_2_3, metallib_2_3, Unknown, METAL_2_3) PROFILE(METAL_LIB_2_4, metallib_2_4, Unknown, METAL_2_4) |
