mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
include: Document vkd3d_shader_signature.
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
b68247132e
commit
41c6cb59d9
@ -962,29 +962,50 @@ struct vkd3d_shader_scan_descriptor_info
|
|||||||
unsigned int descriptor_count;
|
unsigned int descriptor_count;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data type of a shader varying, returned as part of struct
|
||||||
|
* vkd3d_shader_signature_element.
|
||||||
|
*/
|
||||||
enum vkd3d_shader_component_type
|
enum vkd3d_shader_component_type
|
||||||
{
|
{
|
||||||
|
/** The varying has no type. */
|
||||||
VKD3D_SHADER_COMPONENT_VOID = 0x0,
|
VKD3D_SHADER_COMPONENT_VOID = 0x0,
|
||||||
|
/** 32-bit unsigned integer. */
|
||||||
VKD3D_SHADER_COMPONENT_UINT = 0x1,
|
VKD3D_SHADER_COMPONENT_UINT = 0x1,
|
||||||
|
/** 32-bit signed integer. */
|
||||||
VKD3D_SHADER_COMPONENT_INT = 0x2,
|
VKD3D_SHADER_COMPONENT_INT = 0x2,
|
||||||
|
/** 32-bit IEEE floating-point. */
|
||||||
VKD3D_SHADER_COMPONENT_FLOAT = 0x3,
|
VKD3D_SHADER_COMPONENT_FLOAT = 0x3,
|
||||||
|
/** Boolean. */
|
||||||
VKD3D_SHADER_COMPONENT_BOOL = 0x4,
|
VKD3D_SHADER_COMPONENT_BOOL = 0x4,
|
||||||
|
|
||||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPONENT_TYPE),
|
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
|
enum vkd3d_shader_sysval_semantic
|
||||||
{
|
{
|
||||||
|
/** No system value. */
|
||||||
VKD3D_SHADER_SV_NONE = 0x00,
|
VKD3D_SHADER_SV_NONE = 0x00,
|
||||||
|
/** Vertex position; SV_Position in Direct3D. */
|
||||||
VKD3D_SHADER_SV_POSITION = 0x01,
|
VKD3D_SHADER_SV_POSITION = 0x01,
|
||||||
|
/** Clip distance; SV_ClipDistance in Direct3D. */
|
||||||
VKD3D_SHADER_SV_CLIP_DISTANCE = 0x02,
|
VKD3D_SHADER_SV_CLIP_DISTANCE = 0x02,
|
||||||
|
/** Cull distance; SV_CullDistance in Direct3D. */
|
||||||
VKD3D_SHADER_SV_CULL_DISTANCE = 0x03,
|
VKD3D_SHADER_SV_CULL_DISTANCE = 0x03,
|
||||||
|
/** Render target layer; SV_RenderTargetArrayIndex in Direct3D. */
|
||||||
VKD3D_SHADER_SV_RENDER_TARGET_ARRAY_INDEX = 0x04,
|
VKD3D_SHADER_SV_RENDER_TARGET_ARRAY_INDEX = 0x04,
|
||||||
|
/** Viewport index; SV_ViewportArrayIndex in Direct3D. */
|
||||||
VKD3D_SHADER_SV_VIEWPORT_ARRAY_INDEX = 0x05,
|
VKD3D_SHADER_SV_VIEWPORT_ARRAY_INDEX = 0x05,
|
||||||
|
/** Vertex ID; SV_VertexID in Direct3D. */
|
||||||
VKD3D_SHADER_SV_VERTEX_ID = 0x06,
|
VKD3D_SHADER_SV_VERTEX_ID = 0x06,
|
||||||
|
/** Primtive ID; SV_PrimitiveID in Direct3D. */
|
||||||
VKD3D_SHADER_SV_PRIMITIVE_ID = 0x07,
|
VKD3D_SHADER_SV_PRIMITIVE_ID = 0x07,
|
||||||
|
/** Instance ID; SV_InstanceID in Direct3D. */
|
||||||
VKD3D_SHADER_SV_INSTANCE_ID = 0x08,
|
VKD3D_SHADER_SV_INSTANCE_ID = 0x08,
|
||||||
|
/** Whether the triangle is front-facing; SV_IsFrontFace in Direct3D. */
|
||||||
VKD3D_SHADER_SV_IS_FRONT_FACE = 0x09,
|
VKD3D_SHADER_SV_IS_FRONT_FACE = 0x09,
|
||||||
|
/** Sample index; SV_SampleIndex in Direct3D. */
|
||||||
VKD3D_SHADER_SV_SAMPLE_INDEX = 0x0a,
|
VKD3D_SHADER_SV_SAMPLE_INDEX = 0x0a,
|
||||||
VKD3D_SHADER_SV_TESS_FACTOR_QUADEDGE = 0x0b,
|
VKD3D_SHADER_SV_TESS_FACTOR_QUADEDGE = 0x0b,
|
||||||
VKD3D_SHADER_SV_TESS_FACTOR_QUADINT = 0x0c,
|
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),
|
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
|
enum vkd3d_shader_minimum_precision
|
||||||
{
|
{
|
||||||
VKD3D_SHADER_MINIMUM_PRECISION_NONE = 0,
|
VKD3D_SHADER_MINIMUM_PRECISION_NONE = 0,
|
||||||
|
/** 16-bit floating-point. */
|
||||||
VKD3D_SHADER_MINIMUM_PRECISION_FLOAT_16 = 1,
|
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,
|
VKD3D_SHADER_MINIMUM_PRECISION_FLOAT_8_2 = 2,
|
||||||
|
/** 16-bit signed integer. */
|
||||||
VKD3D_SHADER_MINIMUM_PRECISION_INT_16 = 4,
|
VKD3D_SHADER_MINIMUM_PRECISION_INT_16 = 4,
|
||||||
|
/** 16-bit unsigned integer. */
|
||||||
VKD3D_SHADER_MINIMUM_PRECISION_UINT_16 = 5,
|
VKD3D_SHADER_MINIMUM_PRECISION_UINT_16 = 5,
|
||||||
|
|
||||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_MINIMUM_PRECISION),
|
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
|
struct vkd3d_shader_signature_element
|
||||||
{
|
{
|
||||||
|
/** Semantic name. */
|
||||||
const char *semantic_name;
|
const char *semantic_name;
|
||||||
|
/** Semantic index, or 0 if the semantic is not indexed. */
|
||||||
unsigned int semantic_index;
|
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;
|
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;
|
enum vkd3d_shader_sysval_semantic sysval_semantic;
|
||||||
|
/** Data type. */
|
||||||
enum vkd3d_shader_component_type component_type;
|
enum vkd3d_shader_component_type component_type;
|
||||||
|
/** Register index. */
|
||||||
unsigned int register_index;
|
unsigned int register_index;
|
||||||
|
/** Register mask. */
|
||||||
unsigned int mask;
|
unsigned int mask;
|
||||||
|
/** Minimum interpolation precision. */
|
||||||
enum vkd3d_shader_minimum_precision min_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
|
struct vkd3d_shader_signature
|
||||||
{
|
{
|
||||||
|
/** Pointer to an array of varyings. */
|
||||||
struct vkd3d_shader_signature_element *elements;
|
struct vkd3d_shader_signature_element *elements;
|
||||||
|
/** Size, in elements, of \ref elements. */
|
||||||
unsigned int element_count;
|
unsigned int element_count;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user