Zebediah Figura : include: Document struct vkd3d_shader_compile_info and members.

Alexandre Julliard julliard at winehq.org
Wed Sep 2 15:24:09 CDT 2020


Module: vkd3d
Branch: master
Commit: 139d979733df684093bc7927e3d20e8559e704a5
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=139d979733df684093bc7927e3d20e8559e704a5

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Mon Aug 31 20:34:28 2020 -0500

include: Document struct vkd3d_shader_compile_info and members.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/vkd3d_shader.h | 91 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 86 insertions(+), 5 deletions(-)

diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h
index da05f2c..9150f14 100644
--- a/include/vkd3d_shader.h
+++ b/include/vkd3d_shader.h
@@ -57,13 +57,17 @@ enum vkd3d_shader_structure_type
     VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_STRUCTURE_TYPE),
 };
 
-/* This also affects UAV counters in Vulkan environments. In OpenGL
- * environments, atomic counter buffers are always used for UAV counters. */
+/**
+ * Determines how buffer UAVs are stored.
+ *
+ * This also affects UAV counters in Vulkan environments. In OpenGL
+ * environments, atomic counter buffers are always used for UAV counters.
+ */
 enum vkd3d_shader_compile_option_buffer_uav
 {
-    /* Use buffer textures for buffer UAVs, this is the default. */
+    /** Use buffer textures for buffer UAVs. This is the default value. */
     VKD3D_SHADER_COMPILE_OPTION_BUFFER_UAV_STORAGE_TEXEL_BUFFER = 0x00000000,
-    /* Use storage buffers for buffer UAVs. */
+    /** Use storage buffers for buffer UAVs. */
     VKD3D_SHADER_COMPILE_OPTION_BUFFER_UAV_STORAGE_BUFFER       = 0x00000001,
 
     VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_BUFFER_UAV),
@@ -71,15 +75,33 @@ enum vkd3d_shader_compile_option_buffer_uav
 
 enum vkd3d_shader_compile_option_name
 {
+    /**
+     * If \a value is nonzero, do not include debug information in the
+     * compiled shader. The default value is zero.
+     *
+     * This option is supported by vkd3d_shader_compile(). However, not all
+     * compilers support generating debug information.
+     */
     VKD3D_SHADER_COMPILE_OPTION_STRIP_DEBUG = 0x00000001,
-    VKD3D_SHADER_COMPILE_OPTION_BUFFER_UAV  = 0x00000002, /* vkd3d_shader_compile_option_buffer_uav */
+    /** \a value is a member of enum vkd3d_shader_compile_option_buffer_uav. */
+    VKD3D_SHADER_COMPILE_OPTION_BUFFER_UAV  = 0x00000002,
 
     VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_NAME),
 };
 
+/**
+ * Various settings which may affect shader compilation or scanning, passed as
+ * part of struct vkd3d_shader_compile_info. For more details, see the
+ * documentation for individual options.
+ */
 struct vkd3d_shader_compile_option
 {
+    /** Name of the option. */
     enum vkd3d_shader_compile_option_name name;
+    /**
+     * A value associated with the option. The type and interpretation of the
+     * value depends on the option in question.
+     */
     unsigned int value;
 };
 
@@ -97,9 +119,12 @@ enum vkd3d_shader_visibility
     VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_VISIBILITY),
 };
 
+/** A generic structure containing a GPU shader, in text or byte-code format. */
 struct vkd3d_shader_code
 {
+    /** Pointer to the code. */
     const void *code;
+    /** Size of \a code, in bytes. */
     size_t size;
 };
 
@@ -264,46 +289,102 @@ struct vkd3d_shader_transform_feedback_info
     unsigned int buffer_stride_count;
 };
 
+/** The format of a shader to be compiled or scanned. */
 enum vkd3d_shader_source_type
 {
+    /**
+     * The shader has no type or is to be ignored. This is not a valid value
+     * for vkd3d_shader_compile() or vkd3d_shader_scan().
+     */
     VKD3D_SHADER_SOURCE_NONE,
+    /**
+     * A 'Tokenized Program Format' shader embedded in a DXBC container. This is
+     * the format used for Direct3D shader model 4 and 5 shaders.
+     */
     VKD3D_SHADER_SOURCE_DXBC_TPF,
 
     VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SOURCE_TYPE),
 };
 
+/** The output format of a compiled shader. */
 enum vkd3d_shader_target_type
 {
+    /**
+     * The shader has no type or is to be ignored. This is not a valid value
+     * for vkd3d_shader_compile() or vkd3d_shader_scan().
+     */
     VKD3D_SHADER_TARGET_NONE,
+    /**
+     * A SPIR-V shader in binary form. This is the format used for Vulkan
+     * shaders.
+     */
     VKD3D_SHADER_TARGET_SPIRV_BINARY,
 
     VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_TARGET_TYPE),
 };
 
+/**
+ * Describes the maximum severity of compilation messages returned by
+ * vkd3d_shader_compile() and similar functions.
+ */
 enum vkd3d_shader_log_level
 {
+    /** No messages will be returned. */
     VKD3D_SHADER_LOG_NONE,
+    /** Only fatal errors which prevent successful compilation will be returned. */
     VKD3D_SHADER_LOG_ERROR,
+    /** Non-fatal warnings and fatal errors will be returned. */
     VKD3D_SHADER_LOG_WARNING,
+    /**
+     * All messages, including general informational messages, will be returned.
+     */
     VKD3D_SHADER_LOG_INFO,
 
     VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_LOG_LEVEL),
 };
 
+/**
+ * A chained structure containing compilation parameters.
+ */
 struct vkd3d_shader_compile_info
 {
+    /** Must be set to VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO. */
     enum vkd3d_shader_structure_type type;
+    /**
+     * Optional pointer to a structure containing further parameters. For a list
+     * of valid structures, refer to the respective function documentation. If
+     * no further parameters are needed, this field should be set to NULL.
+     */
     const void *next;
 
+    /** Input source code or byte code. */
     struct vkd3d_shader_code source;
 
+    /** Format of the input code passed in \ref source. */
     enum vkd3d_shader_source_type source_type;
+    /** Desired output format. */
     enum vkd3d_shader_target_type target_type;
 
+    /**
+     * Pointer to an array of compilation options. This field is ignored if
+     * \ref option_count is zero, but must be valid otherwise.
+     *
+     * If the same option is specified multiple times, only the last value is
+     * used.
+     *
+     * Options not relevant to or not supported by a particular shader compiler
+     * or scanner will be ignored.
+     */
     const struct vkd3d_shader_compile_option *options;
+    /** Size, in elements, of \ref options. */
     unsigned int option_count;
 
+    /** Minimum severity of messages returned from the shader function. */
     enum vkd3d_shader_log_level log_level;
+    /**
+     * Name of the initial source file, which may be used in error messages or
+     * debug information. This parameter is optional and may be NULL.
+     */
     const char *source_name;
 };
 




More information about the wine-cvs mailing list