|
@@ -786,6 +786,73 @@ are translated into SPIR-V ``OpTypeImage``, with parameters:
|
|
|
The meanings of the headers in the above table is explained in ``OpTypeImage``
|
|
|
of the SPIR-V spec.
|
|
|
|
|
|
+Vulkan specific Image Formats
|
|
|
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
+
|
|
|
+Since HLSL lacks the syntax for fully specifying image formats for textures in
|
|
|
+SPIR-V, we introduce ``[[vk::image_format("FORMAT")]]`` attribute for texture types.
|
|
|
+For example,
|
|
|
+
|
|
|
+.. code:: hlsl
|
|
|
+ [[vk::image_format("rgba8")]]
|
|
|
+ RWBuffer<float4> Buf;
|
|
|
+
|
|
|
+ [[vk::image_format("rg16f")]]
|
|
|
+ RWTexture2D<float2> Tex;
|
|
|
+
|
|
|
+ RWTexture2D<float2> Tex2; // Works like before
|
|
|
+
|
|
|
+``rgba8`` means ``Rgba8`` `SPIR-V Image Format <https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_image_format_a_image_format>`_.
|
|
|
+The following table lists the mapping between ``FORMAT`` of
|
|
|
+``[[vk::image_format("FORMAT")]]`` and its corresponding SPIR-V Image Format.
|
|
|
+
|
|
|
+======================= ============================================
|
|
|
+ FORMAT SPIR-V Image Format
|
|
|
+======================= ============================================
|
|
|
+``unknown`` ``Unknown``
|
|
|
+``rgba32f`` ``Rgba32f``
|
|
|
+``rgba16f`` ``Rgba16f``
|
|
|
+``r32f`` ``R32f``
|
|
|
+``rgba8`` ``Rgba8``
|
|
|
+``rgba8snorm`` ``Rgba8Snorm``
|
|
|
+``rg32f`` ``Rg32f``
|
|
|
+``rg16f`` ``Rg16f``
|
|
|
+``r11g11b10f`` ``R11fG11fB10f``
|
|
|
+``r16f`` ``R16f``
|
|
|
+``rgba16`` ``Rgba16``
|
|
|
+``rgb10a2`` ``Rgb10A2``
|
|
|
+``rg16`` ``Rg16``
|
|
|
+``rg8`` ``Rg8``
|
|
|
+``r16`` ``R16``
|
|
|
+``r8`` ``R8``
|
|
|
+``rgba16snorm`` ``Rgba16Snorm``
|
|
|
+``rg16snorm`` ``Rg16Snorm``
|
|
|
+``rg8snorm`` ``Rg8Snorm``
|
|
|
+``r16snorm`` ``R16Snorm``
|
|
|
+``r8snorm`` ``R8Snorm``
|
|
|
+``rgba32i`` ``Rgba32i``
|
|
|
+``rgba16i`` ``Rgba16i``
|
|
|
+``rgba8i`` ``Rgba8i``
|
|
|
+``r32i`` ``R32i``
|
|
|
+``rg32i`` ``Rg32i``
|
|
|
+``rg16i`` ``Rg16i``
|
|
|
+``rg8i`` ``Rg8i``
|
|
|
+``r16i`` ``R16i``
|
|
|
+``r8i`` ``R8i``
|
|
|
+``rgba32ui`` ``Rgba32ui``
|
|
|
+``rgba16ui`` ``Rgba16ui``
|
|
|
+``rgba8ui`` ``Rgba8ui``
|
|
|
+``r32ui`` ``R32ui``
|
|
|
+``rgb10a2ui`` ``Rgb10a2ui``
|
|
|
+``rg32ui`` ``Rg32ui``
|
|
|
+``rg16ui`` ``Rg16ui``
|
|
|
+``rg8ui`` ``Rg8ui``
|
|
|
+``r16ui`` ``R16ui``
|
|
|
+``r8ui`` ``R8ui``
|
|
|
+``r64ui`` ``R64ui``
|
|
|
+``r64i`` ``R64i``
|
|
|
+======================= ============================================
|
|
|
+
|
|
|
Constant/Texture/Structured/Byte Buffers
|
|
|
----------------------------------------
|
|
|
|
|
@@ -1268,165 +1335,168 @@ some system-value (SV) semantic strings will be translated into SPIR-V
|
|
|
|
|
|
.. table:: Mapping from HLSL SV semantic to SPIR-V builtin and execution mode
|
|
|
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| HLSL Semantic | SigPoint | SPIR-V ``BuiltIn`` | SPIR-V Execution Mode | SPIR-V Capability |
|
|
|
-+===========================+=============+==========================+=======================+=============================+
|
|
|
-| | VSOut | ``Position`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | HSCPIn | ``Position`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | HSCPOut | ``Position`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | DSCPIn | ``Position`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_Position | DSOut | ``Position`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | GSVIn | ``Position`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | GSOut | ``Position`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | PSIn | ``FragCoord`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | MSOut | ``Position`` | N/A | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | VSOut | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | HSCPIn | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | HSCPOut | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | DSCPIn | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_ClipDistance | DSOut | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | GSVIn | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | GSOut | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | PSIn | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | MSOut | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | VSOut | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | HSCPIn | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | HSCPOut | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | DSCPIn | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_CullDistance | DSOut | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | GSVIn | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | GSOut | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | PSIn | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | MSOut | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_VertexID | VSIn | ``VertexIndex`` | N/A | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_InstanceID | VSIn | ``InstanceIndex`` | N/A | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_Depth | PSOut | ``FragDepth`` | N/A | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_DepthGreaterEqual | PSOut | ``FragDepth`` | ``DepthGreater`` | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_DepthLessEqual | PSOut | ``FragDepth`` | ``DepthLess`` | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_IsFrontFace | PSIn | ``FrontFacing`` | N/A | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | CSIn | ``GlobalInvocationId`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_DispatchThreadID | MSIn | ``GlobalInvocationId`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | ASIn | ``GlobalInvocationId`` | N/A | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | CSIn | ``WorkgroupId`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_GroupID | MSIn | ``WorkgroupId`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | ASIn | ``WorkgroupId`` | N/A | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | CSIn | ``LocalInvocationId`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_GroupThreadID | MSIn | ``LocalInvocationId`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | ASIn | ``LocalInvocationId`` | N/A | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | CSIn | ``LocalInvocationIndex`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_GroupIndex | MSIn | ``LocalInvocationIndex`` | N/A | ``Shader`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | ASIn | ``LocalInvocationIndex`` | N/A | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_OutputControlPointID | HSIn | ``InvocationId`` | N/A | ``Tessellation`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_GSInstanceID | GSIn | ``InvocationId`` | N/A | ``Geometry`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_DomainLocation | DSIn | ``TessCoord`` | N/A | ``Tessellation`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | HSIn | ``PrimitiveId`` | N/A | ``Tessellation`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | PCIn | ``PrimitiveId`` | N/A | ``Tessellation`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | DsIn | ``PrimitiveId`` | N/A | ``Tessellation`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_PrimitiveID | GSIn | ``PrimitiveId`` | N/A | ``Geometry`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | GSOut | ``PrimitiveId`` | N/A | ``Geometry`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | PSIn | ``PrimitiveId`` | N/A | ``Geometry`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | MSOut | ``PrimitiveId`` | N/A | ``MeshShadingNV`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | PCOut | ``TessLevelOuter`` | N/A | ``Tessellation`` |
|
|
|
-| SV_TessFactor +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | DSIn | ``TessLevelOuter`` | N/A | ``Tessellation`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | PCOut | ``TessLevelInner`` | N/A | ``Tessellation`` |
|
|
|
-| SV_InsideTessFactor +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | DSIn | ``TessLevelInner`` | N/A | ``Tessellation`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_SampleIndex | PSIn | ``SampleId`` | N/A | ``SampleRateShading`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_StencilRef | PSOut | ``FragStencilRefEXT`` | N/A | ``StencilExportEXT`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_Barycentrics | PSIn | ``BaryCoord*AMD`` | N/A | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | GSOut | ``Layer`` | N/A | ``Geometry`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_RenderTargetArrayIndex | PSIn | ``Layer`` | N/A | ``Geometry`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | MSOut | ``Layer`` | N/A | ``MeshShadingNV`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | GSOut | ``ViewportIndex`` | N/A | ``MultiViewport`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_ViewportArrayIndex | PSIn | ``ViewportIndex`` | N/A | ``MultiViewport`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | MSOut | ``ViewportIndex`` | N/A | ``MeshShadingNV`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | PSIn | ``SampleMask`` | N/A | ``Shader`` |
|
|
|
-| SV_Coverage +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | PSOut | ``SampleMask`` | N/A | ``Shader`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_InnerCoverage | PSIn | ``FullyCoveredEXT`` | N/A | ``FragmentFullyCoveredEXT`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | VSIn | ``ViewIndex`` | N/A | ``MultiView`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | HSIn | ``ViewIndex`` | N/A | ``MultiView`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | DSIn | ``ViewIndex`` | N/A | ``MultiView`` |
|
|
|
-| SV_ViewID +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | GSIn | ``ViewIndex`` | N/A | ``MultiView`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | PSIn | ``ViewIndex`` | N/A | ``MultiView`` |
|
|
|
-| +-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| | MSIn | ``ViewIndex`` | N/A | ``MultiView`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
-| SV_ShadingRate | PSIn | ``FragSizeEXT`` | N/A | ``FragmentDensityEXT`` |
|
|
|
-+---------------------------+-------------+--------------------------+-----------------------+-----------------------------+
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| HLSL Semantic | SigPoint | SPIR-V ``BuiltIn`` | SPIR-V Execution Mode | SPIR-V Capability |
|
|
|
++===========================+=============+========================================+=======================+=============================+
|
|
|
+| | VSOut | ``Position`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | HSCPIn | ``Position`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | HSCPOut | ``Position`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | DSCPIn | ``Position`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_Position | DSOut | ``Position`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | GSVIn | ``Position`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | GSOut | ``Position`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | PSIn | ``FragCoord`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | MSOut | ``Position`` | N/A | ``Shader`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | VSOut | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | HSCPIn | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | HSCPOut | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | DSCPIn | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_ClipDistance | DSOut | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | GSVIn | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | GSOut | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | PSIn | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | MSOut | ``ClipDistance`` | N/A | ``ClipDistance`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | VSOut | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | HSCPIn | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | HSCPOut | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | DSCPIn | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_CullDistance | DSOut | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | GSVIn | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | GSOut | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | PSIn | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | MSOut | ``CullDistance`` | N/A | ``CullDistance`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_VertexID | VSIn | ``VertexIndex`` | N/A | ``Shader`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_InstanceID | VSIn | ``InstanceIndex`` or | N/A | ``Shader`` |
|
|
|
+| | | ``InstanceIndex - BaseInstance`` | | |
|
|
|
+| | | with | | |
|
|
|
+| | | ``-fvk-support-nonzero-base-instance`` | | |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_Depth | PSOut | ``FragDepth`` | N/A | ``Shader`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_DepthGreaterEqual | PSOut | ``FragDepth`` | ``DepthGreater`` | ``Shader`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_DepthLessEqual | PSOut | ``FragDepth`` | ``DepthLess`` | ``Shader`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_IsFrontFace | PSIn | ``FrontFacing`` | N/A | ``Shader`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | CSIn | ``GlobalInvocationId`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_DispatchThreadID | MSIn | ``GlobalInvocationId`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | ASIn | ``GlobalInvocationId`` | N/A | ``Shader`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | CSIn | ``WorkgroupId`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_GroupID | MSIn | ``WorkgroupId`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | ASIn | ``WorkgroupId`` | N/A | ``Shader`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | CSIn | ``LocalInvocationId`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_GroupThreadID | MSIn | ``LocalInvocationId`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | ASIn | ``LocalInvocationId`` | N/A | ``Shader`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | CSIn | ``LocalInvocationIndex`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_GroupIndex | MSIn | ``LocalInvocationIndex`` | N/A | ``Shader`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | ASIn | ``LocalInvocationIndex`` | N/A | ``Shader`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_OutputControlPointID | HSIn | ``InvocationId`` | N/A | ``Tessellation`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_GSInstanceID | GSIn | ``InvocationId`` | N/A | ``Geometry`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_DomainLocation | DSIn | ``TessCoord`` | N/A | ``Tessellation`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | HSIn | ``PrimitiveId`` | N/A | ``Tessellation`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | PCIn | ``PrimitiveId`` | N/A | ``Tessellation`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | DsIn | ``PrimitiveId`` | N/A | ``Tessellation`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_PrimitiveID | GSIn | ``PrimitiveId`` | N/A | ``Geometry`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | GSOut | ``PrimitiveId`` | N/A | ``Geometry`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | PSIn | ``PrimitiveId`` | N/A | ``Geometry`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | MSOut | ``PrimitiveId`` | N/A | ``MeshShadingNV`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | PCOut | ``TessLevelOuter`` | N/A | ``Tessellation`` |
|
|
|
+| SV_TessFactor +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | DSIn | ``TessLevelOuter`` | N/A | ``Tessellation`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | PCOut | ``TessLevelInner`` | N/A | ``Tessellation`` |
|
|
|
+| SV_InsideTessFactor +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | DSIn | ``TessLevelInner`` | N/A | ``Tessellation`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_SampleIndex | PSIn | ``SampleId`` | N/A | ``SampleRateShading`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_StencilRef | PSOut | ``FragStencilRefEXT`` | N/A | ``StencilExportEXT`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_Barycentrics | PSIn | ``BaryCoord*AMD`` | N/A | ``Shader`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | GSOut | ``Layer`` | N/A | ``Geometry`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_RenderTargetArrayIndex | PSIn | ``Layer`` | N/A | ``Geometry`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | MSOut | ``Layer`` | N/A | ``MeshShadingNV`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | GSOut | ``ViewportIndex`` | N/A | ``MultiViewport`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_ViewportArrayIndex | PSIn | ``ViewportIndex`` | N/A | ``MultiViewport`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | MSOut | ``ViewportIndex`` | N/A | ``MeshShadingNV`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | PSIn | ``SampleMask`` | N/A | ``Shader`` |
|
|
|
+| SV_Coverage +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | PSOut | ``SampleMask`` | N/A | ``Shader`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_InnerCoverage | PSIn | ``FullyCoveredEXT`` | N/A | ``FragmentFullyCoveredEXT`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | VSIn | ``ViewIndex`` | N/A | ``MultiView`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | HSIn | ``ViewIndex`` | N/A | ``MultiView`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | DSIn | ``ViewIndex`` | N/A | ``MultiView`` |
|
|
|
+| SV_ViewID +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | GSIn | ``ViewIndex`` | N/A | ``MultiView`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | PSIn | ``ViewIndex`` | N/A | ``MultiView`` |
|
|
|
+| +-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| | MSIn | ``ViewIndex`` | N/A | ``MultiView`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
+| SV_ShadingRate | PSIn | ``FragSizeEXT`` | N/A | ``FragmentDensityEXT`` |
|
|
|
++---------------------------+-------------+----------------------------------------+-----------------------+-----------------------------+
|
|
|
|
|
|
For entities (function parameters, function return values, struct fields) with
|
|
|
the above SV semantic strings attached, SPIR-V variables of the
|