mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
include: Document struct vkd3d_shader_compile_info and members.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
73f1adfd22
commit
139d979733
@ -57,13 +57,17 @@ enum vkd3d_shader_structure_type
|
|||||||
VKD3D_FORCE_32_BIT_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
|
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,
|
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_SHADER_COMPILE_OPTION_BUFFER_UAV_STORAGE_BUFFER = 0x00000001,
|
||||||
|
|
||||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_BUFFER_UAV),
|
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
|
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_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),
|
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
|
struct vkd3d_shader_compile_option
|
||||||
{
|
{
|
||||||
|
/** Name of the option. */
|
||||||
enum vkd3d_shader_compile_option_name name;
|
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;
|
unsigned int value;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -97,9 +119,12 @@ enum vkd3d_shader_visibility
|
|||||||
VKD3D_FORCE_32_BIT_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
|
struct vkd3d_shader_code
|
||||||
{
|
{
|
||||||
|
/** Pointer to the code. */
|
||||||
const void *code;
|
const void *code;
|
||||||
|
/** Size of \a code, in bytes. */
|
||||||
size_t size;
|
size_t size;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -264,46 +289,102 @@ struct vkd3d_shader_transform_feedback_info
|
|||||||
unsigned int buffer_stride_count;
|
unsigned int buffer_stride_count;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** The format of a shader to be compiled or scanned. */
|
||||||
enum vkd3d_shader_source_type
|
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,
|
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_SHADER_SOURCE_DXBC_TPF,
|
||||||
|
|
||||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SOURCE_TYPE),
|
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SOURCE_TYPE),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** The output format of a compiled shader. */
|
||||||
enum vkd3d_shader_target_type
|
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,
|
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_SHADER_TARGET_SPIRV_BINARY,
|
||||||
|
|
||||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_TARGET_TYPE),
|
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
|
enum vkd3d_shader_log_level
|
||||||
{
|
{
|
||||||
|
/** No messages will be returned. */
|
||||||
VKD3D_SHADER_LOG_NONE,
|
VKD3D_SHADER_LOG_NONE,
|
||||||
|
/** Only fatal errors which prevent successful compilation will be returned. */
|
||||||
VKD3D_SHADER_LOG_ERROR,
|
VKD3D_SHADER_LOG_ERROR,
|
||||||
|
/** Non-fatal warnings and fatal errors will be returned. */
|
||||||
VKD3D_SHADER_LOG_WARNING,
|
VKD3D_SHADER_LOG_WARNING,
|
||||||
|
/**
|
||||||
|
* All messages, including general informational messages, will be returned.
|
||||||
|
*/
|
||||||
VKD3D_SHADER_LOG_INFO,
|
VKD3D_SHADER_LOG_INFO,
|
||||||
|
|
||||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_LOG_LEVEL),
|
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_LOG_LEVEL),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A chained structure containing compilation parameters.
|
||||||
|
*/
|
||||||
struct vkd3d_shader_compile_info
|
struct vkd3d_shader_compile_info
|
||||||
{
|
{
|
||||||
|
/** Must be set to VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO. */
|
||||||
enum vkd3d_shader_structure_type type;
|
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;
|
const void *next;
|
||||||
|
|
||||||
|
/** Input source code or byte code. */
|
||||||
struct vkd3d_shader_code source;
|
struct vkd3d_shader_code source;
|
||||||
|
|
||||||
|
/** Format of the input code passed in \ref source. */
|
||||||
enum vkd3d_shader_source_type source_type;
|
enum vkd3d_shader_source_type source_type;
|
||||||
|
/** Desired output format. */
|
||||||
enum vkd3d_shader_target_type target_type;
|
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;
|
const struct vkd3d_shader_compile_option *options;
|
||||||
|
/** Size, in elements, of \ref options. */
|
||||||
unsigned int option_count;
|
unsigned int option_count;
|
||||||
|
|
||||||
|
/** Minimum severity of messages returned from the shader function. */
|
||||||
enum vkd3d_shader_log_level log_level;
|
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;
|
const char *source_name;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user