[PATCH vkd3d 5/5] include: Document vkd3d_shader_signature.

Zebediah Figura z.figura12 at gmail.com
Thu Sep 3 22:41:52 CDT 2020


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 include/vkd3d_shader.h | 55 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h
index 2a2c960a..8fcf398b 100644
--- a/include/vkd3d_shader.h
+++ b/include/vkd3d_shader.h
@@ -962,29 +962,50 @@ struct vkd3d_shader_scan_descriptor_info
     unsigned int descriptor_count;
 };
 
+/**
+ * Data type of a shader varying, returned as part of struct
+ * vkd3d_shader_signature_element.
+ */
 enum vkd3d_shader_component_type
 {
+    /** The varying has no type. */
     VKD3D_SHADER_COMPONENT_VOID     = 0x0,
+    /** 32-bit unsigned integer. */
     VKD3D_SHADER_COMPONENT_UINT     = 0x1,
+    /** 32-bit signed integer. */
     VKD3D_SHADER_COMPONENT_INT      = 0x2,
+    /** 32-bit IEEE floating-point. */
     VKD3D_SHADER_COMPONENT_FLOAT    = 0x3,
+    /** Boolean. */
     VKD3D_SHADER_COMPONENT_BOOL     = 0x4,
 
     VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPONENT_TYPE),
 };
 
+/** System value semantic, returned as part of struct vkd3d_shader_signature. */
 enum vkd3d_shader_sysval_semantic
 {
+    /** No system value. */
     VKD3D_SHADER_SV_NONE                      = 0x00,
+    /** Vertex position; SV_Position in Direct3D. */
     VKD3D_SHADER_SV_POSITION                  = 0x01,
+    /** Clip distance; SV_ClipDistance in Direct3D. */
     VKD3D_SHADER_SV_CLIP_DISTANCE             = 0x02,
+    /** Cull distance; SV_CullDistance in Direct3D. */
     VKD3D_SHADER_SV_CULL_DISTANCE             = 0x03,
+    /** Render target layer; SV_RenderTargetArrayIndex in Direct3D. */
     VKD3D_SHADER_SV_RENDER_TARGET_ARRAY_INDEX = 0x04,
+    /** Viewport index; SV_ViewportArrayIndex in Direct3D. */
     VKD3D_SHADER_SV_VIEWPORT_ARRAY_INDEX      = 0x05,
+    /** Vertex ID; SV_VertexID in Direct3D. */
     VKD3D_SHADER_SV_VERTEX_ID                 = 0x06,
+    /** Primtive ID; SV_PrimitiveID in Direct3D. */
     VKD3D_SHADER_SV_PRIMITIVE_ID              = 0x07,
+    /** Instance ID; SV_VertexID in Direct3D. */
     VKD3D_SHADER_SV_INSTANCE_ID               = 0x08,
+    /** Whether the triangle is front-facing; SV_IsFrontFace in Direct3D. */
     VKD3D_SHADER_SV_IS_FRONT_FACE             = 0x09,
+    /** Sample index; SV_SampleIndex in Direct3D. */
     VKD3D_SHADER_SV_SAMPLE_INDEX              = 0x0a,
     VKD3D_SHADER_SV_TESS_FACTOR_QUADEDGE      = 0x0b,
     VKD3D_SHADER_SV_TESS_FACTOR_QUADINT       = 0x0c,
@@ -996,32 +1017,66 @@ enum vkd3d_shader_sysval_semantic
     VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SYSVAL_SEMANTIC),
 };
 
+/**
+ * Minimum interpolation precision of a shader varying, returned as part of
+ * struct vkd3d_shader_signature_element.
+ */
 enum vkd3d_shader_minimum_precision
 {
     VKD3D_SHADER_MINIMUM_PRECISION_NONE      = 0,
+    /** 16-bit floating-point. */
     VKD3D_SHADER_MINIMUM_PRECISION_FLOAT_16  = 1,
+    /** 10-bit fixed point (2 integer and 8 fractional bits). */
     VKD3D_SHADER_MINIMUM_PRECISION_FLOAT_8_2 = 2,
+    /** 16-bit signed integer. */
     VKD3D_SHADER_MINIMUM_PRECISION_INT_16    = 4,
+    /** 16-bit unsigned integer. */
     VKD3D_SHADER_MINIMUM_PRECISION_UINT_16   = 5,
 
     VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_MINIMUM_PRECISION),
 };
 
+/**
+ * A single shader varying, returned as part of struct vkd3d_shader_signature.
+ */
 struct vkd3d_shader_signature_element
 {
+    /** Semantic name. */
     const char *semantic_name;
+    /** Semantic index, or 0 if the semantic is not indexed. */
     unsigned int semantic_index;
+    /**
+     * Stream index of a geometry shader output semantic. If the signature is
+     * not a geometry shader output signature, this field will be set to 0.
+     */
     unsigned int stream_index;
+    /**
+     * System value semantic. If the varying is not a system value, this field
+     * will be set to VKD3D_SHADER_SV_NONE.
+     */
     enum vkd3d_shader_sysval_semantic sysval_semantic;
+    /** Data type. */
     enum vkd3d_shader_component_type component_type;
+    /** Register index. */
     unsigned int register_index;
+    /** Register mask. */
     unsigned int mask;
+    /** Minimum interpolation precision. */
     enum vkd3d_shader_minimum_precision min_precision;
 };
 
+/**
+ * Description of a shader input or output signature. This structure is
+ * populated by vkd3d_shader_parse_input_signature().
+ *
+ * The helper function vkd3d_shader_find_signature_element() will look up a
+ * varying element by its semantic name, semantic index, and stream index.
+ */
 struct vkd3d_shader_signature
 {
+    /** Pointer to an array of varyings. */
     struct vkd3d_shader_signature_element *elements;
+    /** Size, in elements, of \ref elements. */
     unsigned int element_count;
 };
 
-- 
2.28.0




More information about the wine-devel mailing list